INSTALL revision 736a7e2c
1736a7e2cSmrgInstallation Instructions
2736a7e2cSmrg*************************
3736a7e2cSmrg
4736a7e2cSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
5736a7e2cSmrg2006, 2007, 2008 Free Software Foundation, Inc.
6736a7e2cSmrg
7736a7e2cSmrg   This file is free documentation; the Free Software Foundation gives
8736a7e2cSmrgunlimited permission to copy, distribute and modify it.
9736a7e2cSmrg
10736a7e2cSmrgBasic Installation
11736a7e2cSmrg==================
12736a7e2cSmrg
13736a7e2cSmrg   Briefly, the shell commands `./configure; make; make install' should
14736a7e2cSmrgconfigure, build, and install this package.  The following
15736a7e2cSmrgmore-detailed instructions are generic; see the `README' file for
16736a7e2cSmrginstructions specific to this package.
17736a7e2cSmrg
18736a7e2cSmrg   The `configure' shell script attempts to guess correct values for
19736a7e2cSmrgvarious system-dependent variables used during compilation.  It uses
20736a7e2cSmrgthose values to create a `Makefile' in each directory of the package.
21736a7e2cSmrgIt may also create one or more `.h' files containing system-dependent
22736a7e2cSmrgdefinitions.  Finally, it creates a shell script `config.status' that
23736a7e2cSmrgyou can run in the future to recreate the current configuration, and a
24736a7e2cSmrgfile `config.log' containing compiler output (useful mainly for
25736a7e2cSmrgdebugging `configure').
26736a7e2cSmrg
27736a7e2cSmrg   It can also use an optional file (typically called `config.cache'
28736a7e2cSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
29736a7e2cSmrgthe results of its tests to speed up reconfiguring.  Caching is
30736a7e2cSmrgdisabled by default to prevent problems with accidental use of stale
31736a7e2cSmrgcache files.
32736a7e2cSmrg
33736a7e2cSmrg   If you need to do unusual things to compile the package, please try
34736a7e2cSmrgto figure out how `configure' could check whether to do them, and mail
35736a7e2cSmrgdiffs or instructions to the address given in the `README' so they can
36736a7e2cSmrgbe considered for the next release.  If you are using the cache, and at
37736a7e2cSmrgsome point `config.cache' contains results you don't want to keep, you
38736a7e2cSmrgmay remove or edit it.
39736a7e2cSmrg
40736a7e2cSmrg   The file `configure.ac' (or `configure.in') is used to create
41736a7e2cSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
42736a7e2cSmrgyou want to change it or regenerate `configure' using a newer version
43736a7e2cSmrgof `autoconf'.
44736a7e2cSmrg
45736a7e2cSmrgThe simplest way to compile this package is:
46736a7e2cSmrg
47736a7e2cSmrg  1. `cd' to the directory containing the package's source code and type
48736a7e2cSmrg     `./configure' to configure the package for your system.
49736a7e2cSmrg
50736a7e2cSmrg     Running `configure' might take a while.  While running, it prints
51736a7e2cSmrg     some messages telling which features it is checking for.
52736a7e2cSmrg
53736a7e2cSmrg  2. Type `make' to compile the package.
54736a7e2cSmrg
55736a7e2cSmrg  3. Optionally, type `make check' to run any self-tests that come with
56736a7e2cSmrg     the package.
57736a7e2cSmrg
58736a7e2cSmrg  4. Type `make install' to install the programs and any data files and
59736a7e2cSmrg     documentation.
60736a7e2cSmrg
61736a7e2cSmrg  5. You can remove the program binaries and object files from the
62736a7e2cSmrg     source code directory by typing `make clean'.  To also remove the
63736a7e2cSmrg     files that `configure' created (so you can compile the package for
64736a7e2cSmrg     a different kind of computer), type `make distclean'.  There is
65736a7e2cSmrg     also a `make maintainer-clean' target, but that is intended mainly
66736a7e2cSmrg     for the package's developers.  If you use it, you may have to get
67736a7e2cSmrg     all sorts of other programs in order to regenerate files that came
68736a7e2cSmrg     with the distribution.
69736a7e2cSmrg
70736a7e2cSmrg  6. Often, you can also type `make uninstall' to remove the installed
71736a7e2cSmrg     files again.
72736a7e2cSmrg
73736a7e2cSmrgCompilers and Options
74736a7e2cSmrg=====================
75736a7e2cSmrg
76736a7e2cSmrg   Some systems require unusual options for compilation or linking that
77736a7e2cSmrgthe `configure' script does not know about.  Run `./configure --help'
78736a7e2cSmrgfor details on some of the pertinent environment variables.
79736a7e2cSmrg
80736a7e2cSmrg   You can give `configure' initial values for configuration parameters
81736a7e2cSmrgby setting variables in the command line or in the environment.  Here
82736a7e2cSmrgis an example:
83736a7e2cSmrg
84736a7e2cSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
85736a7e2cSmrg
86736a7e2cSmrg   *Note Defining Variables::, for more details.
87736a7e2cSmrg
88736a7e2cSmrgCompiling For Multiple Architectures
89736a7e2cSmrg====================================
90736a7e2cSmrg
91736a7e2cSmrg   You can compile the package for more than one kind of computer at the
92736a7e2cSmrgsame time, by placing the object files for each architecture in their
93736a7e2cSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
94736a7e2cSmrgdirectory where you want the object files and executables to go and run
95736a7e2cSmrgthe `configure' script.  `configure' automatically checks for the
96736a7e2cSmrgsource code in the directory that `configure' is in and in `..'.
97736a7e2cSmrg
98736a7e2cSmrg   With a non-GNU `make', it is safer to compile the package for one
99736a7e2cSmrgarchitecture at a time in the source code directory.  After you have
100736a7e2cSmrginstalled the package for one architecture, use `make distclean' before
101736a7e2cSmrgreconfiguring for another architecture.
102736a7e2cSmrg
103736a7e2cSmrg   On MacOS X 10.5 and later systems, you can create libraries and
104736a7e2cSmrgexecutables that work on multiple system types--known as "fat" or
105736a7e2cSmrg"universal" binaries--by specifying multiple `-arch' options to the
106736a7e2cSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
107736a7e2cSmrgthis:
108736a7e2cSmrg
109736a7e2cSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
110736a7e2cSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
111736a7e2cSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
112736a7e2cSmrg
113736a7e2cSmrg   This is not guaranteed to produce working output in all cases, you
114736a7e2cSmrgmay have to build one architecture at a time and combine the results
115736a7e2cSmrgusing the `lipo' tool if you have problems.
116736a7e2cSmrg
117736a7e2cSmrgInstallation Names
118736a7e2cSmrg==================
119736a7e2cSmrg
120736a7e2cSmrg   By default, `make install' installs the package's commands under
121736a7e2cSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
122736a7e2cSmrgcan specify an installation prefix other than `/usr/local' by giving
123736a7e2cSmrg`configure' the option `--prefix=PREFIX'.
124736a7e2cSmrg
125736a7e2cSmrg   You can specify separate installation prefixes for
126736a7e2cSmrgarchitecture-specific files and architecture-independent files.  If you
127736a7e2cSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
128736a7e2cSmrgPREFIX as the prefix for installing programs and libraries.
129736a7e2cSmrgDocumentation and other data files still use the regular prefix.
130736a7e2cSmrg
131736a7e2cSmrg   In addition, if you use an unusual directory layout you can give
132736a7e2cSmrgoptions like `--bindir=DIR' to specify different values for particular
133736a7e2cSmrgkinds of files.  Run `configure --help' for a list of the directories
134736a7e2cSmrgyou can set and what kinds of files go in them.
135736a7e2cSmrg
136736a7e2cSmrg   If the package supports it, you can cause programs to be installed
137736a7e2cSmrgwith an extra prefix or suffix on their names by giving `configure' the
138736a7e2cSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
139736a7e2cSmrg
140736a7e2cSmrgOptional Features
141736a7e2cSmrg=================
142736a7e2cSmrg
143736a7e2cSmrg   Some packages pay attention to `--enable-FEATURE' options to
144736a7e2cSmrg`configure', where FEATURE indicates an optional part of the package.
145736a7e2cSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
146736a7e2cSmrgis something like `gnu-as' or `x' (for the X Window System).  The
147736a7e2cSmrg`README' should mention any `--enable-' and `--with-' options that the
148736a7e2cSmrgpackage recognizes.
149736a7e2cSmrg
150736a7e2cSmrg   For packages that use the X Window System, `configure' can usually
151736a7e2cSmrgfind the X include and library files automatically, but if it doesn't,
152736a7e2cSmrgyou can use the `configure' options `--x-includes=DIR' and
153736a7e2cSmrg`--x-libraries=DIR' to specify their locations.
154736a7e2cSmrg
155736a7e2cSmrgParticular systems
156736a7e2cSmrg==================
157736a7e2cSmrg
158736a7e2cSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
159736a7e2cSmrgCC is not installed, it is recommended to use the following options in
160736a7e2cSmrgorder to use an ANSI C compiler:
161736a7e2cSmrg
162736a7e2cSmrg     ./configure CC="cc -Ae"
163736a7e2cSmrg
164736a7e2cSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
165736a7e2cSmrg
166736a7e2cSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
167736a7e2cSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
168736a7e2cSmrga workaround.  If GNU CC is not installed, it is therefore recommended
169736a7e2cSmrgto try
170736a7e2cSmrg
171736a7e2cSmrg     ./configure CC="cc"
172736a7e2cSmrg
173736a7e2cSmrgand if that doesn't work, try
174736a7e2cSmrg
175736a7e2cSmrg     ./configure CC="cc -nodtk"
176736a7e2cSmrg
177736a7e2cSmrgSpecifying the System Type
178736a7e2cSmrg==========================
179736a7e2cSmrg
180736a7e2cSmrg   There may be some features `configure' cannot figure out
181736a7e2cSmrgautomatically, but needs to determine by the type of machine the package
182736a7e2cSmrgwill run on.  Usually, assuming the package is built to be run on the
183736a7e2cSmrg_same_ architectures, `configure' can figure that out, but if it prints
184736a7e2cSmrga message saying it cannot guess the machine type, give it the
185736a7e2cSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
186736a7e2cSmrgtype, such as `sun4', or a canonical name which has the form:
187736a7e2cSmrg
188736a7e2cSmrg     CPU-COMPANY-SYSTEM
189736a7e2cSmrg
190736a7e2cSmrgwhere SYSTEM can have one of these forms:
191736a7e2cSmrg
192736a7e2cSmrg     OS KERNEL-OS
193736a7e2cSmrg
194736a7e2cSmrg   See the file `config.sub' for the possible values of each field.  If
195736a7e2cSmrg`config.sub' isn't included in this package, then this package doesn't
196736a7e2cSmrgneed to know the machine type.
197736a7e2cSmrg
198736a7e2cSmrg   If you are _building_ compiler tools for cross-compiling, you should
199736a7e2cSmrguse the option `--target=TYPE' to select the type of system they will
200736a7e2cSmrgproduce code for.
201736a7e2cSmrg
202736a7e2cSmrg   If you want to _use_ a cross compiler, that generates code for a
203736a7e2cSmrgplatform different from the build platform, you should specify the
204736a7e2cSmrg"host" platform (i.e., that on which the generated programs will
205736a7e2cSmrgeventually be run) with `--host=TYPE'.
206736a7e2cSmrg
207736a7e2cSmrgSharing Defaults
208736a7e2cSmrg================
209736a7e2cSmrg
210736a7e2cSmrg   If you want to set default values for `configure' scripts to share,
211736a7e2cSmrgyou can create a site shell script called `config.site' that gives
212736a7e2cSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
213736a7e2cSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
214736a7e2cSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
215736a7e2cSmrg`CONFIG_SITE' environment variable to the location of the site script.
216736a7e2cSmrgA warning: not all `configure' scripts look for a site script.
217736a7e2cSmrg
218736a7e2cSmrgDefining Variables
219736a7e2cSmrg==================
220736a7e2cSmrg
221736a7e2cSmrg   Variables not defined in a site shell script can be set in the
222736a7e2cSmrgenvironment passed to `configure'.  However, some packages may run
223736a7e2cSmrgconfigure again during the build, and the customized values of these
224736a7e2cSmrgvariables may be lost.  In order to avoid this problem, you should set
225736a7e2cSmrgthem in the `configure' command line, using `VAR=value'.  For example:
226736a7e2cSmrg
227736a7e2cSmrg     ./configure CC=/usr/local2/bin/gcc
228736a7e2cSmrg
229736a7e2cSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
230736a7e2cSmrgoverridden in the site shell script).
231736a7e2cSmrg
232736a7e2cSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
233736a7e2cSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
234736a7e2cSmrg
235736a7e2cSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
236736a7e2cSmrg
237736a7e2cSmrg`configure' Invocation
238736a7e2cSmrg======================
239736a7e2cSmrg
240736a7e2cSmrg   `configure' recognizes the following options to control how it
241736a7e2cSmrgoperates.
242736a7e2cSmrg
243736a7e2cSmrg`--help'
244736a7e2cSmrg`-h'
245736a7e2cSmrg     Print a summary of all of the options to `configure', and exit.
246736a7e2cSmrg
247736a7e2cSmrg`--help=short'
248736a7e2cSmrg`--help=recursive'
249736a7e2cSmrg     Print a summary of the options unique to this package's
250736a7e2cSmrg     `configure', and exit.  The `short' variant lists options used
251736a7e2cSmrg     only in the top level, while the `recursive' variant lists options
252736a7e2cSmrg     also present in any nested packages.
253736a7e2cSmrg
254736a7e2cSmrg`--version'
255736a7e2cSmrg`-V'
256736a7e2cSmrg     Print the version of Autoconf used to generate the `configure'
257736a7e2cSmrg     script, and exit.
258736a7e2cSmrg
259736a7e2cSmrg`--cache-file=FILE'
260736a7e2cSmrg     Enable the cache: use and save the results of the tests in FILE,
261736a7e2cSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
262736a7e2cSmrg     disable caching.
263736a7e2cSmrg
264736a7e2cSmrg`--config-cache'
265736a7e2cSmrg`-C'
266736a7e2cSmrg     Alias for `--cache-file=config.cache'.
267736a7e2cSmrg
268736a7e2cSmrg`--quiet'
269736a7e2cSmrg`--silent'
270736a7e2cSmrg`-q'
271736a7e2cSmrg     Do not print messages saying which checks are being made.  To
272736a7e2cSmrg     suppress all normal output, redirect it to `/dev/null' (any error
273736a7e2cSmrg     messages will still be shown).
274736a7e2cSmrg
275736a7e2cSmrg`--srcdir=DIR'
276736a7e2cSmrg     Look for the package's source code in directory DIR.  Usually
277736a7e2cSmrg     `configure' can determine that directory automatically.
278736a7e2cSmrg
279736a7e2cSmrg`--prefix=DIR'
280736a7e2cSmrg     Use DIR as the installation prefix.  *Note Installation Names::
281736a7e2cSmrg     for more details, including other options available for fine-tuning
282736a7e2cSmrg     the installation locations.
283736a7e2cSmrg
284736a7e2cSmrg`--no-create'
285736a7e2cSmrg`-n'
286736a7e2cSmrg     Run the configure checks, but stop before creating any output
287736a7e2cSmrg     files.
288736a7e2cSmrg
289736a7e2cSmrg`configure' also accepts some other, not widely useful, options.  Run
290736a7e2cSmrg`configure --help' for more details.
291736a7e2cSmrg
292