home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / info / make.info-7 (.txt) < prev    next >
GNU Info File  |  1994-11-12  |  26KB  |  595 lines

  1. This is Info file make.info, produced by Makeinfo-1.55 from the input
  2. file ./make.texinfo.
  3.    This file documents the GNU Make utility, which determines
  4. automatically which pieces of a large program need to be recompiled,
  5. and issues the commands to recompile them.
  6.    This is Edition 0.47, last updated 1 November 1994, of `The GNU Make
  7. Manual', for `make', Version 3.72 Beta.
  8.    Copyright (C) 1988, '89, '90, '91, '92, '93, '94 Free Software
  9. Foundation, Inc.
  10.    Permission is granted to make and distribute verbatim copies of this
  11. manual provided the copyright notice and this permission notice are
  12. preserved on all copies.
  13.    Permission is granted to copy and distribute modified versions of
  14. this manual under the conditions for verbatim copying, provided that
  15. the entire resulting derived work is distributed under the terms of a
  16. permission notice identical to this one.
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions, except that this permission notice may be stated in a
  20. translation approved by the Free Software Foundation.
  21. File: make.info,  Node: Directory Variables,  Prev: Command Variables,  Up: Makefile Conventions
  22. Variables for Installation Directories
  23. ======================================
  24.    Installation directories should always be named by variables, so it
  25. is easy to install in a nonstandard place.  The standard names for these
  26. variables are as follows.
  27.    These two variables set the root for the installation.  All the other
  28. installation directories should be subdirectories of one of these two,
  29. and nothing should be directly installed into these two directories.
  30. `prefix'
  31.      A prefix used in constructing the default values of the variables
  32.      listed below.  The default value of `prefix' should be `/usr/local'
  33.      (at least for now).
  34. `exec_prefix'
  35.      A prefix used in constructing the default values of some of the
  36.      variables listed below.  The default value of `exec_prefix' should
  37.      be `$(prefix)'.
  38.      Generally, `$(exec_prefix)' is used for directories that contain
  39.      machine-specific files (such as executables and subroutine
  40.      libraries), while `$(prefix)' is used directly for other
  41.      directories.
  42.    Executable programs are installed in one of the following
  43. directories.
  44. `bindir'
  45.      The directory for installing executable programs that users can
  46.      run.  This should normally be `/usr/local/bin', but write it as
  47.      `$(exec_prefix)/bin'.
  48. `sbindir'
  49.      The directory for installing executable programs that can be run
  50.      from the shell, but are only generally useful to system
  51.      administrators.  This should normally be `/usr/local/sbin', but
  52.      write it as `$(exec_prefix)/sbin'.
  53. `libexecdir'
  54.      The directory for installing executable programs to be run by other
  55.      programs rather than by users.  This directory should normally be
  56.      `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
  57.    Data files used by the program during its execution are divided into
  58. categories in two ways.
  59.    * Some files are normally modified by programs; others are never
  60.      normally modified (though users may edit some of these).
  61.    * Some files are architecture-independent and can be shared by all
  62.      machines at a site; some are architecture-dependent and can be
  63.      shared only by machines of the same kind and operating system;
  64.      others may never be shared between two machines.
  65.    This makes for six different possibilities.  However, we want to
  66. discourage the use of architecture-dependent files, aside from of object
  67. files and libraries.  It is much cleaner to make other data files
  68. architecture-independent, and it is generally not hard.
  69.    Therefore, here are the variables makefiles should use to specify
  70. directories:
  71. `datadir'
  72.      The directory for installing read-only architecture independent
  73.      data files.  This should normally be `/usr/local/share', but write
  74.      it as `$(prefix)/share'.  As a special exception, see `$(infodir)'
  75.      and `$(includedir)' below.
  76. `sysconfdir'
  77.      The directory for installing read-only data files that pertain to a
  78.      single machine-that is to say, files for configuring a host.
  79.      Mailer and network configuration files, `/etc/passwd', and so
  80.      forth belong here.  All the files in this directory should be
  81.      ordinary ASCII text files.  This directory should normally be
  82.      `/usr/local/etc', but write it as `$(prefix)/etc'.
  83.      Do not install executables in this directory (they probably belong
  84.      in `$(libexecdir)' or `$(sbindir))'.  Also do not install files
  85.      that are modified in the normal course of their use (programs
  86.      whose purpose is to change the configuration of the system
  87.      excluded).  Those probably belong in `$(localstatedir)'.
  88. `sharedstatedir'
  89.      The directory for installing architecture-independent data files
  90.      which the programs modify while they run.  This should normally be
  91.      `/usr/local/com', but write it as `$(prefix)/com'.
  92. `localstatedir'
  93.      The directory for installing data files which the programs modify
  94.      while they run, and that pertain to one specific machine.  Users
  95.      should never need to modify files in this directory to configure
  96.      the package's operation; put such configuration information in
  97.      separate files that go in `datadir' or `$(sysconfdir)'.
  98.      `$(localstatedir)' should normally be `/usr/local/var', but write
  99.      it as `$(prefix)/var'.
  100. `libdir'
  101.      The directory for object files and libraries of object code.  Do
  102.      not install executables here, they probably belong in
  103.      `$(libexecdir)' instead.  The value of `libdir' should normally be
  104.      `/usr/local/lib', but write it as `$(exec_prefix)/lib'.
  105. `infodir'
  106.      The directory for installing the Info files for this package.  By
  107.      default, it should be `/usr/local/info', but it should be written
  108.      as `$(prefix)/info'.
  109. `includedir'
  110.      The directory for installing header files to be included by user
  111.      programs with the C `#include' preprocessor directive.  This
  112.      should normally be `/usr/local/include', but write it as
  113.      `$(prefix)/include'.
  114.      Most compilers other than GCC do not look for header files in
  115.      `/usr/local/include'.  So installing the header files this way is
  116.      only useful with GCC.  Sometimes this is not a problem because some
  117.      libraries are only really intended to work with GCC.  But some
  118.      libraries are intended to work with other compilers.  They should
  119.      install their header files in two places, one specified by
  120.      `includedir' and one specified by `oldincludedir'.
  121. `oldincludedir'
  122.      The directory for installing `#include' header files for use with
  123.      compilers other than GCC.  This should normally be `/usr/include'.
  124.      The Makefile commands should check whether the value of
  125.      `oldincludedir' is empty.  If it is, they should not try to use
  126.      it; they should cancel the second installation of the header files.
  127.      A package should not replace an existing header in this directory
  128.      unless the header came from the same package.  Thus, if your Foo
  129.      package provides a header file `foo.h', then it should install the
  130.      header file in the `oldincludedir' directory if either (1) there
  131.      is no `foo.h' there or (2) the `foo.h' that exists came from the
  132.      Foo package.
  133.      To tell whether `foo.h' came from the Foo package, put a magic
  134.      string in the file--part of a comment--and grep for that string.
  135.    Unix-style man pages are installed in one of the following:
  136. `mandir'
  137.      The directory for installing the man pages (if any) for this
  138.      package.  It should include the suffix for the proper section of
  139.      the manual--usually `1' for a utility.  It will normally be
  140.      `/usr/local/man/man1', but you should write it as
  141.      `$(prefix)/man/man1'.
  142. `man1dir'
  143.      The directory for installing section 1 man pages.
  144. `man2dir'
  145.      The directory for installing section 2 man pages.
  146. `...'
  147.      Use these names instead of `mandir' if the package needs to
  148.      install man pages in more than one section of the manual.
  149.      *Don't make the primary documentation for any GNU software be