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

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

Autoconf

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


Требуемые макросы

@anchor{Prerequisite Macros}

Макрос, которое вы можете написать, может нуждаться в значениях, которые перед этим были вычислены другими макросами. Например, AC_DECL_YYTEXT проверяет вывод flex или lex, так что он зависит от AC_PROG_LEX, который должен быть вызван перед этим для установки переменной командного процессора LEX.

Вместо того, чтобы заставлять пользователя макросов помнить все зависимости между макросами, вы можете использовать макрос AC_REQUIRE для того, чтобы автоматически отслеживать зависимости. AC_REQUIRE может помочь в обеспечении того, что макрос вызывается только когда это необходимо, и будет вызываться только раз.

Macro: AC_REQUIRE (macro-name)
Если макрос m4 с именем macro-name еще не был вызван, то необходимо вызвать его (без каких-либо аргументов). Убедитесь, что вы поместили имя macro-name в квадратные кавычки. macro-name должен быть определен с использованием макроса AC_DEFUN или должен содержать вызов макроса AC_PROVIDE для того, чтобы указать, что он был вызван.

Альтернативой этому использованию AC_DEFUN является использование define и вызов макроса AC_PROVIDE. Поскольку этот подход не предотвращает вложенных сообщений, то эта техника является устаревшей.

Macro: AC_PROVIDE (this-macro-name)
Запоминает тот факт, что макрос this-macro-name был вызван. this-macro-name должен быть именем макроса, который вызывает AC_PROVIDE. Для простого получения этого имени используйте встроенную переменную m4 с именем $0, примерно так:
AC_PROVIDE([$0])


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

Comments