INSTALL revision 63847c39
163847c39SmrgInstallation Instructions
263847c39Smrg*************************
363847c39Smrg
463847c39SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
563847c39Smrg2006, 2007, 2008 Free Software Foundation, Inc.
663847c39Smrg
763847c39Smrg   This file is free documentation; the Free Software Foundation gives
863847c39Smrgunlimited permission to copy, distribute and modify it.
963847c39Smrg
1063847c39SmrgBasic Installation
1163847c39Smrg==================
1263847c39Smrg
1363847c39Smrg   Briefly, the shell commands `./configure; make; make install' should
1463847c39Smrgconfigure, build, and install this package.  The following
1563847c39Smrgmore-detailed instructions are generic; see the `README' file for
1663847c39Smrginstructions specific to this package.
1763847c39Smrg
1863847c39Smrg   The `configure' shell script attempts to guess correct values for
1963847c39Smrgvarious system-dependent variables used during compilation.  It uses
2063847c39Smrgthose values to create a `Makefile' in each directory of the package.
2163847c39SmrgIt may also create one or more `.h' files containing system-dependent
2263847c39Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2363847c39Smrgyou can run in the future to recreate the current configuration, and a
2463847c39Smrgfile `config.log' containing compiler output (useful mainly for
2563847c39Smrgdebugging `configure').
2663847c39Smrg
2763847c39Smrg   It can also use an optional file (typically called `config.cache'
2863847c39Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2963847c39Smrgthe results of its tests to speed up reconfiguring.  Caching is
3063847c39Smrgdisabled by default to prevent problems with accidental use of stale
3163847c39Smrgcache files.
3263847c39Smrg
3363847c39Smrg   If you need to do unusual things to compile the package, please try
3463847c39Smrgto figure out how `configure' could check whether to do them, and mail
3563847c39Smrgdiffs or instructions to the address given in the `README' so they can
3663847c39Smrgbe considered for the next release.  If you are using the cache, and at
3763847c39Smrgsome point `config.cache' contains results you don't want to keep, you
3863847c39Smrgmay remove or edit it.
3963847c39Smrg
4063847c39Smrg   The file `configure.ac' (or `configure.in') is used to create
4163847c39Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4263847c39Smrgyou want to change it or regenerate `configure' using a newer version
4363847c39Smrgof `autoconf'.
4463847c39Smrg
4563847c39SmrgThe simplest way to compile this package is:
4663847c39Smrg
4763847c39Smrg  1. `cd' to the directory containing the package's source code and type
4863847c39Smrg     `./configure' to configure the package for your system.
4963847c39Smrg
5063847c39Smrg     Running `configure' might take a while.  While running, it prints
5163847c39Smrg     some messages telling which features it is checking for.
5263847c39Smrg
5363847c39Smrg  2. Type `make' to compile the package.
5463847c39Smrg
5563847c39Smrg  3. Optionally, type `make check' to run any self-tests that come with
5663847c39Smrg     the package.
5763847c39Smrg
5863847c39Smrg  4. Type `make install' to install the programs and any data files and
5963847c39Smrg     documentation.
6063847c39Smrg
6163847c39Smrg  5. You can remove the program binaries and object files from the
6263847c39Smrg     source code directory by typing `make clean'.  To also remove the
6363847c39Smrg     files that `configure' created (so you can compile the package for
6463847c39Smrg     a different kind of computer), type `make distclean'.  There is
6563847c39Smrg     also a `make maintainer-clean' target, but that is intended mainly
6663847c39Smrg     for the package's developers.  If you use it, you may have to get
6763847c39Smrg     all sorts of other programs in order to regenerate files that came
6863847c39Smrg     with the distribution.
6963847c39Smrg
7063847c39Smrg  6. Often, you can also type `make uninstall' to remove the installed
7163847c39Smrg     files again.
7263847c39Smrg
7363847c39SmrgCompilers and Options
7463847c39Smrg=====================
7563847c39Smrg
7663847c39Smrg   Some systems require unusual options for compilation or linking that
7763847c39Smrgthe `configure' script does not know about.  Run `./configure --help'
7863847c39Smrgfor details on some of the pertinent environment variables.
7963847c39Smrg
8063847c39Smrg   You can give `configure' initial values for configuration parameters
8163847c39Smrgby setting variables in the command line or in the environment.  Here
8263847c39Smrgis an example:
8363847c39Smrg
8463847c39Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8563847c39Smrg
8663847c39Smrg   *Note Defining Variables::, for more details.
8763847c39Smrg
8863847c39SmrgCompiling For Multiple Architectures
8963847c39Smrg====================================
9063847c39Smrg
9163847c39Smrg   You can compile the package for more than one kind of computer at the
9263847c39Smrgsame time, by placing the object files for each architecture in their
9363847c39Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9463847c39Smrgdirectory where you want the object files and executables to go and run
9563847c39Smrgthe `configure' script.  `configure' automatically checks for the
9663847c39Smrgsource code in the directory that `configure' is in and in `..'.
9763847c39Smrg
9863847c39Smrg   With a non-GNU `make', it is safer to compile the package for one
9963847c39Smrgarchitecture at a time in the source code directory.  After you have
10063847c39Smrginstalled the package for one architecture, use `make distclean' before
10163847c39Smrgreconfiguring for another architecture.
10263847c39Smrg
10363847c39Smrg   On MacOS X 10.5 and later systems, you can create libraries and
10463847c39Smrgexecutables that work on multiple system types--known as "fat" or
10563847c39Smrg"universal" binaries--by specifying multiple `-arch' options to the
10663847c39Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
10763847c39Smrgthis:
10863847c39Smrg
10963847c39Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11063847c39Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11163847c39Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
11263847c39Smrg
11363847c39Smrg   This is not guaranteed to produce working output in all cases, you
11463847c39Smrgmay have to build one architecture at a time and combine the results
11563847c39Smrgusing the `lipo' tool if you have problems.
11663847c39Smrg
11763847c39SmrgInstallation Names
11863847c39Smrg==================
11963847c39Smrg
12063847c39Smrg   By default, `make install' installs the package's commands under
12163847c39Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12263847c39Smrgcan specify an installation prefix other than `/usr/local' by giving
12363847c39Smrg`configure' the option `--prefix=PREFIX'.
12463847c39Smrg
12563847c39Smrg   You can specify separate installation prefixes for
12663847c39Smrgarchitecture-specific files and architecture-independent files.  If you
12763847c39Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12863847c39SmrgPREFIX as the prefix for installing programs and libraries.
12963847c39SmrgDocumentation and other data files still use the regular prefix.
13063847c39Smrg
13163847c39Smrg   In addition, if you use an unusual directory layout you can give
13263847c39Smrgoptions like `--bindir=DIR' to specify different values for particular
13363847c39Smrgkinds of files.  Run `configure --help' for a list of the directories
13463847c39Smrgyou can set and what kinds of files go in them.
13563847c39Smrg
13663847c39Smrg   If the package supports it, you can cause programs to be installed
13763847c39Smrgwith an extra prefix or suffix on their names by giving `configure' the
13863847c39Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13963847c39Smrg
14063847c39SmrgOptional Features
14163847c39Smrg=================
14263847c39Smrg
14363847c39Smrg   Some packages pay attention to `--enable-FEATURE' options to
14463847c39Smrg`configure', where FEATURE indicates an optional part of the package.
14563847c39SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14663847c39Smrgis something like `gnu-as' or `x' (for the X Window System).  The
14763847c39Smrg`README' should mention any `--enable-' and `--with-' options that the
14863847c39Smrgpackage recognizes.
14963847c39Smrg
15063847c39Smrg   For packages that use the X Window System, `configure' can usually
15163847c39Smrgfind the X include and library files automatically, but if it doesn't,
15263847c39Smrgyou can use the `configure' options `--x-includes=DIR' and
15363847c39Smrg`--x-libraries=DIR' to specify their locations.
15463847c39Smrg
15563847c39SmrgParticular systems
15663847c39Smrg==================
15763847c39Smrg
15863847c39Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15963847c39SmrgCC is not installed, it is recommended to use the following options in
16063847c39Smrgorder to use an ANSI C compiler:
16163847c39Smrg
16263847c39Smrg     ./configure CC="cc -Ae"
16363847c39Smrg
16463847c39Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16563847c39Smrg
16663847c39Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16763847c39Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16863847c39Smrga workaround.  If GNU CC is not installed, it is therefore recommended
16963847c39Smrgto try
17063847c39Smrg
17163847c39Smrg     ./configure CC="cc"
17263847c39Smrg
17363847c39Smrgand if that doesn't work, try
17463847c39Smrg
17563847c39Smrg     ./configure CC="cc -nodtk"
17663847c39Smrg
17763847c39SmrgSpecifying the System Type
17863847c39Smrg==========================
17963847c39Smrg
18063847c39Smrg   There may be some features `configure' cannot figure out
18163847c39Smrgautomatically, but needs to determine by the type of machine the package
18263847c39Smrgwill run on.  Usually, assuming the package is built to be run on the
18363847c39Smrg_same_ architectures, `configure' can figure that out, but if it prints
18463847c39Smrga message saying it cannot guess the machine type, give it the
18563847c39Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
18663847c39Smrgtype, such as `sun4', or a canonical name which has the form:
18763847c39Smrg
18863847c39Smrg     CPU-COMPANY-SYSTEM
18963847c39Smrg
19063847c39Smrgwhere SYSTEM can have one of these forms:
19163847c39Smrg
19263847c39Smrg     OS KERNEL-OS
19363847c39Smrg
19463847c39Smrg   See the file `config.sub' for the possible values of each field.  If
19563847c39Smrg`config.sub' isn't included in this package, then this package doesn't
19663847c39Smrgneed to know the machine type.
19763847c39Smrg
19863847c39Smrg   If you are _building_ compiler tools for cross-compiling, you should
19963847c39Smrguse the option `--target=TYPE' to select the type of system they will
20063847c39Smrgproduce code for.
20163847c39Smrg
20263847c39Smrg   If you want to _use_ a cross compiler, that generates code for a
20363847c39Smrgplatform different from the build platform, you should specify the
20463847c39Smrg"host" platform (i.e., that on which the generated programs will
20563847c39Smrgeventually be run) with `--host=TYPE'.
20663847c39Smrg
20763847c39SmrgSharing Defaults
20863847c39Smrg================
20963847c39Smrg
21063847c39Smrg   If you want to set default values for `configure' scripts to share,
21163847c39Smrgyou can create a site shell script called `config.site' that gives
21263847c39Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
21363847c39Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21463847c39Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21563847c39Smrg`CONFIG_SITE' environment variable to the location of the site script.
21663847c39SmrgA warning: not all `configure' scripts look for a site script.
21763847c39Smrg
21863847c39SmrgDefining Variables
21963847c39Smrg==================
22063847c39Smrg
22163847c39Smrg   Variables not defined in a site shell script can be set in the
22263847c39Smrgenvironment passed to `configure'.  However, some packages may run
22363847c39Smrgconfigure again during the build, and the customized values of these
22463847c39Smrgvariables may be lost.  In order to avoid this problem, you should set
22563847c39Smrgthem in the `configure' command line, using `VAR=value'.  For example:
22663847c39Smrg
22763847c39Smrg     ./configure CC=/usr/local2/bin/gcc
22863847c39Smrg
22963847c39Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
23063847c39Smrgoverridden in the site shell script).
23163847c39Smrg
23263847c39SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23363847c39Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23463847c39Smrg
23563847c39Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23663847c39Smrg
23763847c39Smrg`configure' Invocation
23863847c39Smrg======================
23963847c39Smrg
24063847c39Smrg   `configure' recognizes the following options to control how it
24163847c39Smrgoperates.
24263847c39Smrg
24363847c39Smrg`--help'
24463847c39Smrg`-h'
24563847c39Smrg     Print a summary of all of the options to `configure', and exit.
24663847c39Smrg
24763847c39Smrg`--help=short'
24863847c39Smrg`--help=recursive'
24963847c39Smrg     Print a summary of the options unique to this package's
25063847c39Smrg     `configure', and exit.  The `short' variant lists options used
25163847c39Smrg     only in the top level, while the `recursive' variant lists options
25263847c39Smrg     also present in any nested packages.
25363847c39Smrg
25463847c39Smrg`--version'
25563847c39Smrg`-V'
25663847c39Smrg     Print the version of Autoconf used to generate the `configure'
25763847c39Smrg     script, and exit.
25863847c39Smrg
25963847c39Smrg`--cache-file=FILE'
26063847c39Smrg     Enable the cache: use and save the results of the tests in FILE,
26163847c39Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26263847c39Smrg     disable caching.
26363847c39Smrg
26463847c39Smrg`--config-cache'
26563847c39Smrg`-C'
26663847c39Smrg     Alias for `--cache-file=config.cache'.
26763847c39Smrg
26863847c39Smrg`--quiet'
26963847c39Smrg`--silent'
27063847c39Smrg`-q'
27163847c39Smrg     Do not print messages saying which checks are being made.  To
27263847c39Smrg     suppress all normal output, redirect it to `/dev/null' (any error
27363847c39Smrg     messages will still be shown).
27463847c39Smrg
27563847c39Smrg`--srcdir=DIR'
27663847c39Smrg     Look for the package's source code in directory DIR.  Usually
27763847c39Smrg     `configure' can determine that directory automatically.
27863847c39Smrg
27963847c39Smrg`--prefix=DIR'
28063847c39Smrg     Use DIR as the installation prefix.  *Note Installation Names::
28163847c39Smrg     for more details, including other options available for fine-tuning
28263847c39Smrg     the installation locations.
28363847c39Smrg
28463847c39Smrg`--no-create'
28563847c39Smrg`-n'
28663847c39Smrg     Run the configure checks, but stop before creating any output
28763847c39Smrg     files.
28863847c39Smrg
28963847c39Smrg`configure' also accepts some other, not widely useful, options.  Run
29063847c39Smrg`configure --help' for more details.
29163847c39Smrg
292