15f5b92ffSmrgInstallation Instructions
25f5b92ffSmrg*************************
35f5b92ffSmrg
436e956c5SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
536e956c5SmrgInc.
65f5b92ffSmrg
736e956c5Smrg   Copying and distribution of this file, with or without modification,
836e956c5Smrgare permitted in any medium without royalty provided the copyright
936e956c5Smrgnotice and this notice are preserved.  This file is offered as-is,
1036e956c5Smrgwithout warranty of any kind.
115f5b92ffSmrg
125f5b92ffSmrgBasic Installation
135f5b92ffSmrg==================
145f5b92ffSmrg
155f5b92ffSmrg   Briefly, the shell commands `./configure; make; make install' should
165f5b92ffSmrgconfigure, build, and install this package.  The following
175f5b92ffSmrgmore-detailed instructions are generic; see the `README' file for
1836e956c5Smrginstructions specific to this package.  Some packages provide this
1936e956c5Smrg`INSTALL' file but do not implement all of the features documented
2036e956c5Smrgbelow.  The lack of an optional feature in a given package is not
2136e956c5Smrgnecessarily a bug.  More recommendations for GNU packages can be found
2236e956c5Smrgin *note Makefile Conventions: (standards)Makefile Conventions.
235f5b92ffSmrg
245f5b92ffSmrg   The `configure' shell script attempts to guess correct values for
255f5b92ffSmrgvarious system-dependent variables used during compilation.  It uses
265f5b92ffSmrgthose values to create a `Makefile' in each directory of the package.
275f5b92ffSmrgIt may also create one or more `.h' files containing system-dependent
285f5b92ffSmrgdefinitions.  Finally, it creates a shell script `config.status' that
295f5b92ffSmrgyou can run in the future to recreate the current configuration, and a
305f5b92ffSmrgfile `config.log' containing compiler output (useful mainly for
315f5b92ffSmrgdebugging `configure').
325f5b92ffSmrg
335f5b92ffSmrg   It can also use an optional file (typically called `config.cache'
345f5b92ffSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
355f5b92ffSmrgthe results of its tests to speed up reconfiguring.  Caching is
365f5b92ffSmrgdisabled by default to prevent problems with accidental use of stale
375f5b92ffSmrgcache files.
385f5b92ffSmrg
395f5b92ffSmrg   If you need to do unusual things to compile the package, please try
405f5b92ffSmrgto figure out how `configure' could check whether to do them, and mail
415f5b92ffSmrgdiffs or instructions to the address given in the `README' so they can
425f5b92ffSmrgbe considered for the next release.  If you are using the cache, and at
435f5b92ffSmrgsome point `config.cache' contains results you don't want to keep, you
445f5b92ffSmrgmay remove or edit it.
455f5b92ffSmrg
465f5b92ffSmrg   The file `configure.ac' (or `configure.in') is used to create
475f5b92ffSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
485f5b92ffSmrgyou want to change it or regenerate `configure' using a newer version
495f5b92ffSmrgof `autoconf'.
505f5b92ffSmrg
5136e956c5Smrg   The simplest way to compile this package is:
525f5b92ffSmrg
535f5b92ffSmrg  1. `cd' to the directory containing the package's source code and type
545f5b92ffSmrg     `./configure' to configure the package for your system.
555f5b92ffSmrg
565f5b92ffSmrg     Running `configure' might take a while.  While running, it prints
575f5b92ffSmrg     some messages telling which features it is checking for.
585f5b92ffSmrg
595f5b92ffSmrg  2. Type `make' to compile the package.
605f5b92ffSmrg
615f5b92ffSmrg  3. Optionally, type `make check' to run any self-tests that come with
6236e956c5Smrg     the package, generally using the just-built uninstalled binaries.
635f5b92ffSmrg
645f5b92ffSmrg  4. Type `make install' to install the programs and any data files and
6536e956c5Smrg     documentation.  When installing into a prefix owned by root, it is
6636e956c5Smrg     recommended that the package be configured and built as a regular
6736e956c5Smrg     user, and only the `make install' phase executed with root
6836e956c5Smrg     privileges.
6936e956c5Smrg
7036e956c5Smrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7136e956c5Smrg     this time using the binaries in their final installed location.
7236e956c5Smrg     This target does not install anything.  Running this target as a
7336e956c5Smrg     regular user, particularly if the prior `make install' required
7436e956c5Smrg     root privileges, verifies that the installation completed
7536e956c5Smrg     correctly.
7636e956c5Smrg
7736e956c5Smrg  6. You can remove the program binaries and object files from the
785f5b92ffSmrg     source code directory by typing `make clean'.  To also remove the
795f5b92ffSmrg     files that `configure' created (so you can compile the package for
805f5b92ffSmrg     a different kind of computer), type `make distclean'.  There is
815f5b92ffSmrg     also a `make maintainer-clean' target, but that is intended mainly
825f5b92ffSmrg     for the package's developers.  If you use it, you may have to get
835f5b92ffSmrg     all sorts of other programs in order to regenerate files that came
845f5b92ffSmrg     with the distribution.
855f5b92ffSmrg
8636e956c5Smrg  7. Often, you can also type `make uninstall' to remove the installed
8736e956c5Smrg     files again.  In practice, not all packages have tested that
8836e956c5Smrg     uninstallation works correctly, even though it is required by the
8936e956c5Smrg     GNU Coding Standards.
9036e956c5Smrg
9136e956c5Smrg  8. Some packages, particularly those that use Automake, provide `make
9236e956c5Smrg     distcheck', which can by used by developers to test that all other
9336e956c5Smrg     targets like `make install' and `make uninstall' work correctly.
9436e956c5Smrg     This target is generally not run by end users.
955f5b92ffSmrg
965f5b92ffSmrgCompilers and Options
975f5b92ffSmrg=====================
985f5b92ffSmrg
995f5b92ffSmrg   Some systems require unusual options for compilation or linking that
1005f5b92ffSmrgthe `configure' script does not know about.  Run `./configure --help'
1015f5b92ffSmrgfor details on some of the pertinent environment variables.
1025f5b92ffSmrg
1035f5b92ffSmrg   You can give `configure' initial values for configuration parameters
1045f5b92ffSmrgby setting variables in the command line or in the environment.  Here
1055f5b92ffSmrgis an example:
1065f5b92ffSmrg
1075f5b92ffSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
1085f5b92ffSmrg
1095f5b92ffSmrg   *Note Defining Variables::, for more details.
1105f5b92ffSmrg
1115f5b92ffSmrgCompiling For Multiple Architectures
1125f5b92ffSmrg====================================
1135f5b92ffSmrg
1145f5b92ffSmrg   You can compile the package for more than one kind of computer at the
1155f5b92ffSmrgsame time, by placing the object files for each architecture in their
1165f5b92ffSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
1175f5b92ffSmrgdirectory where you want the object files and executables to go and run
1185f5b92ffSmrgthe `configure' script.  `configure' automatically checks for the
11936e956c5Smrgsource code in the directory that `configure' is in and in `..'.  This
12036e956c5Smrgis known as a "VPATH" build.
1215f5b92ffSmrg
1225f5b92ffSmrg   With a non-GNU `make', it is safer to compile the package for one
1235f5b92ffSmrgarchitecture at a time in the source code directory.  After you have
1245f5b92ffSmrginstalled the package for one architecture, use `make distclean' before
1255f5b92ffSmrgreconfiguring for another architecture.
1265f5b92ffSmrg
1275f5b92ffSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1285f5b92ffSmrgexecutables that work on multiple system types--known as "fat" or
1295f5b92ffSmrg"universal" binaries--by specifying multiple `-arch' options to the
1305f5b92ffSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1315f5b92ffSmrgthis:
1325f5b92ffSmrg
1335f5b92ffSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1345f5b92ffSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1355f5b92ffSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1365f5b92ffSmrg
1375f5b92ffSmrg   This is not guaranteed to produce working output in all cases, you
1385f5b92ffSmrgmay have to build one architecture at a time and combine the results
1395f5b92ffSmrgusing the `lipo' tool if you have problems.
1405f5b92ffSmrg
1415f5b92ffSmrgInstallation Names
1425f5b92ffSmrg==================
1435f5b92ffSmrg
1445f5b92ffSmrg   By default, `make install' installs the package's commands under
1455f5b92ffSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1465f5b92ffSmrgcan specify an installation prefix other than `/usr/local' by giving
14736e956c5Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14836e956c5Smrgabsolute file name.
1495f5b92ffSmrg
1505f5b92ffSmrg   You can specify separate installation prefixes for
1515f5b92ffSmrgarchitecture-specific files and architecture-independent files.  If you
1525f5b92ffSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1535f5b92ffSmrgPREFIX as the prefix for installing programs and libraries.
1545f5b92ffSmrgDocumentation and other data files still use the regular prefix.
1555f5b92ffSmrg
1565f5b92ffSmrg   In addition, if you use an unusual directory layout you can give
1575f5b92ffSmrgoptions like `--bindir=DIR' to specify different values for particular
1585f5b92ffSmrgkinds of files.  Run `configure --help' for a list of the directories
15936e956c5Smrgyou can set and what kinds of files go in them.  In general, the
16036e956c5Smrgdefault for these options is expressed in terms of `${prefix}', so that
16136e956c5Smrgspecifying just `--prefix' will affect all of the other directory
16236e956c5Smrgspecifications that were not explicitly provided.
16336e956c5Smrg
16436e956c5Smrg   The most portable way to affect installation locations is to pass the
16536e956c5Smrgcorrect locations to `configure'; however, many packages provide one or
16636e956c5Smrgboth of the following shortcuts of passing variable assignments to the
16736e956c5Smrg`make install' command line to change installation locations without
16836e956c5Smrghaving to reconfigure or recompile.
16936e956c5Smrg
17036e956c5Smrg   The first method involves providing an override variable for each
17136e956c5Smrgaffected directory.  For example, `make install
17236e956c5Smrgprefix=/alternate/directory' will choose an alternate location for all
17336e956c5Smrgdirectory configuration variables that were expressed in terms of
17436e956c5Smrg`${prefix}'.  Any directories that were specified during `configure',
17536e956c5Smrgbut not in terms of `${prefix}', must each be overridden at install
17636e956c5Smrgtime for the entire installation to be relocated.  The approach of
17736e956c5Smrgmakefile variable overrides for each directory variable is required by
17836e956c5Smrgthe GNU Coding Standards, and ideally causes no recompilation.
17936e956c5SmrgHowever, some platforms have known limitations with the semantics of
18036e956c5Smrgshared libraries that end up requiring recompilation when using this
18136e956c5Smrgmethod, particularly noticeable in packages that use GNU Libtool.
18236e956c5Smrg
18336e956c5Smrg   The second method involves providing the `DESTDIR' variable.  For
18436e956c5Smrgexample, `make install DESTDIR=/alternate/directory' will prepend
18536e956c5Smrg`/alternate/directory' before all installation names.  The approach of
18636e956c5Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18736e956c5Smrgdoes not work on platforms that have drive letters.  On the other hand,
18836e956c5Smrgit does better at avoiding recompilation issues, and works well even
18936e956c5Smrgwhen some directory options were not specified in terms of `${prefix}'
19036e956c5Smrgat `configure' time.
19136e956c5Smrg
19236e956c5SmrgOptional Features
19336e956c5Smrg=================
1945f5b92ffSmrg
1955f5b92ffSmrg   If the package supports it, you can cause programs to be installed
1965f5b92ffSmrgwith an extra prefix or suffix on their names by giving `configure' the
1975f5b92ffSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1985f5b92ffSmrg
1995f5b92ffSmrg   Some packages pay attention to `--enable-FEATURE' options to
2005f5b92ffSmrg`configure', where FEATURE indicates an optional part of the package.
2015f5b92ffSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
2025f5b92ffSmrgis something like `gnu-as' or `x' (for the X Window System).  The
2035f5b92ffSmrg`README' should mention any `--enable-' and `--with-' options that the
2045f5b92ffSmrgpackage recognizes.
2055f5b92ffSmrg
2065f5b92ffSmrg   For packages that use the X Window System, `configure' can usually
2075f5b92ffSmrgfind the X include and library files automatically, but if it doesn't,
2085f5b92ffSmrgyou can use the `configure' options `--x-includes=DIR' and
2095f5b92ffSmrg`--x-libraries=DIR' to specify their locations.
2105f5b92ffSmrg
21136e956c5Smrg   Some packages offer the ability to configure how verbose the
21236e956c5Smrgexecution of `make' will be.  For these packages, running `./configure
21336e956c5Smrg--enable-silent-rules' sets the default to minimal output, which can be
21436e956c5Smrgoverridden with `make V=1'; while running `./configure
21536e956c5Smrg--disable-silent-rules' sets the default to verbose, which can be
21636e956c5Smrgoverridden with `make V=0'.
21736e956c5Smrg
2185f5b92ffSmrgParticular systems
2195f5b92ffSmrg==================
2205f5b92ffSmrg
2215f5b92ffSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
2225f5b92ffSmrgCC is not installed, it is recommended to use the following options in
2235f5b92ffSmrgorder to use an ANSI C compiler:
2245f5b92ffSmrg
22536e956c5Smrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
2265f5b92ffSmrg
2275f5b92ffSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
2285f5b92ffSmrg
22936e956c5Smrg   HP-UX `make' updates targets which have the same time stamps as
23036e956c5Smrgtheir prerequisites, which makes it generally unusable when shipped
23136e956c5Smrggenerated files such as `configure' are involved.  Use GNU `make'
23236e956c5Smrginstead.
23336e956c5Smrg
2345f5b92ffSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
2355f5b92ffSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
2365f5b92ffSmrga workaround.  If GNU CC is not installed, it is therefore recommended
2375f5b92ffSmrgto try
2385f5b92ffSmrg
2395f5b92ffSmrg     ./configure CC="cc"
2405f5b92ffSmrg
2415f5b92ffSmrgand if that doesn't work, try
2425f5b92ffSmrg
2435f5b92ffSmrg     ./configure CC="cc -nodtk"
2445f5b92ffSmrg
24536e956c5Smrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24636e956c5Smrgdirectory contains several dysfunctional programs; working variants of
24736e956c5Smrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24836e956c5Smrgin your `PATH', put it _after_ `/usr/bin'.
24936e956c5Smrg
25036e956c5Smrg   On Haiku, software installed for all users goes in `/boot/common',
25136e956c5Smrgnot `/usr/local'.  It is recommended to use the following options:
25236e956c5Smrg
25336e956c5Smrg     ./configure --prefix=/boot/common
25436e956c5Smrg
2555f5b92ffSmrgSpecifying the System Type
2565f5b92ffSmrg==========================
2575f5b92ffSmrg
2585f5b92ffSmrg   There may be some features `configure' cannot figure out
2595f5b92ffSmrgautomatically, but needs to determine by the type of machine the package
2605f5b92ffSmrgwill run on.  Usually, assuming the package is built to be run on the
2615f5b92ffSmrg_same_ architectures, `configure' can figure that out, but if it prints
2625f5b92ffSmrga message saying it cannot guess the machine type, give it the
2635f5b92ffSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
2645f5b92ffSmrgtype, such as `sun4', or a canonical name which has the form:
2655f5b92ffSmrg
2665f5b92ffSmrg     CPU-COMPANY-SYSTEM
2675f5b92ffSmrg
2685f5b92ffSmrgwhere SYSTEM can have one of these forms:
2695f5b92ffSmrg
27036e956c5Smrg     OS
27136e956c5Smrg     KERNEL-OS
2725f5b92ffSmrg
2735f5b92ffSmrg   See the file `config.sub' for the possible values of each field.  If
2745f5b92ffSmrg`config.sub' isn't included in this package, then this package doesn't
2755f5b92ffSmrgneed to know the machine type.
2765f5b92ffSmrg
2775f5b92ffSmrg   If you are _building_ compiler tools for cross-compiling, you should
2785f5b92ffSmrguse the option `--target=TYPE' to select the type of system they will
2795f5b92ffSmrgproduce code for.
2805f5b92ffSmrg
2815f5b92ffSmrg   If you want to _use_ a cross compiler, that generates code for a
2825f5b92ffSmrgplatform different from the build platform, you should specify the
2835f5b92ffSmrg"host" platform (i.e., that on which the generated programs will
2845f5b92ffSmrgeventually be run) with `--host=TYPE'.
2855f5b92ffSmrg
2865f5b92ffSmrgSharing Defaults
2875f5b92ffSmrg================
2885f5b92ffSmrg
2895f5b92ffSmrg   If you want to set default values for `configure' scripts to share,
2905f5b92ffSmrgyou can create a site shell script called `config.site' that gives
2915f5b92ffSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2925f5b92ffSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2935f5b92ffSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2945f5b92ffSmrg`CONFIG_SITE' environment variable to the location of the site script.
2955f5b92ffSmrgA warning: not all `configure' scripts look for a site script.
2965f5b92ffSmrg
2975f5b92ffSmrgDefining Variables
2985f5b92ffSmrg==================
2995f5b92ffSmrg
3005f5b92ffSmrg   Variables not defined in a site shell script can be set in the
3015f5b92ffSmrgenvironment passed to `configure'.  However, some packages may run
3025f5b92ffSmrgconfigure again during the build, and the customized values of these
3035f5b92ffSmrgvariables may be lost.  In order to avoid this problem, you should set
3045f5b92ffSmrgthem in the `configure' command line, using `VAR=value'.  For example:
3055f5b92ffSmrg
3065f5b92ffSmrg     ./configure CC=/usr/local2/bin/gcc
3075f5b92ffSmrg
3085f5b92ffSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
3095f5b92ffSmrgoverridden in the site shell script).
3105f5b92ffSmrg
3115f5b92ffSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
3125f5b92ffSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
3135f5b92ffSmrg
3145f5b92ffSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
3155f5b92ffSmrg
3165f5b92ffSmrg`configure' Invocation
3175f5b92ffSmrg======================
3185f5b92ffSmrg
3195f5b92ffSmrg   `configure' recognizes the following options to control how it
3205f5b92ffSmrgoperates.
3215f5b92ffSmrg
3225f5b92ffSmrg`--help'
3235f5b92ffSmrg`-h'
3245f5b92ffSmrg     Print a summary of all of the options to `configure', and exit.
3255f5b92ffSmrg
3265f5b92ffSmrg`--help=short'
3275f5b92ffSmrg`--help=recursive'
3285f5b92ffSmrg     Print a summary of the options unique to this package's
3295f5b92ffSmrg     `configure', and exit.  The `short' variant lists options used
3305f5b92ffSmrg     only in the top level, while the `recursive' variant lists options
3315f5b92ffSmrg     also present in any nested packages.
3325f5b92ffSmrg
3335f5b92ffSmrg`--version'
3345f5b92ffSmrg`-V'
3355f5b92ffSmrg     Print the version of Autoconf used to generate the `configure'
3365f5b92ffSmrg     script, and exit.
3375f5b92ffSmrg
3385f5b92ffSmrg`--cache-file=FILE'
3395f5b92ffSmrg     Enable the cache: use and save the results of the tests in FILE,
3405f5b92ffSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
3415f5b92ffSmrg     disable caching.
3425f5b92ffSmrg
3435f5b92ffSmrg`--config-cache'
3445f5b92ffSmrg`-C'
3455f5b92ffSmrg     Alias for `--cache-file=config.cache'.
3465f5b92ffSmrg
3475f5b92ffSmrg`--quiet'
3485f5b92ffSmrg`--silent'
3495f5b92ffSmrg`-q'
3505f5b92ffSmrg     Do not print messages saying which checks are being made.  To
3515f5b92ffSmrg     suppress all normal output, redirect it to `/dev/null' (any error
3525f5b92ffSmrg     messages will still be shown).
3535f5b92ffSmrg
3545f5b92ffSmrg`--srcdir=DIR'
3555f5b92ffSmrg     Look for the package's source code in directory DIR.  Usually
3565f5b92ffSmrg     `configure' can determine that directory automatically.
3575f5b92ffSmrg
3585f5b92ffSmrg`--prefix=DIR'
35936e956c5Smrg     Use DIR as the installation prefix.  *note Installation Names::
3605f5b92ffSmrg     for more details, including other options available for fine-tuning
3615f5b92ffSmrg     the installation locations.
3625f5b92ffSmrg
3635f5b92ffSmrg`--no-create'
3645f5b92ffSmrg`-n'
3655f5b92ffSmrg     Run the configure checks, but stop before creating any output
3665f5b92ffSmrg     files.
3675f5b92ffSmrg
3685f5b92ffSmrg`configure' also accepts some other, not widely useful, options.  Run
3695f5b92ffSmrg`configure --help' for more details.
3705f5b92ffSmrg
371