13f6d0e1dSmrgInstallation Instructions
23f6d0e1dSmrg*************************
33f6d0e1dSmrg
495903e71SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
595903e71SmrgInc.
63f6d0e1dSmrg
795903e71Smrg   Copying and distribution of this file, with or without modification,
895903e71Smrgare permitted in any medium without royalty provided the copyright
995903e71Smrgnotice and this notice are preserved.  This file is offered as-is,
1095903e71Smrgwithout warranty of any kind.
113f6d0e1dSmrg
123f6d0e1dSmrgBasic Installation
133f6d0e1dSmrg==================
143f6d0e1dSmrg
153f6d0e1dSmrg   Briefly, the shell commands `./configure; make; make install' should
163f6d0e1dSmrgconfigure, build, and install this package.  The following
173f6d0e1dSmrgmore-detailed instructions are generic; see the `README' file for
1895903e71Smrginstructions specific to this package.  Some packages provide this
1995903e71Smrg`INSTALL' file but do not implement all of the features documented
2095903e71Smrgbelow.  The lack of an optional feature in a given package is not
2195903e71Smrgnecessarily a bug.  More recommendations for GNU packages can be found
2295903e71Smrgin *note Makefile Conventions: (standards)Makefile Conventions.
233f6d0e1dSmrg
243f6d0e1dSmrg   The `configure' shell script attempts to guess correct values for
253f6d0e1dSmrgvarious system-dependent variables used during compilation.  It uses
263f6d0e1dSmrgthose values to create a `Makefile' in each directory of the package.
273f6d0e1dSmrgIt may also create one or more `.h' files containing system-dependent
283f6d0e1dSmrgdefinitions.  Finally, it creates a shell script `config.status' that
293f6d0e1dSmrgyou can run in the future to recreate the current configuration, and a
303f6d0e1dSmrgfile `config.log' containing compiler output (useful mainly for
313f6d0e1dSmrgdebugging `configure').
323f6d0e1dSmrg
333f6d0e1dSmrg   It can also use an optional file (typically called `config.cache'
343f6d0e1dSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
353f6d0e1dSmrgthe results of its tests to speed up reconfiguring.  Caching is
363f6d0e1dSmrgdisabled by default to prevent problems with accidental use of stale
373f6d0e1dSmrgcache files.
383f6d0e1dSmrg
393f6d0e1dSmrg   If you need to do unusual things to compile the package, please try
403f6d0e1dSmrgto figure out how `configure' could check whether to do them, and mail
413f6d0e1dSmrgdiffs or instructions to the address given in the `README' so they can
423f6d0e1dSmrgbe considered for the next release.  If you are using the cache, and at
433f6d0e1dSmrgsome point `config.cache' contains results you don't want to keep, you
443f6d0e1dSmrgmay remove or edit it.
453f6d0e1dSmrg
463f6d0e1dSmrg   The file `configure.ac' (or `configure.in') is used to create
473f6d0e1dSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
483f6d0e1dSmrgyou want to change it or regenerate `configure' using a newer version
493f6d0e1dSmrgof `autoconf'.
503f6d0e1dSmrg
5195903e71Smrg   The simplest way to compile this package is:
523f6d0e1dSmrg
533f6d0e1dSmrg  1. `cd' to the directory containing the package's source code and type
543f6d0e1dSmrg     `./configure' to configure the package for your system.
553f6d0e1dSmrg
563f6d0e1dSmrg     Running `configure' might take a while.  While running, it prints
573f6d0e1dSmrg     some messages telling which features it is checking for.
583f6d0e1dSmrg
593f6d0e1dSmrg  2. Type `make' to compile the package.
603f6d0e1dSmrg
613f6d0e1dSmrg  3. Optionally, type `make check' to run any self-tests that come with
6295903e71Smrg     the package, generally using the just-built uninstalled binaries.
633f6d0e1dSmrg
643f6d0e1dSmrg  4. Type `make install' to install the programs and any data files and
6595903e71Smrg     documentation.  When installing into a prefix owned by root, it is
6695903e71Smrg     recommended that the package be configured and built as a regular
6795903e71Smrg     user, and only the `make install' phase executed with root
6895903e71Smrg     privileges.
6995903e71Smrg
7095903e71Smrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7195903e71Smrg     this time using the binaries in their final installed location.
7295903e71Smrg     This target does not install anything.  Running this target as a
7395903e71Smrg     regular user, particularly if the prior `make install' required
7495903e71Smrg     root privileges, verifies that the installation completed
7595903e71Smrg     correctly.
7695903e71Smrg
7795903e71Smrg  6. You can remove the program binaries and object files from the
783f6d0e1dSmrg     source code directory by typing `make clean'.  To also remove the
793f6d0e1dSmrg     files that `configure' created (so you can compile the package for
803f6d0e1dSmrg     a different kind of computer), type `make distclean'.  There is
813f6d0e1dSmrg     also a `make maintainer-clean' target, but that is intended mainly
823f6d0e1dSmrg     for the package's developers.  If you use it, you may have to get
833f6d0e1dSmrg     all sorts of other programs in order to regenerate files that came
843f6d0e1dSmrg     with the distribution.
853f6d0e1dSmrg
8695903e71Smrg  7. Often, you can also type `make uninstall' to remove the installed
8795903e71Smrg     files again.  In practice, not all packages have tested that
8895903e71Smrg     uninstallation works correctly, even though it is required by the
8995903e71Smrg     GNU Coding Standards.
9095903e71Smrg
9195903e71Smrg  8. Some packages, particularly those that use Automake, provide `make
9295903e71Smrg     distcheck', which can by used by developers to test that all other
9395903e71Smrg     targets like `make install' and `make uninstall' work correctly.
9495903e71Smrg     This target is generally not run by end users.
953f6d0e1dSmrg
963f6d0e1dSmrgCompilers and Options
973f6d0e1dSmrg=====================
983f6d0e1dSmrg
993f6d0e1dSmrg   Some systems require unusual options for compilation or linking that
1003f6d0e1dSmrgthe `configure' script does not know about.  Run `./configure --help'
1013f6d0e1dSmrgfor details on some of the pertinent environment variables.
1023f6d0e1dSmrg
1033f6d0e1dSmrg   You can give `configure' initial values for configuration parameters
1043f6d0e1dSmrgby setting variables in the command line or in the environment.  Here
1053f6d0e1dSmrgis an example:
1063f6d0e1dSmrg
1073f6d0e1dSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
1083f6d0e1dSmrg
1093f6d0e1dSmrg   *Note Defining Variables::, for more details.
1103f6d0e1dSmrg
1113f6d0e1dSmrgCompiling For Multiple Architectures
1123f6d0e1dSmrg====================================
1133f6d0e1dSmrg
1143f6d0e1dSmrg   You can compile the package for more than one kind of computer at the
1153f6d0e1dSmrgsame time, by placing the object files for each architecture in their
1163f6d0e1dSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
1173f6d0e1dSmrgdirectory where you want the object files and executables to go and run
1183f6d0e1dSmrgthe `configure' script.  `configure' automatically checks for the
11995903e71Smrgsource code in the directory that `configure' is in and in `..'.  This
12095903e71Smrgis known as a "VPATH" build.
1213f6d0e1dSmrg
1223f6d0e1dSmrg   With a non-GNU `make', it is safer to compile the package for one
1233f6d0e1dSmrgarchitecture at a time in the source code directory.  After you have
1243f6d0e1dSmrginstalled the package for one architecture, use `make distclean' before
1253f6d0e1dSmrgreconfiguring for another architecture.
1263f6d0e1dSmrg
1273f6d0e1dSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1283f6d0e1dSmrgexecutables that work on multiple system types--known as "fat" or
1293f6d0e1dSmrg"universal" binaries--by specifying multiple `-arch' options to the
1303f6d0e1dSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1313f6d0e1dSmrgthis:
1323f6d0e1dSmrg
1333f6d0e1dSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1343f6d0e1dSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1353f6d0e1dSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1363f6d0e1dSmrg
1373f6d0e1dSmrg   This is not guaranteed to produce working output in all cases, you
1383f6d0e1dSmrgmay have to build one architecture at a time and combine the results
1393f6d0e1dSmrgusing the `lipo' tool if you have problems.
1403f6d0e1dSmrg
1413f6d0e1dSmrgInstallation Names
1423f6d0e1dSmrg==================
1433f6d0e1dSmrg
1443f6d0e1dSmrg   By default, `make install' installs the package's commands under
1453f6d0e1dSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1463f6d0e1dSmrgcan specify an installation prefix other than `/usr/local' by giving
14795903e71Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14895903e71Smrgabsolute file name.
1493f6d0e1dSmrg
1503f6d0e1dSmrg   You can specify separate installation prefixes for
1513f6d0e1dSmrgarchitecture-specific files and architecture-independent files.  If you
1523f6d0e1dSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1533f6d0e1dSmrgPREFIX as the prefix for installing programs and libraries.
1543f6d0e1dSmrgDocumentation and other data files still use the regular prefix.
1553f6d0e1dSmrg
1563f6d0e1dSmrg   In addition, if you use an unusual directory layout you can give
1573f6d0e1dSmrgoptions like `--bindir=DIR' to specify different values for particular
1583f6d0e1dSmrgkinds of files.  Run `configure --help' for a list of the directories
15995903e71Smrgyou can set and what kinds of files go in them.  In general, the
16095903e71Smrgdefault for these options is expressed in terms of `${prefix}', so that
16195903e71Smrgspecifying just `--prefix' will affect all of the other directory
16295903e71Smrgspecifications that were not explicitly provided.
16395903e71Smrg
16495903e71Smrg   The most portable way to affect installation locations is to pass the
16595903e71Smrgcorrect locations to `configure'; however, many packages provide one or
16695903e71Smrgboth of the following shortcuts of passing variable assignments to the
16795903e71Smrg`make install' command line to change installation locations without
16895903e71Smrghaving to reconfigure or recompile.
16995903e71Smrg
17095903e71Smrg   The first method involves providing an override variable for each
17195903e71Smrgaffected directory.  For example, `make install
17295903e71Smrgprefix=/alternate/directory' will choose an alternate location for all
17395903e71Smrgdirectory configuration variables that were expressed in terms of
17495903e71Smrg`${prefix}'.  Any directories that were specified during `configure',
17595903e71Smrgbut not in terms of `${prefix}', must each be overridden at install
17695903e71Smrgtime for the entire installation to be relocated.  The approach of
17795903e71Smrgmakefile variable overrides for each directory variable is required by
17895903e71Smrgthe GNU Coding Standards, and ideally causes no recompilation.
17995903e71SmrgHowever, some platforms have known limitations with the semantics of
18095903e71Smrgshared libraries that end up requiring recompilation when using this
18195903e71Smrgmethod, particularly noticeable in packages that use GNU Libtool.
18295903e71Smrg
18395903e71Smrg   The second method involves providing the `DESTDIR' variable.  For
18495903e71Smrgexample, `make install DESTDIR=/alternate/directory' will prepend
18595903e71Smrg`/alternate/directory' before all installation names.  The approach of
18695903e71Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18795903e71Smrgdoes not work on platforms that have drive letters.  On the other hand,
18895903e71Smrgit does better at avoiding recompilation issues, and works well even
18995903e71Smrgwhen some directory options were not specified in terms of `${prefix}'
19095903e71Smrgat `configure' time.
19195903e71Smrg
19295903e71SmrgOptional Features
19395903e71Smrg=================
1943f6d0e1dSmrg
1953f6d0e1dSmrg   If the package supports it, you can cause programs to be installed
1963f6d0e1dSmrgwith an extra prefix or suffix on their names by giving `configure' the
1973f6d0e1dSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1983f6d0e1dSmrg
1993f6d0e1dSmrg   Some packages pay attention to `--enable-FEATURE' options to
2003f6d0e1dSmrg`configure', where FEATURE indicates an optional part of the package.
2013f6d0e1dSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
2023f6d0e1dSmrgis something like `gnu-as' or `x' (for the X Window System).  The
2033f6d0e1dSmrg`README' should mention any `--enable-' and `--with-' options that the
2043f6d0e1dSmrgpackage recognizes.
2053f6d0e1dSmrg
2063f6d0e1dSmrg   For packages that use the X Window System, `configure' can usually
2073f6d0e1dSmrgfind the X include and library files automatically, but if it doesn't,
2083f6d0e1dSmrgyou can use the `configure' options `--x-includes=DIR' and
2093f6d0e1dSmrg`--x-libraries=DIR' to specify their locations.
2103f6d0e1dSmrg
21195903e71Smrg   Some packages offer the ability to configure how verbose the
21295903e71Smrgexecution of `make' will be.  For these packages, running `./configure
21395903e71Smrg--enable-silent-rules' sets the default to minimal output, which can be
21495903e71Smrgoverridden with `make V=1'; while running `./configure
21595903e71Smrg--disable-silent-rules' sets the default to verbose, which can be
21695903e71Smrgoverridden with `make V=0'.
21795903e71Smrg
2183f6d0e1dSmrgParticular systems
2193f6d0e1dSmrg==================
2203f6d0e1dSmrg
2213f6d0e1dSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
2223f6d0e1dSmrgCC is not installed, it is recommended to use the following options in
2233f6d0e1dSmrgorder to use an ANSI C compiler:
2243f6d0e1dSmrg
22595903e71Smrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
2263f6d0e1dSmrg
2273f6d0e1dSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
2283f6d0e1dSmrg
22995903e71Smrg   HP-UX `make' updates targets which have the same time stamps as
23095903e71Smrgtheir prerequisites, which makes it generally unusable when shipped
23195903e71Smrggenerated files such as `configure' are involved.  Use GNU `make'
23295903e71Smrginstead.
23395903e71Smrg
2343f6d0e1dSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
2353f6d0e1dSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
2363f6d0e1dSmrga workaround.  If GNU CC is not installed, it is therefore recommended
2373f6d0e1dSmrgto try
2383f6d0e1dSmrg
2393f6d0e1dSmrg     ./configure CC="cc"
2403f6d0e1dSmrg
2413f6d0e1dSmrgand if that doesn't work, try
2423f6d0e1dSmrg
2433f6d0e1dSmrg     ./configure CC="cc -nodtk"
2443f6d0e1dSmrg
24595903e71Smrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24695903e71Smrgdirectory contains several dysfunctional programs; working variants of
24795903e71Smrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24895903e71Smrgin your `PATH', put it _after_ `/usr/bin'.
24995903e71Smrg
25095903e71Smrg   On Haiku, software installed for all users goes in `/boot/common',
25195903e71Smrgnot `/usr/local'.  It is recommended to use the following options:
25295903e71Smrg
25395903e71Smrg     ./configure --prefix=/boot/common
25495903e71Smrg
2553f6d0e1dSmrgSpecifying the System Type
2563f6d0e1dSmrg==========================
2573f6d0e1dSmrg
2583f6d0e1dSmrg   There may be some features `configure' cannot figure out
2593f6d0e1dSmrgautomatically, but needs to determine by the type of machine the package
2603f6d0e1dSmrgwill run on.  Usually, assuming the package is built to be run on the
2613f6d0e1dSmrg_same_ architectures, `configure' can figure that out, but if it prints
2623f6d0e1dSmrga message saying it cannot guess the machine type, give it the
2633f6d0e1dSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
2643f6d0e1dSmrgtype, such as `sun4', or a canonical name which has the form:
2653f6d0e1dSmrg
2663f6d0e1dSmrg     CPU-COMPANY-SYSTEM
2673f6d0e1dSmrg
2683f6d0e1dSmrgwhere SYSTEM can have one of these forms:
2693f6d0e1dSmrg
27095903e71Smrg     OS
27195903e71Smrg     KERNEL-OS
2723f6d0e1dSmrg
2733f6d0e1dSmrg   See the file `config.sub' for the possible values of each field.  If
2743f6d0e1dSmrg`config.sub' isn't included in this package, then this package doesn't
2753f6d0e1dSmrgneed to know the machine type.
2763f6d0e1dSmrg
2773f6d0e1dSmrg   If you are _building_ compiler tools for cross-compiling, you should
2783f6d0e1dSmrguse the option `--target=TYPE' to select the type of system they will
2793f6d0e1dSmrgproduce code for.
2803f6d0e1dSmrg
2813f6d0e1dSmrg   If you want to _use_ a cross compiler, that generates code for a
2823f6d0e1dSmrgplatform different from the build platform, you should specify the
2833f6d0e1dSmrg"host" platform (i.e., that on which the generated programs will
2843f6d0e1dSmrgeventually be run) with `--host=TYPE'.
2853f6d0e1dSmrg
2863f6d0e1dSmrgSharing Defaults
2873f6d0e1dSmrg================
2883f6d0e1dSmrg
2893f6d0e1dSmrg   If you want to set default values for `configure' scripts to share,
2903f6d0e1dSmrgyou can create a site shell script called `config.site' that gives
2913f6d0e1dSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2923f6d0e1dSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2933f6d0e1dSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2943f6d0e1dSmrg`CONFIG_SITE' environment variable to the location of the site script.
2953f6d0e1dSmrgA warning: not all `configure' scripts look for a site script.
2963f6d0e1dSmrg
2973f6d0e1dSmrgDefining Variables
2983f6d0e1dSmrg==================
2993f6d0e1dSmrg
3003f6d0e1dSmrg   Variables not defined in a site shell script can be set in the
3013f6d0e1dSmrgenvironment passed to `configure'.  However, some packages may run
3023f6d0e1dSmrgconfigure again during the build, and the customized values of these
3033f6d0e1dSmrgvariables may be lost.  In order to avoid this problem, you should set
3043f6d0e1dSmrgthem in the `configure' command line, using `VAR=value'.  For example:
3053f6d0e1dSmrg
3063f6d0e1dSmrg     ./configure CC=/usr/local2/bin/gcc
3073f6d0e1dSmrg
3083f6d0e1dSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
3093f6d0e1dSmrgoverridden in the site shell script).
3103f6d0e1dSmrg
3113f6d0e1dSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
3123f6d0e1dSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
3133f6d0e1dSmrg
3143f6d0e1dSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
3153f6d0e1dSmrg
3163f6d0e1dSmrg`configure' Invocation
3173f6d0e1dSmrg======================
3183f6d0e1dSmrg
3193f6d0e1dSmrg   `configure' recognizes the following options to control how it
3203f6d0e1dSmrgoperates.
3213f6d0e1dSmrg
3223f6d0e1dSmrg`--help'
3233f6d0e1dSmrg`-h'
3243f6d0e1dSmrg     Print a summary of all of the options to `configure', and exit.
3253f6d0e1dSmrg
3263f6d0e1dSmrg`--help=short'
3273f6d0e1dSmrg`--help=recursive'
3283f6d0e1dSmrg     Print a summary of the options unique to this package's
3293f6d0e1dSmrg     `configure', and exit.  The `short' variant lists options used
3303f6d0e1dSmrg     only in the top level, while the `recursive' variant lists options
3313f6d0e1dSmrg     also present in any nested packages.
3323f6d0e1dSmrg
3333f6d0e1dSmrg`--version'
3343f6d0e1dSmrg`-V'
3353f6d0e1dSmrg     Print the version of Autoconf used to generate the `configure'
3363f6d0e1dSmrg     script, and exit.
3373f6d0e1dSmrg
3383f6d0e1dSmrg`--cache-file=FILE'
3393f6d0e1dSmrg     Enable the cache: use and save the results of the tests in FILE,
3403f6d0e1dSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
3413f6d0e1dSmrg     disable caching.
3423f6d0e1dSmrg
3433f6d0e1dSmrg`--config-cache'
3443f6d0e1dSmrg`-C'
3453f6d0e1dSmrg     Alias for `--cache-file=config.cache'.
3463f6d0e1dSmrg
3473f6d0e1dSmrg`--quiet'
3483f6d0e1dSmrg`--silent'
3493f6d0e1dSmrg`-q'
3503f6d0e1dSmrg     Do not print messages saying which checks are being made.  To
3513f6d0e1dSmrg     suppress all normal output, redirect it to `/dev/null' (any error
3523f6d0e1dSmrg     messages will still be shown).
3533f6d0e1dSmrg
3543f6d0e1dSmrg`--srcdir=DIR'
3553f6d0e1dSmrg     Look for the package's source code in directory DIR.  Usually
3563f6d0e1dSmrg     `configure' can determine that directory automatically.
3573f6d0e1dSmrg
3583f6d0e1dSmrg`--prefix=DIR'
35995903e71Smrg     Use DIR as the installation prefix.  *note Installation Names::
3603f6d0e1dSmrg     for more details, including other options available for fine-tuning
3613f6d0e1dSmrg     the installation locations.
3623f6d0e1dSmrg
3633f6d0e1dSmrg`--no-create'
3643f6d0e1dSmrg`-n'
3653f6d0e1dSmrg     Run the configure checks, but stop before creating any output
3663f6d0e1dSmrg     files.
3673f6d0e1dSmrg
3683f6d0e1dSmrg`configure' also accepts some other, not widely useful, options.  Run
3693f6d0e1dSmrg`configure --help' for more details.
3703f6d0e1dSmrg
371