./mình: Môi trường xây dựng điên rồ là gì?


55

./configure luôn luôn kiểm tra whether the build environment is sane...

Tôi không thể không tự hỏi chính xác môi trường xây dựng điên rồ là gì. Những lỗi này có thể kiểm tra nâng cao?



Bạn có thể kiểm tra xem config.logcác lệnh thực tế đang chạy ở đó hoặc các chương trình được biên dịch.
myaut

Câu trả lời:


51

Điều này xuất phát từ automake , cụ thể là từ AM_SANITY_CHECK macro của nó , được gọi từ AM_INIT_AUTOMAKE, thường được gọi là sớm configure.ac. Ý chính của macro này là:

  • Kiểm tra xem đường dẫn đến thư mục nguồn không chứa một số ký tự không an toàn nhất định có thể khó đưa vào các tập lệnh shell.
  • Kiểm tra xem có lsvẻ như để làm việc.
  • Kiểm tra xem một tệp mới được tạo trong thư mục bản dựng có mới hơn configuretệp không. Nếu không (thường là do đồng hồ trên hệ thống xây dựng không được đặt chính xác), quá trình xây dựng có thể thất bại vì các quy trình xây dựng thường dựa vào các tệp được tạo có dấu thời gian gần đây hơn so với các tệp nguồn được tạo từ đó.

Tại sao lscụ thể? Có phải chỉ để kiểm tra rằng các tệp thực thi cơ bản có sẵn và có chức năng hay lschính nó được sử dụng bằng cách nào đó trong quá trình tạo?
terdon

2
@terdon Một số mẫu tự động sử dụng ls. Bản AM_SANITY_CHECKthân macro sử dụng lsđể kiểm tra thời gian tương đối của configurevà một tệp tạm thời (nó không sử dụng test -ntvì không phải tất cả các shell đều có nó).
Gilles 'SO- ngừng trở nên xấu xa'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.