12d1d20fcSmrgInstallation Instructions
22d1d20fcSmrg*************************
32d1d20fcSmrg
480f56f3aSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
580f56f3aSmrgInc.
62d1d20fcSmrg
780f56f3aSmrg   Copying and distribution of this file, with or without modification,
880f56f3aSmrgare permitted in any medium without royalty provided the copyright
980f56f3aSmrgnotice and this notice are preserved.  This file is offered as-is,
1080f56f3aSmrgwithout warranty of any kind.
112d1d20fcSmrg
122d1d20fcSmrgBasic Installation
132d1d20fcSmrg==================
142d1d20fcSmrg
152d1d20fcSmrg   Briefly, the shell commands `./configure; make; make install' should
162d1d20fcSmrgconfigure, build, and install this package.  The following
172d1d20fcSmrgmore-detailed instructions are generic; see the `README' file for
1880f56f3aSmrginstructions specific to this package.  Some packages provide this
1980f56f3aSmrg`INSTALL' file but do not implement all of the features documented
2080f56f3aSmrgbelow.  The lack of an optional feature in a given package is not
2180f56f3aSmrgnecessarily a bug.  More recommendations for GNU packages can be found
2280f56f3aSmrgin *note Makefile Conventions: (standards)Makefile Conventions.
232d1d20fcSmrg
242d1d20fcSmrg   The `configure' shell script attempts to guess correct values for
252d1d20fcSmrgvarious system-dependent variables used during compilation.  It uses
262d1d20fcSmrgthose values to create a `Makefile' in each directory of the package.
272d1d20fcSmrgIt may also create one or more `.h' files containing system-dependent
282d1d20fcSmrgdefinitions.  Finally, it creates a shell script `config.status' that
292d1d20fcSmrgyou can run in the future to recreate the current configuration, and a
302d1d20fcSmrgfile `config.log' containing compiler output (useful mainly for
312d1d20fcSmrgdebugging `configure').
322d1d20fcSmrg
332d1d20fcSmrg   It can also use an optional file (typically called `config.cache'
342d1d20fcSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
352d1d20fcSmrgthe results of its tests to speed up reconfiguring.  Caching is
362d1d20fcSmrgdisabled by default to prevent problems with accidental use of stale
372d1d20fcSmrgcache files.
382d1d20fcSmrg
392d1d20fcSmrg   If you need to do unusual things to compile the package, please try
402d1d20fcSmrgto figure out how `configure' could check whether to do them, and mail
412d1d20fcSmrgdiffs or instructions to the address given in the `README' so they can
422d1d20fcSmrgbe considered for the next release.  If you are using the cache, and at
432d1d20fcSmrgsome point `config.cache' contains results you don't want to keep, you
442d1d20fcSmrgmay remove or edit it.
452d1d20fcSmrg
462d1d20fcSmrg   The file `configure.ac' (or `configure.in') is used to create
472d1d20fcSmrg`configure' by a program called `autoconf'.  You need `configure.ac' if
482d1d20fcSmrgyou want to change it or regenerate `configure' using a newer version
492d1d20fcSmrgof `autoconf'.
502d1d20fcSmrg
5180f56f3aSmrg   The simplest way to compile this package is:
522d1d20fcSmrg
532d1d20fcSmrg  1. `cd' to the directory containing the package's source code and type
542d1d20fcSmrg     `./configure' to configure the package for your system.
552d1d20fcSmrg
562d1d20fcSmrg     Running `configure' might take a while.  While running, it prints
572d1d20fcSmrg     some messages telling which features it is checking for.
582d1d20fcSmrg
592d1d20fcSmrg  2. Type `make' to compile the package.
602d1d20fcSmrg
612d1d20fcSmrg  3. Optionally, type `make check' to run any self-tests that come with
6280f56f3aSmrg     the package, generally using the just-built uninstalled binaries.
632d1d20fcSmrg
642d1d20fcSmrg  4. Type `make install' to install the programs and any data files and
6580f56f3aSmrg     documentation.  When installing into a prefix owned by root, it is
6680f56f3aSmrg     recommended that the package be configured and built as a regular
6780f56f3aSmrg     user, and only the `make install' phase executed with root
6880f56f3aSmrg     privileges.
6980f56f3aSmrg
7080f56f3aSmrg  5. Optionally, type `make installcheck' to repeat any self-tests, but
7180f56f3aSmrg     this time using the binaries in their final installed location.
7280f56f3aSmrg     This target does not install anything.  Running this target as a
7380f56f3aSmrg     regular user, particularly if the prior `make install' required
7480f56f3aSmrg     root privileges, verifies that the installation completed
7580f56f3aSmrg     correctly.
7680f56f3aSmrg
7780f56f3aSmrg  6. You can remove the program binaries and object files from the
782d1d20fcSmrg     source code directory by typing `make clean'.  To also remove the
792d1d20fcSmrg     files that `configure' created (so you can compile the package for
802d1d20fcSmrg     a different kind of computer), type `make distclean'.  There is
812d1d20fcSmrg     also a `make maintainer-clean' target, but that is intended mainly
822d1d20fcSmrg     for the package's developers.  If you use it, you may have to get
832d1d20fcSmrg     all sorts of other programs in order to regenerate files that came
842d1d20fcSmrg     with the distribution.
852d1d20fcSmrg
8680f56f3aSmrg  7. Often, you can also type `make uninstall' to remove the installed
8780f56f3aSmrg     files again.  In practice, not all packages have tested that
8880f56f3aSmrg     uninstallation works correctly, even though it is required by the
8980f56f3aSmrg     GNU Coding Standards.
9080f56f3aSmrg
9180f56f3aSmrg  8. Some packages, particularly those that use Automake, provide `make
9280f56f3aSmrg     distcheck', which can by used by developers to test that all other
9380f56f3aSmrg     targets like `make install' and `make uninstall' work correctly.
9480f56f3aSmrg     This target is generally not run by end users.
952d1d20fcSmrg
962d1d20fcSmrgCompilers and Options
972d1d20fcSmrg=====================
982d1d20fcSmrg
992d1d20fcSmrg   Some systems require unusual options for compilation or linking that
1002d1d20fcSmrgthe `configure' script does not know about.  Run `./configure --help'
1012d1d20fcSmrgfor details on some of the pertinent environment variables.
1022d1d20fcSmrg
1032d1d20fcSmrg   You can give `configure' initial values for configuration parameters
1042d1d20fcSmrgby setting variables in the command line or in the environment.  Here
1052d1d20fcSmrgis an example:
1062d1d20fcSmrg
1072d1d20fcSmrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
1082d1d20fcSmrg
1092d1d20fcSmrg   *Note Defining Variables::, for more details.
1102d1d20fcSmrg
1112d1d20fcSmrgCompiling For Multiple Architectures
1122d1d20fcSmrg====================================
1132d1d20fcSmrg
1142d1d20fcSmrg   You can compile the package for more than one kind of computer at the
1152d1d20fcSmrgsame time, by placing the object files for each architecture in their
1162d1d20fcSmrgown directory.  To do this, you can use GNU `make'.  `cd' to the
1172d1d20fcSmrgdirectory where you want the object files and executables to go and run
1182d1d20fcSmrgthe `configure' script.  `configure' automatically checks for the
11980f56f3aSmrgsource code in the directory that `configure' is in and in `..'.  This
12080f56f3aSmrgis known as a "VPATH" build.
1212d1d20fcSmrg
1222d1d20fcSmrg   With a non-GNU `make', it is safer to compile the package for one
1232d1d20fcSmrgarchitecture at a time in the source code directory.  After you have
1242d1d20fcSmrginstalled the package for one architecture, use `make distclean' before
1252d1d20fcSmrgreconfiguring for another architecture.
1262d1d20fcSmrg
1272d1d20fcSmrg   On MacOS X 10.5 and later systems, you can create libraries and
1282d1d20fcSmrgexecutables that work on multiple system types--known as "fat" or
1292d1d20fcSmrg"universal" binaries--by specifying multiple `-arch' options to the
1302d1d20fcSmrgcompiler but only a single `-arch' option to the preprocessor.  Like
1312d1d20fcSmrgthis:
1322d1d20fcSmrg
1332d1d20fcSmrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1342d1d20fcSmrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1352d1d20fcSmrg                 CPP="gcc -E" CXXCPP="g++ -E"
1362d1d20fcSmrg
1372d1d20fcSmrg   This is not guaranteed to produce working output in all cases, you
1382d1d20fcSmrgmay have to build one architecture at a time and combine the results
1392d1d20fcSmrgusing the `lipo' tool if you have problems.
1402d1d20fcSmrg
1412d1d20fcSmrgInstallation Names
1422d1d20fcSmrg==================
1432d1d20fcSmrg
1442d1d20fcSmrg   By default, `make install' installs the package's commands under
1452d1d20fcSmrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1462d1d20fcSmrgcan specify an installation prefix other than `/usr/local' by giving
14780f56f3aSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an
14880f56f3aSmrgabsolute file name.
1492d1d20fcSmrg
1502d1d20fcSmrg   You can specify separate installation prefixes for
1512d1d20fcSmrgarchitecture-specific files and architecture-independent files.  If you
1522d1d20fcSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1532d1d20fcSmrgPREFIX as the prefix for installing programs and libraries.
1542d1d20fcSmrgDocumentation and other data files still use the regular prefix.
1552d1d20fcSmrg
1562d1d20fcSmrg   In addition, if you use an unusual directory layout you can give
1572d1d20fcSmrgoptions like `--bindir=DIR' to specify different values for particular
1582d1d20fcSmrgkinds of files.  Run `configure --help' for a list of the directories
15980f56f3aSmrgyou can set and what kinds of files go in them.  In general, the
16080f56f3aSmrgdefault for these options is expressed in terms of `${prefix}', so that
16180f56f3aSmrgspecifying just `--prefix' will affect all of the other directory
16280f56f3aSmrgspecifications that were not explicitly provided.
16380f56f3aSmrg
16480f56f3aSmrg   The most portable way to affect installation locations is to pass the
16580f56f3aSmrgcorrect locations to `configure'; however, many packages provide one or
16680f56f3aSmrgboth of the following shortcuts of passing variable assignments to the
16780f56f3aSmrg`make install' command line to change installation locations without
16880f56f3aSmrghaving to reconfigure or recompile.
16980f56f3aSmrg
17080f56f3aSmrg   The first method involves providing an override variable for each
17180f56f3aSmrgaffected directory.  For example, `make install
17280f56f3aSmrgprefix=/alternate/directory' will choose an alternate location for all
17380f56f3aSmrgdirectory configuration variables that were expressed in terms of
17480f56f3aSmrg`${prefix}'.  Any directories that were specified during `configure',
17580f56f3aSmrgbut not in terms of `${prefix}', must each be overridden at install
17680f56f3aSmrgtime for the entire installation to be relocated.  The approach of
17780f56f3aSmrgmakefile variable overrides for each directory variable is required by
17880f56f3aSmrgthe GNU Coding Standards, and ideally causes no recompilation.
17980f56f3aSmrgHowever, some platforms have known limitations with the semantics of
18080f56f3aSmrgshared libraries that end up requiring recompilation when using this
18180f56f3aSmrgmethod, particularly noticeable in packages that use GNU Libtool.
18280f56f3aSmrg
18380f56f3aSmrg   The second method involves providing the `DESTDIR' variable.  For
18480f56f3aSmrgexample, `make install DESTDIR=/alternate/directory' will prepend
18580f56f3aSmrg`/alternate/directory' before all installation names.  The approach of
18680f56f3aSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and
18780f56f3aSmrgdoes not work on platforms that have drive letters.  On the other hand,
18880f56f3aSmrgit does better at avoiding recompilation issues, and works well even
18980f56f3aSmrgwhen some directory options were not specified in terms of `${prefix}'
19080f56f3aSmrgat `configure' time.
19180f56f3aSmrg
19280f56f3aSmrgOptional Features
19380f56f3aSmrg=================
1942d1d20fcSmrg
1952d1d20fcSmrg   If the package supports it, you can cause programs to be installed
1962d1d20fcSmrgwith an extra prefix or suffix on their names by giving `configure' the
1972d1d20fcSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1982d1d20fcSmrg
1992d1d20fcSmrg   Some packages pay attention to `--enable-FEATURE' options to
2002d1d20fcSmrg`configure', where FEATURE indicates an optional part of the package.
2012d1d20fcSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
2022d1d20fcSmrgis something like `gnu-as' or `x' (for the X Window System).  The
2032d1d20fcSmrg`README' should mention any `--enable-' and `--with-' options that the
2042d1d20fcSmrgpackage recognizes.
2052d1d20fcSmrg
2062d1d20fcSmrg   For packages that use the X Window System, `configure' can usually
2072d1d20fcSmrgfind the X include and library files automatically, but if it doesn't,
2082d1d20fcSmrgyou can use the `configure' options `--x-includes=DIR' and
2092d1d20fcSmrg`--x-libraries=DIR' to specify their locations.
2102d1d20fcSmrg
21180f56f3aSmrg   Some packages offer the ability to configure how verbose the
21280f56f3aSmrgexecution of `make' will be.  For these packages, running `./configure
21380f56f3aSmrg--enable-silent-rules' sets the default to minimal output, which can be
21480f56f3aSmrgoverridden with `make V=1'; while running `./configure
21580f56f3aSmrg--disable-silent-rules' sets the default to verbose, which can be
21680f56f3aSmrgoverridden with `make V=0'.
21780f56f3aSmrg
2182d1d20fcSmrgParticular systems
2192d1d20fcSmrg==================
2202d1d20fcSmrg
2212d1d20fcSmrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
2222d1d20fcSmrgCC is not installed, it is recommended to use the following options in
2232d1d20fcSmrgorder to use an ANSI C compiler:
2242d1d20fcSmrg
22580f56f3aSmrg     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
2262d1d20fcSmrg
2272d1d20fcSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
2282d1d20fcSmrg
22980f56f3aSmrg   HP-UX `make' updates targets which have the same time stamps as
23080f56f3aSmrgtheir prerequisites, which makes it generally unusable when shipped
23180f56f3aSmrggenerated files such as `configure' are involved.  Use GNU `make'
23280f56f3aSmrginstead.
23380f56f3aSmrg
2342d1d20fcSmrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
2352d1d20fcSmrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
2362d1d20fcSmrga workaround.  If GNU CC is not installed, it is therefore recommended
2372d1d20fcSmrgto try
2382d1d20fcSmrg
2392d1d20fcSmrg     ./configure CC="cc"
2402d1d20fcSmrg
2412d1d20fcSmrgand if that doesn't work, try
2422d1d20fcSmrg
2432d1d20fcSmrg     ./configure CC="cc -nodtk"
2442d1d20fcSmrg
24580f56f3aSmrg   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
24680f56f3aSmrgdirectory contains several dysfunctional programs; working variants of
24780f56f3aSmrgthese programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
24880f56f3aSmrgin your `PATH', put it _after_ `/usr/bin'.
24980f56f3aSmrg
25080f56f3aSmrg   On Haiku, software installed for all users goes in `/boot/common',
25180f56f3aSmrgnot `/usr/local'.  It is recommended to use the following options:
25280f56f3aSmrg
25380f56f3aSmrg     ./configure --prefix=/boot/common
25480f56f3aSmrg
2552d1d20fcSmrgSpecifying the System Type
2562d1d20fcSmrg==========================
2572d1d20fcSmrg
2582d1d20fcSmrg   There may be some features `configure' cannot figure out
2592d1d20fcSmrgautomatically, but needs to determine by the type of machine the package
2602d1d20fcSmrgwill run on.  Usually, assuming the package is built to be run on the
2612d1d20fcSmrg_same_ architectures, `configure' can figure that out, but if it prints
2622d1d20fcSmrga message saying it cannot guess the machine type, give it the
2632d1d20fcSmrg`--build=TYPE' option.  TYPE can either be a short name for the system
2642d1d20fcSmrgtype, such as `sun4', or a canonical name which has the form:
2652d1d20fcSmrg
2662d1d20fcSmrg     CPU-COMPANY-SYSTEM
2672d1d20fcSmrg
2682d1d20fcSmrgwhere SYSTEM can have one of these forms:
2692d1d20fcSmrg
27080f56f3aSmrg     OS
27180f56f3aSmrg     KERNEL-OS
2722d1d20fcSmrg
2732d1d20fcSmrg   See the file `config.sub' for the possible values of each field.  If
2742d1d20fcSmrg`config.sub' isn't included in this package, then this package doesn't
2752d1d20fcSmrgneed to know the machine type.
2762d1d20fcSmrg
2772d1d20fcSmrg   If you are _building_ compiler tools for cross-compiling, you should
2782d1d20fcSmrguse the option `--target=TYPE' to select the type of system they will
2792d1d20fcSmrgproduce code for.
2802d1d20fcSmrg
2812d1d20fcSmrg   If you want to _use_ a cross compiler, that generates code for a
2822d1d20fcSmrgplatform different from the build platform, you should specify the
2832d1d20fcSmrg"host" platform (i.e., that on which the generated programs will
2842d1d20fcSmrgeventually be run) with `--host=TYPE'.
2852d1d20fcSmrg
2862d1d20fcSmrgSharing Defaults
2872d1d20fcSmrg================
2882d1d20fcSmrg
2892d1d20fcSmrg   If you want to set default values for `configure' scripts to share,
2902d1d20fcSmrgyou can create a site shell script called `config.site' that gives
2912d1d20fcSmrgdefault values for variables like `CC', `cache_file', and `prefix'.
2922d1d20fcSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2932d1d20fcSmrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2942d1d20fcSmrg`CONFIG_SITE' environment variable to the location of the site script.
2952d1d20fcSmrgA warning: not all `configure' scripts look for a site script.
2962d1d20fcSmrg
2972d1d20fcSmrgDefining Variables
2982d1d20fcSmrg==================
2992d1d20fcSmrg
3002d1d20fcSmrg   Variables not defined in a site shell script can be set in the
3012d1d20fcSmrgenvironment passed to `configure'.  However, some packages may run
3022d1d20fcSmrgconfigure again during the build, and the customized values of these
3032d1d20fcSmrgvariables may be lost.  In order to avoid this problem, you should set
3042d1d20fcSmrgthem in the `configure' command line, using `VAR=value'.  For example:
3052d1d20fcSmrg
3062d1d20fcSmrg     ./configure CC=/usr/local2/bin/gcc
3072d1d20fcSmrg
3082d1d20fcSmrgcauses the specified `gcc' to be used as the C compiler (unless it is
3092d1d20fcSmrgoverridden in the site shell script).
3102d1d20fcSmrg
3112d1d20fcSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
3122d1d20fcSmrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
3132d1d20fcSmrg
3142d1d20fcSmrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
3152d1d20fcSmrg
3162d1d20fcSmrg`configure' Invocation
3172d1d20fcSmrg======================
3182d1d20fcSmrg
3192d1d20fcSmrg   `configure' recognizes the following options to control how it
3202d1d20fcSmrgoperates.
3212d1d20fcSmrg
3222d1d20fcSmrg`--help'
3232d1d20fcSmrg`-h'
3242d1d20fcSmrg     Print a summary of all of the options to `configure', and exit.
3252d1d20fcSmrg
3262d1d20fcSmrg`--help=short'
3272d1d20fcSmrg`--help=recursive'
3282d1d20fcSmrg     Print a summary of the options unique to this package's
3292d1d20fcSmrg     `configure', and exit.  The `short' variant lists options used
3302d1d20fcSmrg     only in the top level, while the `recursive' variant lists options
3312d1d20fcSmrg     also present in any nested packages.
3322d1d20fcSmrg
3332d1d20fcSmrg`--version'
3342d1d20fcSmrg`-V'
3352d1d20fcSmrg     Print the version of Autoconf used to generate the `configure'
3362d1d20fcSmrg     script, and exit.
3372d1d20fcSmrg
3382d1d20fcSmrg`--cache-file=FILE'
3392d1d20fcSmrg     Enable the cache: use and save the results of the tests in FILE,
3402d1d20fcSmrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
3412d1d20fcSmrg     disable caching.
3422d1d20fcSmrg
3432d1d20fcSmrg`--config-cache'
3442d1d20fcSmrg`-C'
3452d1d20fcSmrg     Alias for `--cache-file=config.cache'.
3462d1d20fcSmrg
3472d1d20fcSmrg`--quiet'
3482d1d20fcSmrg`--silent'
3492d1d20fcSmrg`-q'
3502d1d20fcSmrg     Do not print messages saying which checks are being made.  To
3512d1d20fcSmrg     suppress all normal output, redirect it to `/dev/null' (any error
3522d1d20fcSmrg     messages will still be shown).
3532d1d20fcSmrg
3542d1d20fcSmrg`--srcdir=DIR'
3552d1d20fcSmrg     Look for the package's source code in directory DIR.  Usually
3562d1d20fcSmrg     `configure' can determine that directory automatically.
3572d1d20fcSmrg
3582d1d20fcSmrg`--prefix=DIR'
35980f56f3aSmrg     Use DIR as the installation prefix.  *note Installation Names::
3602d1d20fcSmrg     for more details, including other options available for fine-tuning
3612d1d20fcSmrg     the installation locations.
3622d1d20fcSmrg
3632d1d20fcSmrg`--no-create'
3642d1d20fcSmrg`-n'
3652d1d20fcSmrg     Run the configure checks, but stop before creating any output
3662d1d20fcSmrg     files.
3672d1d20fcSmrg
3682d1d20fcSmrg`configure' also accepts some other, not widely useful, options.  Run
3692d1d20fcSmrg`configure --help' for more details.
3702d1d20fcSmrg
371