134a0776dSmrgInstallation Instructions
234a0776dSmrg*************************
334a0776dSmrg
434a0776dSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
534a0776dSmrgInc.
634a0776dSmrg
734a0776dSmrg   Copying and distribution of this file, with or without modification,
834a0776dSmrgare permitted in any medium without royalty provided the copyright
934a0776dSmrgnotice and this notice are preserved.  This file is offered as-is,
1034a0776dSmrgwithout warranty of any kind.
1134a0776dSmrg
1234a0776dSmrgBasic Installation
1334a0776dSmrg==================
1434a0776dSmrg
1534a0776dSmrg   Briefly, the shell commands `./configure; make; make install' should
1634a0776dSmrgconfigure, build, and install this package.  The following
1734a0776dSmrgmore-detailed instructions are generic; see the `README' file for
1834a0776dSmrginstructions specific to this package.  Some packages provide this
1934a0776dSmrg`INSTALL' file but do not implement all of the features documented
2034a0776dSmrgbelow.  The lack of an optional feature in a given package is not
2134a0776dSmrgnecessarily a bug.  More recommendations for GNU packages can be found
2234a0776dSmrgin *note Makefile Conventions: (standards)Makefile Conventions.
2334a0776dSmrg
2434a0776dSmrg   The `configure' shell script attempts to guess correct values for
2534a0776dSmrgvarious system-dependent variables used during compilation.  It uses
2634a0776dSmrgthose values to create a `Makefile' in each directory of the package.
2734a0776dSmrgIt may also create one or more `.h' files containing system-dependent
2834a0776dSmrgdefinitions.  Finally, it creates a shell script `config.status' that
2934a0776dSmrgyou can run in the future to recreate the current configuration, and a
3034a0776dSmrgfile `config.log' containing compiler output (useful mainly for
3134a0776dSmrgdebugging `configure').
3234a0776dSmrg
3334a0776dSmrg   It can also use an optional file (typically called `config.cache'
3434a0776dSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
3534a0776dSmrgthe results of its tests to speed up reconfiguring.  Caching is
3634a0776dSmrgdisabled by default to prevent problems with accidental use of stale
3734a0776dSmrgcache files.
3834a0776dSmrg
3934a0776dSmrg   If you need to do unusual things to compile the package, please try
4034a0776dSmrgto figure out how `configure' could check whether to do them, and mail
4134a0776dSmrgdiffs or instructions to the address given in the `README' so they can
4234a0776dSmrgbe considered for the next release.  If you are using the cache, and at
4334a0776dSmrgsome point `config.cache' contains results you don't want to keep, you
4434a0776dSmrgmay remove or edit it.
4534a0776dSmrg
4634a0776dSmrg   The file `configure.ac' (or `configure.in') is used to create
4734a0776dSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4834a0776dSmrgyou want to change it or regenerate `configure' using a newer version
4934a0776dSmrgof `autoconf'.
5034a0776dSmrg
5134a0776dSmrg   The simplest way to compile this package is:
5234a0776dSmrg
5334a0776dSmrg  1. `cd' to the directory containing the package's source code and type
5434a0776dSmrg     `./configure' to configure the package for your system.
5534a0776dSmrg
5634a0776dSmrg     Running `configure' might take a while.  While running, it prints
5734a0776dSmrg     some messages telling which features it is checking for.
5834a0776dSmrg
5934a0776dSmrg  2. Type `make' to compile the package.
6034a0776dSmrg
6134a0776dSmrg  3. Optionally, type `make check' to run any self-tests that come with
6234a0776dSmrg     the package, generally using the just-built uninstalled binaries.
6334a0776dSmrg
6434a0776dSmrg  4. Type `make install' to install the programs and any data files and
6534a0776dSmrg     documentation.  When installing into a prefix owned by root, it is
6634a0776dSmrg     recommended that the package be configured and built as a regular
6734a0776dSmrg     user, and only the `make install' phase executed with root
6834a0776dSmrg     privileges.
6934a0776dSmrg
7034a0776dSmrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7134a0776dSmrg     this time using the binaries in their final installed location.
7234a0776dSmrg     This target does not install anything.  Running this target as a
7334a0776dSmrg     regular user, particularly if the prior `make install' required
7434a0776dSmrg     root privileges, verifies that the installation completed
7534a0776dSmrg     correctly.
7634a0776dSmrg
7734a0776dSmrg  6. You can remove the program binaries and object files from the
7834a0776dSmrg     source code directory by typing `make clean'.  To also remove the
7934a0776dSmrg     files that `configure' created (so you can compile the package for
8034a0776dSmrg     a different kind of computer), type `make distclean'.  There is
8134a0776dSmrg     also a `make maintainer-clean' target, but that is intended mainly
8234a0776dSmrg     for the package's developers.  If you use it, you may have to get
8334a0776dSmrg     all sorts of other programs in order to regenerate files that came
8434a0776dSmrg     with the distribution.
8534a0776dSmrg
8634a0776dSmrg  7. Often, you can also type `make uninstall' to remove the installed
8734a0776dSmrg     files again.  In practice, not all packages have tested that
8834a0776dSmrg     uninstallation works correctly, even though it is required by the
8934a0776dSmrg     GNU Coding Standards.
9034a0776dSmrg
9134a0776dSmrg  8. Some packages, particularly those that use Automake, provide `make
9234a0776dSmrg     distcheck', which can by used by developers to test that all other
9334a0776dSmrg     targets like `make install' and `make uninstall' work correctly.
9434a0776dSmrg     This target is generally not run by end users.
9534a0776dSmrg
9634a0776dSmrgCompilers and Options
9734a0776dSmrg=====================
9834a0776dSmrg
9934a0776dSmrg   Some systems require unusual options for compilation or linking that
10034a0776dSmrgthe `configure' script does not know about.  Run `./configure --help'
10134a0776dSmrgfor details on some of the pertinent environment variables.
10234a0776dSmrg
10334a0776dSmrg   You can give `configure' initial values for configuration parameters
10434a0776dSmrgby setting variables in the command line or in the environment.  Here
10534a0776dSmrgis an example:
10634a0776dSmrg
10734a0776dSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
10834a0776dSmrg
10934a0776dSmrg   *Note Defining Variables::, for more details.
11034a0776dSmrg
11134a0776dSmrgCompiling For Multiple Architectures
11234a0776dSmrg====================================
11334a0776dSmrg
11434a0776dSmrg   You can compile the package for more than one kind of computer at the
11534a0776dSmrgsame time, by placing the object files for each architecture in their
11634a0776dSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
11734a0776dSmrgdirectory where you want the object files and executables to go and run
11834a0776dSmrgthe `configure' script.  `configure' automatically checks for the
11934a0776dSmrgsource code in the directory that `configure' is in and in `..'.  This
12034a0776dSmrgis known as a "VPATH" build.
12134a0776dSmrg
12234a0776dSmrg   With a non-GNU `make', it is safer to compile the package for one
12334a0776dSmrgarchitecture at a time in the source code directory.  After you have
12434a0776dSmrginstalled the package for one architecture, use `make distclean' before
12534a0776dSmrgreconfiguring for another architecture.
12634a0776dSmrg
12734a0776dSmrg   On MacOS X 10.5 and later systems, you can create libraries and
12834a0776dSmrgexecutables that work on multiple system types--known as "fat" or
12934a0776dSmrg"universal" binaries--by specifying multiple `-arch' options to the
13034a0776dSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
13134a0776dSmrgthis:
13234a0776dSmrg
13334a0776dSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
13434a0776dSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
13534a0776dSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
13634a0776dSmrg
13734a0776dSmrg   This is not guaranteed to produce working output in all cases, you
13834a0776dSmrgmay have to build one architecture at a time and combine the results
13934a0776dSmrgusing the `lipo' tool if you have problems.
14034a0776dSmrg
14134a0776dSmrgInstallation Names
14234a0776dSmrg==================
14334a0776dSmrg
14434a0776dSmrg   By default, `make install' installs the package's commands under
14534a0776dSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
14634a0776dSmrgcan specify an installation prefix other than `/usr/local' by giving
14734a0776dSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14834a0776dSmrgabsolute file name.
14934a0776dSmrg
15034a0776dSmrg   You can specify separate installation prefixes for
15134a0776dSmrgarchitecture-specific files and architecture-independent files.  If you
15234a0776dSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
15334a0776dSmrgPREFIX as the prefix for installing programs and libraries.
15434a0776dSmrgDocumentation and other data files still use the regular prefix.
15534a0776dSmrg
15634a0776dSmrg   In addition, if you use an unusual directory layout you can give
15734a0776dSmrgoptions like `--bindir=DIR' to specify different values for particular
15834a0776dSmrgkinds of files.  Run `configure --help' for a list of the directories
15934a0776dSmrgyou can set and what kinds of files go in them.  In general, the
16034a0776dSmrgdefault for these options is expressed in terms of `${prefix}', so that
16134a0776dSmrgspecifying just `--prefix' will affect all of the other directory
16234a0776dSmrgspecifications that were not explicitly provided.
16334a0776dSmrg
16434a0776dSmrg   The most portable way to affect installation locations is to pass the
16534a0776dSmrgcorrect locations to `configure'; however, many packages provide one or
16634a0776dSmrgboth of the following shortcuts of passing variable assignments to the
16734a0776dSmrg`make install' command line to change installation locations without
16834a0776dSmrghaving to reconfigure or recompile.
16934a0776dSmrg
17034a0776dSmrg   The first method involves providing an override variable for each
17134a0776dSmrgaffected directory.  For example, `make install
17234a0776dSmrgprefix=/alternate/directory' will choose an alternate location for all
17334a0776dSmrgdirectory configuration variables that were expressed in terms of
17434a0776dSmrg`${prefix}'.  Any directories that were specified during `configure',
17534a0776dSmrgbut not in terms of `${prefix}', must each be overridden at install
17634a0776dSmrgtime for the entire installation to be relocated.  The approach of
17734a0776dSmrgmakefile variable overrides for each directory variable is required by
17834a0776dSmrgthe GNU Coding Standards, and ideally causes no recompilation.
17934a0776dSmrgHowever, some platforms have known limitations with the semantics of
18034a0776dSmrgshared libraries that end up requiring recompilation when using this
18134a0776dSmrgmethod, particularly noticeable in packages that use GNU Libtool.
18234a0776dSmrg
18334a0776dSmrg   The second method involves providing the `DESTDIR' variable.  For
18434a0776dSmrgexample, `make install DESTDIR=/alternate/directory' will prepend
18534a0776dSmrg`/alternate/directory' before all installation names.  The approach of
18634a0776dSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18734a0776dSmrgdoes not work on platforms that have drive letters.  On the other hand,
18834a0776dSmrgit does better at avoiding recompilation issues, and works well even
18934a0776dSmrgwhen some directory options were not specified in terms of `${prefix}'
19034a0776dSmrgat `configure' time.
19134a0776dSmrg
19234a0776dSmrgOptional Features
19334a0776dSmrg=================
19434a0776dSmrg
19534a0776dSmrg   If the package supports it, you can cause programs to be installed
19634a0776dSmrgwith an extra prefix or suffix on their names by giving `configure' the
19734a0776dSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
19834a0776dSmrg
19934a0776dSmrg   Some packages pay attention to `--enable-FEATURE' options to
20034a0776dSmrg`configure', where FEATURE indicates an optional part of the package.
20134a0776dSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
20234a0776dSmrgis something like `gnu-as' or `x' (for the X Window System).  The
20334a0776dSmrg`README' should mention any `--enable-' and `--with-' options that the
20434a0776dSmrgpackage recognizes.
20534a0776dSmrg
20634a0776dSmrg   For packages that use the X Window System, `configure' can usually
20734a0776dSmrgfind the X include and library files automatically, but if it doesn't,
20834a0776dSmrgyou can use the `configure' options `--x-includes=DIR' and
20934a0776dSmrg`--x-libraries=DIR' to specify their locations.
21034a0776dSmrg
21134a0776dSmrg   Some packages offer the ability to configure how verbose the
21234a0776dSmrgexecution of `make' will be.  For these packages, running `./configure
21334a0776dSmrg--enable-silent-rules' sets the default to minimal output, which can be
21434a0776dSmrgoverridden with `make V=1'; while running `./configure
21534a0776dSmrg--disable-silent-rules' sets the default to verbose, which can be
21634a0776dSmrgoverridden with `make V=0'.
21734a0776dSmrg
21834a0776dSmrgParticular systems
21934a0776dSmrg==================
22034a0776dSmrg
22134a0776dSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
22234a0776dSmrgCC is not installed, it is recommended to use the following options in
22334a0776dSmrgorder to use an ANSI C compiler:
22434a0776dSmrg
22534a0776dSmrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
22634a0776dSmrg
22734a0776dSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
22834a0776dSmrg
22934a0776dSmrg   HP-UX `make' updates targets which have the same time stamps as
23034a0776dSmrgtheir prerequisites, which makes it generally unusable when shipped
23134a0776dSmrggenerated files such as `configure' are involved.  Use GNU `make'
23234a0776dSmrginstead.
23334a0776dSmrg
23434a0776dSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
23534a0776dSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
23634a0776dSmrga workaround.  If GNU CC is not installed, it is therefore recommended
23734a0776dSmrgto try
23834a0776dSmrg
23934a0776dSmrg     ./configure CC="cc"
24034a0776dSmrg
24134a0776dSmrgand if that doesn't work, try
24234a0776dSmrg
24334a0776dSmrg     ./configure CC="cc -nodtk"
24434a0776dSmrg
24534a0776dSmrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24634a0776dSmrgdirectory contains several dysfunctional programs; working variants of
24734a0776dSmrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24834a0776dSmrgin your `PATH', put it _after_ `/usr/bin'.
24934a0776dSmrg
25034a0776dSmrg   On Haiku, software installed for all users goes in `/boot/common',
25134a0776dSmrgnot `/usr/local'.  It is recommended to use the following options:
25234a0776dSmrg
25334a0776dSmrg     ./configure --prefix=/boot/common
25434a0776dSmrg
25534a0776dSmrgSpecifying the System Type
25634a0776dSmrg==========================
25734a0776dSmrg
25834a0776dSmrg   There may be some features `configure' cannot figure out
25934a0776dSmrgautomatically, but needs to determine by the type of machine the package
26034a0776dSmrgwill run on.  Usually, assuming the package is built to be run on the
26134a0776dSmrg_same_ architectures, `configure' can figure that out, but if it prints
26234a0776dSmrga message saying it cannot guess the machine type, give it the
26334a0776dSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
26434a0776dSmrgtype, such as `sun4', or a canonical name which has the form:
26534a0776dSmrg
26634a0776dSmrg     CPU-COMPANY-SYSTEM
26734a0776dSmrg
26834a0776dSmrgwhere SYSTEM can have one of these forms:
26934a0776dSmrg
27034a0776dSmrg     OS
27134a0776dSmrg     KERNEL-OS
27234a0776dSmrg
27334a0776dSmrg   See the file `config.sub' for the possible values of each field.  If
27434a0776dSmrg`config.sub' isn't included in this package, then this package doesn't
27534a0776dSmrgneed to know the machine type.
27634a0776dSmrg
27734a0776dSmrg   If you are _building_ compiler tools for cross-compiling, you should
27834a0776dSmrguse the option `--target=TYPE' to select the type of system they will
27934a0776dSmrgproduce code for.
28034a0776dSmrg
28134a0776dSmrg   If you want to _use_ a cross compiler, that generates code for a
28234a0776dSmrgplatform different from the build platform, you should specify the
28334a0776dSmrg"host" platform (i.e., that on which the generated programs will
28434a0776dSmrgeventually be run) with `--host=TYPE'.
28534a0776dSmrg
28634a0776dSmrgSharing Defaults
28734a0776dSmrg================
28834a0776dSmrg
28934a0776dSmrg   If you want to set default values for `configure' scripts to share,
29034a0776dSmrgyou can create a site shell script called `config.site' that gives
29134a0776dSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
29234a0776dSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
29334a0776dSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
29434a0776dSmrg`CONFIG_SITE' environment variable to the location of the site script.
29534a0776dSmrgA warning: not all `configure' scripts look for a site script.
29634a0776dSmrg
29734a0776dSmrgDefining Variables
29834a0776dSmrg==================
29934a0776dSmrg
30034a0776dSmrg   Variables not defined in a site shell script can be set in the
30134a0776dSmrgenvironment passed to `configure'.  However, some packages may run
30234a0776dSmrgconfigure again during the build, and the customized values of these
30334a0776dSmrgvariables may be lost.  In order to avoid this problem, you should set
30434a0776dSmrgthem in the `configure' command line, using `VAR=value'.  For example:
30534a0776dSmrg
30634a0776dSmrg     ./configure CC=/usr/local2/bin/gcc
30734a0776dSmrg
30834a0776dSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
30934a0776dSmrgoverridden in the site shell script).
31034a0776dSmrg
31134a0776dSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
31234a0776dSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
31334a0776dSmrg
31434a0776dSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
31534a0776dSmrg
31634a0776dSmrg`configure' Invocation
31734a0776dSmrg======================
31834a0776dSmrg
31934a0776dSmrg   `configure' recognizes the following options to control how it
32034a0776dSmrgoperates.
32134a0776dSmrg
32234a0776dSmrg`--help'
32334a0776dSmrg`-h'
32434a0776dSmrg     Print a summary of all of the options to `configure', and exit.
32534a0776dSmrg
32634a0776dSmrg`--help=short'
32734a0776dSmrg`--help=recursive'
32834a0776dSmrg     Print a summary of the options unique to this package's
32934a0776dSmrg     `configure', and exit.  The `short' variant lists options used
33034a0776dSmrg     only in the top level, while the `recursive' variant lists options
33134a0776dSmrg     also present in any nested packages.
33234a0776dSmrg
33334a0776dSmrg`--version'
33434a0776dSmrg`-V'
33534a0776dSmrg     Print the version of Autoconf used to generate the `configure'
33634a0776dSmrg     script, and exit.
33734a0776dSmrg
33834a0776dSmrg`--cache-file=FILE'
33934a0776dSmrg     Enable the cache: use and save the results of the tests in FILE,
34034a0776dSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
34134a0776dSmrg     disable caching.
34234a0776dSmrg
34334a0776dSmrg`--config-cache'
34434a0776dSmrg`-C'
34534a0776dSmrg     Alias for `--cache-file=config.cache'.
34634a0776dSmrg
34734a0776dSmrg`--quiet'
34834a0776dSmrg`--silent'
34934a0776dSmrg`-q'
35034a0776dSmrg     Do not print messages saying which checks are being made.  To
35134a0776dSmrg     suppress all normal output, redirect it to `/dev/null' (any error
35234a0776dSmrg     messages will still be shown).
35334a0776dSmrg
35434a0776dSmrg`--srcdir=DIR'
35534a0776dSmrg     Look for the package's source code in directory DIR.  Usually
35634a0776dSmrg     `configure' can determine that directory automatically.
35734a0776dSmrg
35834a0776dSmrg`--prefix=DIR'
35934a0776dSmrg     Use DIR as the installation prefix.  *note Installation Names::
36034a0776dSmrg     for more details, including other options available for fine-tuning
36134a0776dSmrg     the installation locations.
36234a0776dSmrg
36334a0776dSmrg`--no-create'
36434a0776dSmrg`-n'
36534a0776dSmrg     Run the configure checks, but stop before creating any output
36634a0776dSmrg     files.
36734a0776dSmrg
36834a0776dSmrg`configure' also accepts some other, not widely useful, options.  Run
36934a0776dSmrg`configure --help' for more details.
37034a0776dSmrg
371