home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / gnu / libg++-2.6.2.lha / libg++-2.6.2 / etc / configure.info-1 (.txt) < prev    next >
GNU Info File  |  1994-12-15  |  50KB  |  906 lines

  1. This is Info file configure.info, produced by Makeinfo-1.55 from the
  2. input file ./configure.texi.
  3. START-INFO-DIR-ENTRY
  4. * configure: (configure).        Cygnus configure.
  5. END-INFO-DIR-ENTRY
  6.    This document describes the Cygnus Support version of `configure'.
  7.    Copyright (C) 1991, 1992, 1993 Cygnus Support Permission is granted
  8. to make and distribute verbatim copies of this manual provided the
  9. copyright notice and this permission notice are preserved on all copies.
  10.    Permission is granted to copy and distribute modified versions of
  11. this manual under the conditions for verbatim copying, provided that
  12. the entire resulting derived work is distributed under the terms of a
  13. permission notice identical to this one.
  14.    Permission is granted to copy and distribute translations of this
  15. manual into another language, under the above conditions for modified
  16. versions, except that this permission notice may be stated in a
  17. translation approved by Cygnus Support.
  18. File: configure.info,  Node: Top,  Next: What configure does,  Prev: (DIR),  Up: (DIR)
  19. Cygnus configure
  20. ****************
  21.    This file documents the configuration system used and distributed by
  22. Cygnus Support.
  23. * Menu:
  24. * What configure does::    What configure does
  25. * Invoking configure::     Invoking configure--basic usage
  26. * Using configure::        More than you ever wanted to know
  27. * Porting::                How to use configure with new programs
  28. * Variables Index::
  29. * Concept Index::
  30. File: configure.info,  Node: What configure does,  Next: Invoking configure,  Prev: Top,  Up: Top
  31. What `configure' does
  32. *********************
  33.    This manual documents Cygnus `configure', a program which helps to
  34. automate much of the setup activity associated with building large
  35. suites of programs, such the Cygnus Support Developer's Kit.  This
  36. manual is therefore geared toward readers who are likely to face the
  37. problem of configuring software in source form before compiling and
  38. installing it.  We assume you are an experienced programmer or system
  39. administrator.  For further background on this topic, see *Note
  40. Apologia Configure: (cfg-paper)Some Basic Terms, by K. Richard Pixley.
  41.    When `configure' runs, it does the following things:
  42. ** creates build directories*
  43.      When you run `configure' with the `--srcdir' option, it uses the
  44.      current directory as the "build directory", creating under it a
  45.      directory tree that parallels the directory structure of the
  46.      source directory.  If you don't specify a `srcdir', `configure'
  47.      first assumes that the source code you wish to configure is in
  48.      your current directory; if it finds no `configure.in' input file
  49.      there, it searches in the directory `configure' itself lies in.
  50.      (For details, see *Note Build directories: Build directories.)
  51. ** generates `Makefile'*
  52.      A `Makefile' template from the source directory, usually called
  53.      `Makefile.in', is copied to an output file in the build directory
  54.      which is most often named `Makefile'.  `configure' places
  55.      definitions for a number of standard `Makefile' macros at the
  56.      beginning of the output file.  If `--prefix=DIR' or
  57.      `--exec_prefix=DIR' are specified on the `configure' command line,
  58.      corresponding `Makefile' variables are set accordingly.  If host,
  59.      target, or site-specific `Makefile' fragments exist, these are
  60.      inserted into the output file.  (For details, see *Note `Makefile'
  61.      generation: Makefile generation.)
  62. ** generates `.gdbinit'*
  63.      If the source directory contains a `.gdbinit' file and the build
  64.      directory is not the same as the source directory, a `.gdbinit'
  65.      file is created in the build directory.  This `.gdbinit' file
  66.      contains commands which allow the source directory to be read when
  67.      debugging with the GNU debugger, `gdb'.  (*Note Command Files:
  68.      (gdb)Command Files.)
  69. ** makes symbolic links*
  70.      Most build directories require that some symbolic links with
  71.      generic names are built pointing to specific files in the source
  72.      directory.  If the system where `configure' runs cannot support
  73.      symbolic links, hard links are used instead.  (For details, see
  74.      *Note The `configure.in' input file: configure.in.)
  75. ** generates `config.status'*
  76.      `configure' creates a shell script named `config.status' in the
  77.      build directory.  This shell script, when run from the build
  78.      directory (usually from within a `Makefile'), will reconfigure the
  79.      build directory (but not its subdirectories).  This is most often
  80.      used to have a `Makefile' update itself automatically if a new
  81.      source directory is available.
  82. ** calls itself recursively*
  83.      If the source directory has subdirectories that should also be
  84.      configured, `configure' is called for each.
  85. File: configure.info,  Node: Invoking configure,  Next: Using configure,  Prev: What configure does,  Up: Top
  86. Invoking `configure'
  87. ********************
  88.    Cygnus `configure' is a shell script which resides in a source tree.
  89. The usual way to invoke `configure' is from the shell, as follows:
  90.      eg$ ./configure HOSTTYPE
  91. This prepares the source in the current directory (`.') to be compiled
  92. for a HOSTTYPE environment.  It assumes that you wish to build programs
  93. and files in the default "build directory" (also the current directory,
  94. `.').  If you do not specify a value for HOSTTYPE, Cygnus `configure'
  95. will attempt to discover this information by itself (*note Determining
  96. system information: config.guess.).  For information on HOSTTYPE
  97. environments, *Note Host: Host.
  98.    All GNU software is packaged with one or more `configure' script(s)
  99. (*note How Configuration Should Work: (standards)Configuration.).  By
  100. using `configure' you prepare the source for your specific environment
  101. by selecting and using `Makefile' fragments and fragments of shell
  102. scripts, which are prepared in advance and stored with the source.
  103.    `configure''s command-line options also allow you to specify other
  104. aspects of the source configuration:
  105.        configure HOSTTYPE  [--target=TARGET] [--srcdir=DIR] [--rm]
  106.                  [--site=SITE] [--prefix=DIR] [--exec-prefix=DIR]
  107.                  [--program-prefix=STRING] [--tmpdir=DIR]
  108.                  [--with-PACKAGE[=YES/NO]] [--without-PACKAGE]
  109.                  [--enable-FEATURE[=YES/NO]] [--disable-FEATURE]
  110.                  [--norecursion] [--nfp] [-s] [-v] [-V | --version] [--help]
  111. `--target=TARGET'
  112.      Requests that the sources be configured to target the TARGET
  113.      machine.  If no target is specified explicitly, the target is
  114.      assumed to be the same as the host (i.e., a "native"
  115.      configuration).  *Note Host: Host, and *Note Target: Target, for
  116.      discussions of each.
  117. `--srcdir=DIR'
  118.      Direct each generated `Makefile' to use the sources located in
  119.      directory DIR.  Use this option whenever you wish the object code
  120.      to reside in a different place from the source code.  The "build
  121.      directory" is always assumed to be the directory you call
  122.      `configure' from.  See *Note Build directories: Build directories,
  123.      for an example.  If the source directory is not specified,
  124.      `configure' assumes that the source is in your current directory.
  125.      If `configure' finds no `configure.in' there, it searches in the
  126.      same directory that the `configure' script itself lies in.
  127.      Pathnames specified (Values for DIR) can be either absolute
  128.      relative to the *build* directory.
  129. `--rm'
  130.      *Remove* the configuration specified by HOSTTYPE and the other
  131.      command-line options, rather than create it.
  132.           *Note:* We recommend that you use `make distclean' rather than
  133.           use this option; see *Note Invoking `make': (make)Invoking
  134.           make, for details on `make distclean'.
  135. `--site=SITE'
  136.      Generate the `Makefile' using site-specific `Makefile' fragments
  137.      for SITE.  *Note Adding information about local conventions:
  138.      Makefile fragments.
  139. `--prefix=DIR'
  140.      Configure the source to install programs and files under directory
  141.      DIR.
  142.      This option sets the variable `prefix'.  Each generated `Makefile'
  143.      will have its `prefix' variables set to this value.  (*Note What
  144.      `configure' really does: What configur