Autoconf

autoconf is a collection of tools to generate portable configure scripts. It is part of the GNU build system (automake,libtool,etc.). It uses the m4 macro processor to process template files (configure.ac/configure.in) into configure scripts.

The autconf package comes with the following tools:
 * autoconf -- command to generate a configure script from a template file
 * autoscan -- generate a preliminary configure template file
 * autoreconf - update a generated configure script
 * autoheader -- generate a configuration header file (config.h)
 * autoupdate -- update the template file to a new autoconf version

The input templates, usually named configure.ac or configure.in, specify which tests are performed in the resulting configure script. These tests are implemented as m4 macros and autoconf comes with a whole bunch of standard scripts and specialized tests/macros can easily be added. There are already a lot of extra macros around, a big list of the can be found here.

Autoconf also includes a tool to get you started writing your configure.ac file named autoscan. Like the name suggested, it scans the source files of your project and generates a preliminary template file called configure.scan. This file can then manually be checked/extended and renamed to configure.ac.