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

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

Autoconf

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


Предлагаемый порядок

@anchor{Suggested Ordering}

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

Autoconf предоставляет макрос AC_BEFORE для предупреждения пользователя о тех случаях, когда этот макросы вызываются в неправильном порядке в файле `configure.in’. Предупреждение выдается при создании скрипта configure из файла `configure.in’, а не при запуске созданного configure. Например, AC_PROG_CPP проверяет может ли компилятор C запустить препроцессор C с ключом `-E’. Он должен быть вызван после любого из макросов, который изменяет поведение используемого компилятора C, такого как AC_PROG_CC. Так что макрос AC_PROG_CC должен содержать:

AC_BEFORE([$0], [AC_PROG_CPP])dnl

Это вызывает выдачу предупреждения пользователю, если вызов AC_PROG_CPP уже произошел до вызова макроса AC_PROG_CC.

Macro: AC_BEFORE (this-macro-name, called-macro-name)
Заставляет m4 выдать предупреждающее сообщение в стандартный поток сообщений об ошибках в том случае, если макроса called-macro-name уже был вызван. this-macro-name должен быть именем макроса, который вызывает AC_BEFORE. Макрос called-macro-name должен быть определен используя макрос AC_DEFUN или должен содержать вызов AC_PROVIDE для того, чтобы показать, что он был вызван.


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

Comments