INSTALL revision 9ef7378b
19ef7378bSmrgInstallation Instructions
29ef7378bSmrg*************************
39ef7378bSmrg
49ef7378bSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
59ef7378bSmrg2006, 2007, 2008 Free Software Foundation, Inc.
69ef7378bSmrg
79ef7378bSmrg   This file is free documentation; the Free Software Foundation gives
89ef7378bSmrgunlimited permission to copy, distribute and modify it.
99ef7378bSmrg
109ef7378bSmrgBasic Installation
119ef7378bSmrg==================
129ef7378bSmrg
139ef7378bSmrg   Briefly, the shell commands `./configure; make; make install' should
149ef7378bSmrgconfigure, build, and install this package.  The following
159ef7378bSmrgmore-detailed instructions are generic; see the `README' file for
169ef7378bSmrginstructions specific to this package.
179ef7378bSmrg
189ef7378bSmrg   The `configure' shell script attempts to guess correct values for
199ef7378bSmrgvarious system-dependent variables used during compilation.  It uses
209ef7378bSmrgthose values to create a `Makefile' in each directory of the package.
219ef7378bSmrgIt may also create one or more `.h' files containing system-dependent
229ef7378bSmrgdefinitions.  Finally, it creates a shell script `config.status' that
239ef7378bSmrgyou can run in the future to recreate the current configuration, and a
249ef7378bSmrgfile `config.log' containing compiler output (useful mainly for
259ef7378bSmrgdebugging `configure').
269ef7378bSmrg
279ef7378bSmrg   It can also use an optional file (typically called `config.cache'
289ef7378bSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
299ef7378bSmrgthe results of its tests to speed up reconfiguring.  Caching is
309ef7378bSmrgdisabled by default to prevent problems with accidental use of stale
319ef7378bSmrgcache files.
329ef7378bSmrg
339ef7378bSmrg   If you need to do unusual things to compile the package, please try
349ef7378bSmrgto figure out how `configure' could check whether to do them, and mail
359ef7378bSmrgdiffs or instructions to the address given in the `README' so they can
369ef7378bSmrgbe considered for the next release.  If you are using the cache, and at
379ef7378bSmrgsome point `config.cache' contains results you don't want to keep, you
389ef7378bSmrgmay remove or edit it.
399ef7378bSmrg
409ef7378bSmrg   The file `configure.ac' (or `configure.in') is used to create
419ef7378bSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
429ef7378bSmrgyou want to change it or regenerate `configure' using a newer version
439ef7378bSmrgof `autoconf'.
449ef7378bSmrg
459ef7378bSmrgThe simplest way to compile this package is:
469ef7378bSmrg
479ef7378bSmrg  1. `cd' to the directory containing the package's source code and type
489ef7378bSmrg     `./configure' to configure the package for your system.
499ef7378bSmrg
509ef7378bSmrg     Running `configure' might take a while.  While running, it prints
519ef7378bSmrg     some messages telling which features it is checking for.
529ef7378bSmrg
539ef7378bSmrg  2. Type `make' to compile the package.
549ef7378bSmrg
559ef7378bSmrg  3. Optionally, type `make check' to run any self-tests that come with
569ef7378bSmrg     the package.
579ef7378bSmrg
589ef7378bSmrg  4. Type `make install' to install the programs and any data files and
599ef7378bSmrg     documentation.
609ef7378bSmrg
619ef7378bSmrg  5. You can remove the program binaries and object files from the
629ef7378bSmrg     source code directory by typing `make clean'.  To also remove the
639ef7378bSmrg     files that `configure' created (so you can compile the package for
649ef7378bSmrg     a different kind of computer), type `make distclean'.  There is
659ef7378bSmrg     also a `make maintainer-clean' target, but that is intended mainly
669ef7378bSmrg     for the package's developers.  If you use it, you may have to get
679ef7378bSmrg     all sorts of other programs in order to regenerate files that came
689ef7378bSmrg     with the distribution.
699ef7378bSmrg
709ef7378bSmrg  6. Often, you can also type `make uninstall' to remove the installed
719ef7378bSmrg     files again.
729ef7378bSmrg
739ef7378bSmrgCompilers and Options
749ef7378bSmrg=====================
759ef7378bSmrg
769ef7378bSmrg   Some systems require unusual options for compilation or linking that
779ef7378bSmrgthe `configure' script does not know about.  Run `./configure --help'
789ef7378bSmrgfor details on some of the pertinent environment variables.
799ef7378bSmrg
809ef7378bSmrg   You can give `configure' initial values for configuration parameters
819ef7378bSmrgby setting variables in the command line or in the environment.  Here
829ef7378bSmrgis an example:
839ef7378bSmrg
849ef7378bSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
859ef7378bSmrg
869ef7378bSmrg   *Note Defining Variables::, for more details.
879ef7378bSmrg
889ef7378bSmrgCompiling For Multiple Architectures
899ef7378bSmrg====================================
909ef7378bSmrg
919ef7378bSmrg   You can compile the package for more than one kind of computer at the
929ef7378bSmrgsame time, by placing the object files for each architecture in their
939ef7378bSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
949ef7378bSmrgdirectory where you want the object files and executables to go and run
959ef7378bSmrgthe `configure' script.  `configure' automatically checks for the
969ef7378bSmrgsource code in the directory that `configure' is in and in `..'.
979ef7378bSmrg
989ef7378bSmrg   With a non-GNU `make', it is safer to compile the package for one
999ef7378bSmrgarchitecture at a time in the source code directory.  After you have
1009ef7378bSmrginstalled the package for one architecture, use `make distclean' before
1019ef7378bSmrgreconfiguring for another architecture.
1029ef7378bSmrg
1039ef7378bSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1049ef7378bSmrgexecutables that work on multiple system types--known as "fat" or
1059ef7378bSmrg"universal" binaries--by specifying multiple `-arch' options to the
1069ef7378bSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1079ef7378bSmrgthis:
1089ef7378bSmrg
1099ef7378bSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1109ef7378bSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1119ef7378bSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1129ef7378bSmrg
1139ef7378bSmrg   This is not guaranteed to produce working output in all cases, you
1149ef7378bSmrgmay have to build one architecture at a time and combine the results
1159ef7378bSmrgusing the `lipo' tool if you have problems.
1169ef7378bSmrg
1179ef7378bSmrgInstallation Names
1189ef7378bSmrg==================
1199ef7378bSmrg
1209ef7378bSmrg   By default, `make install' installs the package's commands under
1219ef7378bSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1229ef7378bSmrgcan specify an installation prefix other than `/usr/local' by giving
1239ef7378bSmrg`configure' the option `--prefix=PREFIX'.
1249ef7378bSmrg
1259ef7378bSmrg   You can specify separate installation prefixes for
1269ef7378bSmrgarchitecture-specific files and architecture-independent files.  If you
1279ef7378bSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1289ef7378bSmrgPREFIX as the prefix for installing programs and libraries.
1299ef7378bSmrgDocumentation and other data files still use the regular prefix.
1309ef7378bSmrg
1319ef7378bSmrg   In addition, if you use an unusual directory layout you can give
1329ef7378bSmrgoptions like `--bindir=DIR' to specify different values for particular
1339ef7378bSmrgkinds of files.  Run `configure --help' for a list of the directories
1349ef7378bSmrgyou can set and what kinds of files go in them.
1359ef7378bSmrg
1369ef7378bSmrg   If the package supports it, you can cause programs to be installed
1379ef7378bSmrgwith an extra prefix or suffix on their names by giving `configure' the
1389ef7378bSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1399ef7378bSmrg
1409ef7378bSmrgOptional Features
1419ef7378bSmrg=================
1429ef7378bSmrg
1439ef7378bSmrg   Some packages pay attention to `--enable-FEATURE' options to
1449ef7378bSmrg`configure', where FEATURE indicates an optional part of the package.
1459ef7378bSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
1469ef7378bSmrgis something like `gnu-as' or `x' (for the X Window System).  The
1479ef7378bSmrg`README' should mention any `--enable-' and `--with-' options that the
1489ef7378bSmrgpackage recognizes.
1499ef7378bSmrg
1509ef7378bSmrg   For packages that use the X Window System, `configure' can usually
1519ef7378bSmrgfind the X include and library files automatically, but if it doesn't,
1529ef7378bSmrgyou can use the `configure' options `--x-includes=DIR' and
1539ef7378bSmrg`--x-libraries=DIR' to specify their locations.
1549ef7378bSmrg
1559ef7378bSmrgParticular systems
1569ef7378bSmrg==================
1579ef7378bSmrg
1589ef7378bSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
1599ef7378bSmrgCC is not installed, it is recommended to use the following options in
1609ef7378bSmrgorder to use an ANSI C compiler:
1619ef7378bSmrg
1629ef7378bSmrg     ./configure CC="cc -Ae"
1639ef7378bSmrg
1649ef7378bSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
1659ef7378bSmrg
1669ef7378bSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
1679ef7378bSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
1689ef7378bSmrga workaround.  If GNU CC is not installed, it is therefore recommended
1699ef7378bSmrgto try
1709ef7378bSmrg
1719ef7378bSmrg     ./configure CC="cc"
1729ef7378bSmrg
1739ef7378bSmrgand if that doesn't work, try
1749ef7378bSmrg
1759ef7378bSmrg     ./configure CC="cc -nodtk"
1769ef7378bSmrg
1779ef7378bSmrgSpecifying the System Type
1789ef7378bSmrg==========================
1799ef7378bSmrg
1809ef7378bSmrg   There may be some features `configure' cannot figure out
1819ef7378bSmrgautomatically, but needs to determine by the type of machine the package
1829ef7378bSmrgwill run on.  Usually, assuming the package is built to be run on the
1839ef7378bSmrg_same_ architectures, `configure' can figure that out, but if it prints
1849ef7378bSmrga message saying it cannot guess the machine type, give it the
1859ef7378bSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
1869ef7378bSmrgtype, such as `sun4', or a canonical name which has the form:
1879ef7378bSmrg
1889ef7378bSmrg     CPU-COMPANY-SYSTEM
1899ef7378bSmrg
1909ef7378bSmrgwhere SYSTEM can have one of these forms:
1919ef7378bSmrg
1929ef7378bSmrg     OS KERNEL-OS
1939ef7378bSmrg
1949ef7378bSmrg   See the file `config.sub' for the possible values of each field.  If
1959ef7378bSmrg`config.sub' isn't included in this package, then this package doesn't
1969ef7378bSmrgneed to know the machine type.
1979ef7378bSmrg
1989ef7378bSmrg   If you are _building_ compiler tools for cross-compiling, you should
1999ef7378bSmrguse the option `--target=TYPE' to select the type of system they will
2009ef7378bSmrgproduce code for.
2019ef7378bSmrg
2029ef7378bSmrg   If you want to _use_ a cross compiler, that generates code for a
2039ef7378bSmrgplatform different from the build platform, you should specify the
2049ef7378bSmrg"host" platform (i.e., that on which the generated programs will
2059ef7378bSmrgeventually be run) with `--host=TYPE'.
2069ef7378bSmrg
2079ef7378bSmrgSharing Defaults
2089ef7378bSmrg================
2099ef7378bSmrg
2109ef7378bSmrg   If you want to set default values for `configure' scripts to share,
2119ef7378bSmrgyou can create a site shell script called `config.site' that gives
2129ef7378bSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2139ef7378bSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2149ef7378bSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2159ef7378bSmrg`CONFIG_SITE' environment variable to the location of the site script.
2169ef7378bSmrgA warning: not all `configure' scripts look for a site script.
2179ef7378bSmrg
2189ef7378bSmrgDefining Variables
2199ef7378bSmrg==================
2209ef7378bSmrg
2219ef7378bSmrg   Variables not defined in a site shell script can be set in the
2229ef7378bSmrgenvironment passed to `configure'.  However, some packages may run
2239ef7378bSmrgconfigure again during the build, and the customized values of these
2249ef7378bSmrgvariables may be lost.  In order to avoid this problem, you should set
2259ef7378bSmrgthem in the `configure' command line, using `VAR=value'.  For example:
2269ef7378bSmrg
2279ef7378bSmrg     ./configure CC=/usr/local2/bin/gcc
2289ef7378bSmrg
2299ef7378bSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
2309ef7378bSmrgoverridden in the site shell script).
2319ef7378bSmrg
2329ef7378bSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
2339ef7378bSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
2349ef7378bSmrg
2359ef7378bSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
2369ef7378bSmrg
2379ef7378bSmrg`configure' Invocation
2389ef7378bSmrg======================
2399ef7378bSmrg
2409ef7378bSmrg   `configure' recognizes the following options to control how it
2419ef7378bSmrgoperates.
2429ef7378bSmrg
2439ef7378bSmrg`--help'
2449ef7378bSmrg`-h'
2459ef7378bSmrg     Print a summary of all of the options to `configure', and exit.
2469ef7378bSmrg
2479ef7378bSmrg`--help=short'
2489ef7378bSmrg`--help=recursive'
2499ef7378bSmrg     Print a summary of the options unique to this package's
2509ef7378bSmrg     `configure', and exit.  The `short' variant lists options used
2519ef7378bSmrg     only in the top level, while the `recursive' variant lists options
2529ef7378bSmrg     also present in any nested packages.
2539ef7378bSmrg
2549ef7378bSmrg`--version'
2559ef7378bSmrg`-V'
2569ef7378bSmrg     Print the version of Autoconf used to generate the `configure'
2579ef7378bSmrg     script, and exit.
2589ef7378bSmrg
2599ef7378bSmrg`--cache-file=FILE'
2609ef7378bSmrg     Enable the cache: use and save the results of the tests in FILE,
2619ef7378bSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
2629ef7378bSmrg     disable caching.
2639ef7378bSmrg
2649ef7378bSmrg`--config-cache'
2659ef7378bSmrg`-C'
2669ef7378bSmrg     Alias for `--cache-file=config.cache'.
2679ef7378bSmrg
2689ef7378bSmrg`--quiet'
2699ef7378bSmrg`--silent'
2709ef7378bSmrg`-q'
2719ef7378bSmrg     Do not print messages saying which checks are being made.  To
2729ef7378bSmrg     suppress all normal output, redirect it to `/dev/null' (any error
2739ef7378bSmrg     messages will still be shown).
2749ef7378bSmrg
2759ef7378bSmrg`--srcdir=DIR'
2769ef7378bSmrg     Look for the package's source code in directory DIR.  Usually
2779ef7378bSmrg     `configure' can determine that directory automatically.
2789ef7378bSmrg
2799ef7378bSmrg`--prefix=DIR'
2809ef7378bSmrg     Use DIR as the installation prefix.  *Note Installation Names::
2819ef7378bSmrg     for more details, including other options available for fine-tuning
2829ef7378bSmrg     the installation locations.
2839ef7378bSmrg
2849ef7378bSmrg`--no-create'
2859ef7378bSmrg`-n'
2869ef7378bSmrg     Run the configure checks, but stop before creating any output
2879ef7378bSmrg     files.
2889ef7378bSmrg
2899ef7378bSmrg`configure' also accepts some other, not widely useful, options.  Run
2909ef7378bSmrg`configure --help' for more details.
2919ef7378bSmrg
292