INSTALL revision 2a75d1c4
12a75d1c4SmrgInstallation Instructions
22a75d1c4Smrg*************************
32a75d1c4Smrg
42a75d1c4SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
52a75d1c4Smrg2006, 2007, 2008 Free Software Foundation, Inc.
62a75d1c4Smrg
72a75d1c4Smrg   This file is free documentation; the Free Software Foundation gives
82a75d1c4Smrgunlimited permission to copy, distribute and modify it.
92a75d1c4Smrg
102a75d1c4SmrgBasic Installation
112a75d1c4Smrg==================
122a75d1c4Smrg
132a75d1c4Smrg   Briefly, the shell commands `./configure; make; make install' should
142a75d1c4Smrgconfigure, build, and install this package.  The following
152a75d1c4Smrgmore-detailed instructions are generic; see the `README' file for
162a75d1c4Smrginstructions specific to this package.
172a75d1c4Smrg
182a75d1c4Smrg   The `configure' shell script attempts to guess correct values for
192a75d1c4Smrgvarious system-dependent variables used during compilation.  It uses
202a75d1c4Smrgthose values to create a `Makefile' in each directory of the package.
212a75d1c4SmrgIt may also create one or more `.h' files containing system-dependent
222a75d1c4Smrgdefinitions.  Finally, it creates a shell script `config.status' that
232a75d1c4Smrgyou can run in the future to recreate the current configuration, and a
242a75d1c4Smrgfile `config.log' containing compiler output (useful mainly for
252a75d1c4Smrgdebugging `configure').
262a75d1c4Smrg
272a75d1c4Smrg   It can also use an optional file (typically called `config.cache'
282a75d1c4Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
292a75d1c4Smrgthe results of its tests to speed up reconfiguring.  Caching is
302a75d1c4Smrgdisabled by default to prevent problems with accidental use of stale
312a75d1c4Smrgcache files.
322a75d1c4Smrg
332a75d1c4Smrg   If you need to do unusual things to compile the package, please try
342a75d1c4Smrgto figure out how `configure' could check whether to do them, and mail
352a75d1c4Smrgdiffs or instructions to the address given in the `README' so they can
362a75d1c4Smrgbe considered for the next release.  If you are using the cache, and at
372a75d1c4Smrgsome point `config.cache' contains results you don't want to keep, you
382a75d1c4Smrgmay remove or edit it.
392a75d1c4Smrg
402a75d1c4Smrg   The file `configure.ac' (or `configure.in') is used to create
412a75d1c4Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
422a75d1c4Smrgyou want to change it or regenerate `configure' using a newer version
432a75d1c4Smrgof `autoconf'.
442a75d1c4Smrg
452a75d1c4SmrgThe simplest way to compile this package is:
462a75d1c4Smrg
472a75d1c4Smrg  1. `cd' to the directory containing the package's source code and type
482a75d1c4Smrg     `./configure' to configure the package for your system.
492a75d1c4Smrg
502a75d1c4Smrg     Running `configure' might take a while.  While running, it prints
512a75d1c4Smrg     some messages telling which features it is checking for.
522a75d1c4Smrg
532a75d1c4Smrg  2. Type `make' to compile the package.
542a75d1c4Smrg
552a75d1c4Smrg  3. Optionally, type `make check' to run any self-tests that come with
562a75d1c4Smrg     the package.
572a75d1c4Smrg
582a75d1c4Smrg  4. Type `make install' to install the programs and any data files and
592a75d1c4Smrg     documentation.
602a75d1c4Smrg
612a75d1c4Smrg  5. You can remove the program binaries and object files from the
622a75d1c4Smrg     source code directory by typing `make clean'.  To also remove the
632a75d1c4Smrg     files that `configure' created (so you can compile the package for
642a75d1c4Smrg     a different kind of computer), type `make distclean'.  There is
652a75d1c4Smrg     also a `make maintainer-clean' target, but that is intended mainly
662a75d1c4Smrg     for the package's developers.  If you use it, you may have to get
672a75d1c4Smrg     all sorts of other programs in order to regenerate files that came
682a75d1c4Smrg     with the distribution.
692a75d1c4Smrg
702a75d1c4Smrg  6. Often, you can also type `make uninstall' to remove the installed
712a75d1c4Smrg     files again.
722a75d1c4Smrg
732a75d1c4SmrgCompilers and Options
742a75d1c4Smrg=====================
752a75d1c4Smrg
762a75d1c4Smrg   Some systems require unusual options for compilation or linking that
772a75d1c4Smrgthe `configure' script does not know about.  Run `./configure --help'
782a75d1c4Smrgfor details on some of the pertinent environment variables.
792a75d1c4Smrg
802a75d1c4Smrg   You can give `configure' initial values for configuration parameters
812a75d1c4Smrgby setting variables in the command line or in the environment.  Here
822a75d1c4Smrgis an example:
832a75d1c4Smrg
842a75d1c4Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
852a75d1c4Smrg
862a75d1c4Smrg   *Note Defining Variables::, for more details.
872a75d1c4Smrg
882a75d1c4SmrgCompiling For Multiple Architectures
892a75d1c4Smrg====================================
902a75d1c4Smrg
912a75d1c4Smrg   You can compile the package for more than one kind of computer at the
922a75d1c4Smrgsame time, by placing the object files for each architecture in their
932a75d1c4Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
942a75d1c4Smrgdirectory where you want the object files and executables to go and run
952a75d1c4Smrgthe `configure' script.  `configure' automatically checks for the
962a75d1c4Smrgsource code in the directory that `configure' is in and in `..'.
972a75d1c4Smrg
982a75d1c4Smrg   With a non-GNU `make', it is safer to compile the package for one
992a75d1c4Smrgarchitecture at a time in the source code directory.  After you have
1002a75d1c4Smrginstalled the package for one architecture, use `make distclean' before
1012a75d1c4Smrgreconfiguring for another architecture.
1022a75d1c4Smrg
1032a75d1c4Smrg   On MacOS X 10.5 and later systems, you can create libraries and
1042a75d1c4Smrgexecutables that work on multiple system types--known as "fat" or
1052a75d1c4Smrg"universal" binaries--by specifying multiple `-arch' options to the
1062a75d1c4Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
1072a75d1c4Smrgthis:
1082a75d1c4Smrg
1092a75d1c4Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1102a75d1c4Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1112a75d1c4Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
1122a75d1c4Smrg
1132a75d1c4Smrg   This is not guaranteed to produce working output in all cases, you
1142a75d1c4Smrgmay have to build one architecture at a time and combine the results
1152a75d1c4Smrgusing the `lipo' tool if you have problems.
1162a75d1c4Smrg
1172a75d1c4SmrgInstallation Names
1182a75d1c4Smrg==================
1192a75d1c4Smrg
1202a75d1c4Smrg   By default, `make install' installs the package's commands under
1212a75d1c4Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1222a75d1c4Smrgcan specify an installation prefix other than `/usr/local' by giving
1232a75d1c4Smrg`configure' the option `--prefix=PREFIX'.
1242a75d1c4Smrg
1252a75d1c4Smrg   You can specify separate installation prefixes for
1262a75d1c4Smrgarchitecture-specific files and architecture-independent files.  If you
1272a75d1c4Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1282a75d1c4SmrgPREFIX as the prefix for installing programs and libraries.
1292a75d1c4SmrgDocumentation and other data files still use the regular prefix.
1302a75d1c4Smrg
1312a75d1c4Smrg   In addition, if you use an unusual directory layout you can give
1322a75d1c4Smrgoptions like `--bindir=DIR' to specify different values for particular
1332a75d1c4Smrgkinds of files.  Run `configure --help' for a list of the directories
1342a75d1c4Smrgyou can set and what kinds of files go in them.
1352a75d1c4Smrg
1362a75d1c4Smrg   If the package supports it, you can cause programs to be installed
1372a75d1c4Smrgwith an extra prefix or suffix on their names by giving `configure' the
1382a75d1c4Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1392a75d1c4Smrg
1402a75d1c4SmrgOptional Features
1412a75d1c4Smrg=================
1422a75d1c4Smrg
1432a75d1c4Smrg   Some packages pay attention to `--enable-FEATURE' options to
1442a75d1c4Smrg`configure', where FEATURE indicates an optional part of the package.
1452a75d1c4SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
1462a75d1c4Smrgis something like `gnu-as' or `x' (for the X Window System).  The
1472a75d1c4Smrg`README' should mention any `--enable-' and `--with-' options that the
1482a75d1c4Smrgpackage recognizes.
1492a75d1c4Smrg
1502a75d1c4Smrg   For packages that use the X Window System, `configure' can usually
1512a75d1c4Smrgfind the X include and library files automatically, but if it doesn't,
1522a75d1c4Smrgyou can use the `configure' options `--x-includes=DIR' and
1532a75d1c4Smrg`--x-libraries=DIR' to specify their locations.
1542a75d1c4Smrg
1552a75d1c4SmrgParticular systems
1562a75d1c4Smrg==================
1572a75d1c4Smrg
1582a75d1c4Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
1592a75d1c4SmrgCC is not installed, it is recommended to use the following options in
1602a75d1c4Smrgorder to use an ANSI C compiler:
1612a75d1c4Smrg
1622a75d1c4Smrg     ./configure CC="cc -Ae"
1632a75d1c4Smrg
1642a75d1c4Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
1652a75d1c4Smrg
1662a75d1c4Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
1672a75d1c4Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
1682a75d1c4Smrga workaround.  If GNU CC is not installed, it is therefore recommended
1692a75d1c4Smrgto try
1702a75d1c4Smrg
1712a75d1c4Smrg     ./configure CC="cc"
1722a75d1c4Smrg
1732a75d1c4Smrgand if that doesn't work, try
1742a75d1c4Smrg
1752a75d1c4Smrg     ./configure CC="cc -nodtk"
1762a75d1c4Smrg
1772a75d1c4SmrgSpecifying the System Type
1782a75d1c4Smrg==========================
1792a75d1c4Smrg
1802a75d1c4Smrg   There may be some features `configure' cannot figure out
1812a75d1c4Smrgautomatically, but needs to determine by the type of machine the package
1822a75d1c4Smrgwill run on.  Usually, assuming the package is built to be run on the
1832a75d1c4Smrg_same_ architectures, `configure' can figure that out, but if it prints
1842a75d1c4Smrga message saying it cannot guess the machine type, give it the
1852a75d1c4Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
1862a75d1c4Smrgtype, such as `sun4', or a canonical name which has the form:
1872a75d1c4Smrg
1882a75d1c4Smrg     CPU-COMPANY-SYSTEM
1892a75d1c4Smrg
1902a75d1c4Smrgwhere SYSTEM can have one of these forms:
1912a75d1c4Smrg
1922a75d1c4Smrg     OS KERNEL-OS
1932a75d1c4Smrg
1942a75d1c4Smrg   See the file `config.sub' for the possible values of each field.  If
1952a75d1c4Smrg`config.sub' isn't included in this package, then this package doesn't
1962a75d1c4Smrgneed to know the machine type.
1972a75d1c4Smrg
1982a75d1c4Smrg   If you are _building_ compiler tools for cross-compiling, you should
1992a75d1c4Smrguse the option `--target=TYPE' to select the type of system they will
2002a75d1c4Smrgproduce code for.
2012a75d1c4Smrg
2022a75d1c4Smrg   If you want to _use_ a cross compiler, that generates code for a
2032a75d1c4Smrgplatform different from the build platform, you should specify the
2042a75d1c4Smrg"host" platform (i.e., that on which the generated programs will
2052a75d1c4Smrgeventually be run) with `--host=TYPE'.
2062a75d1c4Smrg
2072a75d1c4SmrgSharing Defaults
2082a75d1c4Smrg================
2092a75d1c4Smrg
2102a75d1c4Smrg   If you want to set default values for `configure' scripts to share,
2112a75d1c4Smrgyou can create a site shell script called `config.site' that gives
2122a75d1c4Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
2132a75d1c4Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2142a75d1c4Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2152a75d1c4Smrg`CONFIG_SITE' environment variable to the location of the site script.
2162a75d1c4SmrgA warning: not all `configure' scripts look for a site script.
2172a75d1c4Smrg
2182a75d1c4SmrgDefining Variables
2192a75d1c4Smrg==================
2202a75d1c4Smrg
2212a75d1c4Smrg   Variables not defined in a site shell script can be set in the
2222a75d1c4Smrgenvironment passed to `configure'.  However, some packages may run
2232a75d1c4Smrgconfigure again during the build, and the customized values of these
2242a75d1c4Smrgvariables may be lost.  In order to avoid this problem, you should set
2252a75d1c4Smrgthem in the `configure' command line, using `VAR=value'.  For example:
2262a75d1c4Smrg
2272a75d1c4Smrg     ./configure CC=/usr/local2/bin/gcc
2282a75d1c4Smrg
2292a75d1c4Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
2302a75d1c4Smrgoverridden in the site shell script).
2312a75d1c4Smrg
2322a75d1c4SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
2332a75d1c4Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
2342a75d1c4Smrg
2352a75d1c4Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
2362a75d1c4Smrg
2372a75d1c4Smrg`configure' Invocation
2382a75d1c4Smrg======================
2392a75d1c4Smrg
2402a75d1c4Smrg   `configure' recognizes the following options to control how it
2412a75d1c4Smrgoperates.
2422a75d1c4Smrg
2432a75d1c4Smrg`--help'
2442a75d1c4Smrg`-h'
2452a75d1c4Smrg     Print a summary of all of the options to `configure', and exit.
2462a75d1c4Smrg
2472a75d1c4Smrg`--help=short'
2482a75d1c4Smrg`--help=recursive'
2492a75d1c4Smrg     Print a summary of the options unique to this package's
2502a75d1c4Smrg     `configure', and exit.  The `short' variant lists options used
2512a75d1c4Smrg     only in the top level, while the `recursive' variant lists options
2522a75d1c4Smrg     also present in any nested packages.
2532a75d1c4Smrg
2542a75d1c4Smrg`--version'
2552a75d1c4Smrg`-V'
2562a75d1c4Smrg     Print the version of Autoconf used to generate the `configure'
2572a75d1c4Smrg     script, and exit.
2582a75d1c4Smrg
2592a75d1c4Smrg`--cache-file=FILE'
2602a75d1c4Smrg     Enable the cache: use and save the results of the tests in FILE,
2612a75d1c4Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
2622a75d1c4Smrg     disable caching.
2632a75d1c4Smrg
2642a75d1c4Smrg`--config-cache'
2652a75d1c4Smrg`-C'
2662a75d1c4Smrg     Alias for `--cache-file=config.cache'.
2672a75d1c4Smrg
2682a75d1c4Smrg`--quiet'
2692a75d1c4Smrg`--silent'
2702a75d1c4Smrg`-q'
2712a75d1c4Smrg     Do not print messages saying which checks are being made.  To
2722a75d1c4Smrg     suppress all normal output, redirect it to `/dev/null' (any error
2732a75d1c4Smrg     messages will still be shown).
2742a75d1c4Smrg
2752a75d1c4Smrg`--srcdir=DIR'
2762a75d1c4Smrg     Look for the package's source code in directory DIR.  Usually
2772a75d1c4Smrg     `configure' can determine that directory automatically.
2782a75d1c4Smrg
2792a75d1c4Smrg`--prefix=DIR'
2802a75d1c4Smrg     Use DIR as the installation prefix.  *Note Installation Names::
2812a75d1c4Smrg     for more details, including other options available for fine-tuning
2822a75d1c4Smrg     the installation locations.
2832a75d1c4Smrg
2842a75d1c4Smrg`--no-create'
2852a75d1c4Smrg`-n'
2862a75d1c4Smrg     Run the configure checks, but stop before creating any output
2872a75d1c4Smrg     files.
2882a75d1c4Smrg
2892a75d1c4Smrg`configure' also accepts some other, not widely useful, options.  Run
2902a75d1c4Smrg`configure --help' for more details.
2912a75d1c4Smrg
292