INSTALL revision f1e20f77
1f1e20f77SmrgInstallation Instructions
2f1e20f77Smrg*************************
3f1e20f77Smrg
4f1e20f77SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
5f1e20f77Smrg2006, 2007, 2008 Free Software Foundation, Inc.
6f1e20f77Smrg
7f1e20f77Smrg   This file is free documentation; the Free Software Foundation gives
8f1e20f77Smrgunlimited permission to copy, distribute and modify it.
9f1e20f77Smrg
10f1e20f77SmrgBasic Installation
11f1e20f77Smrg==================
12f1e20f77Smrg
13f1e20f77Smrg   Briefly, the shell commands `./configure; make; make install' should
14f1e20f77Smrgconfigure, build, and install this package.  The following
15f1e20f77Smrgmore-detailed instructions are generic; see the `README' file for
16f1e20f77Smrginstructions specific to this package.
17f1e20f77Smrg
18f1e20f77Smrg   The `configure' shell script attempts to guess correct values for
19f1e20f77Smrgvarious system-dependent variables used during compilation.  It uses
20f1e20f77Smrgthose values to create a `Makefile' in each directory of the package.
21f1e20f77SmrgIt may also create one or more `.h' files containing system-dependent
22f1e20f77Smrgdefinitions.  Finally, it creates a shell script `config.status' that
23f1e20f77Smrgyou can run in the future to recreate the current configuration, and a
24f1e20f77Smrgfile `config.log' containing compiler output (useful mainly for
25f1e20f77Smrgdebugging `configure').
26f1e20f77Smrg
27f1e20f77Smrg   It can also use an optional file (typically called `config.cache'
28f1e20f77Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
29f1e20f77Smrgthe results of its tests to speed up reconfiguring.  Caching is
30f1e20f77Smrgdisabled by default to prevent problems with accidental use of stale
31f1e20f77Smrgcache files.
32f1e20f77Smrg
33f1e20f77Smrg   If you need to do unusual things to compile the package, please try
34f1e20f77Smrgto figure out how `configure' could check whether to do them, and mail
35f1e20f77Smrgdiffs or instructions to the address given in the `README' so they can
36f1e20f77Smrgbe considered for the next release.  If you are using the cache, and at
37f1e20f77Smrgsome point `config.cache' contains results you don't want to keep, you
38f1e20f77Smrgmay remove or edit it.
39f1e20f77Smrg
40f1e20f77Smrg   The file `configure.ac' (or `configure.in') is used to create
41f1e20f77Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
42f1e20f77Smrgyou want to change it or regenerate `configure' using a newer version
43f1e20f77Smrgof `autoconf'.
44f1e20f77Smrg
45f1e20f77SmrgThe simplest way to compile this package is:
46f1e20f77Smrg
47f1e20f77Smrg  1. `cd' to the directory containing the package's source code and type
48f1e20f77Smrg     `./configure' to configure the package for your system.
49f1e20f77Smrg
50f1e20f77Smrg     Running `configure' might take a while.  While running, it prints
51f1e20f77Smrg     some messages telling which features it is checking for.
52f1e20f77Smrg
53f1e20f77Smrg  2. Type `make' to compile the package.
54f1e20f77Smrg
55f1e20f77Smrg  3. Optionally, type `make check' to run any self-tests that come with
56f1e20f77Smrg     the package.
57f1e20f77Smrg
58f1e20f77Smrg  4. Type `make install' to install the programs and any data files and
59f1e20f77Smrg     documentation.
60f1e20f77Smrg
61f1e20f77Smrg  5. You can remove the program binaries and object files from the
62f1e20f77Smrg     source code directory by typing `make clean'.  To also remove the
63f1e20f77Smrg     files that `configure' created (so you can compile the package for
64f1e20f77Smrg     a different kind of computer), type `make distclean'.  There is
65f1e20f77Smrg     also a `make maintainer-clean' target, but that is intended mainly
66f1e20f77Smrg     for the package's developers.  If you use it, you may have to get
67f1e20f77Smrg     all sorts of other programs in order to regenerate files that came
68f1e20f77Smrg     with the distribution.
69f1e20f77Smrg
70f1e20f77Smrg  6. Often, you can also type `make uninstall' to remove the installed
71f1e20f77Smrg     files again.
72f1e20f77Smrg
73f1e20f77SmrgCompilers and Options
74f1e20f77Smrg=====================
75f1e20f77Smrg
76f1e20f77Smrg   Some systems require unusual options for compilation or linking that
77f1e20f77Smrgthe `configure' script does not know about.  Run `./configure --help'
78f1e20f77Smrgfor details on some of the pertinent environment variables.
79f1e20f77Smrg
80f1e20f77Smrg   You can give `configure' initial values for configuration parameters
81f1e20f77Smrgby setting variables in the command line or in the environment.  Here
82f1e20f77Smrgis an example:
83f1e20f77Smrg
84f1e20f77Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
85f1e20f77Smrg
86f1e20f77Smrg   *Note Defining Variables::, for more details.
87f1e20f77Smrg
88f1e20f77SmrgCompiling For Multiple Architectures
89f1e20f77Smrg====================================
90f1e20f77Smrg
91f1e20f77Smrg   You can compile the package for more than one kind of computer at the
92f1e20f77Smrgsame time, by placing the object files for each architecture in their
93f1e20f77Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
94f1e20f77Smrgdirectory where you want the object files and executables to go and run
95f1e20f77Smrgthe `configure' script.  `configure' automatically checks for the
96f1e20f77Smrgsource code in the directory that `configure' is in and in `..'.
97f1e20f77Smrg
98f1e20f77Smrg   With a non-GNU `make', it is safer to compile the package for one
99f1e20f77Smrgarchitecture at a time in the source code directory.  After you have
100f1e20f77Smrginstalled the package for one architecture, use `make distclean' before
101f1e20f77Smrgreconfiguring for another architecture.
102f1e20f77Smrg
103f1e20f77Smrg   On MacOS X 10.5 and later systems, you can create libraries and
104f1e20f77Smrgexecutables that work on multiple system types--known as "fat" or
105f1e20f77Smrg"universal" binaries--by specifying multiple `-arch' options to the
106f1e20f77Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
107f1e20f77Smrgthis:
108f1e20f77Smrg
109f1e20f77Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
110f1e20f77Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
111f1e20f77Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
112f1e20f77Smrg
113f1e20f77Smrg   This is not guaranteed to produce working output in all cases, you
114f1e20f77Smrgmay have to build one architecture at a time and combine the results
115f1e20f77Smrgusing the `lipo' tool if you have problems.
116f1e20f77Smrg
117f1e20f77SmrgInstallation Names
118f1e20f77Smrg==================
119f1e20f77Smrg
120f1e20f77Smrg   By default, `make install' installs the package's commands under
121f1e20f77Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
122f1e20f77Smrgcan specify an installation prefix other than `/usr/local' by giving
123f1e20f77Smrg`configure' the option `--prefix=PREFIX'.
124f1e20f77Smrg
125f1e20f77Smrg   You can specify separate installation prefixes for
126f1e20f77Smrgarchitecture-specific files and architecture-independent files.  If you
127f1e20f77Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
128f1e20f77SmrgPREFIX as the prefix for installing programs and libraries.
129f1e20f77SmrgDocumentation and other data files still use the regular prefix.
130f1e20f77Smrg
131f1e20f77Smrg   In addition, if you use an unusual directory layout you can give
132f1e20f77Smrgoptions like `--bindir=DIR' to specify different values for particular
133f1e20f77Smrgkinds of files.  Run `configure --help' for a list of the directories
134f1e20f77Smrgyou can set and what kinds of files go in them.
135f1e20f77Smrg
136f1e20f77Smrg   If the package supports it, you can cause programs to be installed
137f1e20f77Smrgwith an extra prefix or suffix on their names by giving `configure' the
138f1e20f77Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
139f1e20f77Smrg
140f1e20f77SmrgOptional Features
141f1e20f77Smrg=================
142f1e20f77Smrg
143f1e20f77Smrg   Some packages pay attention to `--enable-FEATURE' options to
144f1e20f77Smrg`configure', where FEATURE indicates an optional part of the package.
145f1e20f77SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
146f1e20f77Smrgis something like `gnu-as' or `x' (for the X Window System).  The
147f1e20f77Smrg`README' should mention any `--enable-' and `--with-' options that the
148f1e20f77Smrgpackage recognizes.
149f1e20f77Smrg
150f1e20f77Smrg   For packages that use the X Window System, `configure' can usually
151f1e20f77Smrgfind the X include and library files automatically, but if it doesn't,
152f1e20f77Smrgyou can use the `configure' options `--x-includes=DIR' and
153f1e20f77Smrg`--x-libraries=DIR' to specify their locations.
154f1e20f77Smrg
155f1e20f77SmrgParticular systems
156f1e20f77Smrg==================
157f1e20f77Smrg
158f1e20f77Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
159f1e20f77SmrgCC is not installed, it is recommended to use the following options in
160f1e20f77Smrgorder to use an ANSI C compiler:
161f1e20f77Smrg
162f1e20f77Smrg     ./configure CC="cc -Ae"
163f1e20f77Smrg
164f1e20f77Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
165f1e20f77Smrg
166f1e20f77Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
167f1e20f77Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
168f1e20f77Smrga workaround.  If GNU CC is not installed, it is therefore recommended
169f1e20f77Smrgto try
170f1e20f77Smrg
171f1e20f77Smrg     ./configure CC="cc"
172f1e20f77Smrg
173f1e20f77Smrgand if that doesn't work, try
174f1e20f77Smrg
175f1e20f77Smrg     ./configure CC="cc -nodtk"
176f1e20f77Smrg
177f1e20f77SmrgSpecifying the System Type
178f1e20f77Smrg==========================
179f1e20f77Smrg
180f1e20f77Smrg   There may be some features `configure' cannot figure out
181f1e20f77Smrgautomatically, but needs to determine by the type of machine the package
182f1e20f77Smrgwill run on.  Usually, assuming the package is built to be run on the
183f1e20f77Smrg_same_ architectures, `configure' can figure that out, but if it prints
184f1e20f77Smrga message saying it cannot guess the machine type, give it the
185f1e20f77Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
186f1e20f77Smrgtype, such as `sun4', or a canonical name which has the form:
187f1e20f77Smrg
188f1e20f77Smrg     CPU-COMPANY-SYSTEM
189f1e20f77Smrg
190f1e20f77Smrgwhere SYSTEM can have one of these forms:
191f1e20f77Smrg
192f1e20f77Smrg     OS KERNEL-OS
193f1e20f77Smrg
194f1e20f77Smrg   See the file `config.sub' for the possible values of each field.  If
195f1e20f77Smrg`config.sub' isn't included in this package, then this package doesn't
196f1e20f77Smrgneed to know the machine type.
197f1e20f77Smrg
198f1e20f77Smrg   If you are _building_ compiler tools for cross-compiling, you should
199f1e20f77Smrguse the option `--target=TYPE' to select the type of system they will
200f1e20f77Smrgproduce code for.
201f1e20f77Smrg
202f1e20f77Smrg   If you want to _use_ a cross compiler, that generates code for a
203f1e20f77Smrgplatform different from the build platform, you should specify the
204f1e20f77Smrg"host" platform (i.e., that on which the generated programs will
205f1e20f77Smrgeventually be run) with `--host=TYPE'.
206f1e20f77Smrg
207f1e20f77SmrgSharing Defaults
208f1e20f77Smrg================
209f1e20f77Smrg
210f1e20f77Smrg   If you want to set default values for `configure' scripts to share,
211f1e20f77Smrgyou can create a site shell script called `config.site' that gives
212f1e20f77Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
213f1e20f77Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
214f1e20f77Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
215f1e20f77Smrg`CONFIG_SITE' environment variable to the location of the site script.
216f1e20f77SmrgA warning: not all `configure' scripts look for a site script.
217f1e20f77Smrg
218f1e20f77SmrgDefining Variables
219f1e20f77Smrg==================
220f1e20f77Smrg
221f1e20f77Smrg   Variables not defined in a site shell script can be set in the
222f1e20f77Smrgenvironment passed to `configure'.  However, some packages may run
223f1e20f77Smrgconfigure again during the build, and the customized values of these
224f1e20f77Smrgvariables may be lost.  In order to avoid this problem, you should set
225f1e20f77Smrgthem in the `configure' command line, using `VAR=value'.  For example:
226f1e20f77Smrg
227f1e20f77Smrg     ./configure CC=/usr/local2/bin/gcc
228f1e20f77Smrg
229f1e20f77Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
230f1e20f77Smrgoverridden in the site shell script).
231f1e20f77Smrg
232f1e20f77SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
233f1e20f77Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
234f1e20f77Smrg
235f1e20f77Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
236f1e20f77Smrg
237f1e20f77Smrg`configure' Invocation
238f1e20f77Smrg======================
239f1e20f77Smrg
240f1e20f77Smrg   `configure' recognizes the following options to control how it
241f1e20f77Smrgoperates.
242f1e20f77Smrg
243f1e20f77Smrg`--help'
244f1e20f77Smrg`-h'
245f1e20f77Smrg     Print a summary of all of the options to `configure', and exit.
246f1e20f77Smrg
247f1e20f77Smrg`--help=short'
248f1e20f77Smrg`--help=recursive'
249f1e20f77Smrg     Print a summary of the options unique to this package's
250f1e20f77Smrg     `configure', and exit.  The `short' variant lists options used
251f1e20f77Smrg     only in the top level, while the `recursive' variant lists options
252f1e20f77Smrg     also present in any nested packages.
253f1e20f77Smrg
254f1e20f77Smrg`--version'
255f1e20f77Smrg`-V'
256f1e20f77Smrg     Print the version of Autoconf used to generate the `configure'
257f1e20f77Smrg     script, and exit.
258f1e20f77Smrg
259f1e20f77Smrg`--cache-file=FILE'
260f1e20f77Smrg     Enable the cache: use and save the results of the tests in FILE,
261f1e20f77Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
262f1e20f77Smrg     disable caching.
263f1e20f77Smrg
264f1e20f77Smrg`--config-cache'
265f1e20f77Smrg`-C'
266f1e20f77Smrg     Alias for `--cache-file=config.cache'.
267f1e20f77Smrg
268f1e20f77Smrg`--quiet'
269f1e20f77Smrg`--silent'
270f1e20f77Smrg`-q'
271f1e20f77Smrg     Do not print messages saying which checks are being made.  To
272f1e20f77Smrg     suppress all normal output, redirect it to `/dev/null' (any error
273f1e20f77Smrg     messages will still be shown).
274f1e20f77Smrg
275f1e20f77Smrg`--srcdir=DIR'
276f1e20f77Smrg     Look for the package's source code in directory DIR.  Usually
277f1e20f77Smrg     `configure' can determine that directory automatically.
278f1e20f77Smrg
279f1e20f77Smrg`--prefix=DIR'
280f1e20f77Smrg     Use DIR as the installation prefix.  *Note Installation Names::
281f1e20f77Smrg     for more details, including other options available for fine-tuning
282f1e20f77Smrg     the installation locations.
283f1e20f77Smrg
284f1e20f77Smrg`--no-create'
285f1e20f77Smrg`-n'
286f1e20f77Smrg     Run the configure checks, but stop before creating any output
287f1e20f77Smrg     files.
288f1e20f77Smrg
289f1e20f77Smrg`configure' also accepts some other, not widely useful, options.  Run
290f1e20f77Smrg`configure --help' for more details.
291f1e20f77Smrg
292