Update docs.
[pspp-builds.git] / INSTALL
1 PSPP has the following library dependencies;
2
3     * The GNU Scientific Library (libgsl), version 1.6 or later.
4
5     * The GNU multiprecision arithmetic library (libgmp).
6
7     * libplot from GNU plotutils is optional.  Without it, the new
8       graphing features will not work.  If you do not have it
9       installed, you must run `configure' with --without-libplot.
10
11 Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
12 Foundation, Inc.
13
14    This file is free documentation; the Free Software Foundation gives
15 unlimited permission to copy, distribute and modify it.
16
17 Basic Installation
18 ==================
19
20    These are generic installation instructions.
21
22    The `configure' shell script attempts to guess correct values for
23 various system-dependent variables used during compilation.  It uses
24 those values to create a `Makefile' in each directory of the package.
25 It may also create one or more `.h' files containing system-dependent
26 definitions.  Finally, it creates a shell script `config.status' that
27 you can run in the future to recreate the current configuration, and a
28 file `config.log' containing compiler output (useful mainly for
29 debugging `configure').
30
31    It can also use an optional file (typically called `config.cache'
32 and enabled with `--cache-file=config.cache' or simply `-C') that saves
33 the results of its tests to speed up reconfiguring.  (Caching is
34 disabled by default to prevent problems with accidental use of stale
35 cache files.)
36
37    If you need to do unusual things to compile the package, please try
38 to figure out how `configure' could check whether to do them, and mail
39 diffs or instructions to the address given in the `README' so they can
40 be considered for the next release.  If you are using the cache, and at
41 some point `config.cache' contains results you don't want to keep, you
42 may remove or edit it.
43
44    The file `configure.ac' (or `configure.in') is used to create
45 `configure' by a program called `autoconf'.  You only need
46 `configure.ac' if you want to change it or regenerate `configure' using
47 a newer version of `autoconf'.
48
49 The simplest way to compile this package is:
50
51   1. `cd' to the directory containing the package's source code and type
52      `./configure' to configure the package for your system.  If you're
53      using `csh' on an old version of System V, you might need to type
54      `sh ./configure' instead to prevent `csh' from trying to execute
55      `configure' itself.
56
57      Running `configure' takes awhile.  While running, it prints some
58      messages telling which features it is checking for.
59
60   2. Type `make' to compile the package.
61
62   3. Optionally, type `make check' to run any self-tests that come with
63      the package.
64
65   4. Type `make install' to install the programs and any data files and
66      documentation.
67
68   5. You can remove the program binaries and object files from the
69      source code directory by typing `make clean'.  To also remove the
70      files that `configure' created (so you can compile the package for
71      a different kind of computer), type `make distclean'.  There is
72      also a `make maintainer-clean' target, but that is intended mainly
73      for the package's developers.  If you use it, you may have to get
74      all sorts of other programs in order to regenerate files that came
75      with the distribution.
76
77 Compilers and Options
78 =====================
79
80    Some systems require unusual options for compilation or linking that
81 the `configure' script does not know about.  Run `./configure --help'
82 for details on some of the pertinent environment variables.
83
84    You can give `configure' initial values for configuration parameters
85 by setting variables in the command line or in the environment.  Here
86 is an example:
87
88      ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
89
90    *Note Defining Variables::, for more details.
91
92 Compiling For Multiple Architectures
93 ====================================
94
95    You can compile the package for more than one kind of computer at the
96 same time, by placing the object files for each architecture in their
97 own directory.  To do this, you must use a version of `make' that
98 supports the `VPATH' variable, such as GNU `make'.  `cd' to the
99 directory where you want the object files and executables to go and run
100 the `configure' script.  `configure' automatically checks for the
101 source code in the directory that `configure' is in and in `..'.
102
103    If you have to use a `make' that does not support the `VPATH'
104 variable, you have to compile the package for one architecture at a
105 time in the source code directory.  After you have installed the
106 package for one architecture, use `make distclean' before reconfiguring
107 for another architecture.
108
109 Installation Names
110 ==================
111
112    By default, `make install' will install the package's files in
113 `/usr/local/bin', `/usr/local/man', etc.  You can specify an
114 installation prefix other than `/usr/local' by giving `configure' the
115 option `--prefix=PATH'.
116
117    You can specify separate installation prefixes for
118 architecture-specific files and architecture-independent files.  If you
119 give `configure' the option `--exec-prefix=PATH', the package will use
120 PATH as the prefix for installing programs and libraries.
121 Documentation and other data files will still use the regular prefix.
122
123    In addition, if you use an unusual directory layout you can give
124 options like `--bindir=PATH' to specify different values for particular
125 kinds of files.  Run `configure --help' for a list of the directories
126 you can set and what kinds of files go in them.
127
128    If the package supports it, you can cause programs to be installed
129 with an extra prefix or suffix on their names by giving `configure' the
130 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
131
132 Optional Features
133 =================
134
135    Some packages pay attention to `--enable-FEATURE' options to
136 `configure', where FEATURE indicates an optional part of the package.
137 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
138 is something like `gnu-as' or `x' (for the X Window System).  The
139 `README' should mention any `--enable-' and `--with-' options that the
140 package recognizes.
141
142    For packages that use the X Window System, `configure' can usually
143 find the X include and library files automatically, but if it doesn't,
144 you can use the `configure' options `--x-includes=DIR' and
145 `--x-libraries=DIR' to specify their locations.
146
147 Specifying the System Type
148 ==========================
149
150    There may be some features `configure' cannot figure out
151 automatically, but needs to determine by the type of machine the package
152 will run on.  Usually, assuming the package is built to be run on the
153 _same_ architectures, `configure' can figure that out, but if it prints
154 a message saying it cannot guess the machine type, give it the
155 `--build=TYPE' option.  TYPE can either be a short name for the system
156 type, such as `sun4', or a canonical name which has the form:
157
158      CPU-COMPANY-SYSTEM
159
160 where SYSTEM can have one of these forms:
161
162      OS KERNEL-OS
163
164    See the file `config.sub' for the possible values of each field.  If
165 `config.sub' isn't included in this package, then this package doesn't
166 need to know the machine type.
167
168    If you are _building_ compiler tools for cross-compiling, you should
169 use the `--target=TYPE' option to select the type of system they will
170 produce code for.
171
172    If you want to _use_ a cross compiler, that generates code for a
173 platform different from the build platform, you should specify the
174 "host" platform (i.e., that on which the generated programs will
175 eventually be run) with `--host=TYPE'.
176
177 Sharing Defaults
178 ================
179
180    If you want to set default values for `configure' scripts to share,
181 you can create a site shell script called `config.site' that gives
182 default values for variables like `CC', `cache_file', and `prefix'.
183 `configure' looks for `PREFIX/share/config.site' if it exists, then
184 `PREFIX/etc/config.site' if it exists.  Or, you can set the
185 `CONFIG_SITE' environment variable to the location of the site script.
186 A warning: not all `configure' scripts look for a site script.
187
188 Defining Variables
189 ==================
190
191    Variables not defined in a site shell script can be set in the
192 environment passed to `configure'.  However, some packages may run
193 configure again during the build, and the customized values of these
194 variables may be lost.  In order to avoid this problem, you should set
195 them in the `configure' command line, using `VAR=value'.  For example:
196
197      ./configure CC=/usr/local2/bin/gcc
198
199 will cause the specified gcc to be used as the C compiler (unless it is
200 overridden in the site shell script).
201
202 `configure' Invocation
203 ======================
204
205    `configure' recognizes the following options to control how it
206 operates.
207
208 `--help'
209 `-h'
210      Print a summary of the options to `configure', and exit.
211
212 `--version'
213 `-V'
214      Print the version of Autoconf used to generate the `configure'
215      script, and exit.
216
217 `--cache-file=FILE'
218      Enable the cache: use and save the results of the tests in FILE,
219      traditionally `config.cache'.  FILE defaults to `/dev/null' to
220      disable caching.
221
222 `--config-cache'
223 `-C'
224      Alias for `--cache-file=config.cache'.
225
226 `--quiet'
227 `--silent'
228 `-q'
229      Do not print messages saying which checks are being made.  To
230      suppress all normal output, redirect it to `/dev/null' (any error
231      messages will still be shown).
232
233 `--srcdir=DIR'
234      Look for the package's source code in directory DIR.  Usually
235      `configure' can determine that directory automatically.
236
237 `configure' also accepts some other, not widely useful, options.  Run
238 `configure --help' for more details.
239