INSTALL revision 42a55b46
142a55b46SmrgInstallation Instructions
242a55b46Smrg*************************
342a55b46Smrg
442a55b46SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
542a55b46Smrg2006, 2007, 2008 Free Software Foundation, Inc.
642a55b46Smrg
742a55b46Smrg   This file is free documentation; the Free Software Foundation gives
842a55b46Smrgunlimited permission to copy, distribute and modify it.
942a55b46Smrg
1042a55b46SmrgBasic Installation
1142a55b46Smrg==================
1242a55b46Smrg
1342a55b46Smrg   Briefly, the shell commands `./configure; make; make install' should
1442a55b46Smrgconfigure, build, and install this package.  The following
1542a55b46Smrgmore-detailed instructions are generic; see the `README' file for
1642a55b46Smrginstructions specific to this package.
1742a55b46Smrg
1842a55b46Smrg   The `configure' shell script attempts to guess correct values for
1942a55b46Smrgvarious system-dependent variables used during compilation.  It uses
2042a55b46Smrgthose values to create a `Makefile' in each directory of the package.
2142a55b46SmrgIt may also create one or more `.h' files containing system-dependent
2242a55b46Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2342a55b46Smrgyou can run in the future to recreate the current configuration, and a
2442a55b46Smrgfile `config.log' containing compiler output (useful mainly for
2542a55b46Smrgdebugging `configure').
2642a55b46Smrg
2742a55b46Smrg   It can also use an optional file (typically called `config.cache'
2842a55b46Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2942a55b46Smrgthe results of its tests to speed up reconfiguring.  Caching is
3042a55b46Smrgdisabled by default to prevent problems with accidental use of stale
3142a55b46Smrgcache files.
3242a55b46Smrg
3342a55b46Smrg   If you need to do unusual things to compile the package, please try
3442a55b46Smrgto figure out how `configure' could check whether to do them, and mail
3542a55b46Smrgdiffs or instructions to the address given in the `README' so they can
3642a55b46Smrgbe considered for the next release.  If you are using the cache, and at
3742a55b46Smrgsome point `config.cache' contains results you don't want to keep, you
3842a55b46Smrgmay remove or edit it.
3942a55b46Smrg
4042a55b46Smrg   The file `configure.ac' (or `configure.in') is used to create
4142a55b46Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4242a55b46Smrgyou want to change it or regenerate `configure' using a newer version
4342a55b46Smrgof `autoconf'.
4442a55b46Smrg
4542a55b46SmrgThe simplest way to compile this package is:
4642a55b46Smrg
4742a55b46Smrg  1. `cd' to the directory containing the package's source code and type
4842a55b46Smrg     `./configure' to configure the package for your system.
4942a55b46Smrg
5042a55b46Smrg     Running `configure' might take a while.  While running, it prints
5142a55b46Smrg     some messages telling which features it is checking for.
5242a55b46Smrg
5342a55b46Smrg  2. Type `make' to compile the package.
5442a55b46Smrg
5542a55b46Smrg  3. Optionally, type `make check' to run any self-tests that come with
5642a55b46Smrg     the package.
5742a55b46Smrg
5842a55b46Smrg  4. Type `make install' to install the programs and any data files and
5942a55b46Smrg     documentation.
6042a55b46Smrg
6142a55b46Smrg  5. You can remove the program binaries and object files from the
6242a55b46Smrg     source code directory by typing `make clean'.  To also remove the
6342a55b46Smrg     files that `configure' created (so you can compile the package for
6442a55b46Smrg     a different kind of computer), type `make distclean'.  There is
6542a55b46Smrg     also a `make maintainer-clean' target, but that is intended mainly
6642a55b46Smrg     for the package's developers.  If you use it, you may have to get
6742a55b46Smrg     all sorts of other programs in order to regenerate files that came
6842a55b46Smrg     with the distribution.
6942a55b46Smrg
7042a55b46Smrg  6. Often, you can also type `make uninstall' to remove the installed
7142a55b46Smrg     files again.
7242a55b46Smrg
7342a55b46SmrgCompilers and Options
7442a55b46Smrg=====================
7542a55b46Smrg
7642a55b46Smrg   Some systems require unusual options for compilation or linking that
7742a55b46Smrgthe `configure' script does not know about.  Run `./configure --help'
7842a55b46Smrgfor details on some of the pertinent environment variables.
7942a55b46Smrg
8042a55b46Smrg   You can give `configure' initial values for configuration parameters
8142a55b46Smrgby setting variables in the command line or in the environment.  Here
8242a55b46Smrgis an example:
8342a55b46Smrg
8442a55b46Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8542a55b46Smrg
8642a55b46Smrg   *Note Defining Variables::, for more details.
8742a55b46Smrg
8842a55b46SmrgCompiling For Multiple Architectures
8942a55b46Smrg====================================
9042a55b46Smrg
9142a55b46Smrg   You can compile the package for more than one kind of computer at the
9242a55b46Smrgsame time, by placing the object files for each architecture in their
9342a55b46Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9442a55b46Smrgdirectory where you want the object files and executables to go and run
9542a55b46Smrgthe `configure' script.  `configure' automatically checks for the
9642a55b46Smrgsource code in the directory that `configure' is in and in `..'.
9742a55b46Smrg
9842a55b46Smrg   With a non-GNU `make', it is safer to compile the package for one
9942a55b46Smrgarchitecture at a time in the source code directory.  After you have
10042a55b46Smrginstalled the package for one architecture, use `make distclean' before
10142a55b46Smrgreconfiguring for another architecture.
10242a55b46Smrg
10342a55b46Smrg   On MacOS X 10.5 and later systems, you can create libraries and
10442a55b46Smrgexecutables that work on multiple system types--known as "fat" or
10542a55b46Smrg"universal" binaries--by specifying multiple `-arch' options to the
10642a55b46Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
10742a55b46Smrgthis:
10842a55b46Smrg
10942a55b46Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11042a55b46Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11142a55b46Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
11242a55b46Smrg
11342a55b46Smrg   This is not guaranteed to produce working output in all cases, you
11442a55b46Smrgmay have to build one architecture at a time and combine the results
11542a55b46Smrgusing the `lipo' tool if you have problems.
11642a55b46Smrg
11742a55b46SmrgInstallation Names
11842a55b46Smrg==================
11942a55b46Smrg
12042a55b46Smrg   By default, `make install' installs the package's commands under
12142a55b46Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12242a55b46Smrgcan specify an installation prefix other than `/usr/local' by giving
12342a55b46Smrg`configure' the option `--prefix=PREFIX'.
12442a55b46Smrg
12542a55b46Smrg   You can specify separate installation prefixes for
12642a55b46Smrgarchitecture-specific files and architecture-independent files.  If you
12742a55b46Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12842a55b46SmrgPREFIX as the prefix for installing programs and libraries.
12942a55b46SmrgDocumentation and other data files still use the regular prefix.
13042a55b46Smrg
13142a55b46Smrg   In addition, if you use an unusual directory layout you can give
13242a55b46Smrgoptions like `--bindir=DIR' to specify different values for particular
13342a55b46Smrgkinds of files.  Run `configure --help' for a list of the directories
13442a55b46Smrgyou can set and what kinds of files go in them.
13542a55b46Smrg
13642a55b46Smrg   If the package supports it, you can cause programs to be installed
13742a55b46Smrgwith an extra prefix or suffix on their names by giving `configure' the
13842a55b46Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13942a55b46Smrg
14042a55b46SmrgOptional Features
14142a55b46Smrg=================
14242a55b46Smrg
14342a55b46Smrg   Some packages pay attention to `--enable-FEATURE' options to
14442a55b46Smrg`configure', where FEATURE indicates an optional part of the package.
14542a55b46SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14642a55b46Smrgis something like `gnu-as' or `x' (for the X Window System).  The
14742a55b46Smrg`README' should mention any `--enable-' and `--with-' options that the
14842a55b46Smrgpackage recognizes.
14942a55b46Smrg
15042a55b46Smrg   For packages that use the X Window System, `configure' can usually
15142a55b46Smrgfind the X include and library files automatically, but if it doesn't,
15242a55b46Smrgyou can use the `configure' options `--x-includes=DIR' and
15342a55b46Smrg`--x-libraries=DIR' to specify their locations.
15442a55b46Smrg
15542a55b46SmrgParticular systems
15642a55b46Smrg==================
15742a55b46Smrg
15842a55b46Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15942a55b46SmrgCC is not installed, it is recommended to use the following options in
16042a55b46Smrgorder to use an ANSI C compiler:
16142a55b46Smrg
16242a55b46Smrg     ./configure CC="cc -Ae"
16342a55b46Smrg
16442a55b46Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16542a55b46Smrg
16642a55b46Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16742a55b46Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16842a55b46Smrga workaround.  If GNU CC is not installed, it is therefore recommended
16942a55b46Smrgto try
17042a55b46Smrg
17142a55b46Smrg     ./configure CC="cc"
17242a55b46Smrg
17342a55b46Smrgand if that doesn't work, try
17442a55b46Smrg
17542a55b46Smrg     ./configure CC="cc -nodtk"
17642a55b46Smrg
17742a55b46SmrgSpecifying the System Type
17842a55b46Smrg==========================
17942a55b46Smrg
18042a55b46Smrg   There may be some features `configure' cannot figure out
18142a55b46Smrgautomatically, but needs to determine by the type of machine the package
18242a55b46Smrgwill run on.  Usually, assuming the package is built to be run on the
18342a55b46Smrg_same_ architectures, `configure' can figure that out, but if it prints
18442a55b46Smrga message saying it cannot guess the machine type, give it the
18542a55b46Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
18642a55b46Smrgtype, such as `sun4', or a canonical name which has the form:
18742a55b46Smrg
18842a55b46Smrg     CPU-COMPANY-SYSTEM
18942a55b46Smrg
19042a55b46Smrgwhere SYSTEM can have one of these forms:
19142a55b46Smrg
19242a55b46Smrg     OS KERNEL-OS
19342a55b46Smrg
19442a55b46Smrg   See the file `config.sub' for the possible values of each field.  If
19542a55b46Smrg`config.sub' isn't included in this package, then this package doesn't
19642a55b46Smrgneed to know the machine type.
19742a55b46Smrg
19842a55b46Smrg   If you are _building_ compiler tools for cross-compiling, you should
19942a55b46Smrguse the option `--target=TYPE' to select the type of system they will
20042a55b46Smrgproduce code for.
20142a55b46Smrg
20242a55b46Smrg   If you want to _use_ a cross compiler, that generates code for a
20342a55b46Smrgplatform different from the build platform, you should specify the
20442a55b46Smrg"host" platform (i.e., that on which the generated programs will
20542a55b46Smrgeventually be run) with `--host=TYPE'.
20642a55b46Smrg
20742a55b46SmrgSharing Defaults
20842a55b46Smrg================
20942a55b46Smrg
21042a55b46Smrg   If you want to set default values for `configure' scripts to share,
21142a55b46Smrgyou can create a site shell script called `config.site' that gives
21242a55b46Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
21342a55b46Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21442a55b46Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21542a55b46Smrg`CONFIG_SITE' environment variable to the location of the site script.
21642a55b46SmrgA warning: not all `configure' scripts look for a site script.
21742a55b46Smrg
21842a55b46SmrgDefining Variables
21942a55b46Smrg==================
22042a55b46Smrg
22142a55b46Smrg   Variables not defined in a site shell script can be set in the
22242a55b46Smrgenvironment passed to `configure'.  However, some packages may run
22342a55b46Smrgconfigure again during the build, and the customized values of these
22442a55b46Smrgvariables may be lost.  In order to avoid this problem, you should set
22542a55b46Smrgthem in the `configure' command line, using `VAR=value'.  For example:
22642a55b46Smrg
22742a55b46Smrg     ./configure CC=/usr/local2/bin/gcc
22842a55b46Smrg
22942a55b46Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
23042a55b46Smrgoverridden in the site shell script).
23142a55b46Smrg
23242a55b46SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23342a55b46Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23442a55b46Smrg
23542a55b46Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23642a55b46Smrg
23742a55b46Smrg`configure' Invocation
23842a55b46Smrg======================
23942a55b46Smrg
24042a55b46Smrg   `configure' recognizes the following options to control how it
24142a55b46Smrgoperates.
24242a55b46Smrg
24342a55b46Smrg`--help'
24442a55b46Smrg`-h'
24542a55b46Smrg     Print a summary of all of the options to `configure', and exit.
24642a55b46Smrg
24742a55b46Smrg`--help=short'
24842a55b46Smrg`--help=recursive'
24942a55b46Smrg     Print a summary of the options unique to this package's
25042a55b46Smrg     `configure', and exit.  The `short' variant lists options used
25142a55b46Smrg     only in the top level, while the `recursive' variant lists options
25242a55b46Smrg     also present in any nested packages.
25342a55b46Smrg
25442a55b46Smrg`--version'
25542a55b46Smrg`-V'
25642a55b46Smrg     Print the version of Autoconf used to generate the `configure'
25742a55b46Smrg     script, and exit.
25842a55b46Smrg
25942a55b46Smrg`--cache-file=FILE'
26042a55b46Smrg     Enable the cache: use and save the results of the tests in FILE,
26142a55b46Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26242a55b46Smrg     disable caching.
26342a55b46Smrg
26442a55b46Smrg`--config-cache'
26542a55b46Smrg`-C'
26642a55b46Smrg     Alias for `--cache-file=config.cache'.
26742a55b46Smrg
26842a55b46Smrg`--quiet'
26942a55b46Smrg`--silent'
27042a55b46Smrg`-q'
27142a55b46Smrg     Do not print messages saying which checks are being made.  To
27242a55b46Smrg     suppress all normal output, redirect it to `/dev/null' (any error
27342a55b46Smrg     messages will still be shown).
27442a55b46Smrg
27542a55b46Smrg`--srcdir=DIR'
27642a55b46Smrg     Look for the package's source code in directory DIR.  Usually
27742a55b46Smrg     `configure' can determine that directory automatically.
27842a55b46Smrg
27942a55b46Smrg`--prefix=DIR'
28042a55b46Smrg     Use DIR as the installation prefix.  *Note Installation Names::
28142a55b46Smrg     for more details, including other options available for fine-tuning
28242a55b46Smrg     the installation locations.
28342a55b46Smrg
28442a55b46Smrg`--no-create'
28542a55b46Smrg`-n'
28642a55b46Smrg     Run the configure checks, but stop before creating any output
28742a55b46Smrg     files.
28842a55b46Smrg
28942a55b46Smrg`configure' also accepts some other, not widely useful, options.  Run
29042a55b46Smrg`configure --help' for more details.
29142a55b46Smrg
292