97f82ec515c9cdb9e3f02e629e3b937c4becab1a
[pspp-builds.git] / doc / installing.texi
1 @node Installation, Configuration, Concept Index, Top
2 @appendix Installing PSPP
3 @cindex installation
4 @cindex PSPP, installing
5
6 @cindex GNU C compiler
7 @cindex gcc
8 @cindex compiler, recommended
9 @cindex compiler, gcc
10 PSPP conforms to the GNU Coding Standards.  PSPP is written in, and
11 requires for proper operation, ANSI/ISO C.  You might want to
12 additionally note the following points:
13
14 @itemize @bullet
15 @item
16 The compiler and linker must allow for significance of several
17 characters in external identifiers.  The exact number is unknown but at
18 least 31 is recommended.
19
20 @item
21 The @code{int} type must be 32 bits or wider.
22
23 @item
24 The recommended compiler is gcc 2.7.2.1 or later, but any ANSI compiler
25 will do if it fits the above criteria.
26 @end itemize
27
28 Many UNIX variants should work out-of-the-box, as PSPP uses GNU
29 autoconf to detect differences between environments.  Please report any
30 problems with compilation of PSPP under UNIX and UNIX-like operating
31 systems---portability is a major concern of the author.
32
33 The pages below give specific instructions for installing PSPP
34 on each type of system mentioned above.
35
36 @menu
37 * UNIX installation::           Installing on UNIX-like environments.
38 @end menu
39
40 @node UNIX installation,  , Installation, Installation
41 @section UNIX installation
42 @cindex UNIX, installing PSPP under
43 @cindex installation, under UNIX
44 @noindent
45 To install PSPP under a UNIX-like operating system, follow the steps
46 below in order.  Some of the text below was taken directly from various
47 Free Software Foundation sources.
48
49 @enumerate
50 @item
51 @code{cd} to the directory containing the PSPP source.
52
53 @cindex configure, GNU
54 @cindex GNU configure
55 @item
56 Type @samp{./configure} to configure for your particular operating
57 system and compiler.  Running @code{configure} takes a while.  While
58 running, it displays some messages telling which features it is checking
59 for.
60
61 You can optionally supply some options to @code{configure} to
62 give it hints about how to do its job.  Type @code{./configure --help}
63 to see a list of options.  One of the most useful options is
64 @samp{--with-checker}, which enables the use of the Checker memory
65 debugger under supported operating systems.  Checker must already be
66 installed to use this option.  Do not use @samp{--with-checker} if you
67 are not debugging PSPP itself.
68
69 @cindex @file{Makefile}
70 @cindex @file{config.h}
71 @cindex @file{pref.h}
72 @cindex makefile
73 @item
74 (optional) Edit @file{Makefile}, @file{config.h}, and @file{pref.h}.
75 These files are produced by @code{configure}.  Note that most PSPP
76 settings can be changed at runtime.
77
78 @file{pref.h} is only generated by @code{configure} if it does not
79 already exist.  (It's copied from @file{prefh.orig}.)
80
81 @cindex compiling
82 @item
83 Type @samp{make} to compile the package.  If there are any errors during
84 compilation, try to fix them.  If modifications are necessary to compile
85 correctly under your configuration, contact the author.
86 @xref{Bugs,,Submitting Bug Reports}, for details.
87
88 @cindex self-tests, running
89 @item
90 Type @samp{make check} to run self-tests on the compiled PSPP package.
91
92 @cindex installation
93 @cindex PSPP, installing
94 @cindex @file{/usr/local/share/pspp/}
95 @cindex @file{/usr/local/bin/}
96 @cindex @file{/usr/local/info/}
97 @cindex documentation, installing
98 @item
99 Become the superuser and type @samp{make install} to install the
100 PSPP binaries, by default in @file{/usr/local/bin/}.  The
101 directory @file{/usr/local/share/pspp/} is created and populated with
102 files needed by PSPP at runtime.  This step will also cause the
103 PSPP documentation to be installed in @file{/usr/local/info/},
104 but only if that directory already exists.
105
106 @item
107 (optional) Type @samp{make clean} to delete the PSPP binaries
108 from the source tree.
109 @end enumerate
110 @setfilename ignored