1145f796fSmrgInstallation Instructions
2145f796fSmrg*************************
3145f796fSmrg
4145f796fSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
5145f796fSmrg2006, 2007, 2008 Free Software Foundation, Inc.
6145f796fSmrg
7145f796fSmrg   This file is free documentation; the Free Software Foundation gives
8145f796fSmrgunlimited permission to copy, distribute and modify it.
9145f796fSmrg
10145f796fSmrgBasic Installation
11145f796fSmrg==================
12145f796fSmrg
13145f796fSmrg   Briefly, the shell commands `./configure; make; make install' should
14145f796fSmrgconfigure, build, and install this package.  The following
15145f796fSmrgmore-detailed instructions are generic; see the `README' file for
16145f796fSmrginstructions specific to this package.
17145f796fSmrg
18145f796fSmrg   The `configure' shell script attempts to guess correct values for
19145f796fSmrgvarious system-dependent variables used during compilation.  It uses
20145f796fSmrgthose values to create a `Makefile' in each directory of the package.
21145f796fSmrgIt may also create one or more `.h' files containing system-dependent
22145f796fSmrgdefinitions.  Finally, it creates a shell script `config.status' that
23145f796fSmrgyou can run in the future to recreate the current configuration, and a
24145f796fSmrgfile `config.log' containing compiler output (useful mainly for
25145f796fSmrgdebugging `configure').
26145f796fSmrg
27145f796fSmrg   It can also use an optional file (typically called `config.cache'
28145f796fSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
29145f796fSmrgthe results of its tests to speed up reconfiguring.  Caching is
30145f796fSmrgdisabled by default to prevent problems with accidental use of stale
31145f796fSmrgcache files.
32145f796fSmrg
33145f796fSmrg   If you need to do unusual things to compile the package, please try
34145f796fSmrgto figure out how `configure' could check whether to do them, and mail
35145f796fSmrgdiffs or instructions to the address given in the `README' so they can
36145f796fSmrgbe considered for the next release.  If you are using the cache, and at
37145f796fSmrgsome point `config.cache' contains results you don't want to keep, you
38145f796fSmrgmay remove or edit it.
39145f796fSmrg
40145f796fSmrg   The file `configure.ac' (or `configure.in') is used to create
41145f796fSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
42145f796fSmrgyou want to change it or regenerate `configure' using a newer version
43145f796fSmrgof `autoconf'.
44145f796fSmrg
45145f796fSmrgThe simplest way to compile this package is:
46145f796fSmrg
47145f796fSmrg  1. `cd' to the directory containing the package's source code and type
48145f796fSmrg     `./configure' to configure the package for your system.
49145f796fSmrg
50145f796fSmrg     Running `configure' might take a while.  While running, it prints
51145f796fSmrg     some messages telling which features it is checking for.
52145f796fSmrg
53145f796fSmrg  2. Type `make' to compile the package.
54145f796fSmrg
55145f796fSmrg  3. Optionally, type `make check' to run any self-tests that come with
56145f796fSmrg     the package.
57145f796fSmrg
58145f796fSmrg  4. Type `make install' to install the programs and any data files and
59145f796fSmrg     documentation.
60145f796fSmrg
61145f796fSmrg  5. You can remove the program binaries and object files from the
62145f796fSmrg     source code directory by typing `make clean'.  To also remove the
63145f796fSmrg     files that `configure' created (so you can compile the package for
64145f796fSmrg     a different kind of computer), type `make distclean'.  There is
65145f796fSmrg     also a `make maintainer-clean' target, but that is intended mainly
66145f796fSmrg     for the package's developers.  If you use it, you may have to get
67145f796fSmrg     all sorts of other programs in order to regenerate files that came
68145f796fSmrg     with the distribution.
69145f796fSmrg
70145f796fSmrg  6. Often, you can also type `make uninstall' to remove the installed
71145f796fSmrg     files again.
72145f796fSmrg
73145f796fSmrgCompilers and Options
74145f796fSmrg=====================
75145f796fSmrg
76145f796fSmrg   Some systems require unusual options for compilation or linking that
77145f796fSmrgthe `configure' script does not know about.  Run `./configure --help'
78145f796fSmrgfor details on some of the pertinent environment variables.
79145f796fSmrg
80145f796fSmrg   You can give `configure' initial values for configuration parameters
81145f796fSmrgby setting variables in the command line or in the environment.  Here
82145f796fSmrgis an example:
83145f796fSmrg
84145f796fSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
85145f796fSmrg
86145f796fSmrg   *Note Defining Variables::, for more details.
87145f796fSmrg
88145f796fSmrgCompiling For Multiple Architectures
89145f796fSmrg====================================
90145f796fSmrg
91145f796fSmrg   You can compile the package for more than one kind of computer at the
92145f796fSmrgsame time, by placing the object files for each architecture in their
93145f796fSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
94145f796fSmrgdirectory where you want the object files and executables to go and run
95145f796fSmrgthe `configure' script.  `configure' automatically checks for the
96145f796fSmrgsource code in the directory that `configure' is in and in `..'.
97145f796fSmrg
98145f796fSmrg   With a non-GNU `make', it is safer to compile the package for one
99145f796fSmrgarchitecture at a time in the source code directory.  After you have
100145f796fSmrginstalled the package for one architecture, use `make distclean' before
101145f796fSmrgreconfiguring for another architecture.
102145f796fSmrg
103145f796fSmrg   On MacOS X 10.5 and later systems, you can create libraries and
104145f796fSmrgexecutables that work on multiple system types--known as "fat" or
105145f796fSmrg"universal" binaries--by specifying multiple `-arch' options to the
106145f796fSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
107145f796fSmrgthis:
108145f796fSmrg
109145f796fSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
110145f796fSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
111145f796fSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
112145f796fSmrg
113145f796fSmrg   This is not guaranteed to produce working output in all cases, you
114145f796fSmrgmay have to build one architecture at a time and combine the results
115145f796fSmrgusing the `lipo' tool if you have problems.
116145f796fSmrg
117145f796fSmrgInstallation Names
118145f796fSmrg==================
119145f796fSmrg
120145f796fSmrg   By default, `make install' installs the package's commands under
121145f796fSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
122145f796fSmrgcan specify an installation prefix other than `/usr/local' by giving
123145f796fSmrg`configure' the option `--prefix=PREFIX'.
124145f796fSmrg
125145f796fSmrg   You can specify separate installation prefixes for
126145f796fSmrgarchitecture-specific files and architecture-independent files.  If you
127145f796fSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
128145f796fSmrgPREFIX as the prefix for installing programs and libraries.
129145f796fSmrgDocumentation and other data files still use the regular prefix.
130145f796fSmrg
131145f796fSmrg   In addition, if you use an unusual directory layout you can give
132145f796fSmrgoptions like `--bindir=DIR' to specify different values for particular
133145f796fSmrgkinds of files.  Run `configure --help' for a list of the directories
134145f796fSmrgyou can set and what kinds of files go in them.
135145f796fSmrg
136145f796fSmrg   If the package supports it, you can cause programs to be installed
137145f796fSmrgwith an extra prefix or suffix on their names by giving `configure' the
138145f796fSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
139145f796fSmrg
140145f796fSmrgOptional Features
141145f796fSmrg=================
142145f796fSmrg
143145f796fSmrg   Some packages pay attention to `--enable-FEATURE' options to
144145f796fSmrg`configure', where FEATURE indicates an optional part of the package.
145145f796fSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
146145f796fSmrgis something like `gnu-as' or `x' (for the X Window System).  The
147145f796fSmrg`README' should mention any `--enable-' and `--with-' options that the
148145f796fSmrgpackage recognizes.
149145f796fSmrg
150145f796fSmrg   For packages that use the X Window System, `configure' can usually
151145f796fSmrgfind the X include and library files automatically, but if it doesn't,
152145f796fSmrgyou can use the `configure' options `--x-includes=DIR' and
153145f796fSmrg`--x-libraries=DIR' to specify their locations.
154145f796fSmrg
155145f796fSmrgParticular systems
156145f796fSmrg==================
157145f796fSmrg
158145f796fSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
159145f796fSmrgCC is not installed, it is recommended to use the following options in
160145f796fSmrgorder to use an ANSI C compiler:
161145f796fSmrg
162145f796fSmrg     ./configure CC="cc -Ae"
163145f796fSmrg
164145f796fSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
165145f796fSmrg
166145f796fSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
167145f796fSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
168145f796fSmrga workaround.  If GNU CC is not installed, it is therefore recommended
169145f796fSmrgto try
170145f796fSmrg
171145f796fSmrg     ./configure CC="cc"
172145f796fSmrg
173145f796fSmrgand if that doesn't work, try
174145f796fSmrg
175145f796fSmrg     ./configure CC="cc -nodtk"
176145f796fSmrg
177145f796fSmrgSpecifying the System Type
178145f796fSmrg==========================
179145f796fSmrg
180145f796fSmrg   There may be some features `configure' cannot figure out
181145f796fSmrgautomatically, but needs to determine by the type of machine the package
182145f796fSmrgwill run on.  Usually, assuming the package is built to be run on the
183145f796fSmrg_same_ architectures, `configure' can figure that out, but if it prints
184145f796fSmrga message saying it cannot guess the machine type, give it the
185145f796fSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
186145f796fSmrgtype, such as `sun4', or a canonical name which has the form:
187145f796fSmrg
188145f796fSmrg     CPU-COMPANY-SYSTEM
189145f796fSmrg
190145f796fSmrgwhere SYSTEM can have one of these forms:
191145f796fSmrg
192145f796fSmrg     OS KERNEL-OS
193145f796fSmrg
194145f796fSmrg   See the file `config.sub' for the possible values of each field.  If
195145f796fSmrg`config.sub' isn't included in this package, then this package doesn't
196145f796fSmrgneed to know the machine type.
197145f796fSmrg
198145f796fSmrg   If you are _building_ compiler tools for cross-compiling, you should
199145f796fSmrguse the option `--target=TYPE' to select the type of system they will
200145f796fSmrgproduce code for.
201145f796fSmrg
202145f796fSmrg   If you want to _use_ a cross compiler, that generates code for a
203145f796fSmrgplatform different from the build platform, you should specify the
204145f796fSmrg"host" platform (i.e., that on which the generated programs will
205145f796fSmrgeventually be run) with `--host=TYPE'.
206145f796fSmrg
207145f796fSmrgSharing Defaults
208145f796fSmrg================
209145f796fSmrg
210145f796fSmrg   If you want to set default values for `configure' scripts to share,
211145f796fSmrgyou can create a site shell script called `config.site' that gives
212145f796fSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
213145f796fSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
214145f796fSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
215145f796fSmrg`CONFIG_SITE' environment variable to the location of the site script.
216145f796fSmrgA warning: not all `configure' scripts look for a site script.
217145f796fSmrg
218145f796fSmrgDefining Variables
219145f796fSmrg==================
220145f796fSmrg
221145f796fSmrg   Variables not defined in a site shell script can be set in the
222145f796fSmrgenvironment passed to `configure'.  However, some packages may run
223145f796fSmrgconfigure again during the build, and the customized values of these
224145f796fSmrgvariables may be lost.  In order to avoid this problem, you should set
225145f796fSmrgthem in the `configure' command line, using `VAR=value'.  For example:
226145f796fSmrg
227145f796fSmrg     ./configure CC=/usr/local2/bin/gcc
228145f796fSmrg
229145f796fSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
230145f796fSmrgoverridden in the site shell script).
231145f796fSmrg
232145f796fSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
233145f796fSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
234145f796fSmrg
235145f796fSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
236145f796fSmrg
237145f796fSmrg`configure' Invocation
238145f796fSmrg======================
239145f796fSmrg
240145f796fSmrg   `configure' recognizes the following options to control how it
241145f796fSmrgoperates.
242145f796fSmrg
243145f796fSmrg`--help'
244145f796fSmrg`-h'
245145f796fSmrg     Print a summary of all of the options to `configure', and exit.
246145f796fSmrg
247145f796fSmrg`--help=short'
248145f796fSmrg`--help=recursive'
249145f796fSmrg     Print a summary of the options unique to this package's
250145f796fSmrg     `configure', and exit.  The `short' variant lists options used
251145f796fSmrg     only in the top level, while the `recursive' variant lists options
252145f796fSmrg     also present in any nested packages.
253145f796fSmrg
254145f796fSmrg`--version'
255145f796fSmrg`-V'
256145f796fSmrg     Print the version of Autoconf used to generate the `configure'
257145f796fSmrg     script, and exit.
258145f796fSmrg
259145f796fSmrg`--cache-file=FILE'
260145f796fSmrg     Enable the cache: use and save the results of the tests in FILE,
261145f796fSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
262145f796fSmrg     disable caching.
263145f796fSmrg
264145f796fSmrg`--config-cache'
265145f796fSmrg`-C'
266145f796fSmrg     Alias for `--cache-file=config.cache'.
267145f796fSmrg
268145f796fSmrg`--quiet'
269145f796fSmrg`--silent'
270145f796fSmrg`-q'
271145f796fSmrg     Do not print messages saying which checks are being made.  To
272145f796fSmrg     suppress all normal output, redirect it to `/dev/null' (any error
273145f796fSmrg     messages will still be shown).
274145f796fSmrg
275145f796fSmrg`--srcdir=DIR'
276145f796fSmrg     Look for the package's source code in directory DIR.  Usually
277145f796fSmrg     `configure' can determine that directory automatically.
278145f796fSmrg
279145f796fSmrg`--prefix=DIR'
280145f796fSmrg     Use DIR as the installation prefix.  *Note Installation Names::
281145f796fSmrg     for more details, including other options available for fine-tuning
282145f796fSmrg     the installation locations.
283145f796fSmrg
284145f796fSmrg`--no-create'
285145f796fSmrg`-n'
286145f796fSmrg     Run the configure checks, but stop before creating any output
287145f796fSmrg     files.
288145f796fSmrg
289145f796fSmrg`configure' also accepts some other, not widely useful, options.  Run
290145f796fSmrg`configure --help' for more details.
291145f796fSmrg
292