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