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_DEFUNor else contain a call toAC_PROVIDEto indicate that it has been called.