Configure script

When installing a package on a Unix or Unix-like environment, a configure script is a shell script that generates build configuration files for a codebase to facilitate cross-platform support. It generates files tailoring for the host system – the environment on which the codebase is built and run.

Even though there are no standards for such a script, the pattern is so ubiquitous that many developers are familiar with and even expect a script named configure that has this functionality. The script can be and originally was hand-coded. Today, multiple tools are available for generating a configure script based on special configuration files. One commonly used tool is Autotools which generates a Bash script.

Obtaining a software package as source code and compiling it locally is a common scenario on Unix and Unix-like environments. Typically, this process involves the following steps:

  1. Generate build configuration files
  2. Build the code
  3. Install the result to an accessible location

A configure script accomplishes the first step by generating a makefile that is configured for the host system. This includes using the libraries of the host as required by the codebase.

Use

After navigating a command-line shell to the directory that contains the source code, the following commands are typically executed:[1]

./configure
make
make install

For the Autotools, the configure script logs status and errors to file config.log, and the command ./configure --help outputs command line help information.

Often, a document with instructions is included with the codebase (usually in a file named INSTALL). It can be helpful if the configure script fails.

Generating

Autotools simplifies some of the challenges of cross-platform software development.[2] These tools query the host system for environment settings, platform architecture, and the existence and location of required build and runtime dependencies. They store the gathered information in configure.ac to be read by configure during the installation phase.

In new development, library dependency checking can be accomplished via pkg-config via the m4 macro, PKG_CHECK_MODULES. Before pkg-config gained popularity, separate m4 macros were created to locate files known to be included in the distribution of libraries depended upon.

History

The first program to come with a configure script was rn by Larry Wall in 1984. The script was written by hand and produced a jocular running commentary when executed. It still survives as part of the build system of the trn program.[3]

Since then, an ecosystem of tools have been developed to automate the creation of configure scripts, of which the most common is Autoconf.

References

  1. ^ "Compiling Linux Software from Source Code". Control-Escape's Linux Help Engine. Retrieved 20 November 2010.
  2. ^ "Autoconf - GNU Project - Free Software Foundation (FSF)". GNU Operating System. Retrieved 20 November 2010.
  3. ^ "Configure script of trn". GitHub. Retrieved 10 December 2020.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.