Алексей Махоткин

домашняя страница

Autoconf

Go to the first, previous, next, last section, table of contents.


Воссоздание конфигурации

@anchor{Invoking config.status}

Скрипт configure создает файл с именем `config.status’, который описывает, какие параметры конфигурации были указаны при последней конфигурации пакета. Это файл является скриптом командного процессора, который при запуске воссоздает ту же самую настройку.

Вы можете задать скрипту `config.status’ ключ `–recheck’, чтобы он обновил сам себя. Этот ключ полезен, если вы изменяете configure, так что результаты некоторых тестов могут измениться по сравнению с предыдущим запуском. Ключ `–recheck’ перезапускает configure с аргументами, использованными при предыдущих запусках, с добавлением ключа `–no-create’, который не дает configure запустить `config.status’ и создать `Makefile’ и другие файлы, а также с добавлением ключа `–no-recursion’, который предотвращает запуск скриптов configure в подкаталогах. (Это сделано для того, чтобы другие правила `Makefile’ могли бы запускать `config.status’ при его изменении; Например, see section Автоматическая пересборка).

`config.status’ также распознает ключ `–help’, который выдает список ключей `config.status’, и ключ `–version’, который выдает номер версии Autoconf, которая была использована при создании скрипта configure, создавшего файл `config.status’.

`config.status’ проверяет несколько переменных среды, которые могут изменить его поведение:

Variable: CONFIG_SHELL
Командный процессор, который запустит configure с ключом `–recheck’. Он должен быть совместимым с командным процессором Bourne. Значение по умолчанию – является `/bin/sh’.

Variable: CONFIG_STATUS
Имя файла, которое будет использоваться для создания скрипта командного процессора, который сохранит текущую настройку. Значением по умолчанию является `./config.status’. Эта переменная полезна в том случае, когда один пакет использует части другого, а скрипты configure не должны быть слиты вместе, поскольку они сопровождаются по отдельности.

Следующие переменные обеспечивают возможность отдельным пакетам совместно использовать значения переменных, вычисленных скриптом configure. Это может быть полезно, если одному пакету нужно больше возможностей, чем другому. Эти переменные позволяют файлу `config.status’ создавать и другие файлы, не только те, что указаны в файле `configure.in’, чтобы их можно было бы использовать в другом пакете.

Variable: CONFIG_FILES
Файлы, в которых будут выполняться подстановки `@variable@’. Обычно эти файлы задаются как аргументы макроса AC_OUTPUT в `configure.in’.

Variable: CONFIG_HEADERS
Файлы, в которых будет выполняться подстановка операторов #define языка C. Обычно это файлы, заданные в аргументах макроса AC_CONFIG_HEADER; если этот макрос не был вызван, то `config.status’ игнорирует эту переменную.

Эти переменные также позволяют написать правила `Makefile’, которые будут пересоздавать только некоторые файлы. Например, в вышеприведенной зависимости (see section Автоматическая пересборка), `config.status’ запускается дважды при изменении `configure.in’. Если это беспокоит вас, то вы можете сделать так, чтобы при каждом запуске обновлялись файлы только для этого правила:

config.h: stamp-h
stamp-h: config.h.in config.status
        CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
        echo > stamp-h

Makefile: Makefile.in config.status
        CONFIG_FILES=Makefile CONFIG_HEADERS= ./config.status

(Если `configure.in’ не вызывает макрос AC_CONFIG_HEADER, то нет необходимости устанавливать CONFIG_HEADERS в правилах make).


Go to the first, previous, next, last section, table of contents.

Comments