Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Система конфигурирования и сборки GNU

Система конфигурирования и сборки GNU

Иан Ланс Тейлор

Часто задаваемые вопросы

Что мне запускать первым, `autoconf' или `automake'?
За исключением случая, когда вы впервые добавляете в пакет поддержку autoconf или automake, вы не должны запускать их вручную. Вместо этого конфигурируйте с опцией `--enable-maintainer-mode', и пусть `make' позаботится о вашей проблеме.
`autoconf' сообщает что-то о неопределённом макросе.
Это значит, что в вашем `configure.in' имеется макрос, который не определён посредством `autoconf'. Возможно вы используете старую версию `autoconf'. Попытайтесь собрать и установить его новую версию, убедитесь, что ново-установленный `autoconf' первым прописан в вашем `PATH'. Смотрите также следующий вопрос.
В моем скрипте `configure' имеются такие выражения как `CY_GNU_GETTEXT'.
Это означает, что в вашем `configure.in' имеется макрос, который должен быть определён в вашем файле `aclocal.m4', но его там нет. Обычно это означает, что для `aclocal' недоступно подходящее определение для этого макроса. Убедитесь, что вы установили все необходимые пакеты. В частности, убедитесь, что вы установили libtool (в этом случае определена `AM_PROG_LIBTOOL') и gettext (в этом случае определена `CY_GNU_GETTEXT', по крайней мере для версии gettext для Cygnus).
В моем `Makefile' имеются символы `@'.
Это может означать, что вы в своем `Makefile.in' пытаетесь использовать замену autoconf без добавления соответствующего вызова `AC_SUBST' в своем скрипте `configure'. Или это означает, что вам необходимо пересобрать `Makefile' в вашей сборочной директории. Чтобы пересобрать `Makefile' из `Makefile.in', запустите шелл-скрипт `config.status' без аргументов. Если вам снова необходимо принудительно запустить `configure', сначала запустите `config.status --recheck'. Обычно этот запуск делается автоматически из `Makefile' цели, но если ваш `Makefile' содержит указанную выше путаницу, вам следует ему помочь.
Почему приходится запускать и `config.status --recheck', и `config.status'?
Обычно не приходится. Они запускаются автоматически из `Makefile' целей. Если вам нужно их запустить, используйте `config.status --recheck' для повторного запуска скрипта `configure' с теми же аргументами, с какими вы запускали его в первый раз. Использование `config.status' (без аргументов) приводит к перегенерации всех файлов (`Makefile', `config.h' и др.), зависящих от результата скрипта конфигурирования. Эти два случая различаются потому, что не всегда необходима перегенерация всех файлов после запуска `config.status --recheck'. `Makefile'-ы целей, генерируемые с помощью automake, используют переменные окружения `CONFIG_FILES' и `CONFIG_HEADERS' только для перегенерации файлов, когда это необходимо.
Что такое дерево Cygnus?
Дерево Cygnus используется для различных пакетов, включая gdb, GNU binutils и egcs. Также оно, разумеется, используется для релизов Cygnus. Оно является сборочной системой, которая была разработана в компании Cygnus с использованием скрипта конфигурирования Cygnus. Оно позволяет собирать множество различных пакетов с помощью единственных запусков configure и make. Скрипты конфигурирования в этом дереве были конвертированы для autoconf, но общая сборочная структура осталась нетронутой.
Почему мне приходится пересобирать и переустанавливать средства сборки?
Я знаю, это больно. К сожалению, в самих этих средствах есть баги, которые необходимо фиксить, и каждый раз как это происходит, всем, кто их использует, приходится переустанавливать их новые версии. Я не знаю, имеются ли в них исправления, поскольку для этого пока нет достаточно умных стабильных средств.
Почему бы просто не иметь цель `make' в дереве Cygnus для обновления этих средств?
К сожалению, чтобы использовать эти средства, они должны быть предварительно инсталлированы. Это означает, что они должны быть собраны с использованием соответствующего префикса, и представляется неразумным считать, что каждая конфигурация использует соответствующий префикс. Можно было бы заставить их работать на месте, или можно было бы устанавливать их в какие-то поддиректории, но до сих пор эти подходы не были реализованы.

Назад Вперед
Multilibs Индекс

Перевод: Дмитрий Скоробогатов, 25.12.2011.
Оригинальный текст можно найти по адресу http://www.airs.com/ian/configure/configure_9.html.


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2011-12-25 01:52:02

Метки материала: gnu, система конфигурирования, система конфигурирования и сборки, компиляция, проект gnu, по, бесплатные программы, бесплатное по, софт, разработка по, soft, программное обеспечение, software, спо, документация для программиста, программное обеспечение по

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.