./configure: Що таке божевільне середовище побудови?


55

./configure завжди перевіряє whether the build environment is sane...

Я не можу не задатися питанням, що саме таке божевільне середовище побудови. Які помилки може викликати цей чек?



Ви можете перевірити, config.logякі фактичні команди там запущені або програми складені.
myaut

Відповіді:


51

Це відбувається з Automake , в зокрема , від його AM_SANITY_CHECK макро , яка викликається з AM_INIT_AUTOMAKE, який зазвичай називається на початку configure.ac. Суть цього макросу:

  • Переконайтесь, що шлях до каталогу джерела не містить певних "небезпечних" символів, які може бути важко належним чином включити до файлів скриптів makefiles.
  • Перевірте, чи lsздається, що працює.
  • Перевірте, чи новий файл, створений у каталозі збірки, новіший, ніж configureфайл. Якщо це не так (як правило, тому, що годинник у системі збирання встановлений неправильно), процес збирання, ймовірно, не вдасться, оскільки процеси збирання, як правило, покладаються на генеровані файли, що мають новішу часову позначку, ніж вихідні файли, з яких вони створені.

Чому lsсаме? Це лише перевірити, чи доступні та функціональні базові виконувані файли, чи він lsсам якось використовується в процесі виготовлення?
terdon

2
@terdon Використовуються деякі шаблони автоматизації ls. Сам AM_SANITY_CHECKмакрос використовується lsдля перевірки відносного часу configureта тимчасового файлу (він не використовується, test -ntтому що не всі оболонки мають його).
Жиль "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.