Configure script

From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search
File:Autoconf.svg
Flow diagram including configure, autoconf and automake, three tools in the GNU build system

Configure scripts are an automated method of modifying source code before compilation in order to produce code tailored to the system on which a binary executable is to be compiled and run. Configure scripts are typically run immediately before compilation on the machine on which the software is to be used.

Configure scripts are generated by the Autotools suite of build management tools. 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 then use the gathered information to process and fill out templates, customarily ending in .in. After successful completion, it is common for configure scripts to print a report to the developer invoking them.

Because of the platform independence and broad developer experience with the configure script interface, many popular pieces of free software and proprietary software use this system during their system detection and makefile generation phase. After configure scripts have been created, building software that makes use of them is as simple as

./configure && make && make install

The reason you type "./configure" (dot slash configure) instead of just "configure" is to indicate explicitly that the script is in the current directory ("."). By default, Unix-type operating systems do not search the current directory for executables (this is a security feature), so you must get around this by giving the full path explicitly. If you don't, you will get an error like "bash: configure: command not found".[1]

Running ./configure --help should give a list of command line arguments accepted by the script, which are usually for enabling or disabling optional features of the software. Typing just ./configure gives the default configuration.[2]

Dependency checking

In new development, library dependency checking has been done in great part using pkg-config via the m4 macro, PKG_CHECK_MODULES. Before pkg-config's gained popularity, separate m4 macros were created to locate files known to be included in the distribution of libraries depended upon.

See also

References

pl:Configure pt:Configure tr:Configure