INSTALL revision 3a67387e
13a67387eSmrgInstallation Instructions
23a67387eSmrg*************************
33a67387eSmrg
43a67387eSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
53a67387eSmrg2006, 2007, 2008 Free Software Foundation, Inc.
63a67387eSmrg
73a67387eSmrg   This file is free documentation; the Free Software Foundation gives
83a67387eSmrgunlimited permission to copy, distribute and modify it.
93a67387eSmrg
103a67387eSmrgBasic Installation
113a67387eSmrg==================
123a67387eSmrg
133a67387eSmrg   Briefly, the shell commands `./configure; make; make install' should
143a67387eSmrgconfigure, build, and install this package.  The following
153a67387eSmrgmore-detailed instructions are generic; see the `README' file for
163a67387eSmrginstructions specific to this package.
173a67387eSmrg
183a67387eSmrg   The `configure' shell script attempts to guess correct values for
193a67387eSmrgvarious system-dependent variables used during compilation.  It uses
203a67387eSmrgthose values to create a `Makefile' in each directory of the package.
213a67387eSmrgIt may also create one or more `.h' files containing system-dependent
223a67387eSmrgdefinitions.  Finally, it creates a shell script `config.status' that
233a67387eSmrgyou can run in the future to recreate the current configuration, and a
243a67387eSmrgfile `config.log' containing compiler output (useful mainly for
253a67387eSmrgdebugging `configure').
263a67387eSmrg
273a67387eSmrg   It can also use an optional file (typically called `config.cache'
283a67387eSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
293a67387eSmrgthe results of its tests to speed up reconfiguring.  Caching is
303a67387eSmrgdisabled by default to prevent problems with accidental use of stale
313a67387eSmrgcache files.
323a67387eSmrg
333a67387eSmrg   If you need to do unusual things to compile the package, please try
343a67387eSmrgto figure out how `configure' could check whether to do them, and mail
353a67387eSmrgdiffs or instructions to the address given in the `README' so they can
363a67387eSmrgbe considered for the next release.  If you are using the cache, and at
373a67387eSmrgsome point `config.cache' contains results you don't want to keep, you
383a67387eSmrgmay remove or edit it.
393a67387eSmrg
403a67387eSmrg   The file `configure.ac' (or `configure.in') is used to create
413a67387eSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
423a67387eSmrgyou want to change it or regenerate `configure' using a newer version
433a67387eSmrgof `autoconf'.
443a67387eSmrg
453a67387eSmrgThe simplest way to compile this package is:
463a67387eSmrg
473a67387eSmrg  1. `cd' to the directory containing the package's source code and type
483a67387eSmrg     `./configure' to configure the package for your system.
493a67387eSmrg
503a67387eSmrg     Running `configure' might take a while.  While running, it prints
513a67387eSmrg     some messages telling which features it is checking for.
523a67387eSmrg
533a67387eSmrg  2. Type `make' to compile the package.
543a67387eSmrg
553a67387eSmrg  3. Optionally, type `make check' to run any self-tests that come with
563a67387eSmrg     the package.
573a67387eSmrg
583a67387eSmrg  4. Type `make install' to install the programs and any data files and
593a67387eSmrg     documentation.
603a67387eSmrg
613a67387eSmrg  5. You can remove the program binaries and object files from the
623a67387eSmrg     source code directory by typing `make clean'.  To also remove the
633a67387eSmrg     files that `configure' created (so you can compile the package for
643a67387eSmrg     a different kind of computer), type `make distclean'.  There is
653a67387eSmrg     also a `make maintainer-clean' target, but that is intended mainly
663a67387eSmrg     for the package's developers.  If you use it, you may have to get
673a67387eSmrg     all sorts of other programs in order to regenerate files that came
683a67387eSmrg     with the distribution.
693a67387eSmrg
703a67387eSmrg  6. Often, you can also type `make uninstall' to remove the installed
713a67387eSmrg     files again.
723a67387eSmrg
733a67387eSmrgCompilers and Options
743a67387eSmrg=====================
753a67387eSmrg
763a67387eSmrg   Some systems require unusual options for compilation or linking that
773a67387eSmrgthe `configure' script does not know about.  Run `./configure --help'
783a67387eSmrgfor details on some of the pertinent environment variables.
793a67387eSmrg
803a67387eSmrg   You can give `configure' initial values for configuration parameters
813a67387eSmrgby setting variables in the command line or in the environment.  Here
823a67387eSmrgis an example:
833a67387eSmrg
843a67387eSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
853a67387eSmrg
863a67387eSmrg   *Note Defining Variables::, for more details.
873a67387eSmrg
883a67387eSmrgCompiling For Multiple Architectures
893a67387eSmrg====================================
903a67387eSmrg
913a67387eSmrg   You can compile the package for more than one kind of computer at the
923a67387eSmrgsame time, by placing the object files for each architecture in their
933a67387eSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
943a67387eSmrgdirectory where you want the object files and executables to go and run
953a67387eSmrgthe `configure' script.  `configure' automatically checks for the
963a67387eSmrgsource code in the directory that `configure' is in and in `..'.
973a67387eSmrg
983a67387eSmrg   With a non-GNU `make', it is safer to compile the package for one
993a67387eSmrgarchitecture at a time in the source code directory.  After you have
1003a67387eSmrginstalled the package for one architecture, use `make distclean' before
1013a67387eSmrgreconfiguring for another architecture.
1023a67387eSmrg
1033a67387eSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1043a67387eSmrgexecutables that work on multiple system types--known as "fat" or
1053a67387eSmrg"universal" binaries--by specifying multiple `-arch' options to the
1063a67387eSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1073a67387eSmrgthis:
1083a67387eSmrg
1093a67387eSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1103a67387eSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1113a67387eSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1123a67387eSmrg
1133a67387eSmrg   This is not guaranteed to produce working output in all cases, you
1143a67387eSmrgmay have to build one architecture at a time and combine the results
1153a67387eSmrgusing the `lipo' tool if you have problems.
1163a67387eSmrg
1173a67387eSmrgInstallation Names
1183a67387eSmrg==================
1193a67387eSmrg
1203a67387eSmrg   By default, `make install' installs the package's commands under
1213a67387eSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1223a67387eSmrgcan specify an installation prefix other than `/usr/local' by giving
1233a67387eSmrg`configure' the option `--prefix=PREFIX'.
1243a67387eSmrg
1253a67387eSmrg   You can specify separate installation prefixes for
1263a67387eSmrgarchitecture-specific files and architecture-independent files.  If you
1273a67387eSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1283a67387eSmrgPREFIX as the prefix for installing programs and libraries.
1293a67387eSmrgDocumentation and other data files still use the regular prefix.
1303a67387eSmrg
1313a67387eSmrg   In addition, if you use an unusual directory layout you can give
1323a67387eSmrgoptions like `--bindir=DIR' to specify different values for particular
1333a67387eSmrgkinds of files.  Run `configure --help' for a list of the directories
1343a67387eSmrgyou can set and what kinds of files go in them.
1353a67387eSmrg
1363a67387eSmrg   If the package supports it, you can cause programs to be installed
1373a67387eSmrgwith an extra prefix or suffix on their names by giving `configure' the
1383a67387eSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1393a67387eSmrg
1403a67387eSmrgOptional Features
1413a67387eSmrg=================
1423a67387eSmrg
1433a67387eSmrg   Some packages pay attention to `--enable-FEATURE' options to
1443a67387eSmrg`configure', where FEATURE indicates an optional part of the package.
1453a67387eSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
1463a67387eSmrgis something like `gnu-as' or `x' (for the X Window System).  The
1473a67387eSmrg`README' should mention any `--enable-' and `--with-' options that the
1483a67387eSmrgpackage recognizes.
1493a67387eSmrg
1503a67387eSmrg   For packages that use the X Window System, `configure' can usually
1513a67387eSmrgfind the X include and library files automatically, but if it doesn't,
1523a67387eSmrgyou can use the `configure' options `--x-includes=DIR' and
1533a67387eSmrg`--x-libraries=DIR' to specify their locations.
1543a67387eSmrg
1553a67387eSmrgParticular systems
1563a67387eSmrg==================
1573a67387eSmrg
1583a67387eSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
1593a67387eSmrgCC is not installed, it is recommended to use the following options in
1603a67387eSmrgorder to use an ANSI C compiler:
1613a67387eSmrg
1623a67387eSmrg     ./configure CC="cc -Ae"
1633a67387eSmrg
1643a67387eSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
1653a67387eSmrg
1663a67387eSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
1673a67387eSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
1683a67387eSmrga workaround.  If GNU CC is not installed, it is therefore recommended
1693a67387eSmrgto try
1703a67387eSmrg
1713a67387eSmrg     ./configure CC="cc"
1723a67387eSmrg
1733a67387eSmrgand if that doesn't work, try
1743a67387eSmrg
1753a67387eSmrg     ./configure CC="cc -nodtk"
1763a67387eSmrg
1773a67387eSmrgSpecifying the System Type
1783a67387eSmrg==========================
1793a67387eSmrg
1803a67387eSmrg   There may be some features `configure' cannot figure out
1813a67387eSmrgautomatically, but needs to determine by the type of machine the package
1823a67387eSmrgwill run on.  Usually, assuming the package is built to be run on the
1833a67387eSmrg_same_ architectures, `configure' can figure that out, but if it prints
1843a67387eSmrga message saying it cannot guess the machine type, give it the
1853a67387eSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
1863a67387eSmrgtype, such as `sun4', or a canonical name which has the form:
1873a67387eSmrg
1883a67387eSmrg     CPU-COMPANY-SYSTEM
1893a67387eSmrg
1903a67387eSmrgwhere SYSTEM can have one of these forms:
1913a67387eSmrg
1923a67387eSmrg     OS KERNEL-OS
1933a67387eSmrg
1943a67387eSmrg   See the file `config.sub' for the possible values of each field.  If
1953a67387eSmrg`config.sub' isn't included in this package, then this package doesn't
1963a67387eSmrgneed to know the machine type.
1973a67387eSmrg
1983a67387eSmrg   If you are _building_ compiler tools for cross-compiling, you should
1993a67387eSmrguse the option `--target=TYPE' to select the type of system they will
2003a67387eSmrgproduce code for.
2013a67387eSmrg
2023a67387eSmrg   If you want to _use_ a cross compiler, that generates code for a
2033a67387eSmrgplatform different from the build platform, you should specify the
2043a67387eSmrg"host" platform (i.e., that on which the generated programs will
2053a67387eSmrgeventually be run) with `--host=TYPE'.
2063a67387eSmrg
2073a67387eSmrgSharing Defaults
2083a67387eSmrg================
2093a67387eSmrg
2103a67387eSmrg   If you want to set default values for `configure' scripts to share,
2113a67387eSmrgyou can create a site shell script called `config.site' that gives
2123a67387eSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2133a67387eSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2143a67387eSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2153a67387eSmrg`CONFIG_SITE' environment variable to the location of the site script.
2163a67387eSmrgA warning: not all `configure' scripts look for a site script.
2173a67387eSmrg
2183a67387eSmrgDefining Variables
2193a67387eSmrg==================
2203a67387eSmrg
2213a67387eSmrg   Variables not defined in a site shell script can be set in the
2223a67387eSmrgenvironment passed to `configure'.  However, some packages may run
2233a67387eSmrgconfigure again during the build, and the customized values of these
2243a67387eSmrgvariables may be lost.  In order to avoid this problem, you should set
2253a67387eSmrgthem in the `configure' command line, using `VAR=value'.  For example:
2263a67387eSmrg
2273a67387eSmrg     ./configure CC=/usr/local2/bin/gcc
2283a67387eSmrg
2293a67387eSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
2303a67387eSmrgoverridden in the site shell script).
2313a67387eSmrg
2323a67387eSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
2333a67387eSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
2343a67387eSmrg
2353a67387eSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
2363a67387eSmrg
2373a67387eSmrg`configure' Invocation
2383a67387eSmrg======================
2393a67387eSmrg
2403a67387eSmrg   `configure' recognizes the following options to control how it
2413a67387eSmrgoperates.
2423a67387eSmrg
2433a67387eSmrg`--help'
2443a67387eSmrg`-h'
2453a67387eSmrg     Print a summary of all of the options to `configure', and exit.
2463a67387eSmrg
2473a67387eSmrg`--help=short'
2483a67387eSmrg`--help=recursive'
2493a67387eSmrg     Print a summary of the options unique to this package's
2503a67387eSmrg     `configure', and exit.  The `short' variant lists options used
2513a67387eSmrg     only in the top level, while the `recursive' variant lists options
2523a67387eSmrg     also present in any nested packages.
2533a67387eSmrg
2543a67387eSmrg`--version'
2553a67387eSmrg`-V'
2563a67387eSmrg     Print the version of Autoconf used to generate the `configure'
2573a67387eSmrg     script, and exit.
2583a67387eSmrg
2593a67387eSmrg`--cache-file=FILE'
2603a67387eSmrg     Enable the cache: use and save the results of the tests in FILE,
2613a67387eSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
2623a67387eSmrg     disable caching.
2633a67387eSmrg
2643a67387eSmrg`--config-cache'
2653a67387eSmrg`-C'
2663a67387eSmrg     Alias for `--cache-file=config.cache'.
2673a67387eSmrg
2683a67387eSmrg`--quiet'
2693a67387eSmrg`--silent'
2703a67387eSmrg`-q'
2713a67387eSmrg     Do not print messages saying which checks are being made.  To
2723a67387eSmrg     suppress all normal output, redirect it to `/dev/null' (any error
2733a67387eSmrg     messages will still be shown).
2743a67387eSmrg
2753a67387eSmrg`--srcdir=DIR'
2763a67387eSmrg     Look for the package's source code in directory DIR.  Usually
2773a67387eSmrg     `configure' can determine that directory automatically.
2783a67387eSmrg
2793a67387eSmrg`--prefix=DIR'
2803a67387eSmrg     Use DIR as the installation prefix.  *Note Installation Names::
2813a67387eSmrg     for more details, including other options available for fine-tuning
2823a67387eSmrg     the installation locations.
2833a67387eSmrg
2843a67387eSmrg`--no-create'
2853a67387eSmrg`-n'
2863a67387eSmrg     Run the configure checks, but stop before creating any output
2873a67387eSmrg     files.
2883a67387eSmrg
2893a67387eSmrg`configure' also accepts some other, not widely useful, options.  Run
2903a67387eSmrg`configure --help' for more details.
2913a67387eSmrg
292