Я новичок в Autotools. В моем понимании, можно было бы использовать следующие основные шаги для создания программного обеспечения с использованием Autotools:Почему «autoreconf» часто не используется?
autoreconf --install
./configure
make
Однако я заметил, что большинство с открытым исходным кодом программных пакетов (на Linux) не нуждается в шаге 1. Они больше всего нуждаются в шагах 2 и 3 для сборки. Похоже, что они уже упакованы с Makefile.in
. Мне интересно, почему? Записывают ли они вручную код Makefile.in
, или разработчик программного обеспечения использует autoreconf
для создания Makefile.in
перед созданием программного пакета?
Спасибо.
OK. Я думаю, что сам получил возможный ответ: не требуя, чтобы пользователь запускал «autoreconf», программный пакет ставит меньше требований к системе конечных пользователей. То есть Конечным пользователям нет необходимости устанавливать Autotools. Я думаю, что на самом деле это довольно большая и веская причина. – user1783732
Это правильно; когда 'configure' запускается, все потребности пользователя - это пара интерпретаторов сценариев (оболочка Bourne, sed, может быть, perl), плюс инструментальная цепочка компилятора. Даже если все библиотечные зависимости отсутствуют, скрипт 'configure' должен иметь возможность запускать и диагностировать проблему или работать с ней. Когда вы запускаете 'make dist-gzip', вы получаете tarball с скриптом' configure', плюс все файлы шаблонов '* .in', упакованные таким образом, чтобы пользователю не приходилось выполнять предыдущие шаги, требующие autotools. – DanielKO