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