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-2 (.txt) < prev    next >
GNU Info File  |  1994-12-15  |  28KB  |  481 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: Makefile fragments,  Next: Makefile extensions,  Prev: Target,  Up: Using configure
  19. Adding information about local conventions
  20. ==========================================
  21.    If you find that a tool does not get configured to your liking, or if
  22. `configure''s conventions differ from your local conventions, you should
  23. probably consider "site-specific `Makefile' fragments".  See also *Note
  24. Adding site info: Sites.
  25.    These are probably not the right choice for options that can be set
  26. from the `configure' command line or for differences that are host or
  27. target dependent.
  28.    Cygnus `configure' uses three types of `Makefile' fragments.  In a
  29. generated `Makefile' they appear in the order: "target fragment", "host
  30. fragment", and "site fragment".  This allows host fragments to override
  31. target fragments, and site fragments to override both.
  32.    Host-specific `Makefile' fragments conventionally reside in the
  33. `./config/' subdirectory with names of the form `mh-HOSTTYPE'.  They
  34. are used for hosts that require odd options to the standard compiler and
  35. for compile time options based on the host configuration.
  36.    Target-specific `Makefile' fragments conventionally reside in the
  37. `./config/' subdirectory with names of the form `mt-TARGET'.  They are
  38. used for target dependent compile time options.
  39.    Site specific `Makefile' fragments conventionally reside in the
  40. `./config/' subdirectory with names of the form `ms-SITE'.  They are
  41. used to override host- and target-independent compile time options.
  42. Note that you can also override these options on the `make' invocation
  43. line.
  44. File: configure.info,  Node: Makefile extensions,  Prev: Makefile fragments,  Up: Using configure
  45. Extensions to the GNU coding standards
  46. ======================================
  47.    The following additions to the GNU coding standards are required for
  48. Cygnus `configure' to work properly.
  49.    * The `Makefile' must contain exactly one line starting with `####'.
  50.      This line should follow any default macro definitions but precede
  51.      any rules.  Host, target, and site-specific `Makefile' fragments
  52.      will be inserted immediately after this line.  If the line is
  53.      missing, the fragments will not be inserted.
  54.    * Cygnus adds the following targets to each `Makefile'.  Their
  55.      existence is not required for Cygnus `configure', but they are
  56.      documented here for completeness.
  57.     `info'
  58.           Build all info files from texinfo source.
  59.     `install-info'
  60.           Install all info files.
  61.     `clean-info'
  62.           Remove all info files and any intermediate files that can be
  63.           generated from texinfo source.
  64.     `Makefile'
  65.           Calls `./config.status' to rebuild the `Makefile' in this
  66.           directory.
  67.    * The following `Makefile' targets have revised semantics:
  68.     `install'
  69.           Should *not* depend on the target `all'.  If the program is
  70.           not already built, `make install' should fail.  This allows
  71.           you to install programs even when `make' would otherwise
  72.           determine them to be out of date.  This can happen, for
  73.           example, when the result of a `make all' is transported via
  74.           tape to another machine for installation.
  75.     `clean'
  76.           Should remove any file that can be regenerated by the
  77.           `Makefile', excepting only the `Makefile' itself, and any
  78.           links created by `configure'.  That is, `make all clean'
  79.           should return all directories to their original condition.
  80.           If this is not done, then the command sequence
  81.                configure HOST1 ; make all install clean ;
  82.                configure HOST2 ; make all install
  83.           will fail because of intermediate files intended for HOST1.
  84.    * Cygnus adds the following macros to all `Makefile.in' files, but
  85.      you are not required to use them to run Cygnus `configure'.
  86.     `docdir'
  87.           The directory in which to install any documentation that is
  88.           not either a `man' page or an `info' file.  For `man' pages,
  89.           see `mandir'; for `info', see `infodir'.
  90.     `includedir'
  91.           The directory in which to install any header files that
  92.           should be made available to users.  This is distinct from the
  93.           `gcc' include directory, which is intended for `gcc' only.
  94.           Files in `includedir' may be used by `cc' as well.
  95.    * The following macros have revised semantics.  Most of them describe
  96.      installation directories; see also *Note Full description of all
  97.      installation subdirectories: Install details.
  98.     `datadir'
  99.           is used for host independent data files.
  100.     `mandir'
  101.           The default path for `mandir' depends on `prefix'.
  102.     `infodir'
  103.           The default path for `infodir' depends on `prefix'.
  104.     `BISON'
  105.           is assumed to have a `yacc' calling convention.  To use GNU
  106.           `bison', use `BISON=bison -y'.
  107.    * Each Cygnus `Makefile' also conforms to one additional restriction:
  108.      When libraries are installed, the line containing the call to
  109.      `INSTALL_DATA' should always be followed by a line containing a
  110.      call to `RANLIB' on the installed library.  This is to accommodate
  111.      systems that use `ranlib'.  Systems that do not use `ranlib' can
  112.      set `RANLIB' to "`echo'" in a host specific `Makefile' fragment.
  113. File: configure.info,  Node: Porting,  Next: Variables Index,  Prev: Using configure,  Up: Top
  114. Porting with `configure'
  115. ************************
  116.    This section explains how to add programs, host and target
  117. configuration names, and site-specific information to Cygnus
  118. `configure'.
  119. * Menu:
  120. * Programs::               Adding configure to new programs
  121. * Hosts and targets::      Adding hosts and targets
  122. * Sites::                  Adding site info
  123. File: configure.info,  Node: Programs,  Next: Hosts and targets,  Up: Porting
  124. Adding `configure' to new programs
  125. ==================================
  126.    If you are writing a new program, you probably shouldn't worry about
  127. porting or configuration issues until it is running reasonably on some
  128. host.  Then refer back to this section.
  129.    If your program currently has a `configure' script that meets the GNU
  130. standards (*note How Configuration Should Work:
  131. (standards)Configuration., please do not add Cygnus `configure'.  It
  132. should be possible to add this program without change to a Cygnus
  133. `configure' style source tree.
  134.    If the program is not target dependent, please consider using
  135. `autoconf' instead of Cygnus `configure'.  `autoconf' is available from
  136. the Free Software Foundation; it is a program which generates an
  137. executable shell script called `configure' by automatically finding
  138. information on the system to be configured on and embedding this
  139. information in the shell script.  `configure' scripts generated by
  140. `autoconf' require no arguments, and accept the same options as Cygnus
  141. `configure'.  For detailed instructions on using `autoconf', see *Note
  142. How to organize and produce Autoconf scripts: (autoconf)Making
  143. configure Scripts.
  144.    To add Cygnus `configure' to an existing program, do the following:
  145. *Make sure the `Makefile' conforms to the GNU standard
  146.      The coding standard for writing a GNU `Makefile' is described in
  147.      *Note Makefile Conventions: (stan