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

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

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

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

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

Начало работы

Написание acconfig.h

Если вы генерируете портируемый заголовочный файл (т.е., если вы используете `AM_CONFIG_HEADER' в `configure.in'), то вам следует написать файл `acconfig.h'. Он должен содержать следующие строки:

/* Название пакета. */
#undef PACKAGE

/* Версия пакета.   */
#undef VERSION

В действительности это требование является багом системы, и может быть исключено когда нибудь в будущем.

Файл `acconfig.h' может также содержать аналогичные комментарии и строки `#undef' для любых необычных макросов в файле `configure.in', включать любые макросы, которые используются в макросе `AC_DEFINE'.

В частности, если вы пишете пакет GNU и потому включаете `AC_DEFINE(_GNU_SOURCE)' в `configure.in', как советовалось выше, вам понадобятся строки в `acconfig.h', аналогичные следующим:

/* Включение расширений GNU. */
#undef _GNU_SOURCE

Обычно программа `autoheader' должна информировать вас о всех требованиях, выводя сообщение об ошибке, когда вы ее запускаете. Тем не менее, если вы делаете что-то нестандартное в своем файле `configure.in', то должны убедиться, что в `acconfig.h' имеется правильная точка входа, поскольку иначе результаты тестов могут оказаться недоступными в файле `config.h', который используется в вашем коде.

(Строки `PACKAGE' и `VERSION' ненужны вам, если вы не используете automake. В этом случае вам и вовсе ненужен файл `acconfig.h').

Генерация файлов

Написав файлы `configure.in', `Makefile.am', `acconfig.h' и, возможно, `acinclude.m4', вы можете использовать программы autoconf и automake для создания первых версий генерируемых файлов. Это делается посредством выполнения следующей последовательности программ:

aclocal
autoconf
autoheader
automake

Команды `aclocal' и `automake' являются частью пакета automake, а команды `autoconf' и `autoheader' являются частью пакета autoconf.

Если вы используете поддиректорию `m4' для своих макросов, то вам нужно использовать опцию `-I m4' при запуске `aclocal'.

Если вы не используете систему Cygnus, то используйте опцию `-a', когда запускаете команду `automake', чтобы скопировать необходимые файлы поддержки в директорию с вашими исходниками.

Если вы используете libtool, вы должны собрать и установить пакет libtool с теми же самыми опциями `--prefix' и `--exec-prefix', какие вы использовали для пакетов autoconf и automake. Вы должны сделать это до запуска каких либо из вышеуказанных команд. Если вы используете систему Cygnus, вам нужно будет запустить программу `libtoolize', чтобы скопировать файлы поддержки libtool в вашу директорию.

В случае, если вы произвели запуск указанных команд и не получили никаких сообщений об ошибках, вы можете создать новую пустую директорию и запустить скрипт `configure', который был создан `autoconf', с опцией `--enable-maintainer-mode'. Тем самым вы получите набор Makefile-ов, включающих правила для автоматической пересборки всех генерируемых файлов.

Сделав все это, а затем изменив некоторые из входных файлов, вы захотите перегенерировать другие файлы. Для этого зайдите в свою объектную директорию и запустите `make'. Делать так — предпочтительнее, чем пытаться пересобрать файлы вручную, поскольку в сложном порядке зависимостей можно очень легко что-нибудь забыть.


Назад Вперед
Написание Makefile.am Пример

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


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

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

Последнее редактирование: 2011-11-30 15:40:51

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

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

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

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


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