spv-file-format: Update.
[pspp] / README.Git
1 Prerequisites for Building PSPP from Git
2 ----------------------------------------
3
4 To build this project from the sources direct from the Git archive,
5 you must install the prerequisites listed in README, plus the
6 following:
7
8         * Autoconf 2.60 (or later).
9
10         * Automake 1.10 (or later).
11
12         * Gettext 0.17 (or later).
13
14         * GNU M4 1.4.9 (or later).
15
16         * pkg-config 0.21 (or later).
17
18         * gperf 3.0.1 (or later).
19
20         * Gnulib (see below for details).
21
22         * libtool 1.5.22 (or later).
23
24         * Texinfo 5.2 or later, to build the documentation.
25
26         * Gimp --  2.8.2 is known to work
27
28 After you install PSPP's prerequisites, you must obtain a copy of
29 Gnulib, then bootstrap the tree, as described in the sections below.
30 After that, you may follow the procedure described in INSTALL.
31
32 Obtaining Gnulib
33 ----------------
34
35 This version of PSPP should work with the Gnulib commit shown below.
36 Gnulib does not maintain a stable API or ABI, so it is possible that
37 PSPP will not work with older or newer versions of Gnulib.
38
39     commit 9ce9be2ef0cb1180e35dfe9dfbbe90d774b374bd (HEAD, origin/master, origin/HEAD)
40     Author: Karl Berry <karl@freefriends.org>
41     Date:   Thu Jul 4 08:23:14 2019 -0700
42
43         autoupdate
44
45 To clone Gnulib into a directory named "gnulib" using Git, and then
46 check out this particular commit, run these commands:
47         git clone git://git.savannah.gnu.org/gnulib.git gnulib
48         cd gnulib
49         git checkout $COMMIT
50 where $COMMIT should be replaced by the commit number listed above
51 (usually it is sufficient to just type the first 6 or so digits).
52
53 If you do not have Git installed, then you may alternately download
54 http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=$COMMIT;sf=tgz
55 where $COMMIT is, again, at least the first few digits of the commit
56 number listed above.  This download will yield a tar.gz file that you
57 may extract with "gunzip" and "tar" to yield identical results.
58
59 Bootstrapping
60 -------------
61
62 Once you have Gnulib installed, PSPP must be "bootstrapped" using the
63 following command:
64         make -f Smake
65 If you checked Gnulib out in a directory named `gnulib' at the same
66 level as PSPP, then this is sufficient.  Otherwise, provide the
67 location of GNULIB on the `make' command line:
68         make -f Smake GNULIB=/gnulib/base/directory/name
69
70 After executing Smake, follow the procedure described in INSTALL to
71 build and install PSPP.  On some systems this may be as simple as:
72         ./configure
73         make
74
75 Once PSPP is built, you may run its self-tests with:
76         make check
77 or for a more thorough test:
78         make distcheck
79
80 Glade UI Design
81 ---------------
82
83 The ui files in src/ui/gui may be viewed (maybe changed) with Glade. For this
84 you need
85
86         * libgladeui 2.0 or later
87
88 Then you need to run
89
90         configure --with-gui-tools
91         make
92         make install
93
94 psppire uses some self defined widgets. To use glade these widgets have
95 to be announced to glade such that you can view the interface.
96 The install process will install the psppire glade library, icons and
97 psppire.xml files in the appropriate system locations. You cannot override
98 this with --prefix. After that you can run "glade" and open the ui files.
99
100 Building from git on Mac OS
101 ---------------------------
102
103 You can build on MacOS in the macports environment. After installing all
104 required packages to resolve library dependencies and autotools e.t.c, you
105 run make -f Smake as described above.
106
107 The macports system provides the libraries and header files in a separate
108 location from the MacOS system libraries. The typical locations are
109
110 Libraries: /opt/local/lib
111 Headers:   /opt/local/include
112
113 pspp under macports will be linked against the macports libraries. The configure
114 script has to be informed about the library and header locations. Assume the following
115 directory structure for an out of tree build:
116
117 ~/mypspp
118   |----pspp    (This is the pspp git directory)
119   |----install (The install location containing also ui files for psppire)
120   |----build   (The build directory)
121   |----gnulib  (The gnulib directory as described above)
122
123 Then you can build with the following commands:
124
125     cd ~/mypspp/pspp
126     make -f Smake
127     cd ../build
128     ../pspp/configure --prefix=/Users/USER/mypspp/install \
129                   LDFLAGS=-L/opt/local/lib \
130                   CPPFLAGS=-I/opt/local/include
131     make
132     make install
133     ../install/bin/psppire (If everything worked, you should see psppire...)