INSTALL revision 6f5dd5c2
16f5dd5c2SmrgInstallation Instructions
26f5dd5c2Smrg*************************
36f5dd5c2Smrg
46f5dd5c2SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
56f5dd5c2Smrg2006, 2007, 2008 Free Software Foundation, Inc.
66f5dd5c2Smrg
76f5dd5c2Smrg   This file is free documentation; the Free Software Foundation gives
86f5dd5c2Smrgunlimited permission to copy, distribute and modify it.
96f5dd5c2Smrg
106f5dd5c2SmrgBasic Installation
116f5dd5c2Smrg==================
126f5dd5c2Smrg
136f5dd5c2Smrg   Briefly, the shell commands `./configure; make; make install' should
146f5dd5c2Smrgconfigure, build, and install this package.  The following
156f5dd5c2Smrgmore-detailed instructions are generic; see the `README' file for
166f5dd5c2Smrginstructions specific to this package.
176f5dd5c2Smrg
186f5dd5c2Smrg   The `configure' shell script attempts to guess correct values for
196f5dd5c2Smrgvarious system-dependent variables used during compilation.  It uses
206f5dd5c2Smrgthose values to create a `Makefile' in each directory of the package.
216f5dd5c2SmrgIt may also create one or more `.h' files containing system-dependent
226f5dd5c2Smrgdefinitions.  Finally, it creates a shell script `config.status' that
236f5dd5c2Smrgyou can run in the future to recreate the current configuration, and a
246f5dd5c2Smrgfile `config.log' containing compiler output (useful mainly for
256f5dd5c2Smrgdebugging `configure').
266f5dd5c2Smrg
276f5dd5c2Smrg   It can also use an optional file (typically called `config.cache'
286f5dd5c2Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
296f5dd5c2Smrgthe results of its tests to speed up reconfiguring.  Caching is
306f5dd5c2Smrgdisabled by default to prevent problems with accidental use of stale
316f5dd5c2Smrgcache files.
326f5dd5c2Smrg
336f5dd5c2Smrg   If you need to do unusual things to compile the package, please try
346f5dd5c2Smrgto figure out how `configure' could check whether to do them, and mail
356f5dd5c2Smrgdiffs or instructions to the address given in the `README' so they can
366f5dd5c2Smrgbe considered for the next release.  If you are using the cache, and at
376f5dd5c2Smrgsome point `config.cache' contains results you don't want to keep, you
386f5dd5c2Smrgmay remove or edit it.
396f5dd5c2Smrg
406f5dd5c2Smrg   The file `configure.ac' (or `configure.in') is used to create
416f5dd5c2Smrg`configure' by a program called `autoconf'.  You need `configure.ac' if
426f5dd5c2Smrgyou want to change it or regenerate `configure' using a newer version
436f5dd5c2Smrgof `autoconf'.
446f5dd5c2Smrg
456f5dd5c2SmrgThe simplest way to compile this package is:
466f5dd5c2Smrg
476f5dd5c2Smrg  1. `cd' to the directory containing the package's source code and type
486f5dd5c2Smrg     `./configure' to configure the package for your system.
496f5dd5c2Smrg
506f5dd5c2Smrg     Running `configure' might take a while.  While running, it prints
516f5dd5c2Smrg     some messages telling which features it is checking for.
526f5dd5c2Smrg
536f5dd5c2Smrg  2. Type `make' to compile the package.
546f5dd5c2Smrg
556f5dd5c2Smrg  3. Optionally, type `make check' to run any self-tests that come with
566f5dd5c2Smrg     the package.
576f5dd5c2Smrg
586f5dd5c2Smrg  4. Type `make install' to install the programs and any data files and
596f5dd5c2Smrg     documentation.
606f5dd5c2Smrg
616f5dd5c2Smrg  5. You can remove the program binaries and object files from the
626f5dd5c2Smrg     source code directory by typing `make clean'.  To also remove the
636f5dd5c2Smrg     files that `configure' created (so you can compile the package for
646f5dd5c2Smrg     a different kind of computer), type `make distclean'.  There is
656f5dd5c2Smrg     also a `make maintainer-clean' target, but that is intended mainly
666f5dd5c2Smrg     for the package's developers.  If you use it, you may have to get
676f5dd5c2Smrg     all sorts of other programs in order to regenerate files that came
686f5dd5c2Smrg     with the distribution.
696f5dd5c2Smrg
706f5dd5c2Smrg  6. Often, you can also type `make uninstall' to remove the installed
716f5dd5c2Smrg     files again.
726f5dd5c2Smrg
736f5dd5c2SmrgCompilers and Options
746f5dd5c2Smrg=====================
756f5dd5c2Smrg
766f5dd5c2Smrg   Some systems require unusual options for compilation or linking that
776f5dd5c2Smrgthe `configure' script does not know about.  Run `./configure --help'
786f5dd5c2Smrgfor details on some of the pertinent environment variables.
796f5dd5c2Smrg
806f5dd5c2Smrg   You can give `configure' initial values for configuration parameters
816f5dd5c2Smrgby setting variables in the command line or in the environment.  Here
826f5dd5c2Smrgis an example:
836f5dd5c2Smrg
846f5dd5c2Smrg     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
856f5dd5c2Smrg
866f5dd5c2Smrg   *Note Defining Variables::, for more details.
876f5dd5c2Smrg
886f5dd5c2SmrgCompiling For Multiple Architectures
896f5dd5c2Smrg====================================
906f5dd5c2Smrg
916f5dd5c2Smrg   You can compile the package for more than one kind of computer at the
926f5dd5c2Smrgsame time, by placing the object files for each architecture in their
936f5dd5c2Smrgown directory.  To do this, you can use GNU `make'.  `cd' to the
946f5dd5c2Smrgdirectory where you want the object files and executables to go and run
956f5dd5c2Smrgthe `configure' script.  `configure' automatically checks for the
966f5dd5c2Smrgsource code in the directory that `configure' is in and in `..'.
976f5dd5c2Smrg
986f5dd5c2Smrg   With a non-GNU `make', it is safer to compile the package for one
996f5dd5c2Smrgarchitecture at a time in the source code directory.  After you have
1006f5dd5c2Smrginstalled the package for one architecture, use `make distclean' before
1016f5dd5c2Smrgreconfiguring for another architecture.
1026f5dd5c2Smrg
1036f5dd5c2Smrg   On MacOS X 10.5 and later systems, you can create libraries and
1046f5dd5c2Smrgexecutables that work on multiple system types--known as "fat" or
1056f5dd5c2Smrg"universal" binaries--by specifying multiple `-arch' options to the
1066f5dd5c2Smrgcompiler but only a single `-arch' option to the preprocessor.  Like
1076f5dd5c2Smrgthis:
1086f5dd5c2Smrg
1096f5dd5c2Smrg     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1106f5dd5c2Smrg                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
1116f5dd5c2Smrg                 CPP="gcc -E" CXXCPP="g++ -E"
1126f5dd5c2Smrg
1136f5dd5c2Smrg   This is not guaranteed to produce working output in all cases, you
1146f5dd5c2Smrgmay have to build one architecture at a time and combine the results
1156f5dd5c2Smrgusing the `lipo' tool if you have problems.
1166f5dd5c2Smrg
1176f5dd5c2SmrgInstallation Names
1186f5dd5c2Smrg==================
1196f5dd5c2Smrg
1206f5dd5c2Smrg   By default, `make install' installs the package's commands under
1216f5dd5c2Smrg`/usr/local/bin', include files under `/usr/local/include', etc.  You
1226f5dd5c2Smrgcan specify an installation prefix other than `/usr/local' by giving
1236f5dd5c2Smrg`configure' the option `--prefix=PREFIX'.
1246f5dd5c2Smrg
1256f5dd5c2Smrg   You can specify separate installation prefixes for
1266f5dd5c2Smrgarchitecture-specific files and architecture-independent files.  If you
1276f5dd5c2Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses
1286f5dd5c2SmrgPREFIX as the prefix for installing programs and libraries.
1296f5dd5c2SmrgDocumentation and other data files still use the regular prefix.
1306f5dd5c2Smrg
1316f5dd5c2Smrg   In addition, if you use an unusual directory layout you can give
1326f5dd5c2Smrgoptions like `--bindir=DIR' to specify different values for particular
1336f5dd5c2Smrgkinds of files.  Run `configure --help' for a list of the directories
1346f5dd5c2Smrgyou can set and what kinds of files go in them.
1356f5dd5c2Smrg
1366f5dd5c2Smrg   If the package supports it, you can cause programs to be installed
1376f5dd5c2Smrgwith an extra prefix or suffix on their names by giving `configure' the
1386f5dd5c2Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
1396f5dd5c2Smrg
1406f5dd5c2SmrgOptional Features
1416f5dd5c2Smrg=================
1426f5dd5c2Smrg
1436f5dd5c2Smrg   Some packages pay attention to `--enable-FEATURE' options to
1446f5dd5c2Smrg`configure', where FEATURE indicates an optional part of the package.
1456f5dd5c2SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
1466f5dd5c2Smrgis something like `gnu-as' or `x' (for the X Window System).  The
1476f5dd5c2Smrg`README' should mention any `--enable-' and `--with-' options that the
1486f5dd5c2Smrgpackage recognizes.
1496f5dd5c2Smrg
1506f5dd5c2Smrg   For packages that use the X Window System, `configure' can usually
1516f5dd5c2Smrgfind the X include and library files automatically, but if it doesn't,
1526f5dd5c2Smrgyou can use the `configure' options `--x-includes=DIR' and
1536f5dd5c2Smrg`--x-libraries=DIR' to specify their locations.
1546f5dd5c2Smrg
1556f5dd5c2SmrgParticular systems
1566f5dd5c2Smrg==================
1576f5dd5c2Smrg
1586f5dd5c2Smrg   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
1596f5dd5c2SmrgCC is not installed, it is recommended to use the following options in
1606f5dd5c2Smrgorder to use an ANSI C compiler:
1616f5dd5c2Smrg
1626f5dd5c2Smrg     ./configure CC="cc -Ae"
1636f5dd5c2Smrg
1646f5dd5c2Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX.
1656f5dd5c2Smrg
1666f5dd5c2Smrg   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
1676f5dd5c2Smrgparse its `<wchar.h>' header file.  The option `-nodtk' can be used as
1686f5dd5c2Smrga workaround.  If GNU CC is not installed, it is therefore recommended
1696f5dd5c2Smrgto try
1706f5dd5c2Smrg
1716f5dd5c2Smrg     ./configure CC="cc"
1726f5dd5c2Smrg
1736f5dd5c2Smrgand if that doesn't work, try
1746f5dd5c2Smrg
1756f5dd5c2Smrg     ./configure CC="cc -nodtk"
1766f5dd5c2Smrg
1776f5dd5c2SmrgSpecifying the System Type
1786f5dd5c2Smrg==========================
1796f5dd5c2Smrg
1806f5dd5c2Smrg   There may be some features `configure' cannot figure out
1816f5dd5c2Smrgautomatically, but needs to determine by the type of machine the package
1826f5dd5c2Smrgwill run on.  Usually, assuming the package is built to be run on the
1836f5dd5c2Smrg_same_ architectures, `configure' can figure that out, but if it prints
1846f5dd5c2Smrga message saying it cannot guess the machine type, give it the
1856f5dd5c2Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
1866f5dd5c2Smrgtype, such as `sun4', or a canonical name which has the form:
1876f5dd5c2Smrg
1886f5dd5c2Smrg     CPU-COMPANY-SYSTEM
1896f5dd5c2Smrg
1906f5dd5c2Smrgwhere SYSTEM can have one of these forms:
1916f5dd5c2Smrg
1926f5dd5c2Smrg     OS KERNEL-OS
1936f5dd5c2Smrg
1946f5dd5c2Smrg   See the file `config.sub' for the possible values of each field.  If
1956f5dd5c2Smrg`config.sub' isn't included in this package, then this package doesn't
1966f5dd5c2Smrgneed to know the machine type.
1976f5dd5c2Smrg
1986f5dd5c2Smrg   If you are _building_ compiler tools for cross-compiling, you should
1996f5dd5c2Smrguse the option `--target=TYPE' to select the type of system they will
2006f5dd5c2Smrgproduce code for.
2016f5dd5c2Smrg
2026f5dd5c2Smrg   If you want to _use_ a cross compiler, that generates code for a
2036f5dd5c2Smrgplatform different from the build platform, you should specify the
2046f5dd5c2Smrg"host" platform (i.e., that on which the generated programs will
2056f5dd5c2Smrgeventually be run) with `--host=TYPE'.
2066f5dd5c2Smrg
2076f5dd5c2SmrgSharing Defaults
2086f5dd5c2Smrg================
2096f5dd5c2Smrg
2106f5dd5c2Smrg   If you want to set default values for `configure' scripts to share,
2116f5dd5c2Smrgyou can create a site shell script called `config.site' that gives
2126f5dd5c2Smrgdefault values for variables like `CC', `cache_file', and `prefix'.
2136f5dd5c2Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
2146f5dd5c2Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
2156f5dd5c2Smrg`CONFIG_SITE' environment variable to the location of the site script.
2166f5dd5c2SmrgA warning: not all `configure' scripts look for a site script.
2176f5dd5c2Smrg
2186f5dd5c2SmrgDefining Variables
2196f5dd5c2Smrg==================
2206f5dd5c2Smrg
2216f5dd5c2Smrg   Variables not defined in a site shell script can be set in the
2226f5dd5c2Smrgenvironment passed to `configure'.  However, some packages may run
2236f5dd5c2Smrgconfigure again during the build, and the customized values of these
2246f5dd5c2Smrgvariables may be lost.  In order to avoid this problem, you should set
2256f5dd5c2Smrgthem in the `configure' command line, using `VAR=value'.  For example:
2266f5dd5c2Smrg
2276f5dd5c2Smrg     ./configure CC=/usr/local2/bin/gcc
2286f5dd5c2Smrg
2296f5dd5c2Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
2306f5dd5c2Smrgoverridden in the site shell script).
2316f5dd5c2Smrg
2326f5dd5c2SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to
2336f5dd5c2Smrgan Autoconf bug.  Until the bug is fixed you can use this workaround:
2346f5dd5c2Smrg
2356f5dd5c2Smrg     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
2366f5dd5c2Smrg
2376f5dd5c2Smrg`configure' Invocation
2386f5dd5c2Smrg======================
2396f5dd5c2Smrg
2406f5dd5c2Smrg   `configure' recognizes the following options to control how it
2416f5dd5c2Smrgoperates.
2426f5dd5c2Smrg
2436f5dd5c2Smrg`--help'
2446f5dd5c2Smrg`-h'
2456f5dd5c2Smrg     Print a summary of all of the options to `configure', and exit.
2466f5dd5c2Smrg
2476f5dd5c2Smrg`--help=short'
2486f5dd5c2Smrg`--help=recursive'
2496f5dd5c2Smrg     Print a summary of the options unique to this package's
2506f5dd5c2Smrg     `configure', and exit.  The `short' variant lists options used
2516f5dd5c2Smrg     only in the top level, while the `recursive' variant lists options
2526f5dd5c2Smrg     also present in any nested packages.
2536f5dd5c2Smrg
2546f5dd5c2Smrg`--version'
2556f5dd5c2Smrg`-V'
2566f5dd5c2Smrg     Print the version of Autoconf used to generate the `configure'
2576f5dd5c2Smrg     script, and exit.
2586f5dd5c2Smrg
2596f5dd5c2Smrg`--cache-file=FILE'
2606f5dd5c2Smrg     Enable the cache: use and save the results of the tests in FILE,
2616f5dd5c2Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
2626f5dd5c2Smrg     disable caching.
2636f5dd5c2Smrg
2646f5dd5c2Smrg`--config-cache'
2656f5dd5c2Smrg`-C'
2666f5dd5c2Smrg     Alias for `--cache-file=config.cache'.
2676f5dd5c2Smrg
2686f5dd5c2Smrg`--quiet'
2696f5dd5c2Smrg`--silent'
2706f5dd5c2Smrg`-q'
2716f5dd5c2Smrg     Do not print messages saying which checks are being made.  To
2726f5dd5c2Smrg     suppress all normal output, redirect it to `/dev/null' (any error
2736f5dd5c2Smrg     messages will still be shown).
2746f5dd5c2Smrg
2756f5dd5c2Smrg`--srcdir=DIR'
2766f5dd5c2Smrg     Look for the package's source code in directory DIR.  Usually
2776f5dd5c2Smrg     `configure' can determine that directory automatically.
2786f5dd5c2Smrg
2796f5dd5c2Smrg`--prefix=DIR'
2806f5dd5c2Smrg     Use DIR as the installation prefix.  *Note Installation Names::
2816f5dd5c2Smrg     for more details, including other options available for fine-tuning
2826f5dd5c2Smrg     the installation locations.
2836f5dd5c2Smrg
2846f5dd5c2Smrg`--no-create'
2856f5dd5c2Smrg`-n'
2866f5dd5c2Smrg     Run the configure checks, but stop before creating any output
2876f5dd5c2Smrg     files.
2886f5dd5c2Smrg
2896f5dd5c2Smrg`configure' also accepts some other, not widely useful, options.  Run
2906f5dd5c2Smrg`configure --help' for more details.
2916f5dd5c2Smrg
292