./configure: สภาพแวดล้อมการสร้างที่บ้าคืออะไร


55

./configure ตรวจสอบอยู่เสมอ whether the build environment is sane...

ฉันอดไม่ได้ที่จะสงสัยว่าสภาพแวดล้อมการสร้างที่บ้าคืออะไร การตรวจสอบนี้สามารถเพิ่มข้อผิดพลาดอะไรได้บ้าง



คุณสามารถตรวจสอบconfig.logสิ่งที่คำสั่งจริงจะทำงานที่นั่นหรือโปรแกรมรวบรวม
myaut

คำตอบ:


51

นี้มาจากautomakeเฉพาะจากของAM_SANITY_CHECK แมโครซึ่งถูกเรียกจากซึ่งปกติจะเรียกว่าในช่วงต้นAM_INIT_AUTOMAKE configure.acส่วนสำคัญของแมโครนี้คือ:

  • ตรวจสอบว่าเส้นทางไปยังไดเรกทอรีต้นทางไม่มีอักขระ“ ไม่ปลอดภัย” บางตัวซึ่งอาจรวมอยู่ในไฟล์สคริปต์ของเชลล์ได้ยาก
  • ตรวจสอบว่าlsใช้งานได้
  • ตรวจสอบว่าไฟล์ใหม่ที่สร้างในไดเรกทอรีการสร้างนั้นใหม่กว่าconfigureไฟล์ หากไม่ใช่ (โดยทั่วไปเนื่องจากนาฬิกาในระบบบิลด์ไม่ได้ตั้งค่าอย่างถูกต้อง) กระบวนการบิลด์อาจล้มเหลวเนื่องจากกระบวนการบิลด์มักจะอาศัยไฟล์ที่สร้างขึ้นซึ่งมีการประทับเวลาล่าสุดมากกว่าไฟล์ต้นฉบับที่สร้างขึ้น

ทำไมเป็นlsพิเศษ มันเป็นเพียงเพื่อทดสอบว่า executables พื้นฐานมีอยู่และใช้งานได้หรือใช้lsตัวเองอย่างใดในกระบวนการทำ?
terdon

2
@terdon บางแม่ automake lsใช้ AM_SANITY_CHECKแมโครตัวเองใช้lsในการตรวจสอบครั้งญาติของconfigureและไฟล์ชั่วคราว (มันไม่ได้ใช้test -ntเพราะไม่ได้เปลือกหอยทุกคนมีมัน)
Gilles 'ดังนั้น - หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.