| |
Automake поддерживает простой тип условных операторов.
До использования условного оператора, вы должны определить его в файле
configure.in
используя макрос AM_CONDITIONAL
(see section Макросы Autoconf, поставляемые с Automake). Макросу AM_CONDITIONAL
передается два
аргумента.
Первым аргументом для AM_CONDITIONAL
является имя условного
оператора. Им должны быть простая строка, начинающаяся с буквы и
содержащая только буквы, цифры и знаки подчеркивания.
Вторым аргументом AM_CONDITIONAL
является условие для командного
процессора, которое можно использовать в операторе if
. Условие
оценивается при запуске configure
.
Условные операторы обычно зависят от ключей, которые использует
пользователь при запуске скрипта configure
. Вот пример того, как
написать условный оператор, который возвращает истинное выражение, если
пользователь использовал ключ `--enable-debug'.
AC_ARG_ENABLE(debug, [ --enable-debug Turn on debugging], [case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac],[debug=false]) AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
Вот пример использования этого условного оператора в файле `Makefile.am':
if DEBUG DBG = debug else DBG = endif noinst_PROGRAMS = $(DBG)
Этот тривиальный пример также мог быть создан используя макрос EXTRA_PROGRAMS (see section Построение программ).
В операторе if
вы можете тестировать только одну
переменную. Оператор else
может не использоваться. Условные
операторы могут быть вложены на любую глубину.
Заметьте, что условные операторы в Automake не похожи на условные
операторы в GNU Make. Условные операторы Automake проверяются во время
конфигурации, при выполнении скрипта `configure', и воздействуют на
преобразование файла `Makefile.in' в файл `Makefile'. Они
основываются на ключах, передаваемых скрипту `configure' и на
результатах, определяемых во время выполнения `configure'. Условные
операторы GNU Make проверяются при выполнении make
и основываются
на переменных, передаваемых программе make, или определенных в
`Makefile'.
Условные операторы Automake будут работать с любой программой make.
Go to the first, previous, next, last section, table of contents.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |