1d9c7fc6cSmrgInstallation Instructions
2d9c7fc6cSmrg*************************
3d9c7fc6cSmrg
405a1a286SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
505a1a286Smrg2006, 2007, 2008 Free Software Foundation, Inc.
6d9c7fc6cSmrg
705a1a286Smrg   This file is free documentation; the Free Software Foundation gives
8d9c7fc6cSmrgunlimited permission to copy, distribute and modify it.
9d9c7fc6cSmrg
10d9c7fc6cSmrgBasic Installation
11d9c7fc6cSmrg==================
12d9c7fc6cSmrg
1305a1a286Smrg   Briefly, the shell commands `./configure; make; make install' should
1405a1a286Smrgconfigure, build, and install this package.  The following
1505a1a286Smrgmore-detailed instructions are generic; see the `README' file for
1605a1a286Smrginstructions specific to this package.
17d9c7fc6cSmrg
18d9c7fc6cSmrg   The `configure' shell script attempts to guess correct values for
19d9c7fc6cSmrgvarious system-dependent variables used during compilation.  It uses
20d9c7fc6cSmrgthose values to create a `Makefile' in each directory of the package.
21d9c7fc6cSmrgIt may also create one or more `.h' files containing system-dependent
22d9c7fc6cSmrgdefinitions.  Finally, it creates a shell script `config.status' that
23d9c7fc6cSmrgyou can run in the future to recreate the current configuration, and a
24d9c7fc6cSmrgfile `config.log' containing compiler output (useful mainly for
25d9c7fc6cSmrgdebugging `configure').
26d9c7fc6cSmrg
27d9c7fc6cSmrg   It can also use an optional file (typically called `config.cache'
28d9c7fc6cSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2905a1a286Smrgthe results of its tests to speed up reconfiguring.  Caching is
30d9c7fc6cSmrgdisabled by default to prevent problems with accidental use of stale
3105a1a286Smrgcache files.
32d9c7fc6cSmrg
33d9c7fc6cSmrg   If you need to do unusual things to compile the package, please try
34d9c7fc6cSmrgto figure out how `configure' could check whether to do them, and mail
35d9c7fc6cSmrgdiffs or instructions to the address given in the `README' so they can
36d9c7fc6cSmrgbe considered for the next release.  If you are using the cache, and at
37d9c7fc6cSmrgsome point `config.cache' contains results you don't want to keep, you
38d9c7fc6cSmrgmay remove or edit it.
39d9c7fc6cSmrg
40d9c7fc6cSmrg   The file `configure.ac' (or `configure.in') is used to create
4105a1a286Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
4205a1a286Smrgyou want to change it or regenerate `configure' using a newer version
4305a1a286Smrgof `autoconf'.
44d9c7fc6cSmrg
45d9c7fc6cSmrgThe simplest way to compile this package is:
46d9c7fc6cSmrg
47d9c7fc6cSmrg  1. `cd' to the directory containing the package's source code and type
4805a1a286Smrg     `./configure' to configure the package for your system.
49d9c7fc6cSmrg
5005a1a286Smrg     Running `configure' might take a while.  While running, it prints
5105a1a286Smrg     some messages telling which features it is checking for.
52d9c7fc6cSmrg
53d9c7fc6cSmrg  2. Type `make' to compile the package.
54d9c7fc6cSmrg
55d9c7fc6cSmrg  3. Optionally, type `make check' to run any self-tests that come with
56d9c7fc6cSmrg     the package.
57d9c7fc6cSmrg
58d9c7fc6cSmrg  4. Type `make install' to install the programs and any data files and
59d9c7fc6cSmrg     documentation.
60d9c7fc6cSmrg
61d9c7fc6cSmrg  5. You can remove the program binaries and object files from the
62d9c7fc6cSmrg     source code directory by typing `make clean'.  To also remove the
63d9c7fc6cSmrg     files that `configure' created (so you can compile the package for
64d9c7fc6cSmrg     a different kind of computer), type `make distclean'.  There is
65d9c7fc6cSmrg     also a `make maintainer-clean' target, but that is intended mainly
66d9c7fc6cSmrg     for the package's developers.  If you use it, you may have to get
67d9c7fc6cSmrg     all sorts of other programs in order to regenerate files that came
68d9c7fc6cSmrg     with the distribution.
69d9c7fc6cSmrg
7005a1a286Smrg  6. Often, you can also type `make uninstall' to remove the installed
7105a1a286Smrg     files again.
7205a1a286Smrg
73d9c7fc6cSmrgCompilers and Options
74d9c7fc6cSmrg=====================
75d9c7fc6cSmrg
7605a1a286Smrg   Some systems require unusual options for compilation or linking that
7705a1a286Smrgthe `configure' script does not know about.  Run `./configure --help'
7805a1a286Smrgfor details on some of the pertinent environment variables.
79d9c7fc6cSmrg
80d9c7fc6cSmrg   You can give `configure' initial values for configuration parameters
81d9c7fc6cSmrgby setting variables in the command line or in the environment.  Here
82d9c7fc6cSmrgis an example:
83d9c7fc6cSmrg
8405a1a286Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
85d9c7fc6cSmrg
86d9c7fc6cSmrg   *Note Defining Variables::, for more details.
87d9c7fc6cSmrg
88d9c7fc6cSmrgCompiling For Multiple Architectures
89d9c7fc6cSmrg====================================
90d9c7fc6cSmrg
9105a1a286Smrg   You can compile the package for more than one kind of computer at the
92d9c7fc6cSmrgsame time, by placing the object files for each architecture in their
9305a1a286Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
94d9c7fc6cSmrgdirectory where you want the object files and executables to go and run
95d9c7fc6cSmrgthe `configure' script.  `configure' automatically checks for the
96d9c7fc6cSmrgsource code in the directory that `configure' is in and in `..'.
97d9c7fc6cSmrg
9805a1a286Smrg   With a non-GNU `make', it is safer to compile the package for one
9905a1a286Smrgarchitecture at a time in the source code directory.  After you have
10005a1a286Smrginstalled the package for one architecture, use `make distclean' before
10105a1a286Smrgreconfiguring for another architecture.
10205a1a286Smrg
10305a1a286Smrg   On MacOS X 10.5 and later systems, you can create libraries and
10405a1a286Smrgexecutables that work on multiple system types--known as "fat" or
10505a1a286Smrg"universal" binaries--by specifying multiple `-arch' options to the
10605a1a286Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
10705a1a286Smrgthis:
10805a1a286Smrg
10905a1a286Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11005a1a286Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
11105a1a286Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
11205a1a286Smrg
11305a1a286Smrg   This is not guaranteed to produce working output in all cases, you
11405a1a286Smrgmay have to build one architecture at a time and combine the results
11505a1a286Smrgusing the `lipo' tool if you have problems.
116d9c7fc6cSmrg
117d9c7fc6cSmrgInstallation Names
118d9c7fc6cSmrg==================
119d9c7fc6cSmrg
12005a1a286Smrg   By default, `make install' installs the package's commands under
121d9c7fc6cSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
122d9c7fc6cSmrgcan specify an installation prefix other than `/usr/local' by giving
123d9c7fc6cSmrg`configure' the option `--prefix=PREFIX'.
124d9c7fc6cSmrg
125d9c7fc6cSmrg   You can specify separate installation prefixes for
126d9c7fc6cSmrgarchitecture-specific files and architecture-independent files.  If you
127d9c7fc6cSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
128d9c7fc6cSmrgPREFIX as the prefix for installing programs and libraries.
129d9c7fc6cSmrgDocumentation and other data files still use the regular prefix.
130d9c7fc6cSmrg
131d9c7fc6cSmrg   In addition, if you use an unusual directory layout you can give
132d9c7fc6cSmrgoptions like `--bindir=DIR' to specify different values for particular
133d9c7fc6cSmrgkinds of files.  Run `configure --help' for a list of the directories
134d9c7fc6cSmrgyou can set and what kinds of files go in them.
135d9c7fc6cSmrg
136d9c7fc6cSmrg   If the package supports it, you can cause programs to be installed
137d9c7fc6cSmrgwith an extra prefix or suffix on their names by giving `configure' the
138d9c7fc6cSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
139d9c7fc6cSmrg
140d9c7fc6cSmrgOptional Features
141d9c7fc6cSmrg=================
142d9c7fc6cSmrg
14305a1a286Smrg   Some packages pay attention to `--enable-FEATURE' options to
144d9c7fc6cSmrg`configure', where FEATURE indicates an optional part of the package.
145d9c7fc6cSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
146d9c7fc6cSmrgis something like `gnu-as' or `x' (for the X Window System).  The
147d9c7fc6cSmrg`README' should mention any `--enable-' and `--with-' options that the
148d9c7fc6cSmrgpackage recognizes.
149d9c7fc6cSmrg
150d9c7fc6cSmrg   For packages that use the X Window System, `configure' can usually
151d9c7fc6cSmrgfind the X include and library files automatically, but if it doesn't,
152d9c7fc6cSmrgyou can use the `configure' options `--x-includes=DIR' and
153d9c7fc6cSmrg`--x-libraries=DIR' to specify their locations.
154d9c7fc6cSmrg
15505a1a286SmrgParticular systems
15605a1a286Smrg==================
15705a1a286Smrg
15805a1a286Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
15905a1a286SmrgCC is not installed, it is recommended to use the following options in
16005a1a286Smrgorder to use an ANSI C compiler:
16105a1a286Smrg
16205a1a286Smrg     ./configure CC="cc -Ae"
16305a1a286Smrg
16405a1a286Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
16505a1a286Smrg
16605a1a286Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
16705a1a286Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
16805a1a286Smrga workaround.  If GNU CC is not installed, it is therefore recommended
16905a1a286Smrgto try
17005a1a286Smrg
17105a1a286Smrg     ./configure CC="cc"
17205a1a286Smrg
17305a1a286Smrgand if that doesn't work, try
17405a1a286Smrg
17505a1a286Smrg     ./configure CC="cc -nodtk"
17605a1a286Smrg
177d9c7fc6cSmrgSpecifying the System Type
178d9c7fc6cSmrg==========================
179d9c7fc6cSmrg
18005a1a286Smrg   There may be some features `configure' cannot figure out
18105a1a286Smrgautomatically, but needs to determine by the type of machine the package
18205a1a286Smrgwill run on.  Usually, assuming the package is built to be run on the
18305a1a286Smrg_same_ architectures, `configure' can figure that out, but if it prints
18405a1a286Smrga message saying it cannot guess the machine type, give it the
185d9c7fc6cSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
186d9c7fc6cSmrgtype, such as `sun4', or a canonical name which has the form:
187d9c7fc6cSmrg
188d9c7fc6cSmrg     CPU-COMPANY-SYSTEM
189d9c7fc6cSmrg
190d9c7fc6cSmrgwhere SYSTEM can have one of these forms:
191d9c7fc6cSmrg
192d9c7fc6cSmrg     OS KERNEL-OS
193d9c7fc6cSmrg
194d9c7fc6cSmrg   See the file `config.sub' for the possible values of each field.  If
195d9c7fc6cSmrg`config.sub' isn't included in this package, then this package doesn't
196d9c7fc6cSmrgneed to know the machine type.
197d9c7fc6cSmrg
198d9c7fc6cSmrg   If you are _building_ compiler tools for cross-compiling, you should
199d9c7fc6cSmrguse the option `--target=TYPE' to select the type of system they will
200d9c7fc6cSmrgproduce code for.
201d9c7fc6cSmrg
202d9c7fc6cSmrg   If you want to _use_ a cross compiler, that generates code for a
203d9c7fc6cSmrgplatform different from the build platform, you should specify the
204d9c7fc6cSmrg"host" platform (i.e., that on which the generated programs will
205d9c7fc6cSmrgeventually be run) with `--host=TYPE'.
206d9c7fc6cSmrg
207d9c7fc6cSmrgSharing Defaults
208d9c7fc6cSmrg================
209d9c7fc6cSmrg
21005a1a286Smrg   If you want to set default values for `configure' scripts to share,
21105a1a286Smrgyou can create a site shell script called `config.site' that gives
21205a1a286Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
213d9c7fc6cSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
214d9c7fc6cSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
215d9c7fc6cSmrg`CONFIG_SITE' environment variable to the location of the site script.
216d9c7fc6cSmrgA warning: not all `configure' scripts look for a site script.
217d9c7fc6cSmrg
218d9c7fc6cSmrgDefining Variables
219d9c7fc6cSmrg==================
220d9c7fc6cSmrg
22105a1a286Smrg   Variables not defined in a site shell script can be set in the
222d9c7fc6cSmrgenvironment passed to `configure'.  However, some packages may run
223d9c7fc6cSmrgconfigure again during the build, and the customized values of these
224d9c7fc6cSmrgvariables may be lost.  In order to avoid this problem, you should set
225d9c7fc6cSmrgthem in the `configure' command line, using `VAR=value'.  For example:
226d9c7fc6cSmrg
227d9c7fc6cSmrg     ./configure CC=/usr/local2/bin/gcc
228d9c7fc6cSmrg
229d9c7fc6cSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
23005a1a286Smrgoverridden in the site shell script).
231d9c7fc6cSmrg
23205a1a286SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
23305a1a286Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
234d9c7fc6cSmrg
23505a1a286Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
236d9c7fc6cSmrg
237d9c7fc6cSmrg`configure' Invocation
238d9c7fc6cSmrg======================
239d9c7fc6cSmrg
24005a1a286Smrg   `configure' recognizes the following options to control how it
24105a1a286Smrgoperates.
242d9c7fc6cSmrg
243d9c7fc6cSmrg`--help'
244d9c7fc6cSmrg`-h'
24505a1a286Smrg     Print a summary of all of the options to `configure', and exit.
24605a1a286Smrg
24705a1a286Smrg`--help=short'
24805a1a286Smrg`--help=recursive'
24905a1a286Smrg     Print a summary of the options unique to this package's
25005a1a286Smrg     `configure', and exit.  The `short' variant lists options used
25105a1a286Smrg     only in the top level, while the `recursive' variant lists options
25205a1a286Smrg     also present in any nested packages.
253d9c7fc6cSmrg
254d9c7fc6cSmrg`--version'
255d9c7fc6cSmrg`-V'
256d9c7fc6cSmrg     Print the version of Autoconf used to generate the `configure'
257d9c7fc6cSmrg     script, and exit.
258d9c7fc6cSmrg
259d9c7fc6cSmrg`--cache-file=FILE'
260d9c7fc6cSmrg     Enable the cache: use and save the results of the tests in FILE,
261d9c7fc6cSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
262d9c7fc6cSmrg     disable caching.
263d9c7fc6cSmrg
264d9c7fc6cSmrg`--config-cache'
265d9c7fc6cSmrg`-C'
266d9c7fc6cSmrg     Alias for `--cache-file=config.cache'.
267d9c7fc6cSmrg
268d9c7fc6cSmrg`--quiet'
269d9c7fc6cSmrg`--silent'
270d9c7fc6cSmrg`-q'
271d9c7fc6cSmrg     Do not print messages saying which checks are being made.  To
272d9c7fc6cSmrg     suppress all normal output, redirect it to `/dev/null' (any error
273d9c7fc6cSmrg     messages will still be shown).
274d9c7fc6cSmrg
275d9c7fc6cSmrg`--srcdir=DIR'
276d9c7fc6cSmrg     Look for the package's source code in directory DIR.  Usually
277d9c7fc6cSmrg     `configure' can determine that directory automatically.
278d9c7fc6cSmrg
27905a1a286Smrg`--prefix=DIR'
28005a1a286Smrg     Use DIR as the installation prefix.  *Note Installation Names::
28105a1a286Smrg     for more details, including other options available for fine-tuning
28205a1a286Smrg     the installation locations.
28305a1a286Smrg
28405a1a286Smrg`--no-create'
28505a1a286Smrg`-n'
28605a1a286Smrg     Run the configure checks, but stop before creating any output
28705a1a286Smrg     files.
28805a1a286Smrg
289d9c7fc6cSmrg`configure' also accepts some other, not widely useful, options.  Run
290d9c7fc6cSmrg`configure --help' for more details.
291d9c7fc6cSmrg
292