@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.
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.