(autoconf.info)Making configure Scripts


Next: Setup Prev: Introduction Up: Top
Enter node , (file) or (file)node

2 Making 'configure' Scripts
****************************

The configuration scripts that Autoconf produces are by convention
called 'configure'.  When run, 'configure' creates several files,
replacing configuration parameters in them with appropriate values.  The
files that 'configure' creates are:

   * one or more 'Makefile' files, one in each subdirectory of the
     package (Note: Makefile Substitutions);

   * optionally, a C header file, the name of which is configurable,
     containing '#define' directives (Note: Configuration Headers);

   * a shell script called 'config.status' that, when run, will recreate
     the files listed above (*note Invoking config.status::);

   * a shell script called 'config.cache' that saves the results of
     running many of the tests (Note: Cache Files);

   * a file called 'config.log' containing any messages produced by
     compilers, to help debugging if 'configure' makes a mistake.

   To create a 'configure' script with Autoconf, you need to write an
Autoconf input file 'configure.in' and run 'autoconf' on it.  If you
write your own feature tests to supplement those that come with
Autoconf, you might also write files called 'aclocal.m4' and
'acsite.m4'.  If you use a C header file to contain '#define'
directives, you might also write 'acconfig.h', and you will distribute
the Autoconf-generated file 'config.h.in' with the package.

   Here is a diagram showing how the files that can be used in
configuration are produced.  Programs that are executed are suffixed by
'*'.  Optional files are enclosed in square brackets ('[]').  'autoconf'
and 'autoheader' also read the installed Autoconf macro files (by
reading 'autoconf.m4').

Files used in preparing a software package for distribution:
     your source files --> [autoscan*] --> [configure.scan] --> configure.in

     configure.in --.   .------> autoconf* -----> configure
                    +---+
     [aclocal.m4] --+   `---.
     [acsite.m4] ---'       |
                            +--> [autoheader*] -> [config.h.in]
     [acconfig.h] ----.     |
                      +-----'
     [config.h.top] --+
     [config.h.bot] --'

     Makefile.in -------------------------------> Makefile.in

Files used in configuring a software package:
                            .-------------> config.cache
     configure* ------------+-------------> config.log
                            |
     [config.h.in] -.       v            .-> [config.h] -.
                    +--> config.status* -+               +--> make*
     Makefile.in ---'                    `-> Makefile ---'

Writing configure.in
What to put in an Autoconf input file.
Invoking autoscan
Semi-automatic 'configure.in' writing.
Invoking ifnames
Listing the conditionals in source code.
Invoking autoconf
How to create configuration scripts.
Invoking autoreconf
Remaking multiple 'configure' scripts.

automatically generated by info2www version 1.2.2.9