Структура и основные принципы работы
Дальше: Простой пример Вверх: Использование 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