INSTALL revision 11a29bac
111a29bacSmrgInstallation Instructions
211a29bacSmrg*************************
311a29bacSmrg
411a29bacSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
511a29bacSmrg2006, 2007, 2008 Free Software Foundation, Inc.
611a29bacSmrg
711a29bacSmrg   This file is free documentation; the Free Software Foundation gives
811a29bacSmrgunlimited permission to copy, distribute and modify it.
911a29bacSmrg
1011a29bacSmrgBasic Installation
1111a29bacSmrg==================
1211a29bacSmrg
1311a29bacSmrg   Briefly, the shell commands `./configure; make; make install' should
1411a29bacSmrgconfigure, build, and install this package.  The following
1511a29bacSmrgmore-detailed instructions are generic; see the `README' file for
1611a29bacSmrginstructions specific to this package.
1711a29bacSmrg
1811a29bacSmrg   The `configure' shell script attempts to guess correct values for
1911a29bacSmrgvarious system-dependent variables used during compilation.  It uses
2011a29bacSmrgthose values to create a `Makefile' in each directory of the package.
2111a29bacSmrgIt may also create one or more `.h' files containing system-dependent
2211a29bacSmrgdefinitions.  Finally, it creates a shell script `config.status' that
2311a29bacSmrgyou can run in the future to recreate the current configuration, and a
2411a29bacSmrgfile `config.log' containing compiler output (useful mainly for
2511a29bacSmrgdebugging `configure').
2611a29bacSmrg
2711a29bacSmrg   It can also use an optional file (typically called `config.cache'
2811a29bacSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2911a29bacSmrgthe results of its tests to speed up reconfiguring.  Caching is
3011a29bacSmrgdisabled by default to prevent problems with accidental use of stale
3111a29bacSmrgcache files.
3211a29bacSmrg
3311a29bacSmrg   If you need to do unusual things to compile the package, please try
3411a29bacSmrgto figure out how `configure' could check whether to do them, and mail
3511a29bacSmrgdiffs or instructions to the address given in the `README' so they can
3611a29bacSmrgbe considered for the next release.  If you are using the cache, and at
3711a29bacSmrgsome point `config.cache' contains results you don't want to keep, you
3811a29bacSmrgmay remove or edit it.
3911a29bacSmrg
4011a29bacSmrg   The file `configure.ac' (or `configure.in') is used to create
4111a29bacSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4211a29bacSmrgyou want to change it or regenerate `configure' using a newer version
4311a29bacSmrgof `autoconf'.
4411a29bacSmrg
4511a29bacSmrgThe simplest way to compile this package is:
4611a29bacSmrg
4711a29bacSmrg  1. `cd' to the directory containing the package's source code and type
4811a29bacSmrg     `./configure' to configure the package for your system.
4911a29bacSmrg
5011a29bacSmrg     Running `configure' might take a while.  While running, it prints
5111a29bacSmrg     some messages telling which features it is checking for.
5211a29bacSmrg
5311a29bacSmrg  2. Type `make' to compile the package.
5411a29bacSmrg
5511a29bacSmrg  3. Optionally, type `make check' to run any self-tests that come with
5611a29bacSmrg     the package.
5711a29bacSmrg
5811a29bacSmrg  4. Type `make install' to install the programs and any data files and
5911a29bacSmrg     documentation.
6011a29bacSmrg
6111a29bacSmrg  5. You can remove the program binaries and object files from the
6211a29bacSmrg     source code directory by typing `make clean'.  To also remove the
6311a29bacSmrg     files that `configure' created (so you can compile the package for
6411a29bacSmrg     a different kind of computer), type `make distclean'.  There is
6511a29bacSmrg     also a `make maintainer-clean' target, but that is intended mainly
6611a29bacSmrg     for the package's developers.  If you use it, you may have to get
6711a29bacSmrg     all sorts of other programs in order to regenerate files that came
6811a29bacSmrg     with the distribution.
6911a29bacSmrg
7011a29bacSmrg  6. Often, you can also type `make uninstall' to remove the installed
7111a29bacSmrg     files again.
7211a29bacSmrg
7311a29bacSmrgCompilers and Options
7411a29bacSmrg=====================
7511a29bacSmrg
7611a29bacSmrg   Some systems require unusual options for compilation or linking that
7711a29bacSmrgthe `configure' script does not know about.  Run `./configure --help'
7811a29bacSmrgfor details on some of the pertinent environment variables.
7911a29bacSmrg
8011a29bacSmrg   You can give `configure' initial values for configuration parameters
8111a29bacSmrgby setting variables in the command line or in the environment.  Here
8211a29bacSmrgis an example:
8311a29bacSmrg
8411a29bacSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8511a29bacSmrg
8611a29bacSmrg   *Note Defining Variables::, for more details.
8711a29bacSmrg
8811a29bacSmrgCompiling For Multiple Architectures
8911a29bacSmrg====================================
9011a29bacSmrg
9111a29bacSmrg   You can compile the package for more than one kind of computer at the
9211a29bacSmrgsame time, by placing the object files for each architecture in their
9311a29bacSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9411a29bacSmrgdirectory where you want the object files and executables to go and run
9511a29bacSmrgthe `configure' script.  `configure' automatically checks for the
9611a29bacSmrgsource code in the directory that `configure' is in and in `..'.
9711a29bacSmrg
9811a29bacSmrg   With a non-GNU `make', it is safer to compile the package for one
9911a29bacSmrgarchitecture at a time in the source code directory.  After you have
10011a29bacSmrginstalled the package for one architecture, use `make distclean' before
10111a29bacSmrgreconfiguring for another architecture.
10211a29bacSmrg
10311a29bacSmrg   On MacOS X 10.5 and later systems, you can create libraries and
10411a29bacSmrgexecutables that work on multiple system types--known as "fat" or
10511a29bacSmrg"universal" binaries--by specifying multiple `-arch' options to the
10611a29bacSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
10711a29bacSmrgthis:
10811a29bacSmrg
10911a29bacSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11011a29bacSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11111a29bacSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
11211a29bacSmrg
11311a29bacSmrg   This is not guaranteed to produce working output in all cases, you
11411a29bacSmrgmay have to build one architecture at a time and combine the results
11511a29bacSmrgusing the `lipo' tool if you have problems.
11611a29bacSmrg
11711a29bacSmrgInstallation Names
11811a29bacSmrg==================
11911a29bacSmrg
12011a29bacSmrg   By default, `make install' installs the package's commands under
12111a29bacSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12211a29bacSmrgcan specify an installation prefix other than `/usr/local' by giving
12311a29bacSmrg`configure' the option `--prefix=PREFIX'.
12411a29bacSmrg
12511a29bacSmrg   You can specify separate installation prefixes for
12611a29bacSmrgarchitecture-specific files and architecture-independent files.  If you
12711a29bacSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12811a29bacSmrgPREFIX as the prefix for installing programs and libraries.
12911a29bacSmrgDocumentation and other data files still use the regular prefix.
13011a29bacSmrg
13111a29bacSmrg   In addition, if you use an unusual directory layout you can give
13211a29bacSmrgoptions like `--bindir=DIR' to specify different values for particular
13311a29bacSmrgkinds of files.  Run `configure --help' for a list of the directories
13411a29bacSmrgyou can set and what kinds of files go in them.
13511a29bacSmrg
13611a29bacSmrg   If the package supports it, you can cause programs to be installed
13711a29bacSmrgwith an extra prefix or suffix on their names by giving `configure' the
13811a29bacSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13911a29bacSmrg
14011a29bacSmrgOptional Features
14111a29bacSmrg=================
14211a29bacSmrg
14311a29bacSmrg   Some packages pay attention to `--enable-FEATURE' options to
14411a29bacSmrg`configure', where FEATURE indicates an optional part of the package.
14511a29bacSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14611a29bacSmrgis something like `gnu-as' or `x' (for the X Window System).  The
14711a29bacSmrg`README' should mention any `--enable-' and `--with-' options that the
14811a29bacSmrgpackage recognizes.
14911a29bacSmrg
15011a29bacSmrg   For packages that use the X Window System, `configure' can usually
15111a29bacSmrgfind the X include and library files automatically, but if it doesn't,
15211a29bacSmrgyou can use the `configure' options `--x-includes=DIR' and
15311a29bacSmrg`--x-libraries=DIR' to specify their locations.
15411a29bacSmrg
15511a29bacSmrgParticular systems
15611a29bacSmrg==================
15711a29bacSmrg
15811a29bacSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15911a29bacSmrgCC is not installed, it is recommended to use the following options in
16011a29bacSmrgorder to use an ANSI C compiler:
16111a29bacSmrg
16211a29bacSmrg     ./configure CC="cc -Ae"
16311a29bacSmrg
16411a29bacSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16511a29bacSmrg
16611a29bacSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16711a29bacSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16811a29bacSmrga workaround.  If GNU CC is not installed, it is therefore recommended
16911a29bacSmrgto try
17011a29bacSmrg
17111a29bacSmrg     ./configure CC="cc"
17211a29bacSmrg
17311a29bacSmrgand if that doesn't work, try
17411a29bacSmrg
17511a29bacSmrg     ./configure CC="cc -nodtk"
17611a29bacSmrg
17711a29bacSmrgSpecifying the System Type
17811a29bacSmrg==========================
17911a29bacSmrg
18011a29bacSmrg   There may be some features `configure' cannot figure out
18111a29bacSmrgautomatically, but needs to determine by the type of machine the package
18211a29bacSmrgwill run on.  Usually, assuming the package is built to be run on the
18311a29bacSmrg_same_ architectures, `configure' can figure that out, but if it prints
18411a29bacSmrga message saying it cannot guess the machine type, give it the
18511a29bacSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
18611a29bacSmrgtype, such as `sun4', or a canonical name which has the form:
18711a29bacSmrg
18811a29bacSmrg     CPU-COMPANY-SYSTEM
18911a29bacSmrg
19011a29bacSmrgwhere SYSTEM can have one of these forms:
19111a29bacSmrg
19211a29bacSmrg     OS KERNEL-OS
19311a29bacSmrg
19411a29bacSmrg   See the file `config.sub' for the possible values of each field.  If
19511a29bacSmrg`config.sub' isn't included in this package, then this package doesn't
19611a29bacSmrgneed to know the machine type.
19711a29bacSmrg
19811a29bacSmrg   If you are _building_ compiler tools for cross-compiling, you should
19911a29bacSmrguse the option `--target=TYPE' to select the type of system they will
20011a29bacSmrgproduce code for.
20111a29bacSmrg
20211a29bacSmrg   If you want to _use_ a cross compiler, that generates code for a
20311a29bacSmrgplatform different from the build platform, you should specify the
20411a29bacSmrg"host" platform (i.e., that on which the generated programs will
20511a29bacSmrgeventually be run) with `--host=TYPE'.
20611a29bacSmrg
20711a29bacSmrgSharing Defaults
20811a29bacSmrg================
20911a29bacSmrg
21011a29bacSmrg   If you want to set default values for `configure' scripts to share,
21111a29bacSmrgyou can create a site shell script called `config.site' that gives
21211a29bacSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
21311a29bacSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21411a29bacSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21511a29bacSmrg`CONFIG_SITE' environment variable to the location of the site script.
21611a29bacSmrgA warning: not all `configure' scripts look for a site script.
21711a29bacSmrg
21811a29bacSmrgDefining Variables
21911a29bacSmrg==================
22011a29bacSmrg
22111a29bacSmrg   Variables not defined in a site shell script can be set in the
22211a29bacSmrgenvironment passed to `configure'.  However, some packages may run
22311a29bacSmrgconfigure again during the build, and the customized values of these
22411a29bacSmrgvariables may be lost.  In order to avoid this problem, you should set
22511a29bacSmrgthem in the `configure' command line, using `VAR=value'.  For example:
22611a29bacSmrg
22711a29bacSmrg     ./configure CC=/usr/local2/bin/gcc
22811a29bacSmrg
22911a29bacSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
23011a29bacSmrgoverridden in the site shell script).
23111a29bacSmrg
23211a29bacSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23311a29bacSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23411a29bacSmrg
23511a29bacSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23611a29bacSmrg
23711a29bacSmrg`configure' Invocation
23811a29bacSmrg======================
23911a29bacSmrg
24011a29bacSmrg   `configure' recognizes the following options to control how it
24111a29bacSmrgoperates.
24211a29bacSmrg
24311a29bacSmrg`--help'
24411a29bacSmrg`-h'
24511a29bacSmrg     Print a summary of all of the options to `configure', and exit.
24611a29bacSmrg
24711a29bacSmrg`--help=short'
24811a29bacSmrg`--help=recursive'
24911a29bacSmrg     Print a summary of the options unique to this package's
25011a29bacSmrg     `configure', and exit.  The `short' variant lists options used
25111a29bacSmrg     only in the top level, while the `recursive' variant lists options
25211a29bacSmrg     also present in any nested packages.
25311a29bacSmrg
25411a29bacSmrg`--version'
25511a29bacSmrg`-V'
25611a29bacSmrg     Print the version of Autoconf used to generate the `configure'
25711a29bacSmrg     script, and exit.
25811a29bacSmrg
25911a29bacSmrg`--cache-file=FILE'
26011a29bacSmrg     Enable the cache: use and save the results of the tests in FILE,
26111a29bacSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26211a29bacSmrg     disable caching.
26311a29bacSmrg
26411a29bacSmrg`--config-cache'
26511a29bacSmrg`-C'
26611a29bacSmrg     Alias for `--cache-file=config.cache'.
26711a29bacSmrg
26811a29bacSmrg`--quiet'
26911a29bacSmrg`--silent'
27011a29bacSmrg`-q'
27111a29bacSmrg     Do not print messages saying which checks are being made.  To
27211a29bacSmrg     suppress all normal output, redirect it to `/dev/null' (any error
27311a29bacSmrg     messages will still be shown).
27411a29bacSmrg
27511a29bacSmrg`--srcdir=DIR'
27611a29bacSmrg     Look for the package's source code in directory DIR.  Usually
27711a29bacSmrg     `configure' can determine that directory automatically.
27811a29bacSmrg
27911a29bacSmrg`--prefix=DIR'
28011a29bacSmrg     Use DIR as the installation prefix.  *Note Installation Names::
28111a29bacSmrg     for more details, including other options available for fine-tuning
28211a29bacSmrg     the installation locations.
28311a29bacSmrg
28411a29bacSmrg`--no-create'
28511a29bacSmrg`-n'
28611a29bacSmrg     Run the configure checks, but stop before creating any output
28711a29bacSmrg     files.
28811a29bacSmrg
28911a29bacSmrg`configure' also accepts some other, not widely useful, options.  Run
29011a29bacSmrg`configure --help' for more details.
29111a29bacSmrg
292