Структура и основные принципы работы

Структура и основные принципы работы [Вперед] [Вверх] [Назад] [Содержание]
Дальше: Простой пример Вверх: Использование Autoconf Назад: Создание конфигурационных скриптов

Структура и основные принципы работы

Как уже говорилось выше, исходный файл configure.in содержит набор макросов, реализующих отдельные тесты. По соглашению, тесты располагаются в такой последовательности:

AC_INIT(FILE)
определение типа системы
проверки на наличие используемых программ
проверки на наличие необходимых библиотек и их содержимого
проверки на наличие заголовочных файлов и их сореджимого
проверки на определения типов данных
определение характеристик компилятора
проверка работоспособности фунцкий
проверка прочих системных возможностей
AC_OUTPUT([FILE...])
За исключением макросов AC_INIT и AC_OUTPUT, какие-либо элементы могут отсутствовать, и почти всегда последовательность расположения тестов не играет никакой роли.

Каждый файл configure.in должен начинаться макросом AC_INIT, который должен иметь в качестве аргумента имя какого-либо файла с исходным текстом. Таким способом указывается директория, содержащая исходный текст. Завершаться же файл configure.in должен макросом AC_OUTPUT, который используется для указания того, какие файлы должны быть созданы из соответствующих шаблонов. Например, если указано

AC_OUTPUT(Makefile config.h)
то предполагается, что директория, в которой выполняется скрипт configure, содержит файлы Makefile.in и config.h.in.Каждая поддиректория проекта обычно содержит configure-шаблон Makefile-файла -- Makefile.in. Для создания Makefile-файла configure выполняет просто подстановку переменных, заменяя вхождения @VAR@ в Makefile.in значением переменной VAR, установленным на этапе конфигурации. Для этой цели используется макрос AC_SUBST, аргументом которого является имя переменной. Некоторые переменные всегда устанавливаются таким способом -- например, имена директорий, куда будет проводиться установка прогаммы и дополнительных данных, или опции компилятора. Установка других переменных может быть проведена по желанию программиста.

Для создания собственно скрипта configure используется программа autoconf. Она читает файл configure.in с использованием макропроцессора m4, расширяя указанные там макросы. Большая часть макросов, реализующих наиболее часто используемые тесты, поставляется как часть пакета Autoconf. Если вы используете какие-либо специфические тесты, то они по соглашению находятся в файлах aclocal.m4 и acsite.m4 (см. выше).

Далее, в процессе запуска configure выполняются тесты и накапливается соответствующая информация. Она может быть использована четырьмя способами:

  • определить макрос C-препроцессора и записать его в заголовочный файл config.h;
  • установить переменную в выходном потоке для установки переменной при генерации Makefile из Makefile.in;
  • сохранить результат в файле config.cache для использования при последующих запусках;
  • вывести сообщение о ходе выполнения теста.



Dmitry A. Antipov
1999-05-26