Go to the first, previous, next, last section, table of contents.

Edited January, 1993, by Jeffrey Osier, Cygnus Support.

Copyright (C) 1991, 1992, 1993 Cygnus Support

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by Cygnus Support.

# What `configure` does

This manual documents Cygnus `configure`, a program which helps to automate much of the setup activity associated with building large suites of programs, such the Cygnus Support Developer's Kit. This manual is therefore geared toward readers who are likely to face the problem of configuring software in source form before compiling and installing it. We assume you are an experienced programmer or system administrator. For further background on this topic, see On Configuring Development Tools by K. Richard Pixley.

When `configure` runs, it does the following things:

* creates build directories
  When you run `configure` with the ``--srcdir'` option, it uses the current directory as the build directory, creating under it a directory tree that parallels the directory structure of the source directory. If you don't specify a ``srcdir'`, `configure` first assumes that the source code you wish to configure is in your current directory; if it finds no ``configure.in'` input file there, it searches in the directory `configure` itself lies in. (For details, see section Build directories.)
* generates ``Makefile'`
  A ``Makefile'` template from the source directory, usually called ``Makefile.in'`, is copied to an output file in the build directory which is most often named ``Makefile'`. `configure` places definitions for a number of standard ``Makefile'` macros at the beginning of the output file. If ``--prefix=dir'` or ``--exec_prefix=dir'` are specified on the `configure` command line, corresponding ``Makefile'` variables are set accordingly. If host, target, or site-specific ``Makefile'` fragments exist, these are inserted into the output file. (For details, see section `Makefile` generation.)
* generates ``.gdbinit'`
  If the source directory contains a ``.gdbinit'` file and the build directory is not the same as the source directory, a ``.gdbinit'` file is created in the build directory. This ``.gdbinit'` file contains commands which allow the source directory to be read when debugging with the GNU debugger, `gdb`. (See section `Command Files' in Debugging With GDB.)
* makes symbolic links
  Most build directories require that some symbolic links with generic names are built pointing to specific files in the source directory. If the system where `configure` runs cannot support symbolic links, hard links are used instead. (For details, see section The `configure.in` input file.)
* generates ``config.status'`
  `configure` creates a shell script named ``config.status'` in the build directory. This shell script, when run from the build directory (usually from within a ``Makefile'`), will reconfigure the build directory (but not its subdirectories). This is most often used to have a ``Makefile'` update itself automatically if a new source directory is available.
* calls itself recursively
  If the source directory has subdirectories that should also be configured, `configure` is called for each.

Go to the first, previous, next, last section, table of contents.