A configure script is an executable script designed to aid in developing a program to be run on a wide number of different computers. It matches the libraries on the user's computer, with those required by the program before compiling it from its source code.
As a common practice, all configure scripts are named "configure". Usually, configure scripts are written for the Bourne shell, but they may be written for execution in any desired shell.
Obtaining software directly from the source code is a common procedure on Unix computers, and generally involves the following three steps: configuring the makefile, compiling the code, and finally installing the executable to standard locations. A configure script accomplishes the first of these steps. Using configure scripts is an automated method of generating makefiles before compilation to tailor the software to the system on which the executable is to be compiled and run. The final executable software is most commonly obtained by executing the following commands in a shell that is currently pointing to the directory containing the source code:
One must type ./configure
rather than simply configure
to indicate to the shell that the script is in the current directory. By default, for security reasons, Unix operating systems do not search the current directory for executables so one must give the full path explicitly to avoid an error.
Upon its completion, configure
prints a report to config.log
. Running ./configure --help
gives a list of command line arguments, for enabling or disabling additional features such as:
The first line includes the mpfr
and gmp
libraries. The second line tells make to install the final version in /home/myname/apps
. The INSTALL
file contains instructions should the prescribed steps fail.
Software developers simplify the challenge of cross-platform software development by using GNU's Autotools. These scripts query the system on which they run for environment settings, platform architecture, and the existence and location of required build and runtime dependencies. They store the gathered information in configure.ac
or the now deprecated configure.in
to be read by configure
during the installation phase.