1f5effb2eSmrgInstallation Instructions
2f5effb2eSmrg*************************
3f5effb2eSmrg
4585aa3f7SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
5585aa3f7SmrgInc.
6f5effb2eSmrg
7585aa3f7Smrg   Copying and distribution of this file, with or without modification,
8585aa3f7Smrgare permitted in any medium without royalty provided the copyright
9585aa3f7Smrgnotice and this notice are preserved.  This file is offered as-is,
10585aa3f7Smrgwithout warranty of any kind.
11f5effb2eSmrg
12f5effb2eSmrgBasic Installation
13f5effb2eSmrg==================
14f5effb2eSmrg
15f5effb2eSmrg   Briefly, the shell commands `./configure; make; make install' should
16f5effb2eSmrgconfigure, build, and install this package.  The following
17f5effb2eSmrgmore-detailed instructions are generic; see the `README' file for
18585aa3f7Smrginstructions specific to this package.  Some packages provide this
19585aa3f7Smrg`INSTALL' file but do not implement all of the features documented
20585aa3f7Smrgbelow.  The lack of an optional feature in a given package is not
21585aa3f7Smrgnecessarily a bug.  More recommendations for GNU packages can be found
22585aa3f7Smrgin *note Makefile Conventions: (standards)Makefile Conventions.
23f5effb2eSmrg
24f5effb2eSmrg   The `configure' shell script attempts to guess correct values for
25f5effb2eSmrgvarious system-dependent variables used during compilation.  It uses
26f5effb2eSmrgthose values to create a `Makefile' in each directory of the package.
27f5effb2eSmrgIt may also create one or more `.h' files containing system-dependent
28f5effb2eSmrgdefinitions.  Finally, it creates a shell script `config.status' that
29f5effb2eSmrgyou can run in the future to recreate the current configuration, and a
30f5effb2eSmrgfile `config.log' containing compiler output (useful mainly for
31f5effb2eSmrgdebugging `configure').
32f5effb2eSmrg
33f5effb2eSmrg   It can also use an optional file (typically called `config.cache'
34f5effb2eSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
35f5effb2eSmrgthe results of its tests to speed up reconfiguring.  Caching is
36f5effb2eSmrgdisabled by default to prevent problems with accidental use of stale
37f5effb2eSmrgcache files.
38f5effb2eSmrg
39f5effb2eSmrg   If you need to do unusual things to compile the package, please try
40f5effb2eSmrgto figure out how `configure' could check whether to do them, and mail
41f5effb2eSmrgdiffs or instructions to the address given in the `README' so they can
42f5effb2eSmrgbe considered for the next release.  If you are using the cache, and at
43f5effb2eSmrgsome point `config.cache' contains results you don't want to keep, you
44f5effb2eSmrgmay remove or edit it.
45f5effb2eSmrg
46f5effb2eSmrg   The file `configure.ac' (or `configure.in') is used to create
47f5effb2eSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
48f5effb2eSmrgyou want to change it or regenerate `configure' using a newer version
49f5effb2eSmrgof `autoconf'.
50f5effb2eSmrg
51585aa3f7Smrg   The simplest way to compile this package is:
52f5effb2eSmrg
53f5effb2eSmrg  1. `cd' to the directory containing the package's source code and type
54f5effb2eSmrg     `./configure' to configure the package for your system.
55f5effb2eSmrg
56f5effb2eSmrg     Running `configure' might take a while.  While running, it prints
57f5effb2eSmrg     some messages telling which features it is checking for.
58f5effb2eSmrg
59f5effb2eSmrg  2. Type `make' to compile the package.
60f5effb2eSmrg
61f5effb2eSmrg  3. Optionally, type `make check' to run any self-tests that come with
62585aa3f7Smrg     the package, generally using the just-built uninstalled binaries.
63f5effb2eSmrg
64f5effb2eSmrg  4. Type `make install' to install the programs and any data files and
65585aa3f7Smrg     documentation.  When installing into a prefix owned by root, it is
66585aa3f7Smrg     recommended that the package be configured and built as a regular
67585aa3f7Smrg     user, and only the `make install' phase executed with root
68585aa3f7Smrg     privileges.
69585aa3f7Smrg
70585aa3f7Smrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
71585aa3f7Smrg     this time using the binaries in their final installed location.
72585aa3f7Smrg     This target does not install anything.  Running this target as a
73585aa3f7Smrg     regular user, particularly if the prior `make install' required
74585aa3f7Smrg     root privileges, verifies that the installation completed
75585aa3f7Smrg     correctly.
76585aa3f7Smrg
77585aa3f7Smrg  6. You can remove the program binaries and object files from the
78f5effb2eSmrg     source code directory by typing `make clean'.  To also remove the
79f5effb2eSmrg     files that `configure' created (so you can compile the package for
80f5effb2eSmrg     a different kind of computer), type `make distclean'.  There is
81f5effb2eSmrg     also a `make maintainer-clean' target, but that is intended mainly
82f5effb2eSmrg     for the package's developers.  If you use it, you may have to get
83f5effb2eSmrg     all sorts of other programs in order to regenerate files that came
84f5effb2eSmrg     with the distribution.
85f5effb2eSmrg
86585aa3f7Smrg  7. Often, you can also type `make uninstall' to remove the installed
87585aa3f7Smrg     files again.  In practice, not all packages have tested that
88585aa3f7Smrg     uninstallation works correctly, even though it is required by the
89585aa3f7Smrg     GNU Coding Standards.
90585aa3f7Smrg
91585aa3f7Smrg  8. Some packages, particularly those that use Automake, provide `make
92585aa3f7Smrg     distcheck', which can by used by developers to test that all other
93585aa3f7Smrg     targets like `make install' and `make uninstall' work correctly.
94585aa3f7Smrg     This target is generally not run by end users.
95f5effb2eSmrg
96f5effb2eSmrgCompilers and Options
97f5effb2eSmrg=====================
98f5effb2eSmrg
99f5effb2eSmrg   Some systems require unusual options for compilation or linking that
100f5effb2eSmrgthe `configure' script does not know about.  Run `./configure --help'
101f5effb2eSmrgfor details on some of the pertinent environment variables.
102f5effb2eSmrg
103f5effb2eSmrg   You can give `configure' initial values for configuration parameters
104f5effb2eSmrgby setting variables in the command line or in the environment.  Here
105f5effb2eSmrgis an example:
106f5effb2eSmrg
107f5effb2eSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
108f5effb2eSmrg
109f5effb2eSmrg   *Note Defining Variables::, for more details.
110f5effb2eSmrg
111f5effb2eSmrgCompiling For Multiple Architectures
112f5effb2eSmrg====================================
113f5effb2eSmrg
114f5effb2eSmrg   You can compile the package for more than one kind of computer at the
115f5effb2eSmrgsame time, by placing the object files for each architecture in their
116f5effb2eSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
117f5effb2eSmrgdirectory where you want the object files and executables to go and run
118f5effb2eSmrgthe `configure' script.  `configure' automatically checks for the
119585aa3f7Smrgsource code in the directory that `configure' is in and in `..'.  This
120585aa3f7Smrgis known as a "VPATH" build.
121f5effb2eSmrg
122f5effb2eSmrg   With a non-GNU `make', it is safer to compile the package for one
123f5effb2eSmrgarchitecture at a time in the source code directory.  After you have
124f5effb2eSmrginstalled the package for one architecture, use `make distclean' before
125f5effb2eSmrgreconfiguring for another architecture.
126f5effb2eSmrg
127f5effb2eSmrg   On MacOS X 10.5 and later systems, you can create libraries and
128f5effb2eSmrgexecutables that work on multiple system types--known as "fat" or
129f5effb2eSmrg"universal" binaries--by specifying multiple `-arch' options to the
130f5effb2eSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
131f5effb2eSmrgthis:
132f5effb2eSmrg
133f5effb2eSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134f5effb2eSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
135f5effb2eSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
136f5effb2eSmrg
137f5effb2eSmrg   This is not guaranteed to produce working output in all cases, you
138f5effb2eSmrgmay have to build one architecture at a time and combine the results
139f5effb2eSmrgusing the `lipo' tool if you have problems.
140f5effb2eSmrg
141f5effb2eSmrgInstallation Names
142f5effb2eSmrg==================
143f5effb2eSmrg
144f5effb2eSmrg   By default, `make install' installs the package's commands under
145f5effb2eSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
146f5effb2eSmrgcan specify an installation prefix other than `/usr/local' by giving
147585aa3f7Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
148585aa3f7Smrgabsolute file name.
149f5effb2eSmrg
150f5effb2eSmrg   You can specify separate installation prefixes for
151f5effb2eSmrgarchitecture-specific files and architecture-independent files.  If you
152f5effb2eSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
153f5effb2eSmrgPREFIX as the prefix for installing programs and libraries.
154f5effb2eSmrgDocumentation and other data files still use the regular prefix.
155f5effb2eSmrg
156f5effb2eSmrg   In addition, if you use an unusual directory layout you can give
157f5effb2eSmrgoptions like `--bindir=DIR' to specify different values for particular
158f5effb2eSmrgkinds of files.  Run `configure --help' for a list of the directories
159585aa3f7Smrgyou can set and what kinds of files go in them.  In general, the
160585aa3f7Smrgdefault for these options is expressed in terms of `${prefix}', so that
161585aa3f7Smrgspecifying just `--prefix' will affect all of the other directory
162585aa3f7Smrgspecifications that were not explicitly provided.
163585aa3f7Smrg
164585aa3f7Smrg   The most portable way to affect installation locations is to pass the
165585aa3f7Smrgcorrect locations to `configure'; however, many packages provide one or
166585aa3f7Smrgboth of the following shortcuts of passing variable assignments to the
167585aa3f7Smrg`make install' command line to change installation locations without
168585aa3f7Smrghaving to reconfigure or recompile.
169585aa3f7Smrg
170585aa3f7Smrg   The first method involves providing an override variable for each
171585aa3f7Smrgaffected directory.  For example, `make install
172585aa3f7Smrgprefix=/alternate/directory' will choose an alternate location for all
173585aa3f7Smrgdirectory configuration variables that were expressed in terms of
174585aa3f7Smrg`${prefix}'.  Any directories that were specified during `configure',
175585aa3f7Smrgbut not in terms of `${prefix}', must each be overridden at install
176585aa3f7Smrgtime for the entire installation to be relocated.  The approach of
177585aa3f7Smrgmakefile variable overrides for each directory variable is required by
178585aa3f7Smrgthe GNU Coding Standards, and ideally causes no recompilation.
179585aa3f7SmrgHowever, some platforms have known limitations with the semantics of
180585aa3f7Smrgshared libraries that end up requiring recompilation when using this
181585aa3f7Smrgmethod, particularly noticeable in packages that use GNU Libtool.
182585aa3f7Smrg
183585aa3f7Smrg   The second method involves providing the `DESTDIR' variable.  For
184585aa3f7Smrgexample, `make install DESTDIR=/alternate/directory' will prepend
185585aa3f7Smrg`/alternate/directory' before all installation names.  The approach of
186585aa3f7Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
187585aa3f7Smrgdoes not work on platforms that have drive letters.  On the other hand,
188585aa3f7Smrgit does better at avoiding recompilation issues, and works well even
189585aa3f7Smrgwhen some directory options were not specified in terms of `${prefix}'
190585aa3f7Smrgat `configure' time.
191585aa3f7Smrg
192585aa3f7SmrgOptional Features
193585aa3f7Smrg=================
194f5effb2eSmrg
195f5effb2eSmrg   If the package supports it, you can cause programs to be installed
196f5effb2eSmrgwith an extra prefix or suffix on their names by giving `configure' the
197f5effb2eSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
198f5effb2eSmrg
199f5effb2eSmrg   Some packages pay attention to `--enable-FEATURE' options to
200f5effb2eSmrg`configure', where FEATURE indicates an optional part of the package.
201f5effb2eSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
202f5effb2eSmrgis something like `gnu-as' or `x' (for the X Window System).  The
203f5effb2eSmrg`README' should mention any `--enable-' and `--with-' options that the
204f5effb2eSmrgpackage recognizes.
205f5effb2eSmrg
206f5effb2eSmrg   For packages that use the X Window System, `configure' can usually
207f5effb2eSmrgfind the X include and library files automatically, but if it doesn't,
208f5effb2eSmrgyou can use the `configure' options `--x-includes=DIR' and
209f5effb2eSmrg`--x-libraries=DIR' to specify their locations.
210f5effb2eSmrg
211585aa3f7Smrg   Some packages offer the ability to configure how verbose the
212585aa3f7Smrgexecution of `make' will be.  For these packages, running `./configure
213585aa3f7Smrg--enable-silent-rules' sets the default to minimal output, which can be
214585aa3f7Smrgoverridden with `make V=1'; while running `./configure
215585aa3f7Smrg--disable-silent-rules' sets the default to verbose, which can be
216585aa3f7Smrgoverridden with `make V=0'.
217585aa3f7Smrg
218f5effb2eSmrgParticular systems
219f5effb2eSmrg==================
220f5effb2eSmrg
221f5effb2eSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
222f5effb2eSmrgCC is not installed, it is recommended to use the following options in
223f5effb2eSmrgorder to use an ANSI C compiler:
224f5effb2eSmrg
225585aa3f7Smrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
226f5effb2eSmrg
227f5effb2eSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
228f5effb2eSmrg
229585aa3f7Smrg   HP-UX `make' updates targets which have the same time stamps as
230585aa3f7Smrgtheir prerequisites, which makes it generally unusable when shipped
231585aa3f7Smrggenerated files such as `configure' are involved.  Use GNU `make'
232585aa3f7Smrginstead.
233585aa3f7Smrg
234f5effb2eSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
235f5effb2eSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
236f5effb2eSmrga workaround.  If GNU CC is not installed, it is therefore recommended
237f5effb2eSmrgto try
238f5effb2eSmrg
239f5effb2eSmrg     ./configure CC="cc"
240f5effb2eSmrg
241f5effb2eSmrgand if that doesn't work, try
242f5effb2eSmrg
243f5effb2eSmrg     ./configure CC="cc -nodtk"
244f5effb2eSmrg
245585aa3f7Smrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
246585aa3f7Smrgdirectory contains several dysfunctional programs; working variants of
247585aa3f7Smrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
248585aa3f7Smrgin your `PATH', put it _after_ `/usr/bin'.
249585aa3f7Smrg
250585aa3f7Smrg   On Haiku, software installed for all users goes in `/boot/common',
251585aa3f7Smrgnot `/usr/local'.  It is recommended to use the following options:
252585aa3f7Smrg
253585aa3f7Smrg     ./configure --prefix=/boot/common
254585aa3f7Smrg
255f5effb2eSmrgSpecifying the System Type
256f5effb2eSmrg==========================
257f5effb2eSmrg
258f5effb2eSmrg   There may be some features `configure' cannot figure out
259f5effb2eSmrgautomatically, but needs to determine by the type of machine the package
260f5effb2eSmrgwill run on.  Usually, assuming the package is built to be run on the
261f5effb2eSmrg_same_ architectures, `configure' can figure that out, but if it prints
262f5effb2eSmrga message saying it cannot guess the machine type, give it the
263f5effb2eSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
264f5effb2eSmrgtype, such as `sun4', or a canonical name which has the form:
265f5effb2eSmrg
266f5effb2eSmrg     CPU-COMPANY-SYSTEM
267f5effb2eSmrg
268f5effb2eSmrgwhere SYSTEM can have one of these forms:
269f5effb2eSmrg
270585aa3f7Smrg     OS
271585aa3f7Smrg     KERNEL-OS
272f5effb2eSmrg
273f5effb2eSmrg   See the file `config.sub' for the possible values of each field.  If
274f5effb2eSmrg`config.sub' isn't included in this package, then this package doesn't
275f5effb2eSmrgneed to know the machine type.
276f5effb2eSmrg
277f5effb2eSmrg   If you are _building_ compiler tools for cross-compiling, you should
278f5effb2eSmrguse the option `--target=TYPE' to select the type of system they will
279f5effb2eSmrgproduce code for.
280f5effb2eSmrg
281f5effb2eSmrg   If you want to _use_ a cross compiler, that generates code for a
282f5effb2eSmrgplatform different from the build platform, you should specify the
283f5effb2eSmrg"host" platform (i.e., that on which the generated programs will
284f5effb2eSmrgeventually be run) with `--host=TYPE'.
285f5effb2eSmrg
286f5effb2eSmrgSharing Defaults
287f5effb2eSmrg================
288f5effb2eSmrg
289f5effb2eSmrg   If you want to set default values for `configure' scripts to share,
290f5effb2eSmrgyou can create a site shell script called `config.site' that gives
291f5effb2eSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
292f5effb2eSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
293f5effb2eSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
294f5effb2eSmrg`CONFIG_SITE' environment variable to the location of the site script.
295f5effb2eSmrgA warning: not all `configure' scripts look for a site script.
296f5effb2eSmrg
297f5effb2eSmrgDefining Variables
298f5effb2eSmrg==================
299f5effb2eSmrg
300f5effb2eSmrg   Variables not defined in a site shell script can be set in the
301f5effb2eSmrgenvironment passed to `configure'.  However, some packages may run
302f5effb2eSmrgconfigure again during the build, and the customized values of these
303f5effb2eSmrgvariables may be lost.  In order to avoid this problem, you should set
304f5effb2eSmrgthem in the `configure' command line, using `VAR=value'.  For example:
305f5effb2eSmrg
306f5effb2eSmrg     ./configure CC=/usr/local2/bin/gcc
307f5effb2eSmrg
308f5effb2eSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
309f5effb2eSmrgoverridden in the site shell script).
310f5effb2eSmrg
311f5effb2eSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
312f5effb2eSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
313f5effb2eSmrg
314f5effb2eSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
315f5effb2eSmrg
316f5effb2eSmrg`configure' Invocation
317f5effb2eSmrg======================
318f5effb2eSmrg
319f5effb2eSmrg   `configure' recognizes the following options to control how it
320f5effb2eSmrgoperates.
321f5effb2eSmrg
322f5effb2eSmrg`--help'
323f5effb2eSmrg`-h'
324f5effb2eSmrg     Print a summary of all of the options to `configure', and exit.
325f5effb2eSmrg
326f5effb2eSmrg`--help=short'
327f5effb2eSmrg`--help=recursive'
328f5effb2eSmrg     Print a summary of the options unique to this package's
329f5effb2eSmrg     `configure', and exit.  The `short' variant lists options used
330f5effb2eSmrg     only in the top level, while the `recursive' variant lists options
331f5effb2eSmrg     also present in any nested packages.
332f5effb2eSmrg
333f5effb2eSmrg`--version'
334f5effb2eSmrg`-V'
335f5effb2eSmrg     Print the version of Autoconf used to generate the `configure'
336f5effb2eSmrg     script, and exit.
337f5effb2eSmrg
338f5effb2eSmrg`--cache-file=FILE'
339f5effb2eSmrg     Enable the cache: use and save the results of the tests in FILE,
340f5effb2eSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
341f5effb2eSmrg     disable caching.
342f5effb2eSmrg
343f5effb2eSmrg`--config-cache'
344f5effb2eSmrg`-C'
345f5effb2eSmrg     Alias for `--cache-file=config.cache'.
346f5effb2eSmrg
347f5effb2eSmrg`--quiet'
348f5effb2eSmrg`--silent'
349f5effb2eSmrg`-q'
350f5effb2eSmrg     Do not print messages saying which checks are being made.  To
351f5effb2eSmrg     suppress all normal output, redirect it to `/dev/null' (any error
352f5effb2eSmrg     messages will still be shown).
353f5effb2eSmrg
354f5effb2eSmrg`--srcdir=DIR'
355f5effb2eSmrg     Look for the package's source code in directory DIR.  Usually
356f5effb2eSmrg     `configure' can determine that directory automatically.
357f5effb2eSmrg
358f5effb2eSmrg`--prefix=DIR'
359585aa3f7Smrg     Use DIR as the installation prefix.  *note Installation Names::
360f5effb2eSmrg     for more details, including other options available for fine-tuning
361f5effb2eSmrg     the installation locations.
362f5effb2eSmrg
363f5effb2eSmrg`--no-create'
364f5effb2eSmrg`-n'
365f5effb2eSmrg     Run the configure checks, but stop before creating any output
366f5effb2eSmrg     files.
367f5effb2eSmrg
368f5effb2eSmrg`configure' also accepts some other, not widely useful, options.  Run
369f5effb2eSmrg`configure --help' for more details.
370f5effb2eSmrg
371