(autoconf.info)autoconf Invocation

Next: autoreconf Invocation Prev: ifnames Invocation Up: Making configure Scripts

3.4 Using `autoconf' to Create `configure'

To create `configure' from `configure.ac', run the `autoconf' program
with no arguments.  `autoconf' processes `configure.ac' with the M4
macro processor, using the Autoconf macros.  If you give `autoconf' an
argument, it reads that file instead of `configure.ac' and writes the
configuration script to the standard output instead of to `configure'.
If you give `autoconf' the argument `-', it reads from the standard
input instead of `configure.ac' and writes the configuration script to
the standard output.

   The Autoconf macros are defined in several files.  Some of the files
are distributed with Autoconf; `autoconf' reads them first.  Then it
looks for the optional file `acsite.m4' in the directory that contains
the distributed Autoconf macro files, and for the optional file
`aclocal.m4' in the current directory.  Those files can contain your
site's or the package's own Autoconf macro definitions (Note: Writing
Autoconf Macros, for more information).  If a macro is defined in
more than one of the files that `autoconf' reads, the last definition
it reads overrides the earlier ones.

   `autoconf' accepts the following options:

     Print a summary of the command line options and exit.

     Print the version number of Autoconf and exit.

     Report processing steps.

     Don't remove the temporary files.

     Remake `configure' even if newer than its input files.

`-I DIR'
     Append DIR to the include path.  Multiple invocations accumulate.


`-B DIR'
     Prepend DIR to the include path.  Multiple invocations accumulate.

`-o FILE'
     Save output (script or trace) to FILE.  The file `-' stands for
     the standard output.

     Report the warnings related to CATEGORY (which can actually be a
     comma separated list).  Note: Reporting Messages, macro
     `AC_DIAGNOSE', for a comprehensive list of categories.  Special
     values include:

          report all the warnings

          report none

          treats warnings as errors

          disable warnings falling into CATEGORY

     Warnings about `syntax' are enabled by default, and the environment
     variable `WARNINGS', a comma separated list of categories, is
     honored as well.  Passing `-W CATEGORY' actually behaves as if you
     had passed `--warnings syntax,$WARNINGS,CATEGORY'.  If you want to
     disable the defaults and `WARNINGS', but (for example) enable the
     warnings about obsolete constructs, you would use `-W

     Because `autoconf' uses `autom4te' behind the scenes, it displays
     a back trace for errors, but not for warnings; if you want them,
     just pass `-W error'.  Note: autom4te Invocation, for some

     Do not create the `configure' script, but list the calls to MACRO
     according to the FORMAT.  Multiple `--trace' arguments can be used
     to list several macros.  Multiple `--trace' arguments for a single
     macro are not cumulative; instead, you should just make FORMAT as
     long as needed.

     The FORMAT is a regular string, with newlines if desired, and
     several special escape codes.  It defaults to `$f:$l:$n:$%'; see
     Note: autom4te Invocation, for details on the FORMAT.

     By default, `--trace' does not trace the initialization of the
     Autoconf macros (typically the `AC_DEFUN' definitions).  This
     results in a noticeable speedup, but can be disabled by this

   It is often necessary to check the content of a `configure.ac' file,
but parsing it yourself is extremely fragile and error-prone.  It is
suggested that you rely upon `--trace' to scan `configure.ac'.  For
instance, to find the list of variables that are substituted, use:

     $ autoconf -t AC_SUBST
     More traces deleted

The example below highlights the difference between `$@', `$*', and

     $ cat configure.ac
     AC_DEFINE(This, is, [an
     $ autoconf -t 'AC_DEFINE:@: $@
     *: $*
     %: $%'
     @: [This],[is],[an
     *: This,is,an
     %: This:is:an [example]

The FORMAT gives you a lot of freedom:

     $ autoconf -t 'AC_SUBST:$$ac_subst{"$1"} = "$f:$l";'
     $ac_subst{"ECHO_C"} = "configure.ac:2";
     $ac_subst{"ECHO_N"} = "configure.ac:2";
     $ac_subst{"ECHO_T"} = "configure.ac:2";
     More traces deleted

A long SEPARATOR can be used to improve the readability of complex
structures, and to ease their parsing (for instance when no single
character is suitable as a separator):

     $ autoconf -t 'AM_MISSING_PROG:${|:::::|}*'
     More traces deleted

automatically generated by info2www