Every time Automake is run it calls Autoconf to trace configure.ac. This way it can recognize the use of certain macros and tailor the generated Makefile.in appropriately. Currently recognized macros and their effects are:
Automake will ensure that config.guess and config.sub
exist. Also, the Makefile variables
target_triplet are introduced. See
Getting the Canonical System Type in The Autoconf Manual.
Automake will look for various helper scripts, such as install-sh, in the directory named in this macro invocation. (The full list of scripts is: ar-lib, config.guess, config.sub, depcomp, compile, install-sh, ltmain.sh, mdate-sh, missing, mkinstalldirs, py-compile, test-driver, texinfo.tex, ylwrap.) Not all scripts are always searched for; some scripts will only be sought if the generated Makefile.in requires them.
AC_CONFIG_AUX_DIR is used, it must be given before the call
AM_INIT_AUTOMAKE; Automake will warn about this if it is not
so. All other
AC_CONFIG_... macros are conventionally called
AM_INIT_AUTOMAKE, though they may or may not work in
other locations, with or without warnings.
AC_CONFIG_AUX_DIR is not given, the scripts are looked for in
their standard locations. For mdate-sh,
texinfo.tex, and ylwrap, the standard location is the
source directory corresponding to the current Makefile.am. For
the rest, the standard location is the first one of ., ..,
or ../.. (relative to the top source directory) that provides any
one of the helper scripts. See Finding ‘configure’ Input in The Autoconf Manual.
Required files from
AC_CONFIG_AUX_DIR are automatically
distributed, even if there is no Makefile.am in this directory.
Automake will require the sources file declared with
AC_LIBSOURCE (see below) in the directory specified by this
Automake will generate rules to rebuild these headers from the corresponding templates (usually, the template for a foo.h header being foo.h.in).
AC_CONFIG_FILES (see Configuration requirements), parts of the
specification using shell variables will be ignored as far as
cleaning, distributing, and rebuilding is concerned.
Older versions of Automake required the use of
AM_CONFIG_HEADER; this is no longer the case, and that macro
has indeed been removed.
Automake will generate rules to remove configure generated links on ‘make distclean’ and to distribute named source files as part of ‘make dist’.
AC_CONFIG_FILES (see Configuration requirements), parts of the
specification using shell variables will be ignored as far as cleaning
and distributing is concerned. (There are no rebuild rules for links.)
Automake will automatically distribute any file listed in
Note that the
AC_LIBOBJ macro calls
AC_LIBSOURCE. So if
an Autoconf macro is documented to call ‘AC_LIBOBJ([file])’, then
file.c will be distributed automatically by Automake. This
encompasses many macros like
AC_REPLACE_FUNCS, and others.
By the way, direct assignments to
LIBOBJS are no longer
supported. You should always use
AC_LIBOBJ for this purpose.
LIBOBJS in The Autoconf Manual.
This is required if any libraries are built in the package. See Particular Program Checks in The Autoconf Manual.
This is required if any C++ source is included. See Particular Program Checks in The Autoconf Manual.
This is required if any Objective C source is included. See Particular Program Checks in The Autoconf Manual.
This is required if any Objective C++ source is included. See Particular Program Checks in The Autoconf Manual.
This is required if any Fortran 77 source is included. See Particular Program Checks in The Autoconf Manual.
Automake will add the flags computed by
AC_FC_SRCEXT to compilation
of files with the respective source extension (see Fortran Compiler Characteristics in The Autoconf Manual).
This is required if any Fortran 90/95 source is included. This macro is distributed with Autoconf version 2.58 and later. See Particular Program Checks in The Autoconf Manual.
Automake will turn on processing for
libtool (see Introduction in The Libtool Manual).
If a Yacc source file is seen, then you must either use this macro or
define the variable
YACC in configure.ac. The former is
preferred (see Particular Program Checks in The Autoconf Manual).
If a Lex source file is seen, then this macro must be used. See Particular Program Checks in The Autoconf Manual.
automake will ensure that file exists in the
aux directory, and will complain otherwise. It
will also automatically distribute the file. This macro should be
used by third-party Autoconf macros that require some supporting
files in the aux directory specified with
above. See Finding
configure Input in The Autoconf Manual.
The first argument is automatically defined as a variable in each
generated Makefile.in, unless
AM_SUBST_NOTMAKE is also
used for this variable. See Setting
Output Variables in The Autoconf Manual.
For every substituted variable var,
automake will add
var = value to each Makefile.in file.
Many Autoconf macros invoke
AC_SUBST to set output variables
this way, e.g.,
X_LIBS. Thus, you can access these variables as
$(X_LIBS) in any Makefile.am
AC_PATH_XTRA is called.
This introduces an Automake conditional (see Conditionals).
This macro allows
automake to detect subsequent access within
configure.ac to a conditional previously introduced with
AM_CONDITIONAL, thus enabling conditional
(see Usage of Conditionals).
This macro is required for packages that use GNU gettext (see Gettext). It is distributed with gettext. If Automake sees this macro it ensures that the package meets some of gettext’s requirements.
This macro specifies that the intl/ subdirectory is to be built,
even if the
AM_GNU_GETTEXT macro was invoked with a first argument
This macro adds an --enable-maintainer-mode option to
configure. If this is used,
automake will cause
“maintainer-only” rules to be turned off by default in the
generated Makefile.ins, unless default-mode is
‘enable’. This macro defines the
conditional, which you can use in your own Makefile.am.
Prevent Automake from defining a variable var, even if it is
config.status. Normally, Automake defines a
make variable for each
i.e., for each
AC_SUBST([var]). This macro prevents that
definition from Automake. If
AC_SUBST has not been called
for this variable, then
AM_SUBST_NOTMAKE has no effects.
Preventing variable definitions may be useful for substitution of
multi-line values, where
var = @value@ might yield
Files included by configure.ac using this macro will be detected by Automake and automatically distributed. They will also appear as dependencies in Makefile rules.
m4_include is seldom used by configure.ac authors, but
can appear in aclocal.m4 when
aclocal detects that
some required macros come from files local to your package (as opposed to
macros installed in a system-wide directory; see Auto-generating aclocal.m4).