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

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

Autoconf

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


Выбор ключей пакетов

@anchor{Package Options}

Если пакет имеет необязательные возможности, которые задаются во время компиляции, то пользователь может задать configure ключи командной строки для указания— нужно ли их компилировать. Ключи имеют одну из следующих форм:

–enable-feature[=arg]
–disable-feature

Эти ключи позволяют пользователю выбрать, какие необязательные возможности нужно собрать и установить. Ключи `–enable-feature никогда не должны приводить к тому, что какое-то свойство изменит свое поведение, или же заменять одну возможность другой. Эти ключи должны только включать или не включать части программы в процесс компиляции.

Пользователь может задать аргумент, который следует за именем свойства и знаком `=’. Если задать аргумент `no’, то свойство будет недоступным. Свойство с аргументом может выглядеть примерно следующим образом: `–enable-debug=stabs’. Если аргумента не задано, то значением по умолчанию является `yes’. `–disable-feature является эквивалентом `–enable-feature=no’.

Скрипты configure не выражают недовольства по поводу ключей `–enable-feature, которые они не поддерживают. Такое поведение позволяет конфигурировать дерево исходных текстов, содержащее множество пакетов, с помощью скрипта configure верхнего уровня, когда пакеты поддерживают разные ключи, без выдачи фальшивых сообщений об ошибках о ключах, которые поддерживают только некоторые пакеты. Побочным эффектом этого является то, что ошибка в задании ключей не диагностируется. До сих пор не было предложено лучшего подхода к решению этой проблемы.

Для каждой из необязательных возможностей `configure.in’ должен вызывать AC_ARG_ENABLE для определения, запросил ли пользователь configure включить эту возможность. Будет ли эта возможность включена по умолчанию или нет, и какие аргументы будут правильными, зависит от вас.

Macro: AC_ARG_ENABLE (feature, help-string [, action-if-given [, action-if-not-given]])
Если пользователь задал configure ключ `–enable-feature или `–disable-feature, то запускаются команды action-if-given. Если не был задан ни один ключ, то запускаются команды action-if-not-given. Имя feature указывает необязательную возможность, которую пользователь может включить или выключить. Имя должно состоять только из букв, цифр и знаков “минус”.

Аргумент ключа доступен из кода командного процессора action-if-given в переменной командного процессора enableval, которая в действительности является значением переменной enable_feature, причем символы `-’ заменены на символ `_’. Если хотите, то можете использовать эту переменную. Аргумент help-string делает то же самое, что и соответствующий аргумент макроса AC_ARG_WITH (see section Работа с внешним программным обеспечением).

Macro: AC_ENABLE (feature, action-if-given [, action-if-not-given])
Это устаревшая версия AC_ARG_ENABLE, которая не поддерживает использование строки помощи.


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

Comments