[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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

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

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

`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 3.3.3 Автоматическая пересборка), `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).


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated on February, 19 2004 using texi2html