INSTALL revision 1a650d1e
11a650d1eSmrgInstallation Instructions
21a650d1eSmrg*************************
31a650d1eSmrg
41a650d1eSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
51a650d1eSmrg2006, 2007, 2008 Free Software Foundation, Inc.
61a650d1eSmrg
71a650d1eSmrg   This file is free documentation; the Free Software Foundation gives
81a650d1eSmrgunlimited permission to copy, distribute and modify it.
91a650d1eSmrg
101a650d1eSmrgBasic Installation
111a650d1eSmrg==================
121a650d1eSmrg
131a650d1eSmrg   Briefly, the shell commands `./configure; make; make install' should
141a650d1eSmrgconfigure, build, and install this package.  The following
151a650d1eSmrgmore-detailed instructions are generic; see the `README' file for
161a650d1eSmrginstructions specific to this package.
171a650d1eSmrg
181a650d1eSmrg   The `configure' shell script attempts to guess correct values for
191a650d1eSmrgvarious system-dependent variables used during compilation.  It uses
201a650d1eSmrgthose values to create a `Makefile' in each directory of the package.
211a650d1eSmrgIt may also create one or more `.h' files containing system-dependent
221a650d1eSmrgdefinitions.  Finally, it creates a shell script `config.status' that
231a650d1eSmrgyou can run in the future to recreate the current configuration, and a
241a650d1eSmrgfile `config.log' containing compiler output (useful mainly for
251a650d1eSmrgdebugging `configure').
261a650d1eSmrg
271a650d1eSmrg   It can also use an optional file (typically called `config.cache'
281a650d1eSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
291a650d1eSmrgthe results of its tests to speed up reconfiguring.  Caching is
301a650d1eSmrgdisabled by default to prevent problems with accidental use of stale
311a650d1eSmrgcache files.
321a650d1eSmrg
331a650d1eSmrg   If you need to do unusual things to compile the package, please try
341a650d1eSmrgto figure out how `configure' could check whether to do them, and mail
351a650d1eSmrgdiffs or instructions to the address given in the `README' so they can
361a650d1eSmrgbe considered for the next release.  If you are using the cache, and at
371a650d1eSmrgsome point `config.cache' contains results you don't want to keep, you
381a650d1eSmrgmay remove or edit it.
391a650d1eSmrg
401a650d1eSmrg   The file `configure.ac' (or `configure.in') is used to create
411a650d1eSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
421a650d1eSmrgyou want to change it or regenerate `configure' using a newer version
431a650d1eSmrgof `autoconf'.
441a650d1eSmrg
451a650d1eSmrgThe simplest way to compile this package is:
461a650d1eSmrg
471a650d1eSmrg  1. `cd' to the directory containing the package's source code and type
481a650d1eSmrg     `./configure' to configure the package for your system.
491a650d1eSmrg
501a650d1eSmrg     Running `configure' might take a while.  While running, it prints
511a650d1eSmrg     some messages telling which features it is checking for.
521a650d1eSmrg
531a650d1eSmrg  2. Type `make' to compile the package.
541a650d1eSmrg
551a650d1eSmrg  3. Optionally, type `make check' to run any self-tests that come with
561a650d1eSmrg     the package.
571a650d1eSmrg
581a650d1eSmrg  4. Type `make install' to install the programs and any data files and
591a650d1eSmrg     documentation.
601a650d1eSmrg
611a650d1eSmrg  5. You can remove the program binaries and object files from the
621a650d1eSmrg     source code directory by typing `make clean'.  To also remove the
631a650d1eSmrg     files that `configure' created (so you can compile the package for
641a650d1eSmrg     a different kind of computer), type `make distclean'.  There is
651a650d1eSmrg     also a `make maintainer-clean' target, but that is intended mainly
661a650d1eSmrg     for the package's developers.  If you use it, you may have to get
671a650d1eSmrg     all sorts of other programs in order to regenerate files that came
681a650d1eSmrg     with the distribution.
691a650d1eSmrg
701a650d1eSmrg  6. Often, you can also type `make uninstall' to remove the installed
711a650d1eSmrg     files again.
721a650d1eSmrg
731a650d1eSmrgCompilers and Options
741a650d1eSmrg=====================
751a650d1eSmrg
761a650d1eSmrg   Some systems require unusual options for compilation or linking that
771a650d1eSmrgthe `configure' script does not know about.  Run `./configure --help'
781a650d1eSmrgfor details on some of the pertinent environment variables.
791a650d1eSmrg
801a650d1eSmrg   You can give `configure' initial values for configuration parameters
811a650d1eSmrgby setting variables in the command line or in the environment.  Here
821a650d1eSmrgis an example:
831a650d1eSmrg
841a650d1eSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
851a650d1eSmrg
861a650d1eSmrg   *Note Defining Variables::, for more details.
871a650d1eSmrg
881a650d1eSmrgCompiling For Multiple Architectures
891a650d1eSmrg====================================
901a650d1eSmrg
911a650d1eSmrg   You can compile the package for more than one kind of computer at the
921a650d1eSmrgsame time, by placing the object files for each architecture in their
931a650d1eSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
941a650d1eSmrgdirectory where you want the object files and executables to go and run
951a650d1eSmrgthe `configure' script.  `configure' automatically checks for the
961a650d1eSmrgsource code in the directory that `configure' is in and in `..'.
971a650d1eSmrg
981a650d1eSmrg   With a non-GNU `make', it is safer to compile the package for one
991a650d1eSmrgarchitecture at a time in the source code directory.  After you have
1001a650d1eSmrginstalled the package for one architecture, use `make distclean' before
1011a650d1eSmrgreconfiguring for another architecture.
1021a650d1eSmrg
1031a650d1eSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1041a650d1eSmrgexecutables that work on multiple system types--known as "fat" or
1051a650d1eSmrg"universal" binaries--by specifying multiple `-arch' options to the
1061a650d1eSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1071a650d1eSmrgthis:
1081a650d1eSmrg
1091a650d1eSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1101a650d1eSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1111a650d1eSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1121a650d1eSmrg
1131a650d1eSmrg   This is not guaranteed to produce working output in all cases, you
1141a650d1eSmrgmay have to build one architecture at a time and combine the results
1151a650d1eSmrgusing the `lipo' tool if you have problems.
1161a650d1eSmrg
1171a650d1eSmrgInstallation Names
1181a650d1eSmrg==================
1191a650d1eSmrg
1201a650d1eSmrg   By default, `make install' installs the package's commands under
1211a650d1eSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1221a650d1eSmrgcan specify an installation prefix other than `/usr/local' by giving
1231a650d1eSmrg`configure' the option `--prefix=PREFIX'.
1241a650d1eSmrg
1251a650d1eSmrg   You can specify separate installation prefixes for
1261a650d1eSmrgarchitecture-specific files and architecture-independent files.  If you
1271a650d1eSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1281a650d1eSmrgPREFIX as the prefix for installing programs and libraries.
1291a650d1eSmrgDocumentation and other data files still use the regular prefix.
1301a650d1eSmrg
1311a650d1eSmrg   In addition, if you use an unusual directory layout you can give
1321a650d1eSmrgoptions like `--bindir=DIR' to specify different values for particular
1331a650d1eSmrgkinds of files.  Run `configure --help' for a list of the directories
1341a650d1eSmrgyou can set and what kinds of files go in them.
1351a650d1eSmrg
1361a650d1eSmrg   If the package supports it, you can cause programs to be installed
1371a650d1eSmrgwith an extra prefix or suffix on their names by giving `configure' the
1381a650d1eSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1391a650d1eSmrg
1401a650d1eSmrgOptional Features
1411a650d1eSmrg=================
1421a650d1eSmrg
1431a650d1eSmrg   Some packages pay attention to `--enable-FEATURE' options to
1441a650d1eSmrg`configure', where FEATURE indicates an optional part of the package.
1451a650d1eSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
1461a650d1eSmrgis something like `gnu-as' or `x' (for the X Window System).  The
1471a650d1eSmrg`README' should mention any `--enable-' and `--with-' options that the
1481a650d1eSmrgpackage recognizes.
1491a650d1eSmrg
1501a650d1eSmrg   For packages that use the X Window System, `configure' can usually
1511a650d1eSmrgfind the X include and library files automatically, but if it doesn't,
1521a650d1eSmrgyou can use the `configure' options `--x-includes=DIR' and
1531a650d1eSmrg`--x-libraries=DIR' to specify their locations.
1541a650d1eSmrg
1551a650d1eSmrgParticular systems
1561a650d1eSmrg==================
1571a650d1eSmrg
1581a650d1eSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
1591a650d1eSmrgCC is not installed, it is recommended to use the following options in
1601a650d1eSmrgorder to use an ANSI C compiler:
1611a650d1eSmrg
1621a650d1eSmrg     ./configure CC="cc -Ae"
1631a650d1eSmrg
1641a650d1eSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
1651a650d1eSmrg
1661a650d1eSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
1671a650d1eSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
1681a650d1eSmrga workaround.  If GNU CC is not installed, it is therefore recommended
1691a650d1eSmrgto try
1701a650d1eSmrg
1711a650d1eSmrg     ./configure CC="cc"
1721a650d1eSmrg
1731a650d1eSmrgand if that doesn't work, try
1741a650d1eSmrg
1751a650d1eSmrg     ./configure CC="cc -nodtk"
1761a650d1eSmrg
1771a650d1eSmrgSpecifying the System Type
1781a650d1eSmrg==========================
1791a650d1eSmrg
1801a650d1eSmrg   There may be some features `configure' cannot figure out
1811a650d1eSmrgautomatically, but needs to determine by the type of machine the package
1821a650d1eSmrgwill run on.  Usually, assuming the package is built to be run on the
1831a650d1eSmrg_same_ architectures, `configure' can figure that out, but if it prints
1841a650d1eSmrga message saying it cannot guess the machine type, give it the
1851a650d1eSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
1861a650d1eSmrgtype, such as `sun4', or a canonical name which has the form:
1871a650d1eSmrg
1881a650d1eSmrg     CPU-COMPANY-SYSTEM
1891a650d1eSmrg
1901a650d1eSmrgwhere SYSTEM can have one of these forms:
1911a650d1eSmrg
1921a650d1eSmrg     OS KERNEL-OS
1931a650d1eSmrg
1941a650d1eSmrg   See the file `config.sub' for the possible values of each field.  If
1951a650d1eSmrg`config.sub' isn't included in this package, then this package doesn't
1961a650d1eSmrgneed to know the machine type.
1971a650d1eSmrg
1981a650d1eSmrg   If you are _building_ compiler tools for cross-compiling, you should
1991a650d1eSmrguse the option `--target=TYPE' to select the type of system they will
2001a650d1eSmrgproduce code for.
2011a650d1eSmrg
2021a650d1eSmrg   If you want to _use_ a cross compiler, that generates code for a
2031a650d1eSmrgplatform different from the build platform, you should specify the
2041a650d1eSmrg"host" platform (i.e., that on which the generated programs will
2051a650d1eSmrgeventually be run) with `--host=TYPE'.
2061a650d1eSmrg
2071a650d1eSmrgSharing Defaults
2081a650d1eSmrg================
2091a650d1eSmrg
2101a650d1eSmrg   If you want to set default values for `configure' scripts to share,
2111a650d1eSmrgyou can create a site shell script called `config.site' that gives
2121a650d1eSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2131a650d1eSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2141a650d1eSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2151a650d1eSmrg`CONFIG_SITE' environment variable to the location of the site script.
2161a650d1eSmrgA warning: not all `configure' scripts look for a site script.
2171a650d1eSmrg
2181a650d1eSmrgDefining Variables
2191a650d1eSmrg==================
2201a650d1eSmrg
2211a650d1eSmrg   Variables not defined in a site shell script can be set in the
2221a650d1eSmrgenvironment passed to `configure'.  However, some packages may run
2231a650d1eSmrgconfigure again during the build, and the customized values of these
2241a650d1eSmrgvariables may be lost.  In order to avoid this problem, you should set
2251a650d1eSmrgthem in the `configure' command line, using `VAR=value'.  For example:
2261a650d1eSmrg
2271a650d1eSmrg     ./configure CC=/usr/local2/bin/gcc
2281a650d1eSmrg
2291a650d1eSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
2301a650d1eSmrgoverridden in the site shell script).
2311a650d1eSmrg
2321a650d1eSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
2331a650d1eSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
2341a650d1eSmrg
2351a650d1eSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
2361a650d1eSmrg
2371a650d1eSmrg`configure' Invocation
2381a650d1eSmrg======================
2391a650d1eSmrg
2401a650d1eSmrg   `configure' recognizes the following options to control how it
2411a650d1eSmrgoperates.
2421a650d1eSmrg
2431a650d1eSmrg`--help'
2441a650d1eSmrg`-h'
2451a650d1eSmrg     Print a summary of all of the options to `configure', and exit.
2461a650d1eSmrg
2471a650d1eSmrg`--help=short'
2481a650d1eSmrg`--help=recursive'
2491a650d1eSmrg     Print a summary of the options unique to this package's
2501a650d1eSmrg     `configure', and exit.  The `short' variant lists options used
2511a650d1eSmrg     only in the top level, while the `recursive' variant lists options
2521a650d1eSmrg     also present in any nested packages.
2531a650d1eSmrg
2541a650d1eSmrg`--version'
2551a650d1eSmrg`-V'
2561a650d1eSmrg     Print the version of Autoconf used to generate the `configure'
2571a650d1eSmrg     script, and exit.
2581a650d1eSmrg
2591a650d1eSmrg`--cache-file=FILE'
2601a650d1eSmrg     Enable the cache: use and save the results of the tests in FILE,
2611a650d1eSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
2621a650d1eSmrg     disable caching.
2631a650d1eSmrg
2641a650d1eSmrg`--config-cache'
2651a650d1eSmrg`-C'
2661a650d1eSmrg     Alias for `--cache-file=config.cache'.
2671a650d1eSmrg
2681a650d1eSmrg`--quiet'
2691a650d1eSmrg`--silent'
2701a650d1eSmrg`-q'
2711a650d1eSmrg     Do not print messages saying which checks are being made.  To
2721a650d1eSmrg     suppress all normal output, redirect it to `/dev/null' (any error
2731a650d1eSmrg     messages will still be shown).
2741a650d1eSmrg
2751a650d1eSmrg`--srcdir=DIR'
2761a650d1eSmrg     Look for the package's source code in directory DIR.  Usually
2771a650d1eSmrg     `configure' can determine that directory automatically.
2781a650d1eSmrg
2791a650d1eSmrg`--prefix=DIR'
2801a650d1eSmrg     Use DIR as the installation prefix.  *Note Installation Names::
2811a650d1eSmrg     for more details, including other options available for fine-tuning
2821a650d1eSmrg     the installation locations.
2831a650d1eSmrg
2841a650d1eSmrg`--no-create'
2851a650d1eSmrg`-n'
2861a650d1eSmrg     Run the configure checks, but stop before creating any output
2871a650d1eSmrg     files.
2881a650d1eSmrg
2891a650d1eSmrg`configure' also accepts some other, not widely useful, options.  Run
2901a650d1eSmrg`configure --help' for more details.
2911a650d1eSmrg
292