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.

Autoconf together with Automake and Libtool forms the GNU build system.

Autoconf makes use of GNU m4 to transform an user-written 'configure.ac' file to a portable shell script called 'configure'. The 'configure' script runs non-interactively, and generates customized headers and makefiles derived from pre-written templates.

Approach

Autoconf is similar to the Metaconfig package used by Perl. The IMake system used by the X Window System is closely related, but has a different philosophy.

The autoconf approach to portability is to test for features, not for versions. For example, the native C compiler on SunOS 4 did not support ISO C. However, it is possible for the user/administrator to have installed an ISO C compliant compiler. A pure version-based approach would not make use of the ISO C compiler, but a feature-testing approach would be able to discover that the specified compiler supported ISO C. The rationale of this approach is that

  • the configure script can get reasonable results on newer/unknown systems
  • it allows administrators to customize their machines and have the configure script take advantage of the customizations
  • there's no need to keep track of minute details of versions, patch numbers, etc., to figure out whether a particular feature is supported or not

Autoconf makes use of GNU m4 to transform an user-written 'configure.ac' file to a "portable" shell script.

External links