| 
     1 Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software  | 
         | 
     2 Foundation, Inc.  | 
         | 
     3   | 
         | 
     4    This file is free documentation; the Free Software Foundation gives  | 
         | 
     5 unlimited permission to copy, distribute and modify it.  | 
         | 
     6   | 
         | 
     7 Basic Installation  | 
         | 
     8 ==================  | 
         | 
     9   | 
         | 
    10    These are generic installation instructions.  | 
         | 
    11   | 
         | 
    12    The `configure' shell script attempts to guess correct values for  | 
         | 
    13 various system-dependent variables used during compilation.  It uses  | 
         | 
    14 those values to create a `Makefile' in each directory of the package.  | 
         | 
    15 It may also create one or more `.h' files containing system-dependent  | 
         | 
    16 definitions.  Finally, it creates a shell script `config.status' that  | 
         | 
    17 you can run in the future to recreate the current configuration, and a  | 
         | 
    18 file `config.log' containing compiler output (useful mainly for  | 
         | 
    19 debugging `configure').  | 
         | 
    20   | 
         | 
    21    It can also use an optional file (typically called `config.cache'  | 
         | 
    22 and enabled with `--cache-file=config.cache' or simply `-C') that saves  | 
         | 
    23 the results of its tests to speed up reconfiguring.  (Caching is  | 
         | 
    24 disabled by default to prevent problems with accidental use of stale  | 
         | 
    25 cache files.)  | 
         | 
    26   | 
         | 
    27    If you need to do unusual things to compile the package, please try  | 
         | 
    28 to figure out how `configure' could check whether to do them, and mail  | 
         | 
    29 diffs or instructions to the address given in the `README' so they can  | 
         | 
    30 be considered for the next release.  If you are using the cache, and at  | 
         | 
    31 some point `config.cache' contains results you don't want to keep, you  | 
         | 
    32 may remove or edit it.  | 
         | 
    33   | 
         | 
    34    The file `configure.ac' (or `configure.in') is used to create  | 
         | 
    35 `configure' by a program called `autoconf'.  You only need  | 
         | 
    36 `configure.ac' if you want to change it or regenerate `configure' using  | 
         | 
    37 a newer version of `autoconf'.  | 
         | 
    38   | 
         | 
    39 The simplest way to compile this package is:  | 
         | 
    40   | 
         | 
    41   1. `cd' to the directory containing the package's source code and type  | 
         | 
    42      `./configure' to configure the package for your system.  If you're  | 
         | 
    43      using `csh' on an old version of System V, you might need to type  | 
         | 
    44      `sh ./configure' instead to prevent `csh' from trying to execute  | 
         | 
    45      `configure' itself.  | 
         | 
    46   | 
         | 
    47      Running `configure' takes awhile.  While running, it prints some  | 
         | 
    48      messages telling which features it is checking for.  | 
         | 
    49   | 
         | 
    50   2. Type `make' to compile the package.  | 
         | 
    51   | 
         | 
    52   3. Optionally, type `make check' to run any self-tests that come with  | 
         | 
    53      the package.  | 
         | 
    54   | 
         | 
    55   4. Type `make install' to install the programs and any data files and  | 
         | 
    56      documentation.  | 
         | 
    57   | 
         | 
    58   5. You can remove the program binaries and object files from the  | 
         | 
    59      source code directory by typing `make clean'.  To also remove the  | 
         | 
    60      files that `configure' created (so you can compile the package for  | 
         | 
    61      a different kind of computer), type `make distclean'.  There is  | 
         | 
    62      also a `make maintainer-clean' target, but that is intended mainly  | 
         | 
    63      for the package's developers.  If you use it, you may have to get  | 
         | 
    64      all sorts of other programs in order to regenerate files that came  | 
         | 
    65      with the distribution.  | 
         | 
    66   | 
         | 
    67 Compilers and Options  | 
         | 
    68 =====================  | 
         | 
    69   | 
         | 
    70    Some systems require unusual options for compilation or linking that  | 
         | 
    71 the `configure' script does not know about.  Run `./configure --help'  | 
         | 
    72 for details on some of the pertinent environment variables.  | 
         | 
    73   | 
         | 
    74    You can give `configure' initial values for configuration parameters  | 
         | 
    75 by setting variables in the command line or in the environment.  Here  | 
         | 
    76 is an example:  | 
         | 
    77   | 
         | 
    78      ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix  | 
         | 
    79   | 
         | 
    80    *Note Defining Variables::, for more details.  | 
         | 
    81   | 
         | 
    82 Compiling For Multiple Architectures  | 
         | 
    83 ====================================  | 
         | 
    84   | 
         | 
    85    You can compile the package for more than one kind of computer at the  | 
         | 
    86 same time, by placing the object files for each architecture in their  | 
         | 
    87 own directory.  To do this, you must use a version of `make' that  | 
         | 
    88 supports the `VPATH' variable, such as GNU `make'.  `cd' to the  | 
         | 
    89 directory where you want the object files and executables to go and run  | 
         | 
    90 the `configure' script.  `configure' automatically checks for the  | 
         | 
    91 source code in the directory that `configure' is in and in `..'.  | 
         | 
    92   | 
         | 
    93    If you have to use a `make' that does not support the `VPATH'  | 
         | 
    94 variable, you have to compile the package for one architecture at a  | 
         | 
    95 time in the source code directory.  After you have installed the  | 
         | 
    96 package for one architecture, use `make distclean' before reconfiguring  | 
         | 
    97 for another architecture.  | 
         | 
    98   | 
         | 
    99 Installation Names  | 
         | 
   100 ==================  | 
         | 
   101   | 
         | 
   102    By default, `make install' will install the package's files in  | 
         | 
   103 `/usr/local/bin', `/usr/local/man', etc.  You can specify an  | 
         | 
   104 installation prefix other than `/usr/local' by giving `configure' the  | 
         | 
   105 option `--prefix=PATH'.  | 
         | 
   106   | 
         | 
   107    You can specify separate installation prefixes for  | 
         | 
   108 architecture-specific files and architecture-independent files.  If you  | 
         | 
   109 give `configure' the option `--exec-prefix=PATH', the package will use  | 
         | 
   110 PATH as the prefix for installing programs and libraries.  | 
         | 
   111 Documentation and other data files will still use the regular prefix.  | 
         | 
   112   | 
         | 
   113    In addition, if you use an unusual directory layout you can give  | 
         | 
   114 options like `--bindir=PATH' to specify different values for particular  | 
         | 
   115 kinds of files.  Run `configure --help' for a list of the directories  | 
         | 
   116 you can set and what kinds of files go in them.  | 
         | 
   117   | 
         | 
   118    If the package supports it, you can cause programs to be installed  | 
         | 
   119 with an extra prefix or suffix on their names by giving `configure' the  | 
         | 
   120 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.  | 
         | 
   121   | 
         | 
   122 Optional Features  | 
         | 
   123 =================  | 
         | 
   124   | 
         | 
   125    Some packages pay attention to `--enable-FEATURE' options to  | 
         | 
   126 `configure', where FEATURE indicates an optional part of the package.  | 
         | 
   127 They may also pay attention to `--with-PACKAGE' options, where PACKAGE  | 
         | 
   128 is something like `gnu-as' or `x' (for the X Window System).  The  | 
         | 
   129 `README' should mention any `--enable-' and `--with-' options that the  | 
         | 
   130 package recognizes.  | 
         | 
   131   | 
         | 
   132    For packages that use the X Window System, `configure' can usually  | 
         | 
   133 find the X include and library files automatically, but if it doesn't,  | 
         | 
   134 you can use the `configure' options `--x-includes=DIR' and  | 
         | 
   135 `--x-libraries=DIR' to specify their locations.  | 
         | 
   136   | 
         | 
   137 Specifying the System Type  | 
         | 
   138 ==========================  | 
         | 
   139   | 
         | 
   140    There may be some features `configure' cannot figure out  | 
         | 
   141 automatically, but needs to determine by the type of machine the package  | 
         | 
   142 will run on.  Usually, assuming the package is built to be run on the  | 
         | 
   143 _same_ architectures, `configure' can figure that out, but if it prints  | 
         | 
   144 a message saying it cannot guess the machine type, give it the  | 
         | 
   145 `--build=TYPE' option.  TYPE can either be a short name for the system  | 
         | 
   146 type, such as `sun4', or a canonical name which has the form:  | 
         | 
   147   | 
         | 
   148      CPU-COMPANY-SYSTEM  | 
         | 
   149   | 
         | 
   150 where SYSTEM can have one of these forms:  | 
         | 
   151   | 
         | 
   152      OS KERNEL-OS  | 
         | 
   153   | 
         | 
   154    See the file `config.sub' for the possible values of each field.  If  | 
         | 
   155 `config.sub' isn't included in this package, then this package doesn't  | 
         | 
   156 need to know the machine type.  | 
         | 
   157   | 
         | 
   158    If you are _building_ compiler tools for cross-compiling, you should  | 
         | 
   159 use the `--target=TYPE' option to select the type of system they will  | 
         | 
   160 produce code for.  | 
         | 
   161   | 
         | 
   162    If you want to _use_ a cross compiler, that generates code for a  | 
         | 
   163 platform different from the build platform, you should specify the  | 
         | 
   164 "host" platform (i.e., that on which the generated programs will  | 
         | 
   165 eventually be run) with `--host=TYPE'.  | 
         | 
   166   | 
         | 
   167 Sharing Defaults  | 
         | 
   168 ================  | 
         | 
   169   | 
         | 
   170    If you want to set default values for `configure' scripts to share,  | 
         | 
   171 you can create a site shell script called `config.site' that gives  | 
         | 
   172 default values for variables like `CC', `cache_file', and `prefix'.  | 
         | 
   173 `configure' looks for `PREFIX/share/config.site' if it exists, then  | 
         | 
   174 `PREFIX/etc/config.site' if it exists.  Or, you can set the  | 
         | 
   175 `CONFIG_SITE' environment variable to the location of the site script.  | 
         | 
   176 A warning: not all `configure' scripts look for a site script.  | 
         | 
   177   | 
         | 
   178 Defining Variables  | 
         | 
   179 ==================  | 
         | 
   180   | 
         | 
   181    Variables not defined in a site shell script can be set in the  | 
         | 
   182 environment passed to `configure'.  However, some packages may run  | 
         | 
   183 configure again during the build, and the customized values of these  | 
         | 
   184 variables may be lost.  In order to avoid this problem, you should set  | 
         | 
   185 them in the `configure' command line, using `VAR=value'.  For example:  | 
         | 
   186   | 
         | 
   187      ./configure CC=/usr/local2/bin/gcc  | 
         | 
   188   | 
         | 
   189 will cause the specified gcc to be used as the C compiler (unless it is  | 
         | 
   190 overridden in the site shell script).  | 
         | 
   191   | 
         | 
   192 `configure' Invocation  | 
         | 
   193 ======================  | 
         | 
   194   | 
         | 
   195    `configure' recognizes the following options to control how it  | 
         | 
   196 operates.  | 
         | 
   197   | 
         | 
   198 `--help'  | 
         | 
   199 `-h'  | 
         | 
   200      Print a summary of the options to `configure', and exit.  | 
         | 
   201   | 
         | 
   202 `--version'  | 
         | 
   203 `-V'  | 
         | 
   204      Print the version of Autoconf used to generate the `configure'  | 
         | 
   205      script, and exit.  | 
         | 
   206   | 
         | 
   207 `--cache-file=FILE'  | 
         | 
   208      Enable the cache: use and save the results of the tests in FILE,  | 
         | 
   209      traditionally `config.cache'.  FILE defaults to `/dev/null' to  | 
         | 
   210      disable caching.  | 
         | 
   211   | 
         | 
   212 `--config-cache'  | 
         | 
   213 `-C'  | 
         | 
   214      Alias for `--cache-file=config.cache'.  | 
         | 
   215   | 
         | 
   216 `--quiet'  | 
         | 
   217 `--silent'  | 
         | 
   218 `-q'  | 
         | 
   219      Do not print messages saying which checks are being made.  To  | 
         | 
   220      suppress all normal output, redirect it to `/dev/null' (any error  | 
         | 
   221      messages will still be shown).  | 
         | 
   222   | 
         | 
   223 `--srcdir=DIR'  | 
         | 
   224      Look for the package's source code in directory DIR.  Usually  | 
         | 
   225      `configure' can determine that directory automatically.  | 
         | 
   226   | 
         | 
   227 `configure' also accepts some other, not widely useful, options.  Run  | 
         | 
   228 `configure --help' for more details.  | 
         | 
   229   |