INSTALL revision 41c30155
141c30155SmrgInstallation Instructions
241c30155Smrg*************************
341c30155Smrg
441c30155SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
541c30155Smrg2006, 2007, 2008 Free Software Foundation, Inc.
641c30155Smrg
741c30155Smrg   This file is free documentation; the Free Software Foundation gives
841c30155Smrgunlimited permission to copy, distribute and modify it.
941c30155Smrg
1041c30155SmrgBasic Installation
1141c30155Smrg==================
1241c30155Smrg
1341c30155Smrg   Briefly, the shell commands `./configure; make; make install' should
1441c30155Smrgconfigure, build, and install this package.  The following
1541c30155Smrgmore-detailed instructions are generic; see the `README' file for
1641c30155Smrginstructions specific to this package.
1741c30155Smrg
1841c30155Smrg   The `configure' shell script attempts to guess correct values for
1941c30155Smrgvarious system-dependent variables used during compilation.  It uses
2041c30155Smrgthose values to create a `Makefile' in each directory of the package.
2141c30155SmrgIt may also create one or more `.h' files containing system-dependent
2241c30155Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2341c30155Smrgyou can run in the future to recreate the current configuration, and a
2441c30155Smrgfile `config.log' containing compiler output (useful mainly for
2541c30155Smrgdebugging `configure').
2641c30155Smrg
2741c30155Smrg   It can also use an optional file (typically called `config.cache'
2841c30155Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2941c30155Smrgthe results of its tests to speed up reconfiguring.  Caching is
3041c30155Smrgdisabled by default to prevent problems with accidental use of stale
3141c30155Smrgcache files.
3241c30155Smrg
3341c30155Smrg   If you need to do unusual things to compile the package, please try
3441c30155Smrgto figure out how `configure' could check whether to do them, and mail
3541c30155Smrgdiffs or instructions to the address given in the `README' so they can
3641c30155Smrgbe considered for the next release.  If you are using the cache, and at
3741c30155Smrgsome point `config.cache' contains results you don't want to keep, you
3841c30155Smrgmay remove or edit it.
3941c30155Smrg
4041c30155Smrg   The file `configure.ac' (or `configure.in') is used to create
4141c30155Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4241c30155Smrgyou want to change it or regenerate `configure' using a newer version
4341c30155Smrgof `autoconf'.
4441c30155Smrg
4541c30155SmrgThe simplest way to compile this package is:
4641c30155Smrg
4741c30155Smrg  1. `cd' to the directory containing the package's source code and type
4841c30155Smrg     `./configure' to configure the package for your system.
4941c30155Smrg
5041c30155Smrg     Running `configure' might take a while.  While running, it prints
5141c30155Smrg     some messages telling which features it is checking for.
5241c30155Smrg
5341c30155Smrg  2. Type `make' to compile the package.
5441c30155Smrg
5541c30155Smrg  3. Optionally, type `make check' to run any self-tests that come with
5641c30155Smrg     the package.
5741c30155Smrg
5841c30155Smrg  4. Type `make install' to install the programs and any data files and
5941c30155Smrg     documentation.
6041c30155Smrg
6141c30155Smrg  5. You can remove the program binaries and object files from the
6241c30155Smrg     source code directory by typing `make clean'.  To also remove the
6341c30155Smrg     files that `configure' created (so you can compile the package for
6441c30155Smrg     a different kind of computer), type `make distclean'.  There is
6541c30155Smrg     also a `make maintainer-clean' target, but that is intended mainly
6641c30155Smrg     for the package's developers.  If you use it, you may have to get
6741c30155Smrg     all sorts of other programs in order to regenerate files that came
6841c30155Smrg     with the distribution.
6941c30155Smrg
7041c30155Smrg  6. Often, you can also type `make uninstall' to remove the installed
7141c30155Smrg     files again.
7241c30155Smrg
7341c30155SmrgCompilers and Options
7441c30155Smrg=====================
7541c30155Smrg
7641c30155Smrg   Some systems require unusual options for compilation or linking that
7741c30155Smrgthe `configure' script does not know about.  Run `./configure --help'
7841c30155Smrgfor details on some of the pertinent environment variables.
7941c30155Smrg
8041c30155Smrg   You can give `configure' initial values for configuration parameters
8141c30155Smrgby setting variables in the command line or in the environment.  Here
8241c30155Smrgis an example:
8341c30155Smrg
8441c30155Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8541c30155Smrg
8641c30155Smrg   *Note Defining Variables::, for more details.
8741c30155Smrg
8841c30155SmrgCompiling For Multiple Architectures
8941c30155Smrg====================================
9041c30155Smrg
9141c30155Smrg   You can compile the package for more than one kind of computer at the
9241c30155Smrgsame time, by placing the object files for each architecture in their
9341c30155Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9441c30155Smrgdirectory where you want the object files and executables to go and run
9541c30155Smrgthe `configure' script.  `configure' automatically checks for the
9641c30155Smrgsource code in the directory that `configure' is in and in `..'.
9741c30155Smrg
9841c30155Smrg   With a non-GNU `make', it is safer to compile the package for one
9941c30155Smrgarchitecture at a time in the source code directory.  After you have
10041c30155Smrginstalled the package for one architecture, use `make distclean' before
10141c30155Smrgreconfiguring for another architecture.
10241c30155Smrg
10341c30155Smrg   On MacOS X 10.5 and later systems, you can create libraries and
10441c30155Smrgexecutables that work on multiple system types--known as "fat" or
10541c30155Smrg"universal" binaries--by specifying multiple `-arch' options to the
10641c30155Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
10741c30155Smrgthis:
10841c30155Smrg
10941c30155Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11041c30155Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11141c30155Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
11241c30155Smrg
11341c30155Smrg   This is not guaranteed to produce working output in all cases, you
11441c30155Smrgmay have to build one architecture at a time and combine the results
11541c30155Smrgusing the `lipo' tool if you have problems.
11641c30155Smrg
11741c30155SmrgInstallation Names
11841c30155Smrg==================
11941c30155Smrg
12041c30155Smrg   By default, `make install' installs the package's commands under
12141c30155Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12241c30155Smrgcan specify an installation prefix other than `/usr/local' by giving
12341c30155Smrg`configure' the option `--prefix=PREFIX'.
12441c30155Smrg
12541c30155Smrg   You can specify separate installation prefixes for
12641c30155Smrgarchitecture-specific files and architecture-independent files.  If you
12741c30155Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12841c30155SmrgPREFIX as the prefix for installing programs and libraries.
12941c30155SmrgDocumentation and other data files still use the regular prefix.
13041c30155Smrg
13141c30155Smrg   In addition, if you use an unusual directory layout you can give
13241c30155Smrgoptions like `--bindir=DIR' to specify different values for particular
13341c30155Smrgkinds of files.  Run `configure --help' for a list of the directories
13441c30155Smrgyou can set and what kinds of files go in them.
13541c30155Smrg
13641c30155Smrg   If the package supports it, you can cause programs to be installed
13741c30155Smrgwith an extra prefix or suffix on their names by giving `configure' the
13841c30155Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13941c30155Smrg
14041c30155SmrgOptional Features
14141c30155Smrg=================
14241c30155Smrg
14341c30155Smrg   Some packages pay attention to `--enable-FEATURE' options to
14441c30155Smrg`configure', where FEATURE indicates an optional part of the package.
14541c30155SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14641c30155Smrgis something like `gnu-as' or `x' (for the X Window System).  The
14741c30155Smrg`README' should mention any `--enable-' and `--with-' options that the
14841c30155Smrgpackage recognizes.
14941c30155Smrg
15041c30155Smrg   For packages that use the X Window System, `configure' can usually
15141c30155Smrgfind the X include and library files automatically, but if it doesn't,
15241c30155Smrgyou can use the `configure' options `--x-includes=DIR' and
15341c30155Smrg`--x-libraries=DIR' to specify their locations.
15441c30155Smrg
15541c30155SmrgParticular systems
15641c30155Smrg==================
15741c30155Smrg
15841c30155Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15941c30155SmrgCC is not installed, it is recommended to use the following options in
16041c30155Smrgorder to use an ANSI C compiler:
16141c30155Smrg
16241c30155Smrg     ./configure CC="cc -Ae"
16341c30155Smrg
16441c30155Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16541c30155Smrg
16641c30155Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16741c30155Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16841c30155Smrga workaround.  If GNU CC is not installed, it is therefore recommended
16941c30155Smrgto try
17041c30155Smrg
17141c30155Smrg     ./configure CC="cc"
17241c30155Smrg
17341c30155Smrgand if that doesn't work, try
17441c30155Smrg
17541c30155Smrg     ./configure CC="cc -nodtk"
17641c30155Smrg
17741c30155SmrgSpecifying the System Type
17841c30155Smrg==========================
17941c30155Smrg
18041c30155Smrg   There may be some features `configure' cannot figure out
18141c30155Smrgautomatically, but needs to determine by the type of machine the package
18241c30155Smrgwill run on.  Usually, assuming the package is built to be run on the
18341c30155Smrg_same_ architectures, `configure' can figure that out, but if it prints
18441c30155Smrga message saying it cannot guess the machine type, give it the
18541c30155Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
18641c30155Smrgtype, such as `sun4', or a canonical name which has the form:
18741c30155Smrg
18841c30155Smrg     CPU-COMPANY-SYSTEM
18941c30155Smrg
19041c30155Smrgwhere SYSTEM can have one of these forms:
19141c30155Smrg
19241c30155Smrg     OS KERNEL-OS
19341c30155Smrg
19441c30155Smrg   See the file `config.sub' for the possible values of each field.  If
19541c30155Smrg`config.sub' isn't included in this package, then this package doesn't
19641c30155Smrgneed to know the machine type.
19741c30155Smrg
19841c30155Smrg   If you are _building_ compiler tools for cross-compiling, you should
19941c30155Smrguse the option `--target=TYPE' to select the type of system they will
20041c30155Smrgproduce code for.
20141c30155Smrg
20241c30155Smrg   If you want to _use_ a cross compiler, that generates code for a
20341c30155Smrgplatform different from the build platform, you should specify the
20441c30155Smrg"host" platform (i.e., that on which the generated programs will
20541c30155Smrgeventually be run) with `--host=TYPE'.
20641c30155Smrg
20741c30155SmrgSharing Defaults
20841c30155Smrg================
20941c30155Smrg
21041c30155Smrg   If you want to set default values for `configure' scripts to share,
21141c30155Smrgyou can create a site shell script called `config.site' that gives
21241c30155Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
21341c30155Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21441c30155Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21541c30155Smrg`CONFIG_SITE' environment variable to the location of the site script.
21641c30155SmrgA warning: not all `configure' scripts look for a site script.
21741c30155Smrg
21841c30155SmrgDefining Variables
21941c30155Smrg==================
22041c30155Smrg
22141c30155Smrg   Variables not defined in a site shell script can be set in the
22241c30155Smrgenvironment passed to `configure'.  However, some packages may run
22341c30155Smrgconfigure again during the build, and the customized values of these
22441c30155Smrgvariables may be lost.  In order to avoid this problem, you should set
22541c30155Smrgthem in the `configure' command line, using `VAR=value'.  For example:
22641c30155Smrg
22741c30155Smrg     ./configure CC=/usr/local2/bin/gcc
22841c30155Smrg
22941c30155Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
23041c30155Smrgoverridden in the site shell script).
23141c30155Smrg
23241c30155SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23341c30155Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23441c30155Smrg
23541c30155Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23641c30155Smrg
23741c30155Smrg`configure' Invocation
23841c30155Smrg======================
23941c30155Smrg
24041c30155Smrg   `configure' recognizes the following options to control how it
24141c30155Smrgoperates.
24241c30155Smrg
24341c30155Smrg`--help'
24441c30155Smrg`-h'
24541c30155Smrg     Print a summary of all of the options to `configure', and exit.
24641c30155Smrg
24741c30155Smrg`--help=short'
24841c30155Smrg`--help=recursive'
24941c30155Smrg     Print a summary of the options unique to this package's
25041c30155Smrg     `configure', and exit.  The `short' variant lists options used
25141c30155Smrg     only in the top level, while the `recursive' variant lists options
25241c30155Smrg     also present in any nested packages.
25341c30155Smrg
25441c30155Smrg`--version'
25541c30155Smrg`-V'
25641c30155Smrg     Print the version of Autoconf used to generate the `configure'
25741c30155Smrg     script, and exit.
25841c30155Smrg
25941c30155Smrg`--cache-file=FILE'
26041c30155Smrg     Enable the cache: use and save the results of the tests in FILE,
26141c30155Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26241c30155Smrg     disable caching.
26341c30155Smrg
26441c30155Smrg`--config-cache'
26541c30155Smrg`-C'
26641c30155Smrg     Alias for `--cache-file=config.cache'.
26741c30155Smrg
26841c30155Smrg`--quiet'
26941c30155Smrg`--silent'
27041c30155Smrg`-q'
27141c30155Smrg     Do not print messages saying which checks are being made.  To
27241c30155Smrg     suppress all normal output, redirect it to `/dev/null' (any error
27341c30155Smrg     messages will still be shown).
27441c30155Smrg
27541c30155Smrg`--srcdir=DIR'
27641c30155Smrg     Look for the package's source code in directory DIR.  Usually
27741c30155Smrg     `configure' can determine that directory automatically.
27841c30155Smrg
27941c30155Smrg`--prefix=DIR'
28041c30155Smrg     Use DIR as the installation prefix.  *Note Installation Names::
28141c30155Smrg     for more details, including other options available for fine-tuning
28241c30155Smrg     the installation locations.
28341c30155Smrg
28441c30155Smrg`--no-create'
28541c30155Smrg`-n'
28641c30155Smrg     Run the configure checks, but stop before creating any output
28741c30155Smrg     files.
28841c30155Smrg
28941c30155Smrg`configure' also accepts some other, not widely useful, options.  Run
29041c30155Smrg`configure --help' for more details.
29141c30155Smrg
292