INSTALL revision 27702724
127702724SmrgInstallation Instructions
227702724Smrg*************************
327702724Smrg
427702724SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
527702724SmrgSoftware Foundation, Inc.
627702724Smrg
727702724SmrgThis file is free documentation; the Free Software Foundation gives
827702724Smrgunlimited permission to copy, distribute and modify it.
927702724Smrg
1027702724SmrgBasic Installation
1127702724Smrg==================
1227702724Smrg
1327702724SmrgThese are generic installation instructions.
1427702724Smrg
1527702724Smrg   The `configure' shell script attempts to guess correct values for
1627702724Smrgvarious system-dependent variables used during compilation.  It uses
1727702724Smrgthose values to create a `Makefile' in each directory of the package.
1827702724SmrgIt may also create one or more `.h' files containing system-dependent
1927702724Smrgdefinitions.  Finally, it creates a shell script `config.status' that
2027702724Smrgyou can run in the future to recreate the current configuration, and a
2127702724Smrgfile `config.log' containing compiler output (useful mainly for
2227702724Smrgdebugging `configure').
2327702724Smrg
2427702724Smrg   It can also use an optional file (typically called `config.cache'
2527702724Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves
2627702724Smrgthe results of its tests to speed up reconfiguring.  (Caching is
2727702724Smrgdisabled by default to prevent problems with accidental use of stale
2827702724Smrgcache files.)
2927702724Smrg
3027702724Smrg   If you need to do unusual things to compile the package, please try
3127702724Smrgto figure out how `configure' could check whether to do them, and mail
3227702724Smrgdiffs or instructions to the address given in the `README' so they can
3327702724Smrgbe considered for the next release.  If you are using the cache, and at
3427702724Smrgsome point `config.cache' contains results you don't want to keep, you
3527702724Smrgmay remove or edit it.
3627702724Smrg
3727702724Smrg   The file `configure.ac' (or `configure.in') is used to create
3827702724Smrg`configure' by a program called `autoconf'.  You only need
3927702724Smrg`configure.ac' if you want to change it or regenerate `configure' using
4027702724Smrga newer version of `autoconf'.
4127702724Smrg
4227702724SmrgThe simplest way to compile this package is:
4327702724Smrg
4427702724Smrg  1. `cd' to the directory containing the package's source code and type
4527702724Smrg     `./configure' to configure the package for your system.  If you're
4627702724Smrg     using `csh' on an old version of System V, you might need to type
4727702724Smrg     `sh ./configure' instead to prevent `csh' from trying to execute
4827702724Smrg     `configure' itself.
4927702724Smrg
5027702724Smrg     Running `configure' takes awhile.  While running, it prints some
5127702724Smrg     messages telling which features it is checking for.
5227702724Smrg
5327702724Smrg  2. Type `make' to compile the package.
5427702724Smrg
5527702724Smrg  3. Optionally, type `make check' to run any self-tests that come with
5627702724Smrg     the package.
5727702724Smrg
5827702724Smrg  4. Type `make install' to install the programs and any data files and
5927702724Smrg     documentation.
6027702724Smrg
6127702724Smrg  5. You can remove the program binaries and object files from the
6227702724Smrg     source code directory by typing `make clean'.  To also remove the
6327702724Smrg     files that `configure' created (so you can compile the package for
6427702724Smrg     a different kind of computer), type `make distclean'.  There is
6527702724Smrg     also a `make maintainer-clean' target, but that is intended mainly
6627702724Smrg     for the package's developers.  If you use it, you may have to get
6727702724Smrg     all sorts of other programs in order to regenerate files that came
6827702724Smrg     with the distribution.
6927702724Smrg
7027702724SmrgCompilers and Options
7127702724Smrg=====================
7227702724Smrg
7327702724SmrgSome systems require unusual options for compilation or linking that the
7427702724Smrg`configure' script does not know about.  Run `./configure --help' for
7527702724Smrgdetails on some of the pertinent environment variables.
7627702724Smrg
7727702724Smrg   You can give `configure' initial values for configuration parameters
7827702724Smrgby setting variables in the command line or in the environment.  Here
7927702724Smrgis an example:
8027702724Smrg
8127702724Smrg     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
8227702724Smrg
8327702724Smrg   *Note Defining Variables::, for more details.
8427702724Smrg
8527702724SmrgCompiling For Multiple Architectures
8627702724Smrg====================================
8727702724Smrg
8827702724SmrgYou can compile the package for more than one kind of computer at the
8927702724Smrgsame time, by placing the object files for each architecture in their
9027702724Smrgown directory.  To do this, you must use a version of `make' that
9127702724Smrgsupports the `VPATH' variable, such as GNU `make'.  `cd' to the
9227702724Smrgdirectory where you want the object files and executables to go and run
9327702724Smrgthe `configure' script.  `configure' automatically checks for the
9427702724Smrgsource code in the directory that `configure' is in and in `..'.
9527702724Smrg
9627702724Smrg   If you have to use a `make' that does not support the `VPATH'
9727702724Smrgvariable, you have to compile the package for one architecture at a
9827702724Smrgtime in the source code directory.  After you have installed the
9927702724Smrgpackage for one architecture, use `make distclean' before reconfiguring
10027702724Smrgfor another architecture.
10127702724Smrg
10227702724SmrgInstallation Names
10327702724Smrg==================
10427702724Smrg
10527702724SmrgBy default, `make install' will install the package's files in
10627702724Smrg`/usr/local/bin', `/usr/local/man', etc.  You can specify an
10727702724Smrginstallation prefix other than `/usr/local' by giving `configure' the
10827702724Smrgoption `--prefix=PREFIX'.
10927702724Smrg
11027702724Smrg   You can specify separate installation prefixes for
11127702724Smrgarchitecture-specific files and architecture-independent files.  If you
11227702724Smrggive `configure' the option `--exec-prefix=PREFIX', the package will
11327702724Smrguse PREFIX as the prefix for installing programs and libraries.
11427702724SmrgDocumentation and other data files will still use the regular prefix.
11527702724Smrg
11627702724Smrg   In addition, if you use an unusual directory layout you can give
11727702724Smrgoptions like `--bindir=DIR' to specify different values for particular
11827702724Smrgkinds of files.  Run `configure --help' for a list of the directories
11927702724Smrgyou can set and what kinds of files go in them.
12027702724Smrg
12127702724Smrg   If the package supports it, you can cause programs to be installed
12227702724Smrgwith an extra prefix or suffix on their names by giving `configure' the
12327702724Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
12427702724Smrg
12527702724SmrgOptional Features
12627702724Smrg=================
12727702724Smrg
12827702724SmrgSome packages pay attention to `--enable-FEATURE' options to
12927702724Smrg`configure', where FEATURE indicates an optional part of the package.
13027702724SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
13127702724Smrgis something like `gnu-as' or `x' (for the X Window System).  The
13227702724Smrg`README' should mention any `--enable-' and `--with-' options that the
13327702724Smrgpackage recognizes.
13427702724Smrg
13527702724Smrg   For packages that use the X Window System, `configure' can usually
13627702724Smrgfind the X include and library files automatically, but if it doesn't,
13727702724Smrgyou can use the `configure' options `--x-includes=DIR' and
13827702724Smrg`--x-libraries=DIR' to specify their locations.
13927702724Smrg
14027702724SmrgSpecifying the System Type
14127702724Smrg==========================
14227702724Smrg
14327702724SmrgThere may be some features `configure' cannot figure out automatically,
14427702724Smrgbut needs to determine by the type of machine the package will run on.
14527702724SmrgUsually, assuming the package is built to be run on the _same_
14627702724Smrgarchitectures, `configure' can figure that out, but if it prints a
14727702724Smrgmessage saying it cannot guess the machine type, give it the
14827702724Smrg`--build=TYPE' option.  TYPE can either be a short name for the system
14927702724Smrgtype, such as `sun4', or a canonical name which has the form:
15027702724Smrg
15127702724Smrg     CPU-COMPANY-SYSTEM
15227702724Smrg
15327702724Smrgwhere SYSTEM can have one of these forms:
15427702724Smrg
15527702724Smrg     OS KERNEL-OS
15627702724Smrg
15727702724Smrg   See the file `config.sub' for the possible values of each field.  If
15827702724Smrg`config.sub' isn't included in this package, then this package doesn't
15927702724Smrgneed to know the machine type.
16027702724Smrg
16127702724Smrg   If you are _building_ compiler tools for cross-compiling, you should
16227702724Smrguse the `--target=TYPE' option to select the type of system they will
16327702724Smrgproduce code for.
16427702724Smrg
16527702724Smrg   If you want to _use_ a cross compiler, that generates code for a
16627702724Smrgplatform different from the build platform, you should specify the
16727702724Smrg"host" platform (i.e., that on which the generated programs will
16827702724Smrgeventually be run) with `--host=TYPE'.
16927702724Smrg
17027702724SmrgSharing Defaults
17127702724Smrg================
17227702724Smrg
17327702724SmrgIf you want to set default values for `configure' scripts to share, you
17427702724Smrgcan create a site shell script called `config.site' that gives default
17527702724Smrgvalues for variables like `CC', `cache_file', and `prefix'.
17627702724Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then
17727702724Smrg`PREFIX/etc/config.site' if it exists.  Or, you can set the
17827702724Smrg`CONFIG_SITE' environment variable to the location of the site script.
17927702724SmrgA warning: not all `configure' scripts look for a site script.
18027702724Smrg
18127702724SmrgDefining Variables
18227702724Smrg==================
18327702724Smrg
18427702724SmrgVariables not defined in a site shell script can be set in the
18527702724Smrgenvironment passed to `configure'.  However, some packages may run
18627702724Smrgconfigure again during the build, and the customized values of these
18727702724Smrgvariables may be lost.  In order to avoid this problem, you should set
18827702724Smrgthem in the `configure' command line, using `VAR=value'.  For example:
18927702724Smrg
19027702724Smrg     ./configure CC=/usr/local2/bin/gcc
19127702724Smrg
19227702724Smrgcauses the specified `gcc' to be used as the C compiler (unless it is
19327702724Smrgoverridden in the site shell script).  Here is a another example:
19427702724Smrg
19527702724Smrg     /bin/bash ./configure CONFIG_SHELL=/bin/bash
19627702724Smrg
19727702724SmrgHere the `CONFIG_SHELL=/bin/bash' operand causes subsequent
19827702724Smrgconfiguration-related scripts to be executed by `/bin/bash'.
19927702724Smrg
20027702724Smrg`configure' Invocation
20127702724Smrg======================
20227702724Smrg
20327702724Smrg`configure' recognizes the following options to control how it operates.
20427702724Smrg
20527702724Smrg`--help'
20627702724Smrg`-h'
20727702724Smrg     Print a summary of the options to `configure', and exit.
20827702724Smrg
20927702724Smrg`--version'
21027702724Smrg`-V'
21127702724Smrg     Print the version of Autoconf used to generate the `configure'
21227702724Smrg     script, and exit.
21327702724Smrg
21427702724Smrg`--cache-file=FILE'
21527702724Smrg     Enable the cache: use and save the results of the tests in FILE,
21627702724Smrg     traditionally `config.cache'.  FILE defaults to `/dev/null' to
21727702724Smrg     disable caching.
21827702724Smrg
21927702724Smrg`--config-cache'
22027702724Smrg`-C'
22127702724Smrg     Alias for `--cache-file=config.cache'.
22227702724Smrg
22327702724Smrg`--quiet'
22427702724Smrg`--silent'
22527702724Smrg`-q'
22627702724Smrg     Do not print messages saying which checks are being made.  To
22727702724Smrg     suppress all normal output, redirect it to `/dev/null' (any error
22827702724Smrg     messages will still be shown).
22927702724Smrg
23027702724Smrg`--srcdir=DIR'
23127702724Smrg     Look for the package's source code in directory DIR.  Usually
23227702724Smrg     `configure' can determine that directory automatically.
23327702724Smrg
23427702724Smrg`configure' also accepts some other, not widely useful, options.  Run
23527702724Smrg`configure --help' for more details.
23627702724Smrg
237