114ddf674SmrgInstallation Instructions
214ddf674Smrg*************************
314ddf674Smrg
414ddf674SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
514ddf674Smrg2006, 2007, 2008 Free Software Foundation, Inc.
614ddf674Smrg
714ddf674Smrg   This file is free documentation; the Free Software Foundation gives
814ddf674Smrgunlimited permission to copy, distribute and modify it.
914ddf674Smrg
1014ddf674SmrgBasic Installation
1114ddf674Smrg==================
1214ddf674Smrg
1314ddf674Smrg   Briefly, the shell commands `./configure; make; make install' should
1414ddf674Smrgconfigure, build, and install this package.  The following
1514ddf674Smrgmore-detailed instructions are generic; see the `README' file for
1614ddf674Smrginstructions specific to this package.
1714ddf674Smrg
1814ddf674Smrg   The `configure' shell script attempts to guess correct values for
1914ddf674Smrgvarious system-dependent variables used during compilation.  It uses
2014ddf674Smrgthose values to create a `Makefile' in each directory of the package.
2114ddf674SmrgIt may also create one or more `.h' files containing system-dependent
2214ddf674Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2314ddf674Smrgyou can run in the future to recreate the current configuration, and a
2414ddf674Smrgfile `config.log' containing compiler output (useful mainly for
2514ddf674Smrgdebugging `configure').
2614ddf674Smrg
2714ddf674Smrg   It can also use an optional file (typically called `config.cache'
2814ddf674Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2914ddf674Smrgthe results of its tests to speed up reconfiguring.  Caching is
3014ddf674Smrgdisabled by default to prevent problems with accidental use of stale
3114ddf674Smrgcache files.
3214ddf674Smrg
3314ddf674Smrg   If you need to do unusual things to compile the package, please try
3414ddf674Smrgto figure out how `configure' could check whether to do them, and mail
3514ddf674Smrgdiffs or instructions to the address given in the `README' so they can
3614ddf674Smrgbe considered for the next release.  If you are using the cache, and at
3714ddf674Smrgsome point `config.cache' contains results you don't want to keep, you
3814ddf674Smrgmay remove or edit it.
3914ddf674Smrg
4014ddf674Smrg   The file `configure.ac' (or `configure.in') is used to create
4114ddf674Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4214ddf674Smrgyou want to change it or regenerate `configure' using a newer version
4314ddf674Smrgof `autoconf'.
4414ddf674Smrg
4514ddf674SmrgThe simplest way to compile this package is:
4614ddf674Smrg
4714ddf674Smrg  1. `cd' to the directory containing the package's source code and type
4814ddf674Smrg     `./configure' to configure the package for your system.
4914ddf674Smrg
5014ddf674Smrg     Running `configure' might take a while.  While running, it prints
5114ddf674Smrg     some messages telling which features it is checking for.
5214ddf674Smrg
5314ddf674Smrg  2. Type `make' to compile the package.
5414ddf674Smrg
5514ddf674Smrg  3. Optionally, type `make check' to run any self-tests that come with
5614ddf674Smrg     the package.
5714ddf674Smrg
5814ddf674Smrg  4. Type `make install' to install the programs and any data files and
5914ddf674Smrg     documentation.
6014ddf674Smrg
6114ddf674Smrg  5. You can remove the program binaries and object files from the
6214ddf674Smrg     source code directory by typing `make clean'.  To also remove the
6314ddf674Smrg     files that `configure' created (so you can compile the package for
6414ddf674Smrg     a different kind of computer), type `make distclean'.  There is
6514ddf674Smrg     also a `make maintainer-clean' target, but that is intended mainly
6614ddf674Smrg     for the package's developers.  If you use it, you may have to get
6714ddf674Smrg     all sorts of other programs in order to regenerate files that came
6814ddf674Smrg     with the distribution.
6914ddf674Smrg
7014ddf674Smrg  6. Often, you can also type `make uninstall' to remove the installed
7114ddf674Smrg     files again.
7214ddf674Smrg
7314ddf674SmrgCompilers and Options
7414ddf674Smrg=====================
7514ddf674Smrg
7614ddf674Smrg   Some systems require unusual options for compilation or linking that
7714ddf674Smrgthe `configure' script does not know about.  Run `./configure --help'
7814ddf674Smrgfor details on some of the pertinent environment variables.
7914ddf674Smrg
8014ddf674Smrg   You can give `configure' initial values for configuration parameters
8114ddf674Smrgby setting variables in the command line or in the environment.  Here
8214ddf674Smrgis an example:
8314ddf674Smrg
8414ddf674Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8514ddf674Smrg
8614ddf674Smrg   *Note Defining Variables::, for more details.
8714ddf674Smrg
8814ddf674SmrgCompiling For Multiple Architectures
8914ddf674Smrg====================================
9014ddf674Smrg
9114ddf674Smrg   You can compile the package for more than one kind of computer at the
9214ddf674Smrgsame time, by placing the object files for each architecture in their
9314ddf674Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9414ddf674Smrgdirectory where you want the object files and executables to go and run
9514ddf674Smrgthe `configure' script.  `configure' automatically checks for the
9614ddf674Smrgsource code in the directory that `configure' is in and in `..'.
9714ddf674Smrg
9814ddf674Smrg   With a non-GNU `make', it is safer to compile the package for one
9914ddf674Smrgarchitecture at a time in the source code directory.  After you have
10014ddf674Smrginstalled the package for one architecture, use `make distclean' before
10114ddf674Smrgreconfiguring for another architecture.
10214ddf674Smrg
10314ddf674Smrg   On MacOS X 10.5 and later systems, you can create libraries and
10414ddf674Smrgexecutables that work on multiple system types--known as "fat" or
10514ddf674Smrg"universal" binaries--by specifying multiple `-arch' options to the
10614ddf674Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
10714ddf674Smrgthis:
10814ddf674Smrg
10914ddf674Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11014ddf674Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11114ddf674Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
11214ddf674Smrg
11314ddf674Smrg   This is not guaranteed to produce working output in all cases, you
11414ddf674Smrgmay have to build one architecture at a time and combine the results
11514ddf674Smrgusing the `lipo' tool if you have problems.
11614ddf674Smrg
11714ddf674SmrgInstallation Names
11814ddf674Smrg==================
11914ddf674Smrg
12014ddf674Smrg   By default, `make install' installs the package's commands under
12114ddf674Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12214ddf674Smrgcan specify an installation prefix other than `/usr/local' by giving
12314ddf674Smrg`configure' the option `--prefix=PREFIX'.
12414ddf674Smrg
12514ddf674Smrg   You can specify separate installation prefixes for
12614ddf674Smrgarchitecture-specific files and architecture-independent files.  If you
12714ddf674Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12814ddf674SmrgPREFIX as the prefix for installing programs and libraries.
12914ddf674SmrgDocumentation and other data files still use the regular prefix.
13014ddf674Smrg
13114ddf674Smrg   In addition, if you use an unusual directory layout you can give
13214ddf674Smrgoptions like `--bindir=DIR' to specify different values for particular
13314ddf674Smrgkinds of files.  Run `configure --help' for a list of the directories
13414ddf674Smrgyou can set and what kinds of files go in them.
13514ddf674Smrg
13614ddf674Smrg   If the package supports it, you can cause programs to be installed
13714ddf674Smrgwith an extra prefix or suffix on their names by giving `configure' the
13814ddf674Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13914ddf674Smrg
14014ddf674SmrgOptional Features
14114ddf674Smrg=================
14214ddf674Smrg
14314ddf674Smrg   Some packages pay attention to `--enable-FEATURE' options to
14414ddf674Smrg`configure', where FEATURE indicates an optional part of the package.
14514ddf674SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14614ddf674Smrgis something like `gnu-as' or `x' (for the X Window System).  The
14714ddf674Smrg`README' should mention any `--enable-' and `--with-' options that the
14814ddf674Smrgpackage recognizes.
14914ddf674Smrg
15014ddf674Smrg   For packages that use the X Window System, `configure' can usually
15114ddf674Smrgfind the X include and library files automatically, but if it doesn't,
15214ddf674Smrgyou can use the `configure' options `--x-includes=DIR' and
15314ddf674Smrg`--x-libraries=DIR' to specify their locations.
15414ddf674Smrg
15514ddf674SmrgParticular systems
15614ddf674Smrg==================
15714ddf674Smrg
15814ddf674Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15914ddf674SmrgCC is not installed, it is recommended to use the following options in
16014ddf674Smrgorder to use an ANSI C compiler:
16114ddf674Smrg
16214ddf674Smrg     ./configure CC="cc -Ae"
16314ddf674Smrg
16414ddf674Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16514ddf674Smrg
16614ddf674Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16714ddf674Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16814ddf674Smrga workaround.  If GNU CC is not installed, it is therefore recommended
16914ddf674Smrgto try
17014ddf674Smrg
17114ddf674Smrg     ./configure CC="cc"
17214ddf674Smrg
17314ddf674Smrgand if that doesn't work, try
17414ddf674Smrg
17514ddf674Smrg     ./configure CC="cc -nodtk"
17614ddf674Smrg
17714ddf674SmrgSpecifying the System Type
17814ddf674Smrg==========================
17914ddf674Smrg
18014ddf674Smrg   There may be some features `configure' cannot figure out
18114ddf674Smrgautomatically, but needs to determine by the type of machine the package
18214ddf674Smrgwill run on.  Usually, assuming the package is built to be run on the
18314ddf674Smrg_same_ architectures, `configure' can figure that out, but if it prints
18414ddf674Smrga message saying it cannot guess the machine type, give it the
18514ddf674Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
18614ddf674Smrgtype, such as `sun4', or a canonical name which has the form:
18714ddf674Smrg
18814ddf674Smrg     CPU-COMPANY-SYSTEM
18914ddf674Smrg
19014ddf674Smrgwhere SYSTEM can have one of these forms:
19114ddf674Smrg
19214ddf674Smrg     OS KERNEL-OS
19314ddf674Smrg
19414ddf674Smrg   See the file `config.sub' for the possible values of each field.  If
19514ddf674Smrg`config.sub' isn't included in this package, then this package doesn't
19614ddf674Smrgneed to know the machine type.
19714ddf674Smrg
19814ddf674Smrg   If you are _building_ compiler tools for cross-compiling, you should
19914ddf674Smrguse the option `--target=TYPE' to select the type of system they will
20014ddf674Smrgproduce code for.
20114ddf674Smrg
20214ddf674Smrg   If you want to _use_ a cross compiler, that generates code for a
20314ddf674Smrgplatform different from the build platform, you should specify the
20414ddf674Smrg"host" platform (i.e., that on which the generated programs will
20514ddf674Smrgeventually be run) with `--host=TYPE'.
20614ddf674Smrg
20714ddf674SmrgSharing Defaults
20814ddf674Smrg================
20914ddf674Smrg
21014ddf674Smrg   If you want to set default values for `configure' scripts to share,
21114ddf674Smrgyou can create a site shell script called `config.site' that gives
21214ddf674Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
21314ddf674Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21414ddf674Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21514ddf674Smrg`CONFIG_SITE' environment variable to the location of the site script.
21614ddf674SmrgA warning: not all `configure' scripts look for a site script.
21714ddf674Smrg
21814ddf674SmrgDefining Variables
21914ddf674Smrg==================
22014ddf674Smrg
22114ddf674Smrg   Variables not defined in a site shell script can be set in the
22214ddf674Smrgenvironment passed to `configure'.  However, some packages may run
22314ddf674Smrgconfigure again during the build, and the customized values of these
22414ddf674Smrgvariables may be lost.  In order to avoid this problem, you should set
22514ddf674Smrgthem in the `configure' command line, using `VAR=value'.  For example:
22614ddf674Smrg
22714ddf674Smrg     ./configure CC=/usr/local2/bin/gcc
22814ddf674Smrg
22914ddf674Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
23014ddf674Smrgoverridden in the site shell script).
23114ddf674Smrg
23214ddf674SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23314ddf674Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23414ddf674Smrg
23514ddf674Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23614ddf674Smrg
23714ddf674Smrg`configure' Invocation
23814ddf674Smrg======================
23914ddf674Smrg
24014ddf674Smrg   `configure' recognizes the following options to control how it
24114ddf674Smrgoperates.
24214ddf674Smrg
24314ddf674Smrg`--help'
24414ddf674Smrg`-h'
24514ddf674Smrg     Print a summary of all of the options to `configure', and exit.
24614ddf674Smrg
24714ddf674Smrg`--help=short'
24814ddf674Smrg`--help=recursive'
24914ddf674Smrg     Print a summary of the options unique to this package's
25014ddf674Smrg     `configure', and exit.  The `short' variant lists options used
25114ddf674Smrg     only in the top level, while the `recursive' variant lists options
25214ddf674Smrg     also present in any nested packages.
25314ddf674Smrg
25414ddf674Smrg`--version'
25514ddf674Smrg`-V'
25614ddf674Smrg     Print the version of Autoconf used to generate the `configure'
25714ddf674Smrg     script, and exit.
25814ddf674Smrg
25914ddf674Smrg`--cache-file=FILE'
26014ddf674Smrg     Enable the cache: use and save the results of the tests in FILE,
26114ddf674Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26214ddf674Smrg     disable caching.
26314ddf674Smrg
26414ddf674Smrg`--config-cache'
26514ddf674Smrg`-C'
26614ddf674Smrg     Alias for `--cache-file=config.cache'.
26714ddf674Smrg
26814ddf674Smrg`--quiet'
26914ddf674Smrg`--silent'
27014ddf674Smrg`-q'
27114ddf674Smrg     Do not print messages saying which checks are being made.  To
27214ddf674Smrg     suppress all normal output, redirect it to `/dev/null' (any error
27314ddf674Smrg     messages will still be shown).
27414ddf674Smrg
27514ddf674Smrg`--srcdir=DIR'
27614ddf674Smrg     Look for the package's source code in directory DIR.  Usually
27714ddf674Smrg     `configure' can determine that directory automatically.
27814ddf674Smrg
27914ddf674Smrg`--prefix=DIR'
28014ddf674Smrg     Use DIR as the installation prefix.  *Note Installation Names::
28114ddf674Smrg     for more details, including other options available for fine-tuning
28214ddf674Smrg     the installation locations.
28314ddf674Smrg
28414ddf674Smrg`--no-create'
28514ddf674Smrg`-n'
28614ddf674Smrg     Run the configure checks, but stop before creating any output
28714ddf674Smrg     files.
28814ddf674Smrg
28914ddf674Smrg`configure' also accepts some other, not widely useful, options.  Run
29014ddf674Smrg`configure --help' for more details.
29114ddf674Smrg
292