INSTALL revision 00084f2c
127702724SmrgInstallation Instructions
227702724Smrg*************************
327702724Smrg
400084f2cSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
500084f2cSmrg2006, 2007, 2008 Free Software Foundation, Inc.
627702724Smrg
700084f2cSmrg   This file is free documentation; the Free Software Foundation gives
827702724Smrgunlimited permission to copy, distribute and modify it.
927702724Smrg
1027702724SmrgBasic Installation
1127702724Smrg==================
1227702724Smrg
1300084f2cSmrg   Briefly, the shell commands `./configure; make; make install' should
1400084f2cSmrgconfigure, build, and install this package.  The following
1500084f2cSmrgmore-detailed instructions are generic; see the `README' file for
1600084f2cSmrginstructions specific to this package.
1727702724Smrg
1827702724Smrg   The `configure' shell script attempts to guess correct values for
1927702724Smrgvarious system-dependent variables used during compilation.  It uses
2027702724Smrgthose values to create a `Makefile' in each directory of the package.
2127702724SmrgIt may also create one or more `.h' files containing system-dependent
2227702724Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2327702724Smrgyou can run in the future to recreate the current configuration, and a
2427702724Smrgfile `config.log' containing compiler output (useful mainly for
2527702724Smrgdebugging `configure').
2627702724Smrg
2727702724Smrg   It can also use an optional file (typically called `config.cache'
2827702724Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2900084f2cSmrgthe results of its tests to speed up reconfiguring.  Caching is
3027702724Smrgdisabled by default to prevent problems with accidental use of stale
3100084f2cSmrgcache files.
3227702724Smrg
3327702724Smrg   If you need to do unusual things to compile the package, please try
3427702724Smrgto figure out how `configure' could check whether to do them, and mail
3527702724Smrgdiffs or instructions to the address given in the `README' so they can
3627702724Smrgbe considered for the next release.  If you are using the cache, and at
3727702724Smrgsome point `config.cache' contains results you don't want to keep, you
3827702724Smrgmay remove or edit it.
3927702724Smrg
4027702724Smrg   The file `configure.ac' (or `configure.in') is used to create
4100084f2cSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4200084f2cSmrgyou want to change it or regenerate `configure' using a newer version
4300084f2cSmrgof `autoconf'.
4427702724Smrg
4527702724SmrgThe simplest way to compile this package is:
4627702724Smrg
4727702724Smrg  1. `cd' to the directory containing the package's source code and type
4800084f2cSmrg     `./configure' to configure the package for your system.
4927702724Smrg
5000084f2cSmrg     Running `configure' might take a while.  While running, it prints
5100084f2cSmrg     some messages telling which features it is checking for.
5227702724Smrg
5327702724Smrg  2. Type `make' to compile the package.
5427702724Smrg
5527702724Smrg  3. Optionally, type `make check' to run any self-tests that come with
5627702724Smrg     the package.
5727702724Smrg
5827702724Smrg  4. Type `make install' to install the programs and any data files and
5927702724Smrg     documentation.
6027702724Smrg
6127702724Smrg  5. You can remove the program binaries and object files from the
6227702724Smrg     source code directory by typing `make clean'.  To also remove the
6327702724Smrg     files that `configure' created (so you can compile the package for
6427702724Smrg     a different kind of computer), type `make distclean'.  There is
6527702724Smrg     also a `make maintainer-clean' target, but that is intended mainly
6627702724Smrg     for the package's developers.  If you use it, you may have to get
6727702724Smrg     all sorts of other programs in order to regenerate files that came
6827702724Smrg     with the distribution.
6927702724Smrg
7000084f2cSmrg  6. Often, you can also type `make uninstall' to remove the installed
7100084f2cSmrg     files again.
7200084f2cSmrg
7327702724SmrgCompilers and Options
7427702724Smrg=====================
7527702724Smrg
7600084f2cSmrg   Some systems require unusual options for compilation or linking that
7700084f2cSmrgthe `configure' script does not know about.  Run `./configure --help'
7800084f2cSmrgfor details on some of the pertinent environment variables.
7927702724Smrg
8027702724Smrg   You can give `configure' initial values for configuration parameters
8127702724Smrgby setting variables in the command line or in the environment.  Here
8227702724Smrgis an example:
8327702724Smrg
8400084f2cSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
8527702724Smrg
8627702724Smrg   *Note Defining Variables::, for more details.
8727702724Smrg
8827702724SmrgCompiling For Multiple Architectures
8927702724Smrg====================================
9027702724Smrg
9100084f2cSmrg   You can compile the package for more than one kind of computer at the
9227702724Smrgsame time, by placing the object files for each architecture in their
9300084f2cSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
9427702724Smrgdirectory where you want the object files and executables to go and run
9527702724Smrgthe `configure' script.  `configure' automatically checks for the
9627702724Smrgsource code in the directory that `configure' is in and in `..'.
9727702724Smrg
9800084f2cSmrg   With a non-GNU `make', it is safer to compile the package for one
9900084f2cSmrgarchitecture at a time in the source code directory.  After you have
10000084f2cSmrginstalled the package for one architecture, use `make distclean' before
10100084f2cSmrgreconfiguring for another architecture.
10200084f2cSmrg
10300084f2cSmrg   On MacOS X 10.5 and later systems, you can create libraries and
10400084f2cSmrgexecutables that work on multiple system types--known as "fat" or
10500084f2cSmrg"universal" binaries--by specifying multiple `-arch' options to the
10600084f2cSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
10700084f2cSmrgthis:
10800084f2cSmrg
10900084f2cSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11000084f2cSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11100084f2cSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
11200084f2cSmrg
11300084f2cSmrg   This is not guaranteed to produce working output in all cases, you
11400084f2cSmrgmay have to build one architecture at a time and combine the results
11500084f2cSmrgusing the `lipo' tool if you have problems.
11627702724Smrg
11727702724SmrgInstallation Names
11827702724Smrg==================
11927702724Smrg
12000084f2cSmrg   By default, `make install' installs the package's commands under
12100084f2cSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
12200084f2cSmrgcan specify an installation prefix other than `/usr/local' by giving
12300084f2cSmrg`configure' the option `--prefix=PREFIX'.
12427702724Smrg
12527702724Smrg   You can specify separate installation prefixes for
12627702724Smrgarchitecture-specific files and architecture-independent files.  If you
12700084f2cSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
12800084f2cSmrgPREFIX as the prefix for installing programs and libraries.
12900084f2cSmrgDocumentation and other data files still use the regular prefix.
13027702724Smrg
13127702724Smrg   In addition, if you use an unusual directory layout you can give
13227702724Smrgoptions like `--bindir=DIR' to specify different values for particular
13327702724Smrgkinds of files.  Run `configure --help' for a list of the directories
13427702724Smrgyou can set and what kinds of files go in them.
13527702724Smrg
13627702724Smrg   If the package supports it, you can cause programs to be installed
13727702724Smrgwith an extra prefix or suffix on their names by giving `configure' the
13827702724Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
13927702724Smrg
14027702724SmrgOptional Features
14127702724Smrg=================
14227702724Smrg
14300084f2cSmrg   Some packages pay attention to `--enable-FEATURE' options to
14427702724Smrg`configure', where FEATURE indicates an optional part of the package.
14527702724SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
14627702724Smrgis something like `gnu-as' or `x' (for the X Window System).  The
14727702724Smrg`README' should mention any `--enable-' and `--with-' options that the
14827702724Smrgpackage recognizes.
14927702724Smrg
15027702724Smrg   For packages that use the X Window System, `configure' can usually
15127702724Smrgfind the X include and library files automatically, but if it doesn't,
15227702724Smrgyou can use the `configure' options `--x-includes=DIR' and
15327702724Smrg`--x-libraries=DIR' to specify their locations.
15427702724Smrg
15500084f2cSmrgParticular systems
15600084f2cSmrg==================
15700084f2cSmrg
15800084f2cSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15900084f2cSmrgCC is not installed, it is recommended to use the following options in
16000084f2cSmrgorder to use an ANSI C compiler:
16100084f2cSmrg
16200084f2cSmrg     ./configure CC="cc -Ae"
16300084f2cSmrg
16400084f2cSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16500084f2cSmrg
16600084f2cSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16700084f2cSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16800084f2cSmrga workaround.  If GNU CC is not installed, it is therefore recommended
16900084f2cSmrgto try
17000084f2cSmrg
17100084f2cSmrg     ./configure CC="cc"
17200084f2cSmrg
17300084f2cSmrgand if that doesn't work, try
17400084f2cSmrg
17500084f2cSmrg     ./configure CC="cc -nodtk"
17600084f2cSmrg
17727702724SmrgSpecifying the System Type
17827702724Smrg==========================
17927702724Smrg
18000084f2cSmrg   There may be some features `configure' cannot figure out
18100084f2cSmrgautomatically, but needs to determine by the type of machine the package
18200084f2cSmrgwill run on.  Usually, assuming the package is built to be run on the
18300084f2cSmrg_same_ architectures, `configure' can figure that out, but if it prints
18400084f2cSmrga message saying it cannot guess the machine type, give it the
18527702724Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
18627702724Smrgtype, such as `sun4', or a canonical name which has the form:
18727702724Smrg
18827702724Smrg     CPU-COMPANY-SYSTEM
18927702724Smrg
19027702724Smrgwhere SYSTEM can have one of these forms:
19127702724Smrg
19227702724Smrg     OS KERNEL-OS
19327702724Smrg
19427702724Smrg   See the file `config.sub' for the possible values of each field.  If
19527702724Smrg`config.sub' isn't included in this package, then this package doesn't
19627702724Smrgneed to know the machine type.
19727702724Smrg
19827702724Smrg   If you are _building_ compiler tools for cross-compiling, you should
19900084f2cSmrguse the option `--target=TYPE' to select the type of system they will
20027702724Smrgproduce code for.
20127702724Smrg
20227702724Smrg   If you want to _use_ a cross compiler, that generates code for a
20327702724Smrgplatform different from the build platform, you should specify the
20427702724Smrg"host" platform (i.e., that on which the generated programs will
20527702724Smrgeventually be run) with `--host=TYPE'.
20627702724Smrg
20727702724SmrgSharing Defaults
20827702724Smrg================
20927702724Smrg
21000084f2cSmrg   If you want to set default values for `configure' scripts to share,
21100084f2cSmrgyou can create a site shell script called `config.site' that gives
21200084f2cSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
21327702724Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
21427702724Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
21527702724Smrg`CONFIG_SITE' environment variable to the location of the site script.
21627702724SmrgA warning: not all `configure' scripts look for a site script.
21727702724Smrg
21827702724SmrgDefining Variables
21927702724Smrg==================
22027702724Smrg
22100084f2cSmrg   Variables not defined in a site shell script can be set in the
22227702724Smrgenvironment passed to `configure'.  However, some packages may run
22327702724Smrgconfigure again during the build, and the customized values of these
22427702724Smrgvariables may be lost.  In order to avoid this problem, you should set
22527702724Smrgthem in the `configure' command line, using `VAR=value'.  For example:
22627702724Smrg
22727702724Smrg     ./configure CC=/usr/local2/bin/gcc
22827702724Smrg
22927702724Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
23000084f2cSmrgoverridden in the site shell script).
23127702724Smrg
23200084f2cSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23300084f2cSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
23427702724Smrg
23500084f2cSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
23627702724Smrg
23727702724Smrg`configure' Invocation
23827702724Smrg======================
23927702724Smrg
24000084f2cSmrg   `configure' recognizes the following options to control how it
24100084f2cSmrgoperates.
24227702724Smrg
24327702724Smrg`--help'
24427702724Smrg`-h'
24500084f2cSmrg     Print a summary of all of the options to `configure', and exit.
24600084f2cSmrg
24700084f2cSmrg`--help=short'
24800084f2cSmrg`--help=recursive'
24900084f2cSmrg     Print a summary of the options unique to this package's
25000084f2cSmrg     `configure', and exit.  The `short' variant lists options used
25100084f2cSmrg     only in the top level, while the `recursive' variant lists options
25200084f2cSmrg     also present in any nested packages.
25327702724Smrg
25427702724Smrg`--version'
25527702724Smrg`-V'
25627702724Smrg     Print the version of Autoconf used to generate the `configure'
25727702724Smrg     script, and exit.
25827702724Smrg
25927702724Smrg`--cache-file=FILE'
26027702724Smrg     Enable the cache: use and save the results of the tests in FILE,
26127702724Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
26227702724Smrg     disable caching.
26327702724Smrg
26427702724Smrg`--config-cache'
26527702724Smrg`-C'
26627702724Smrg     Alias for `--cache-file=config.cache'.
26727702724Smrg
26827702724Smrg`--quiet'
26927702724Smrg`--silent'
27027702724Smrg`-q'
27127702724Smrg     Do not print messages saying which checks are being made.  To
27227702724Smrg     suppress all normal output, redirect it to `/dev/null' (any error
27327702724Smrg     messages will still be shown).
27427702724Smrg
27527702724Smrg`--srcdir=DIR'
27627702724Smrg     Look for the package's source code in directory DIR.  Usually
27727702724Smrg     `configure' can determine that directory automatically.
27827702724Smrg
27900084f2cSmrg`--prefix=DIR'
28000084f2cSmrg     Use DIR as the installation prefix.  *Note Installation Names::
28100084f2cSmrg     for more details, including other options available for fine-tuning
28200084f2cSmrg     the installation locations.
28300084f2cSmrg
28400084f2cSmrg`--no-create'
28500084f2cSmrg`-n'
28600084f2cSmrg     Run the configure checks, but stop before creating any output
28700084f2cSmrg     files.
28800084f2cSmrg
28927702724Smrg`configure' also accepts some other, not widely useful, options.  Run
29027702724Smrg`configure --help' for more details.
29127702724Smrg
292