1251881SpeterBasic Installation
2251881Speter==================
3251881Speter
4251881Speter   The `configure' shell script attempts to guess correct values for
5251881Spetervarious system-dependent variables used during compilation.  It uses
6251881Speterthose values to create a `Makefile' in each directory of the package.
7251881SpeterIt may also create one or more `.h' files containing system-dependent
8251881Speterdefinitions.  Finally, it creates a shell script `config.status' that
9251881Speteryou can run in the future to recreate the current configuration, a file
10251881Speter`config.cache' that saves the results of its tests to speed up
11251881Speterreconfiguring, and a file `config.log' containing compiler output
12251881Speter(useful mainly for debugging `configure').
13251881Speter
14251881Speter   If you need to do unusual things to compile the package, please try
15251881Speterto figure out how `configure' could check whether to do them, and mail
16251881Speterdiffs or instructions to the address given in the `README' so they can
17251881Speterbe considered for the next release.  If at some point `config.cache'
18251881Spetercontains results you don't want to keep, you may remove or edit it.
19251881Speter
20251881Speter   The file `configure.in' is used to create `configure' by a program
21251881Spetercalled `autoconf'.  You only need `configure.in' if you want to change
22251881Speterit or regenerate `configure' using a newer version of `autoconf'.
23251881Speter
24251881SpeterThe simplest way to compile this package is:
25251881Speter
26251881Speter  1. `cd' to the directory containing the package's source code and type
27251881Speter     `./configure' to configure the package for your system.  If you're
28251881Speter     using `csh' on an old version of System V, you might need to type
29251881Speter     `sh ./configure' instead to prevent `csh' from trying to execute
30251881Speter     `configure' itself.
31251881Speter
32251881Speter     Running `configure' takes awhile.  While running, it prints some
33251881Speter     messages telling which features it is checking for.
34251881Speter
35251881Speter  2. Type `make' to compile the package.
36251881Speter
37251881Speter     If you're building GNU make on a system which does not already have
38251881Speter     a `make', you can use the build.sh shell script to compile.  Run
39251881Speter     `sh ./build.sh'.  This should compile the program in the current
40251881Speter     directory.  Then you will have a Make program that you can use for
41251881Speter     `make install', or whatever else.
42251881Speter
43251881Speter  3. Optionally, type `./make check' to run any self-tests that come with
44251881Speter     the package.
45251881Speter
46251881Speter  4. Type `make install' to install the programs and any data files and
47251881Speter     documentation.
48251881Speter
49251881Speter  5. You can remove the program binaries and object files from the
50251881Speter     source code directory by typing `make clean'.  To also remove the
51251881Speter     files that `configure' created (so you can compile the package for
52251881Speter     a different kind of computer), type `make distclean'.  There is
53251881Speter     also a `make maintainer-clean' target, but that is intended mainly
54251881Speter     for the package's developers.  If you use it, you may have to get
55251881Speter     all sorts of other programs in order to regenerate files that came
56251881Speter     with the distribution.
57251881Speter
58251881SpeterCompilers and Options
59251881Speter=====================
60251881Speter
61251881Speter   Some systems require unusual options for compilation or linking that
62251881Speterthe `configure' script does not know about.  You can give `configure'
63251881Speterinitial values for variables by setting them in the environment.  Using
64251881Spetera Bourne-compatible shell, you can do that on the command line like
65251881Speterthis:
66251881Speter     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
67251881Speter
68251881SpeterOr on systems that have the `env' program, you can do it like this:
69251881Speter     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
70251881Speter
71251881SpeterCompiling For Multiple Architectures
72251881Speter====================================
73251881Speter
74251881Speter   You can compile the package for more than one kind of computer at the
75251881Spetersame time, by placing the object files for each architecture in their
76251881Speterown directory.  To do this, you must use a version of `make' that
77251881Spetersupports the `VPATH' variable, such as GNU `make'.  `cd' to the
78251881Speterdirectory where you want the object files and executables to go and run
79251881Speterthe `configure' script.  `configure' automatically checks for the
80251881Spetersource code in the directory that `configure' is in and in `..'.
81251881Speter
82251881Speter   If you have to use a `make' that does not supports the `VPATH'
83251881Spetervariable, you have to compile the package for one architecture at a time
84251881Speterin the source code directory.  After you have installed the package for
85251881Speterone architecture, use `make distclean' before reconfiguring for another
86251881Speterarchitecture.
87251881Speter
88251881SpeterInstallation Names
89251881Speter==================
90251881Speter
91251881Speter   By default, `make install' will install the package's files in
92251881Speter`/usr/local/bin', `/usr/local/man', etc.  You can specify an
93251881Speterinstallation prefix other than `/usr/local' by giving `configure' the
94251881Speteroption `--prefix=PATH'.
95251881Speter
96251881Speter   You can specify separate installation prefixes for
97251881Speterarchitecture-specific files and architecture-independent files.  If you
98251881Spetergive `configure' the option `--exec-prefix=PATH', the package will use
99251881SpeterPATH as the prefix for installing programs and libraries.
100251881SpeterDocumentation and other data files will still use the regular prefix.
101251881Speter
102251881Speter   In addition, if you use an unusual directory layout you can give
103251881Speteroptions like `--bindir=PATH' to specify different values for particular
104251881Speterkinds of files.  Run `configure --help' for a list of the directories
105251881Speteryou can set and what kinds of files go in them.
106251881Speter
107251881Speter   If the package supports it, you can cause programs to be installed
108251881Speterwith an extra prefix or suffix on their names by giving `configure' the
109251881Speteroption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
110251881Speter
111251881SpeterOptional Features
112251881Speter=================
113251881Speter
114251881Speter   Some packages pay attention to `--enable-FEATURE' options to
115251881Speter`configure', where FEATURE indicates an optional part of the package.
116251881SpeterThey may also pay attention to `--with-PACKAGE' options, where PACKAGE
117251881Speteris something like `gnu-as' or `x' (for the X Window System).  The
118251881Speter`README' should mention any `--enable-' and `--with-' options that the
119251881Speterpackage recognizes.
120251881Speter
121251881Speter   For packages that use the X Window System, `configure' can usually
122251881Speterfind the X include and library files automatically, but if it doesn't,
123251881Speteryou can use the `configure' options `--x-includes=DIR' and
124251881Speter`--x-libraries=DIR' to specify their locations.
125251881Speter
126251881SpeterSpecifying the System Type
127251881Speter==========================
128251881Speter
129251881Speter   There may be some features `configure' can not figure out
130251881Speterautomatically, but needs to determine by the type of host the package
131251881Speterwill run on.  Usually `configure' can figure that out, but if it prints
132251881Spetera message saying it can not guess the host type, give it the
133251881Speter`--host=TYPE' option.  TYPE can either be a short name for the system
134251881Spetertype, such as `sun4', or a canonical name with three fields:
135251881Speter     CPU-COMPANY-SYSTEM
136251881Speter
137251881SpeterSee the file `config.sub' for the possible values of each field.  If
138251881Speter`config.sub' isn't included in this package, then this package doesn't
139251881Speterneed to know the host type.
140251881Speter
141251881Speter   If you are building compiler tools for cross-compiling, you can also
142251881Speteruse the `--target=TYPE' option to select the type of system they will
143251881Speterproduce code for and the `--build=TYPE' option to select the type of
144251881Spetersystem on which you are compiling the package.
145251881Speter
146251881SpeterSharing Defaults
147251881Speter================
148251881Speter
149251881Speter   If you want to set default values for `configure' scripts to share,
150251881Speteryou can create a site shell script called `config.site' that gives
151251881Speterdefault values for variables like `CC', `cache_file', and `prefix'.
152251881Speter`configure' looks for `PREFIX/share/config.site' if it exists, then
153251881Speter`PREFIX/etc/config.site' if it exists.  Or, you can set the
154251881Speter`CONFIG_SITE' environment variable to the location of the site script.
155251881SpeterA warning: not all `configure' scripts look for a site script.
156251881Speter
157251881SpeterOperation Controls
158251881Speter==================
159251881Speter
160251881Speter   `configure' recognizes the following options to control how it
161251881Speteroperates.
162251881Speter
163251881Speter`--cache-file=FILE'
164251881Speter     Use and save the results of the tests in FILE instead of
165251881Speter     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
166251881Speter     debugging `configure'.
167251881Speter
168251881Speter`--help'
169251881Speter     Print a summary of the options to `configure', and exit.
170251881Speter
171251881Speter`--quiet'
172251881Speter`--silent'
173251881Speter`-q'
174251881Speter     Do not print messages saying which checks are being made.  To
175251881Speter     suppress all normal output, redirect it to `/dev/null' (any error
176251881Speter     messages will still be shown).
177251881Speter
178251881Speter`--srcdir=DIR'
179251881Speter     Look for the package's source code in directory DIR.  Usually
180251881Speter     `configure' can determine that directory automatically.
181251881Speter
182251881Speter`--version'
183251881Speter     Print the version of Autoconf used to generate the `configure'
184251881Speter     script, and exit.
185251881Speter
186251881Speter`configure' also accepts some other, not widely useful, options.
187251881Speter
188251881Speter