14cd6a3aeSmrgInstallation Instructions
24cd6a3aeSmrg*************************
34cd6a3aeSmrg
470728a38SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
570728a38SmrgInc.
64cd6a3aeSmrg
770728a38Smrg   Copying and distribution of this file, with or without modification,
870728a38Smrgare permitted in any medium without royalty provided the copyright
970728a38Smrgnotice and this notice are preserved.  This file is offered as-is,
1070728a38Smrgwithout warranty of any kind.
114cd6a3aeSmrg
124cd6a3aeSmrgBasic Installation
134cd6a3aeSmrg==================
144cd6a3aeSmrg
154cd6a3aeSmrg   Briefly, the shell commands `./configure; make; make install' should
164cd6a3aeSmrgconfigure, build, and install this package.  The following
174cd6a3aeSmrgmore-detailed instructions are generic; see the `README' file for
1870728a38Smrginstructions specific to this package.  Some packages provide this
1970728a38Smrg`INSTALL' file but do not implement all of the features documented
2070728a38Smrgbelow.  The lack of an optional feature in a given package is not
2170728a38Smrgnecessarily a bug.  More recommendations for GNU packages can be found
2270728a38Smrgin *note Makefile Conventions: (standards)Makefile Conventions.
234cd6a3aeSmrg
244cd6a3aeSmrg   The `configure' shell script attempts to guess correct values for
254cd6a3aeSmrgvarious system-dependent variables used during compilation.  It uses
264cd6a3aeSmrgthose values to create a `Makefile' in each directory of the package.
274cd6a3aeSmrgIt may also create one or more `.h' files containing system-dependent
284cd6a3aeSmrgdefinitions.  Finally, it creates a shell script `config.status' that
294cd6a3aeSmrgyou can run in the future to recreate the current configuration, and a
304cd6a3aeSmrgfile `config.log' containing compiler output (useful mainly for
314cd6a3aeSmrgdebugging `configure').
324cd6a3aeSmrg
334cd6a3aeSmrg   It can also use an optional file (typically called `config.cache'
344cd6a3aeSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
354cd6a3aeSmrgthe results of its tests to speed up reconfiguring.  Caching is
364cd6a3aeSmrgdisabled by default to prevent problems with accidental use of stale
374cd6a3aeSmrgcache files.
384cd6a3aeSmrg
394cd6a3aeSmrg   If you need to do unusual things to compile the package, please try
404cd6a3aeSmrgto figure out how `configure' could check whether to do them, and mail
414cd6a3aeSmrgdiffs or instructions to the address given in the `README' so they can
424cd6a3aeSmrgbe considered for the next release.  If you are using the cache, and at
434cd6a3aeSmrgsome point `config.cache' contains results you don't want to keep, you
444cd6a3aeSmrgmay remove or edit it.
454cd6a3aeSmrg
464cd6a3aeSmrg   The file `configure.ac' (or `configure.in') is used to create
474cd6a3aeSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
484cd6a3aeSmrgyou want to change it or regenerate `configure' using a newer version
494cd6a3aeSmrgof `autoconf'.
504cd6a3aeSmrg
5170728a38Smrg   The simplest way to compile this package is:
524cd6a3aeSmrg
534cd6a3aeSmrg  1. `cd' to the directory containing the package's source code and type
544cd6a3aeSmrg     `./configure' to configure the package for your system.
554cd6a3aeSmrg
564cd6a3aeSmrg     Running `configure' might take a while.  While running, it prints
574cd6a3aeSmrg     some messages telling which features it is checking for.
584cd6a3aeSmrg
594cd6a3aeSmrg  2. Type `make' to compile the package.
604cd6a3aeSmrg
614cd6a3aeSmrg  3. Optionally, type `make check' to run any self-tests that come with
6270728a38Smrg     the package, generally using the just-built uninstalled binaries.
634cd6a3aeSmrg
644cd6a3aeSmrg  4. Type `make install' to install the programs and any data files and
6570728a38Smrg     documentation.  When installing into a prefix owned by root, it is
6670728a38Smrg     recommended that the package be configured and built as a regular
6770728a38Smrg     user, and only the `make install' phase executed with root
6870728a38Smrg     privileges.
6970728a38Smrg
7070728a38Smrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7170728a38Smrg     this time using the binaries in their final installed location.
7270728a38Smrg     This target does not install anything.  Running this target as a
7370728a38Smrg     regular user, particularly if the prior `make install' required
7470728a38Smrg     root privileges, verifies that the installation completed
7570728a38Smrg     correctly.
7670728a38Smrg
7770728a38Smrg  6. You can remove the program binaries and object files from the
784cd6a3aeSmrg     source code directory by typing `make clean'.  To also remove the
794cd6a3aeSmrg     files that `configure' created (so you can compile the package for
804cd6a3aeSmrg     a different kind of computer), type `make distclean'.  There is
814cd6a3aeSmrg     also a `make maintainer-clean' target, but that is intended mainly
824cd6a3aeSmrg     for the package's developers.  If you use it, you may have to get
834cd6a3aeSmrg     all sorts of other programs in order to regenerate files that came
844cd6a3aeSmrg     with the distribution.
854cd6a3aeSmrg
8670728a38Smrg  7. Often, you can also type `make uninstall' to remove the installed
8770728a38Smrg     files again.  In practice, not all packages have tested that
8870728a38Smrg     uninstallation works correctly, even though it is required by the
8970728a38Smrg     GNU Coding Standards.
9070728a38Smrg
9170728a38Smrg  8. Some packages, particularly those that use Automake, provide `make
9270728a38Smrg     distcheck', which can by used by developers to test that all other
9370728a38Smrg     targets like `make install' and `make uninstall' work correctly.
9470728a38Smrg     This target is generally not run by end users.
954cd6a3aeSmrg
964cd6a3aeSmrgCompilers and Options
974cd6a3aeSmrg=====================
984cd6a3aeSmrg
994cd6a3aeSmrg   Some systems require unusual options for compilation or linking that
1004cd6a3aeSmrgthe `configure' script does not know about.  Run `./configure --help'
1014cd6a3aeSmrgfor details on some of the pertinent environment variables.
1024cd6a3aeSmrg
1034cd6a3aeSmrg   You can give `configure' initial values for configuration parameters
1044cd6a3aeSmrgby setting variables in the command line or in the environment.  Here
1054cd6a3aeSmrgis an example:
1064cd6a3aeSmrg
1074cd6a3aeSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
1084cd6a3aeSmrg
1094cd6a3aeSmrg   *Note Defining Variables::, for more details.
1104cd6a3aeSmrg
1114cd6a3aeSmrgCompiling For Multiple Architectures
1124cd6a3aeSmrg====================================
1134cd6a3aeSmrg
1144cd6a3aeSmrg   You can compile the package for more than one kind of computer at the
1154cd6a3aeSmrgsame time, by placing the object files for each architecture in their
1164cd6a3aeSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
1174cd6a3aeSmrgdirectory where you want the object files and executables to go and run
1184cd6a3aeSmrgthe `configure' script.  `configure' automatically checks for the
11970728a38Smrgsource code in the directory that `configure' is in and in `..'.  This
12070728a38Smrgis known as a "VPATH" build.
1214cd6a3aeSmrg
1224cd6a3aeSmrg   With a non-GNU `make', it is safer to compile the package for one
1234cd6a3aeSmrgarchitecture at a time in the source code directory.  After you have
1244cd6a3aeSmrginstalled the package for one architecture, use `make distclean' before
1254cd6a3aeSmrgreconfiguring for another architecture.
1264cd6a3aeSmrg
1274cd6a3aeSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1284cd6a3aeSmrgexecutables that work on multiple system types--known as "fat" or
1294cd6a3aeSmrg"universal" binaries--by specifying multiple `-arch' options to the
1304cd6a3aeSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1314cd6a3aeSmrgthis:
1324cd6a3aeSmrg
1334cd6a3aeSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1344cd6a3aeSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1354cd6a3aeSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1364cd6a3aeSmrg
1374cd6a3aeSmrg   This is not guaranteed to produce working output in all cases, you
1384cd6a3aeSmrgmay have to build one architecture at a time and combine the results
1394cd6a3aeSmrgusing the `lipo' tool if you have problems.
1404cd6a3aeSmrg
1414cd6a3aeSmrgInstallation Names
1424cd6a3aeSmrg==================
1434cd6a3aeSmrg
1444cd6a3aeSmrg   By default, `make install' installs the package's commands under
1454cd6a3aeSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1464cd6a3aeSmrgcan specify an installation prefix other than `/usr/local' by giving
14770728a38Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14870728a38Smrgabsolute file name.
1494cd6a3aeSmrg
1504cd6a3aeSmrg   You can specify separate installation prefixes for
1514cd6a3aeSmrgarchitecture-specific files and architecture-independent files.  If you
1524cd6a3aeSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1534cd6a3aeSmrgPREFIX as the prefix for installing programs and libraries.
1544cd6a3aeSmrgDocumentation and other data files still use the regular prefix.
1554cd6a3aeSmrg
1564cd6a3aeSmrg   In addition, if you use an unusual directory layout you can give
1574cd6a3aeSmrgoptions like `--bindir=DIR' to specify different values for particular
1584cd6a3aeSmrgkinds of files.  Run `configure --help' for a list of the directories
15970728a38Smrgyou can set and what kinds of files go in them.  In general, the
16070728a38Smrgdefault for these options is expressed in terms of `${prefix}', so that
16170728a38Smrgspecifying just `--prefix' will affect all of the other directory
16270728a38Smrgspecifications that were not explicitly provided.
16370728a38Smrg
16470728a38Smrg   The most portable way to affect installation locations is to pass the
16570728a38Smrgcorrect locations to `configure'; however, many packages provide one or
16670728a38Smrgboth of the following shortcuts of passing variable assignments to the
16770728a38Smrg`make install' command line to change installation locations without
16870728a38Smrghaving to reconfigure or recompile.
16970728a38Smrg
17070728a38Smrg   The first method involves providing an override variable for each
17170728a38Smrgaffected directory.  For example, `make install
17270728a38Smrgprefix=/alternate/directory' will choose an alternate location for all
17370728a38Smrgdirectory configuration variables that were expressed in terms of
17470728a38Smrg`${prefix}'.  Any directories that were specified during `configure',
17570728a38Smrgbut not in terms of `${prefix}', must each be overridden at install
17670728a38Smrgtime for the entire installation to be relocated.  The approach of
17770728a38Smrgmakefile variable overrides for each directory variable is required by
17870728a38Smrgthe GNU Coding Standards, and ideally causes no recompilation.
17970728a38SmrgHowever, some platforms have known limitations with the semantics of
18070728a38Smrgshared libraries that end up requiring recompilation when using this
18170728a38Smrgmethod, particularly noticeable in packages that use GNU Libtool.
18270728a38Smrg
18370728a38Smrg   The second method involves providing the `DESTDIR' variable.  For
18470728a38Smrgexample, `make install DESTDIR=/alternate/directory' will prepend
18570728a38Smrg`/alternate/directory' before all installation names.  The approach of
18670728a38Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18770728a38Smrgdoes not work on platforms that have drive letters.  On the other hand,
18870728a38Smrgit does better at avoiding recompilation issues, and works well even
18970728a38Smrgwhen some directory options were not specified in terms of `${prefix}'
19070728a38Smrgat `configure' time.
19170728a38Smrg
19270728a38SmrgOptional Features
19370728a38Smrg=================
1944cd6a3aeSmrg
1954cd6a3aeSmrg   If the package supports it, you can cause programs to be installed
1964cd6a3aeSmrgwith an extra prefix or suffix on their names by giving `configure' the
1974cd6a3aeSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1984cd6a3aeSmrg
1994cd6a3aeSmrg   Some packages pay attention to `--enable-FEATURE' options to
2004cd6a3aeSmrg`configure', where FEATURE indicates an optional part of the package.
2014cd6a3aeSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
2024cd6a3aeSmrgis something like `gnu-as' or `x' (for the X Window System).  The
2034cd6a3aeSmrg`README' should mention any `--enable-' and `--with-' options that the
2044cd6a3aeSmrgpackage recognizes.
2054cd6a3aeSmrg
2064cd6a3aeSmrg   For packages that use the X Window System, `configure' can usually
2074cd6a3aeSmrgfind the X include and library files automatically, but if it doesn't,
2084cd6a3aeSmrgyou can use the `configure' options `--x-includes=DIR' and
2094cd6a3aeSmrg`--x-libraries=DIR' to specify their locations.
2104cd6a3aeSmrg
21170728a38Smrg   Some packages offer the ability to configure how verbose the
21270728a38Smrgexecution of `make' will be.  For these packages, running `./configure
21370728a38Smrg--enable-silent-rules' sets the default to minimal output, which can be
21470728a38Smrgoverridden with `make V=1'; while running `./configure
21570728a38Smrg--disable-silent-rules' sets the default to verbose, which can be
21670728a38Smrgoverridden with `make V=0'.
21770728a38Smrg
2184cd6a3aeSmrgParticular systems
2194cd6a3aeSmrg==================
2204cd6a3aeSmrg
2214cd6a3aeSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
2224cd6a3aeSmrgCC is not installed, it is recommended to use the following options in
2234cd6a3aeSmrgorder to use an ANSI C compiler:
2244cd6a3aeSmrg
22570728a38Smrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
2264cd6a3aeSmrg
2274cd6a3aeSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
2284cd6a3aeSmrg
22970728a38Smrg   HP-UX `make' updates targets which have the same time stamps as
23070728a38Smrgtheir prerequisites, which makes it generally unusable when shipped
23170728a38Smrggenerated files such as `configure' are involved.  Use GNU `make'
23270728a38Smrginstead.
23370728a38Smrg
2344cd6a3aeSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
2354cd6a3aeSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
2364cd6a3aeSmrga workaround.  If GNU CC is not installed, it is therefore recommended
2374cd6a3aeSmrgto try
2384cd6a3aeSmrg
2394cd6a3aeSmrg     ./configure CC="cc"
2404cd6a3aeSmrg
2414cd6a3aeSmrgand if that doesn't work, try
2424cd6a3aeSmrg
2434cd6a3aeSmrg     ./configure CC="cc -nodtk"
2444cd6a3aeSmrg
24570728a38Smrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24670728a38Smrgdirectory contains several dysfunctional programs; working variants of
24770728a38Smrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24870728a38Smrgin your `PATH', put it _after_ `/usr/bin'.
24970728a38Smrg
25070728a38Smrg   On Haiku, software installed for all users goes in `/boot/common',
25170728a38Smrgnot `/usr/local'.  It is recommended to use the following options:
25270728a38Smrg
25370728a38Smrg     ./configure --prefix=/boot/common
25470728a38Smrg
2554cd6a3aeSmrgSpecifying the System Type
2564cd6a3aeSmrg==========================
2574cd6a3aeSmrg
2584cd6a3aeSmrg   There may be some features `configure' cannot figure out
2594cd6a3aeSmrgautomatically, but needs to determine by the type of machine the package
2604cd6a3aeSmrgwill run on.  Usually, assuming the package is built to be run on the
2614cd6a3aeSmrg_same_ architectures, `configure' can figure that out, but if it prints
2624cd6a3aeSmrga message saying it cannot guess the machine type, give it the
2634cd6a3aeSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
2644cd6a3aeSmrgtype, such as `sun4', or a canonical name which has the form:
2654cd6a3aeSmrg
2664cd6a3aeSmrg     CPU-COMPANY-SYSTEM
2674cd6a3aeSmrg
2684cd6a3aeSmrgwhere SYSTEM can have one of these forms:
2694cd6a3aeSmrg
27070728a38Smrg     OS
27170728a38Smrg     KERNEL-OS
2724cd6a3aeSmrg
2734cd6a3aeSmrg   See the file `config.sub' for the possible values of each field.  If
2744cd6a3aeSmrg`config.sub' isn't included in this package, then this package doesn't
2754cd6a3aeSmrgneed to know the machine type.
2764cd6a3aeSmrg
2774cd6a3aeSmrg   If you are _building_ compiler tools for cross-compiling, you should
2784cd6a3aeSmrguse the option `--target=TYPE' to select the type of system they will
2794cd6a3aeSmrgproduce code for.
2804cd6a3aeSmrg
2814cd6a3aeSmrg   If you want to _use_ a cross compiler, that generates code for a
2824cd6a3aeSmrgplatform different from the build platform, you should specify the
2834cd6a3aeSmrg"host" platform (i.e., that on which the generated programs will
2844cd6a3aeSmrgeventually be run) with `--host=TYPE'.
2854cd6a3aeSmrg
2864cd6a3aeSmrgSharing Defaults
2874cd6a3aeSmrg================
2884cd6a3aeSmrg
2894cd6a3aeSmrg   If you want to set default values for `configure' scripts to share,
2904cd6a3aeSmrgyou can create a site shell script called `config.site' that gives
2914cd6a3aeSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2924cd6a3aeSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2934cd6a3aeSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2944cd6a3aeSmrg`CONFIG_SITE' environment variable to the location of the site script.
2954cd6a3aeSmrgA warning: not all `configure' scripts look for a site script.
2964cd6a3aeSmrg
2974cd6a3aeSmrgDefining Variables
2984cd6a3aeSmrg==================
2994cd6a3aeSmrg
3004cd6a3aeSmrg   Variables not defined in a site shell script can be set in the
3014cd6a3aeSmrgenvironment passed to `configure'.  However, some packages may run
3024cd6a3aeSmrgconfigure again during the build, and the customized values of these
3034cd6a3aeSmrgvariables may be lost.  In order to avoid this problem, you should set
3044cd6a3aeSmrgthem in the `configure' command line, using `VAR=value'.  For example:
3054cd6a3aeSmrg
3064cd6a3aeSmrg     ./configure CC=/usr/local2/bin/gcc
3074cd6a3aeSmrg
3084cd6a3aeSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
3094cd6a3aeSmrgoverridden in the site shell script).
3104cd6a3aeSmrg
3114cd6a3aeSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
3124cd6a3aeSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
3134cd6a3aeSmrg
3144cd6a3aeSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
3154cd6a3aeSmrg
3164cd6a3aeSmrg`configure' Invocation
3174cd6a3aeSmrg======================
3184cd6a3aeSmrg
3194cd6a3aeSmrg   `configure' recognizes the following options to control how it
3204cd6a3aeSmrgoperates.
3214cd6a3aeSmrg
3224cd6a3aeSmrg`--help'
3234cd6a3aeSmrg`-h'
3244cd6a3aeSmrg     Print a summary of all of the options to `configure', and exit.
3254cd6a3aeSmrg
3264cd6a3aeSmrg`--help=short'
3274cd6a3aeSmrg`--help=recursive'
3284cd6a3aeSmrg     Print a summary of the options unique to this package's
3294cd6a3aeSmrg     `configure', and exit.  The `short' variant lists options used
3304cd6a3aeSmrg     only in the top level, while the `recursive' variant lists options
3314cd6a3aeSmrg     also present in any nested packages.
3324cd6a3aeSmrg
3334cd6a3aeSmrg`--version'
3344cd6a3aeSmrg`-V'
3354cd6a3aeSmrg     Print the version of Autoconf used to generate the `configure'
3364cd6a3aeSmrg     script, and exit.
3374cd6a3aeSmrg
3384cd6a3aeSmrg`--cache-file=FILE'
3394cd6a3aeSmrg     Enable the cache: use and save the results of the tests in FILE,
3404cd6a3aeSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
3414cd6a3aeSmrg     disable caching.
3424cd6a3aeSmrg
3434cd6a3aeSmrg`--config-cache'
3444cd6a3aeSmrg`-C'
3454cd6a3aeSmrg     Alias for `--cache-file=config.cache'.
3464cd6a3aeSmrg
3474cd6a3aeSmrg`--quiet'
3484cd6a3aeSmrg`--silent'
3494cd6a3aeSmrg`-q'
3504cd6a3aeSmrg     Do not print messages saying which checks are being made.  To
3514cd6a3aeSmrg     suppress all normal output, redirect it to `/dev/null' (any error
3524cd6a3aeSmrg     messages will still be shown).
3534cd6a3aeSmrg
3544cd6a3aeSmrg`--srcdir=DIR'
3554cd6a3aeSmrg     Look for the package's source code in directory DIR.  Usually
3564cd6a3aeSmrg     `configure' can determine that directory automatically.
3574cd6a3aeSmrg
3584cd6a3aeSmrg`--prefix=DIR'
35970728a38Smrg     Use DIR as the installation prefix.  *note Installation Names::
3604cd6a3aeSmrg     for more details, including other options available for fine-tuning
3614cd6a3aeSmrg     the installation locations.
3624cd6a3aeSmrg
3634cd6a3aeSmrg`--no-create'
3644cd6a3aeSmrg`-n'
3654cd6a3aeSmrg     Run the configure checks, but stop before creating any output
3664cd6a3aeSmrg     files.
3674cd6a3aeSmrg
3684cd6a3aeSmrg`configure' also accepts some other, not widely useful, options.  Run
3694cd6a3aeSmrg`configure --help' for more details.
3704cd6a3aeSmrg
371