Go to the first, previous, next, last section, table of contents.
Autoconf macros are defined using the AC_DEFUN
macro, which is
similar to the M4 builtin define
macro. In addition to defining
a macro, AC_DEFUN
adds to it some code that is used to constrain
the order in which macros are called (see section Prerequisite Macros).
An Autoconf macro definition looks like this:
AC_DEFUN(macro-name, macro-body)
You can refer to any arguments passed to the macro as `$1', `$2', etc. See section `How to define new macros' in GNU m4, for more complete information on writing M4 macros.
Be sure to properly quote both the macro-body and the macro-name to avoid any problems if the macro happens to have been previously defined.
Each macro should have a header comment that gives its prototype, and a brief description. When arguments have default values, display them in the prototype. For example:
# AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1]) # -------------------------------------- define([AC_MSG_ERROR], [{ _AC_ECHO([configure: error: $1], 2); exit m4_default([$2], 1); }])
Comments about the macro should be left in the header comment. Most other comments will make their way into `configure', so just keep using `#' to introduce comments.
If you have some very special comments about pure M4 code, comments
that make no sense in `configure' and in the header comment, then
use the builtin dnl
: it causes m4
to discard the text
through the next newline.
Keep in mind that dnl
is rarely needed to introduce comments;
dnl
is more useful to get rid of the newlines following macros
that produce no output, such as AC_REQUIRE
.
Go to the first, previous, next, last section, table of contents.