118781e08SmrgInstallation Instructions
218781e08Smrg*************************
318781e08Smrg
418781e08SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
518781e08SmrgInc.
618781e08Smrg
718781e08Smrg   Copying and distribution of this file, with or without modification,
818781e08Smrgare permitted in any medium without royalty provided the copyright
918781e08Smrgnotice and this notice are preserved.  This file is offered as-is,
1018781e08Smrgwithout warranty of any kind.
1118781e08Smrg
1218781e08SmrgBasic Installation
1318781e08Smrg==================
1418781e08Smrg
1518781e08Smrg   Briefly, the shell commands `./configure; make; make install' should
1618781e08Smrgconfigure, build, and install this package.  The following
1718781e08Smrgmore-detailed instructions are generic; see the `README' file for
1818781e08Smrginstructions specific to this package.  Some packages provide this
1918781e08Smrg`INSTALL' file but do not implement all of the features documented
2018781e08Smrgbelow.  The lack of an optional feature in a given package is not
2118781e08Smrgnecessarily a bug.  More recommendations for GNU packages can be found
2218781e08Smrgin *note Makefile Conventions: (standards)Makefile Conventions.
2318781e08Smrg
2418781e08Smrg   The `configure' shell script attempts to guess correct values for
2518781e08Smrgvarious system-dependent variables used during compilation.  It uses
2618781e08Smrgthose values to create a `Makefile' in each directory of the package.
2718781e08SmrgIt may also create one or more `.h' files containing system-dependent
2818781e08Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2918781e08Smrgyou can run in the future to recreate the current configuration, and a
3018781e08Smrgfile `config.log' containing compiler output (useful mainly for
3118781e08Smrgdebugging `configure').
3218781e08Smrg
3318781e08Smrg   It can also use an optional file (typically called `config.cache'
3418781e08Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
3518781e08Smrgthe results of its tests to speed up reconfiguring.  Caching is
3618781e08Smrgdisabled by default to prevent problems with accidental use of stale
3718781e08Smrgcache files.
3818781e08Smrg
3918781e08Smrg   If you need to do unusual things to compile the package, please try
4018781e08Smrgto figure out how `configure' could check whether to do them, and mail
4118781e08Smrgdiffs or instructions to the address given in the `README' so they can
4218781e08Smrgbe considered for the next release.  If you are using the cache, and at
4318781e08Smrgsome point `config.cache' contains results you don't want to keep, you
4418781e08Smrgmay remove or edit it.
4518781e08Smrg
4618781e08Smrg   The file `configure.ac' (or `configure.in') is used to create
4718781e08Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4818781e08Smrgyou want to change it or regenerate `configure' using a newer version
4918781e08Smrgof `autoconf'.
5018781e08Smrg
5118781e08Smrg   The simplest way to compile this package is:
5218781e08Smrg
5318781e08Smrg  1. `cd' to the directory containing the package's source code and type
5418781e08Smrg     `./configure' to configure the package for your system.
5518781e08Smrg
5618781e08Smrg     Running `configure' might take a while.  While running, it prints
5718781e08Smrg     some messages telling which features it is checking for.
5818781e08Smrg
5918781e08Smrg  2. Type `make' to compile the package.
6018781e08Smrg
6118781e08Smrg  3. Optionally, type `make check' to run any self-tests that come with
6218781e08Smrg     the package, generally using the just-built uninstalled binaries.
6318781e08Smrg
6418781e08Smrg  4. Type `make install' to install the programs and any data files and
6518781e08Smrg     documentation.  When installing into a prefix owned by root, it is
6618781e08Smrg     recommended that the package be configured and built as a regular
6718781e08Smrg     user, and only the `make install' phase executed with root
6818781e08Smrg     privileges.
6918781e08Smrg
7018781e08Smrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7118781e08Smrg     this time using the binaries in their final installed location.
7218781e08Smrg     This target does not install anything.  Running this target as a
7318781e08Smrg     regular user, particularly if the prior `make install' required
7418781e08Smrg     root privileges, verifies that the installation completed
7518781e08Smrg     correctly.
7618781e08Smrg
7718781e08Smrg  6. You can remove the program binaries and object files from the
7818781e08Smrg     source code directory by typing `make clean'.  To also remove the
7918781e08Smrg     files that `configure' created (so you can compile the package for
8018781e08Smrg     a different kind of computer), type `make distclean'.  There is
8118781e08Smrg     also a `make maintainer-clean' target, but that is intended mainly
8218781e08Smrg     for the package's developers.  If you use it, you may have to get
8318781e08Smrg     all sorts of other programs in order to regenerate files that came
8418781e08Smrg     with the distribution.
8518781e08Smrg
8618781e08Smrg  7. Often, you can also type `make uninstall' to remove the installed
8718781e08Smrg     files again.  In practice, not all packages have tested that
8818781e08Smrg     uninstallation works correctly, even though it is required by the
8918781e08Smrg     GNU Coding Standards.
9018781e08Smrg
9118781e08Smrg  8. Some packages, particularly those that use Automake, provide `make
9218781e08Smrg     distcheck', which can by used by developers to test that all other
9318781e08Smrg     targets like `make install' and `make uninstall' work correctly.
9418781e08Smrg     This target is generally not run by end users.
9518781e08Smrg
9618781e08SmrgCompilers and Options
9718781e08Smrg=====================
9818781e08Smrg
9918781e08Smrg   Some systems require unusual options for compilation or linking that
10018781e08Smrgthe `configure' script does not know about.  Run `./configure --help'
10118781e08Smrgfor details on some of the pertinent environment variables.
10218781e08Smrg
10318781e08Smrg   You can give `configure' initial values for configuration parameters
10418781e08Smrgby setting variables in the command line or in the environment.  Here
10518781e08Smrgis an example:
10618781e08Smrg
10718781e08Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
10818781e08Smrg
10918781e08Smrg   *Note Defining Variables::, for more details.
11018781e08Smrg
11118781e08SmrgCompiling For Multiple Architectures
11218781e08Smrg====================================
11318781e08Smrg
11418781e08Smrg   You can compile the package for more than one kind of computer at the
11518781e08Smrgsame time, by placing the object files for each architecture in their
11618781e08Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
11718781e08Smrgdirectory where you want the object files and executables to go and run
11818781e08Smrgthe `configure' script.  `configure' automatically checks for the
11918781e08Smrgsource code in the directory that `configure' is in and in `..'.  This
12018781e08Smrgis known as a "VPATH" build.
12118781e08Smrg
12218781e08Smrg   With a non-GNU `make', it is safer to compile the package for one
12318781e08Smrgarchitecture at a time in the source code directory.  After you have
12418781e08Smrginstalled the package for one architecture, use `make distclean' before
12518781e08Smrgreconfiguring for another architecture.
12618781e08Smrg
12718781e08Smrg   On MacOS X 10.5 and later systems, you can create libraries and
12818781e08Smrgexecutables that work on multiple system types--known as "fat" or
12918781e08Smrg"universal" binaries--by specifying multiple `-arch' options to the
13018781e08Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
13118781e08Smrgthis:
13218781e08Smrg
13318781e08Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
13418781e08Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
13518781e08Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
13618781e08Smrg
13718781e08Smrg   This is not guaranteed to produce working output in all cases, you
13818781e08Smrgmay have to build one architecture at a time and combine the results
13918781e08Smrgusing the `lipo' tool if you have problems.
14018781e08Smrg
14118781e08SmrgInstallation Names
14218781e08Smrg==================
14318781e08Smrg
14418781e08Smrg   By default, `make install' installs the package's commands under
14518781e08Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
14618781e08Smrgcan specify an installation prefix other than `/usr/local' by giving
14718781e08Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14818781e08Smrgabsolute file name.
14918781e08Smrg
15018781e08Smrg   You can specify separate installation prefixes for
15118781e08Smrgarchitecture-specific files and architecture-independent files.  If you
15218781e08Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
15318781e08SmrgPREFIX as the prefix for installing programs and libraries.
15418781e08SmrgDocumentation and other data files still use the regular prefix.
15518781e08Smrg
15618781e08Smrg   In addition, if you use an unusual directory layout you can give
15718781e08Smrgoptions like `--bindir=DIR' to specify different values for particular
15818781e08Smrgkinds of files.  Run `configure --help' for a list of the directories
15918781e08Smrgyou can set and what kinds of files go in them.  In general, the
16018781e08Smrgdefault for these options is expressed in terms of `${prefix}', so that
16118781e08Smrgspecifying just `--prefix' will affect all of the other directory
16218781e08Smrgspecifications that were not explicitly provided.
16318781e08Smrg
16418781e08Smrg   The most portable way to affect installation locations is to pass the
16518781e08Smrgcorrect locations to `configure'; however, many packages provide one or
16618781e08Smrgboth of the following shortcuts of passing variable assignments to the
16718781e08Smrg`make install' command line to change installation locations without
16818781e08Smrghaving to reconfigure or recompile.
16918781e08Smrg
17018781e08Smrg   The first method involves providing an override variable for each
17118781e08Smrgaffected directory.  For example, `make install
17218781e08Smrgprefix=/alternate/directory' will choose an alternate location for all
17318781e08Smrgdirectory configuration variables that were expressed in terms of
17418781e08Smrg`${prefix}'.  Any directories that were specified during `configure',
17518781e08Smrgbut not in terms of `${prefix}', must each be overridden at install
17618781e08Smrgtime for the entire installation to be relocated.  The approach of
17718781e08Smrgmakefile variable overrides for each directory variable is required by
17818781e08Smrgthe GNU Coding Standards, and ideally causes no recompilation.
17918781e08SmrgHowever, some platforms have known limitations with the semantics of
18018781e08Smrgshared libraries that end up requiring recompilation when using this
18118781e08Smrgmethod, particularly noticeable in packages that use GNU Libtool.
18218781e08Smrg
18318781e08Smrg   The second method involves providing the `DESTDIR' variable.  For
18418781e08Smrgexample, `make install DESTDIR=/alternate/directory' will prepend
18518781e08Smrg`/alternate/directory' before all installation names.  The approach of
18618781e08Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18718781e08Smrgdoes not work on platforms that have drive letters.  On the other hand,
18818781e08Smrgit does better at avoiding recompilation issues, and works well even
18918781e08Smrgwhen some directory options were not specified in terms of `${prefix}'
19018781e08Smrgat `configure' time.
19118781e08Smrg
19218781e08SmrgOptional Features
19318781e08Smrg=================
19418781e08Smrg
19518781e08Smrg   If the package supports it, you can cause programs to be installed
19618781e08Smrgwith an extra prefix or suffix on their names by giving `configure' the
19718781e08Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
19818781e08Smrg
19918781e08Smrg   Some packages pay attention to `--enable-FEATURE' options to
20018781e08Smrg`configure', where FEATURE indicates an optional part of the package.
20118781e08SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
20218781e08Smrgis something like `gnu-as' or `x' (for the X Window System).  The
20318781e08Smrg`README' should mention any `--enable-' and `--with-' options that the
20418781e08Smrgpackage recognizes.
20518781e08Smrg
20618781e08Smrg   For packages that use the X Window System, `configure' can usually
20718781e08Smrgfind the X include and library files automatically, but if it doesn't,
20818781e08Smrgyou can use the `configure' options `--x-includes=DIR' and
20918781e08Smrg`--x-libraries=DIR' to specify their locations.
21018781e08Smrg
21118781e08Smrg   Some packages offer the ability to configure how verbose the
21218781e08Smrgexecution of `make' will be.  For these packages, running `./configure
21318781e08Smrg--enable-silent-rules' sets the default to minimal output, which can be
21418781e08Smrgoverridden with `make V=1'; while running `./configure
21518781e08Smrg--disable-silent-rules' sets the default to verbose, which can be
21618781e08Smrgoverridden with `make V=0'.
21718781e08Smrg
21818781e08SmrgParticular systems
21918781e08Smrg==================
22018781e08Smrg
22118781e08Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
22218781e08SmrgCC is not installed, it is recommended to use the following options in
22318781e08Smrgorder to use an ANSI C compiler:
22418781e08Smrg
22518781e08Smrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
22618781e08Smrg
22718781e08Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
22818781e08Smrg
22918781e08Smrg   HP-UX `make' updates targets which have the same time stamps as
23018781e08Smrgtheir prerequisites, which makes it generally unusable when shipped
23118781e08Smrggenerated files such as `configure' are involved.  Use GNU `make'
23218781e08Smrginstead.
23318781e08Smrg
23418781e08Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
23518781e08Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
23618781e08Smrga workaround.  If GNU CC is not installed, it is therefore recommended
23718781e08Smrgto try
23818781e08Smrg
23918781e08Smrg     ./configure CC="cc"
24018781e08Smrg
24118781e08Smrgand if that doesn't work, try
24218781e08Smrg
24318781e08Smrg     ./configure CC="cc -nodtk"
24418781e08Smrg
24518781e08Smrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24618781e08Smrgdirectory contains several dysfunctional programs; working variants of
24718781e08Smrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24818781e08Smrgin your `PATH', put it _after_ `/usr/bin'.
24918781e08Smrg
25018781e08Smrg   On Haiku, software installed for all users goes in `/boot/common',
25118781e08Smrgnot `/usr/local'.  It is recommended to use the following options:
25218781e08Smrg
25318781e08Smrg     ./configure --prefix=/boot/common
25418781e08Smrg
25518781e08SmrgSpecifying the System Type
25618781e08Smrg==========================
25718781e08Smrg
25818781e08Smrg   There may be some features `configure' cannot figure out
25918781e08Smrgautomatically, but needs to determine by the type of machine the package
26018781e08Smrgwill run on.  Usually, assuming the package is built to be run on the
26118781e08Smrg_same_ architectures, `configure' can figure that out, but if it prints
26218781e08Smrga message saying it cannot guess the machine type, give it the
26318781e08Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
26418781e08Smrgtype, such as `sun4', or a canonical name which has the form:
26518781e08Smrg
26618781e08Smrg     CPU-COMPANY-SYSTEM
26718781e08Smrg
26818781e08Smrgwhere SYSTEM can have one of these forms:
26918781e08Smrg
27018781e08Smrg     OS
27118781e08Smrg     KERNEL-OS
27218781e08Smrg
27318781e08Smrg   See the file `config.sub' for the possible values of each field.  If
27418781e08Smrg`config.sub' isn't included in this package, then this package doesn't
27518781e08Smrgneed to know the machine type.
27618781e08Smrg
27718781e08Smrg   If you are _building_ compiler tools for cross-compiling, you should
27818781e08Smrguse the option `--target=TYPE' to select the type of system they will
27918781e08Smrgproduce code for.
28018781e08Smrg
28118781e08Smrg   If you want to _use_ a cross compiler, that generates code for a
28218781e08Smrgplatform different from the build platform, you should specify the
28318781e08Smrg"host" platform (i.e., that on which the generated programs will
28418781e08Smrgeventually be run) with `--host=TYPE'.
28518781e08Smrg
28618781e08SmrgSharing Defaults
28718781e08Smrg================
28818781e08Smrg
28918781e08Smrg   If you want to set default values for `configure' scripts to share,
29018781e08Smrgyou can create a site shell script called `config.site' that gives
29118781e08Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
29218781e08Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
29318781e08Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
29418781e08Smrg`CONFIG_SITE' environment variable to the location of the site script.
29518781e08SmrgA warning: not all `configure' scripts look for a site script.
29618781e08Smrg
29718781e08SmrgDefining Variables
29818781e08Smrg==================
29918781e08Smrg
30018781e08Smrg   Variables not defined in a site shell script can be set in the
30118781e08Smrgenvironment passed to `configure'.  However, some packages may run
30218781e08Smrgconfigure again during the build, and the customized values of these
30318781e08Smrgvariables may be lost.  In order to avoid this problem, you should set
30418781e08Smrgthem in the `configure' command line, using `VAR=value'.  For example:
30518781e08Smrg
30618781e08Smrg     ./configure CC=/usr/local2/bin/gcc
30718781e08Smrg
30818781e08Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
30918781e08Smrgoverridden in the site shell script).
31018781e08Smrg
31118781e08SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
31218781e08Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
31318781e08Smrg
31418781e08Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
31518781e08Smrg
31618781e08Smrg`configure' Invocation
31718781e08Smrg======================
31818781e08Smrg
31918781e08Smrg   `configure' recognizes the following options to control how it
32018781e08Smrgoperates.
32118781e08Smrg
32218781e08Smrg`--help'
32318781e08Smrg`-h'
32418781e08Smrg     Print a summary of all of the options to `configure', and exit.
32518781e08Smrg
32618781e08Smrg`--help=short'
32718781e08Smrg`--help=recursive'
32818781e08Smrg     Print a summary of the options unique to this package's
32918781e08Smrg     `configure', and exit.  The `short' variant lists options used
33018781e08Smrg     only in the top level, while the `recursive' variant lists options
33118781e08Smrg     also present in any nested packages.
33218781e08Smrg
33318781e08Smrg`--version'
33418781e08Smrg`-V'
33518781e08Smrg     Print the version of Autoconf used to generate the `configure'
33618781e08Smrg     script, and exit.
33718781e08Smrg
33818781e08Smrg`--cache-file=FILE'
33918781e08Smrg     Enable the cache: use and save the results of the tests in FILE,
34018781e08Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
34118781e08Smrg     disable caching.
34218781e08Smrg
34318781e08Smrg`--config-cache'
34418781e08Smrg`-C'
34518781e08Smrg     Alias for `--cache-file=config.cache'.
34618781e08Smrg
34718781e08Smrg`--quiet'
34818781e08Smrg`--silent'
34918781e08Smrg`-q'
35018781e08Smrg     Do not print messages saying which checks are being made.  To
35118781e08Smrg     suppress all normal output, redirect it to `/dev/null' (any error
35218781e08Smrg     messages will still be shown).
35318781e08Smrg
35418781e08Smrg`--srcdir=DIR'
35518781e08Smrg     Look for the package's source code in directory DIR.  Usually
35618781e08Smrg     `configure' can determine that directory automatically.
35718781e08Smrg
35818781e08Smrg`--prefix=DIR'
35918781e08Smrg     Use DIR as the installation prefix.  *note Installation Names::
36018781e08Smrg     for more details, including other options available for fine-tuning
36118781e08Smrg     the installation locations.
36218781e08Smrg
36318781e08Smrg`--no-create'
36418781e08Smrg`-n'
36518781e08Smrg     Run the configure checks, but stop before creating any output
36618781e08Smrg     files.
36718781e08Smrg
36818781e08Smrg`configure' also accepts some other, not widely useful, options.  Run
36918781e08Smrg`configure --help' for more details.
37018781e08Smrg
371