Next: One-Shot Macros, Previous: Prerequisite Macros, Up: Dependencies Between Macros
Some macros should be run before another macro if both are called, but neither requires that the other be called. For example, a macro that changes the behavior of the C compiler should be called before any macros that run the C compiler. Many of these dependencies are noted in the documentation.
Autoconf provides the AC_BEFORE
macro to warn users when macros
with this kind of dependency appear out of order in a
configure.ac file. The warning occurs when creating
configure from configure.ac, not when running
configure.
For example, AC_PROG_CPP
checks whether the C compiler
can run the C preprocessor when given the -E option. It should
therefore be called after any macros that change which C compiler is
being used, such as AC_PROG_CC
. So AC_PROG_CC
contains:
AC_BEFORE([$0], [AC_PROG_CPP])dnl
This warns the user if a call to AC_PROG_CPP
has already occurred
when AC_PROG_CC
is called.
Make M4 print a warning message to the standard error output if called-macro-name has already been called. this-macro-name should be the name of the macro that is calling
AC_BEFORE
. The macro called-macro-name must have been defined usingAC_DEFUN
or else contain a call toAC_PROVIDE
to indicate that it has been called.