GNU Info

Info Node: (autoconf.info)Introduction

(autoconf.info)Introduction


Next: Making configure Scripts Prev: Top Up: Top
Enter node , (file) or (file)node

Introduction
************

     A physicist, an engineer, and a computer scientist were
     discussing the nature of God.  Surely a Physicist, said the
     physicist, because early in the Creation, God made Light; and you
     know, Maxwell's equations, the dual nature of electro-magnetic
     waves, the relativist consequences... An Engineer!, said the
     engineer, because before making Light, God split the Chaos into
     Land and Water; it takes a hell of an engineer to handle that big
     amount of mud, and orderly separation of solids from
     liquids... The computer scientist shouted: And the Chaos,
     where do you think it was coming from, hmm?
     
     ---Anonymous

   Autoconf is a tool for producing shell scripts that automatically
configure software source code packages to adapt to many kinds of
UNIX-like systems.  The configuration scripts produced by Autoconf are
independent of Autoconf when they are run, so their users do not need to
have Autoconf.

   The configuration scripts produced by Autoconf require no manual user
intervention when run; they do not normally even need an argument
specifying the system type.  Instead, they test for the presence of each
feature that the software package they are for might need individually.
(Before each check, they print a one-line message stating what they are
checking for, so the user doesn't get too bored while waiting for the
script to finish.)  As a result, they deal well with systems that are
hybrids or customized from the more common UNIX variants.  There is no
need to maintain files that list the features supported by each release
of each variant of UNIX.

   For each software package that Autoconf is used with, it creates a
configuration script from a template file that lists the system
features that the package needs or can use.  After the shell code to
recognize and respond to a system feature has been written, Autoconf
allows it to be shared by many software packages that can use (or need)
that feature.  If it later turns out that the shell code needs
adjustment for some reason, it needs to be changed in only one place;
all of the configuration scripts can be regenerated automatically to
take advantage of the updated code.

   The Metaconfig package is similar in purpose to Autoconf, but the
scripts it produces require manual user intervention, which is quite
inconvenient when configuring large source trees.  Unlike Metaconfig
scripts, Autoconf scripts can support cross-compiling, if some care is
taken in writing them.

   There are several jobs related to making portable software packages
that Autoconf currently does not do.  Among these are automatically
creating `Makefile' files with all of the standard targets, and
supplying replacements for standard library functions and header files
on systems that lack them.  Work is in progress to add those features in
the future.

   Autoconf imposes some restrictions on the names of macros used with
`#ifdef' in C programs (Note: Preprocessor Symbol Index).

   Autoconf requires GNU `m4' in order to generate the scripts.  It
uses features that some UNIX versions of `m4' do not have.  It also
overflows internal limits of some versions of `m4', including GNU `m4'
1.0.  You must use version 1.1 or later of GNU `m4'.  Using version 1.3
or later will be much faster than 1.1 or 1.2.

   Note: Upgrading, for information about upgrading from version 1.
Note: History, for the story of Autoconf's development.  Note:
Questions, for answers to some common questions about Autoconf.

   Mail suggestions and bug reports for Autoconf to
`bug-gnu-utils@prep.ai.mit.edu'.  Please include the Autoconf version
number, which you can get by running `autoconf --version'.


automatically generated by info2www version 1.2.2.9