Autoconf is a build tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of Posix-like systems.
For each software package that Autoconf is used with, it creates the configure configuration script from a template file that lists the system features that the package needs or can use.
The primary goal of Autoconf is making the user's life easier; making the maintainer's life easier is only a secondary goal.
The configuration scripts that Autoconf produces are by convention called configure.
The configure shell script attempts to guess correct values for various system-dependent variables used during compilation and then create:
- a makefile in each directory of the package.
- one or more .h files containing system-dependent definitions.
- a shell script config.status that you can run in the future to recreate the current configuration,
- a file config.log containing compiler output (useful mainly for debugging configure).
./configure --help # Example: configure initial values for configuration parameters by setting variables # Running configure might take a while. While running, it prints some messages telling which features it is checking for. ./configure CC=c99 CFLAGS=-g LIBS=-lposix
The config.log file gives the flag used for a particular installation
An install that uses the standard GNU autoconf process will be performed as follow:
To configure, build, and install a package:
./configure --help # for details ./configure # Running configure might take a while. While running, it prints some messages telling which features it is checking for. # or ? # cmake -DCMAKE_INSTALL_PREFIX=/usr ../ make # compile the package. make check # Optional to run any self-tests make install # install the programs and any data files and documentation make clean # Optional remove the program binaries and object files from the source code directory make distclean # Optional remove the files that configure created make uninstall # Optional to remove the installed files again
The file config.log contains the configure command line and the compiler output (useful mainly for debugging configure).