Next: , Previous: Requirements, Up: configure


6.2 Other things Automake recognizes

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:

AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
Automake will ensure that config.guess and config.sub exist. Also, the Makefile variables build_triplet, host_triplet and target_triplet are introduced. See Getting the Canonical System Type.
AC_CONFIG_AUX_DIR
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: config.guess, config.sub, depcomp, elisp-comp, compile, install-sh, ltmain.sh, mdate-sh, missing, mkinstalldirs, py-compile, texinfo.tex, and ylwrap.) Not all scripts are always searched for; some scripts will only be sought if the generated Makefile.in requires them.

If 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.

Required files from AC_CONFIG_AUX_DIR are automatically distributed, even if there is no Makefile.am in this directory.

AC_CONFIG_LIBOBJ_DIR
Automake will require the sources file declared with AC_LIBSOURCE (see below) in the directory specified by this macro.
AC_CONFIG_HEADERS
Automake will generate rules to rebuild these headers. Older versions of Automake required the use of AM_CONFIG_HEADER (see Macros); this is no longer the case today.

As for AC_CONFIG_FILES (see Requirements), parts of the specification using shell variables will be ignored as far as cleaning, distributing, and rebuilding is concerned.

AC_CONFIG_LINKS
Automake will generate rules to remove configure generated links on ‘make distclean’ and to distribute named source files as part of ‘make dist’.

As for AC_CONFIG_FILES (see Requirements), parts of the specification using shell variables will be ignored as far as cleaning and distributing is concerned. (There is no rebuild rules for links.)

AC_LIBOBJ
AC_LIBSOURCE
AC_LIBSOURCES
Automake will automatically distribute any file listed in AC_LIBSOURCE or AC_LIBSOURCES.

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_FUNC_ALLOCA, AC_FUNC_MEMCMP, 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. See AC_LIBOBJ vs. LIBOBJS.

AC_PROG_RANLIB
This is required if any libraries are built in the package. See Particular Program Checks.
AC_PROG_CXX
This is required if any C++ source is included. See Particular Program Checks.
AC_PROG_OBJC
This is required if any Objective C source is included. See Particular Program Checks.
AC_PROG_F77
This is required if any Fortran 77 source is included. This macro is distributed with Autoconf version 2.13 and later. See Particular Program Checks.
AC_F77_LIBRARY_LDFLAGS
This is required for programs and shared libraries that are a mixture of languages that include Fortran 77 (see Mixing Fortran 77 With C and C++). See Autoconf macros supplied with Automake.
AC_PROG_FC
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.
AC_PROG_LIBTOOL
Automake will turn on processing for libtool (see Introduction).
AC_PROG_YACC
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).
AC_PROG_LEX
If a Lex source file is seen, then this macro must be used. See Particular Program Checks.
AC_REQUIRE_AUX_FILE
automake will ensure each file for which this macro is called 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 requires some supporting files in the aux directory specified with AC_CONFIG_AUX_DIR above. See Finding configure Input.
AC_SUBST
The first argument is automatically defined as a variable in each generated Makefile.in. See Setting Output Variables.

If the Autoconf manual says that a macro calls AC_SUBST for var, or defines the output variable var then var will be defined in each Makefile.in generated by Automake. E.g. AC_PATH_XTRA defines X_CFLAGS and X_LIBS, so you can use these variables in any Makefile.am if AC_PATH_XTRA is called.

AM_C_PROTOTYPES
This is required when using the obsolete de-ANSI-fication feature; see ANSI.
AM_GNU_GETTEXT
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.
AM_GNU_GETTEXT_INTL_SUBDIR
This macro specifies that the intl/ subdirectory is to be built, even if the AM_GNU_GETTEXT macro was invoked with a first argument of ‘external’.
AM_MAINTAINER_MODE
This macro adds a --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. This macro defines the MAINTAINER_MODE conditional, which you can use in your own Makefile.am. See maintainer-mode.
m4_include
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 Invoking aclocal).