Next: The Macros, Previous: Downloading the GNU Autoconf Archive, Up: GNU Autoconf Archive
Each macro in the Archive has an all-upper-case name with the prefix
AX_
. The macro is stored in a file with the same name, in lower case,
and with the suffix .m4
.
Unless absolutely necessary, the file contents should be in ASCII.
For example, use apostrophe (U+27) for quoting identifiers
instead of Unicode quotation mark characters U+2018, U+2019.
The file should begin with a header comment containing three named sections: synopsis, description, and license.
The synopsis gives a summary of the macro usage and arguments. In this
section, square brackets ([]
) are used to indicate optional parameters, and
may be nested.
The description contains a prose description of the macro. It should describe the function of the macro, and the meaning of any arguments given in the synopsis. The description should also identify:
--with
or --enable
options, and their default values
AC_ARG_VAR
)
AC_SUBST
)
AC_DEFINE
)
Macros should be defined with AC_DEFUN
, using correct quoting. Comments
should be used liberally within the macro, with dnl
used for comments at
the m4sh level and #
used for comments at the shell level.
If a macro is renamed, the AU_ALIAS
macro should be used to guide users
of the old name to the new name:
AU_ALIAS([OLD_NAME], [AX_NEW_NAME])
To submit updates to the Autoconf Archive, please create an issue in
the
patch
tracker and attach a (preferably
git-format-patch(1)
-formatted) patch file. Users of
github.com
may prefer to create a pull request for the
Autoconf Archive
Mirror at Github. Please make sure your submission contains the
following items:
Macros can be submitted under any GPL-compatible free software license. The Free Software Foundation, however, recommends use of the all-permissive license for Autoconf macros.
Autoconf macros are used in a surprising variety of ways, and a well-written macro should be flexible enough to suit all of these uses.
See the Autotools Mythbuster for suggestions on how to write well-encapsulated, portable macros.
Next: The Macros, Previous: Downloading the GNU Autoconf Archive, Up: GNU Autoconf Archive