import assistant: fix variable width after guesser with output constraints
[pspp.git] / README.Git
blob4cb1e7492a87166db18c5b285390aecf6f080788
1 Prerequisites for Building PSPP from Git
2 ----------------------------------------
4 To build this project from the sources direct from the Git archive,
5 you must install the prerequisites listed in INSTALL, plus the
6 following:
8         * Autoconf 2.64 (or later).
10         * Automake 1.14 (or later).
12         * Gettext 0.19 (or later).
14         * GNU M4 1.4.9 (or later).
16         * pkg-config 0.21 (or later).
18         * gperf 3.0.1 (or later).
20         * Gnulib (see below for details).
22         * libtool 1.5.22 (or later).
24         * Texinfo 5.2 or later, to build the documentation.
26         * rsvg-convert from librsvg2.
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.
32 Obtaining Gnulib
33 ----------------
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.
39  commit 37d43aa09011b2474b843e9386c6c246f50065c7 (origin/stable-202307)
40  Author: Collin Funk <collin.funk1@gmail.com>
41  Date:   Sun Mar 10 01:02:30 2024 -0800
43      gnulib-tool: Don't remove comments referencing @NMD@, part 2.
45      * gnulib-tool (func_emit_tests_Makefile_am): Replace lines that start
46      with @NMD@ or @!NMD@ instead of lines that contain them.
48 To clone Gnulib into a directory named "gnulib" using Git, and then
49 check out this particular commit, run these commands:
50         git clone git://git.savannah.gnu.org/gnulib.git gnulib
51         cd gnulib
52         git checkout $COMMIT
53 where $COMMIT should be replaced by the commit number listed above
54 (usually it is sufficient to just type the first 6 or so digits).
56 If you do not have Git installed, then you may alternately download
57 http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=$COMMIT;sf=tgz
58 where $COMMIT is, again, at least the first few digits of the commit
59 number listed above.  This download will yield a tar.gz file that you
60 may extract with "gunzip" and "tar" to yield identical results.
62 Bootstrapping
63 -------------
65 Once you have Gnulib installed, PSPP must be "bootstrapped" using the
66 following command:
67         make -f Smake
68 If you checked Gnulib out in a directory named `gnulib' at the same
69 level as PSPP, then this is sufficient.  Otherwise, provide the
70 location of GNULIB on the `make' command line:
71         make -f Smake GNULIB=/gnulib/base/directory/name
73 After executing Smake, follow the procedure described in INSTALL to
74 build and install PSPP.  On some systems this may be as simple as:
75         ./configure
76         make
78 Once PSPP is built, you may run its self-tests with:
79         make check
80 or for a more thorough test:
81         make distcheck
83 Building from git on Mac OS
84 ---------------------------
86 You can build on MacOS in the macports environment. After installing all
87 required packages to resolve library dependencies and autotools e.t.c, you
88 run make -f Smake as described above.
90 The macports system provides the libraries and header files in a separate
91 location from the MacOS system libraries. The typical locations are
93 Libraries: /opt/local/lib
94 Headers:   /opt/local/include
96 pspp under macports will be linked against the macports libraries. The configure
97 script has to be informed about the library and header locations. Assume the following
98 directory structure for an out of tree build:
100 ~/mypspp
101   |----pspp    (This is the pspp git directory)
102   |----install (The install location containing also ui files for psppire)
103   |----build   (The build directory)
104   |----gnulib  (The gnulib directory as described above)
106 Then you can build with the following commands:
108     cd ~/mypspp/pspp
109     make -f Smake
110     cd ../build
111     ../pspp/configure --prefix=/Users/USER/mypspp/install \
112                   LDFLAGS=-L/opt/local/lib \
113                   CPPFLAGS=-I/opt/local/include
114     make
115     make install
116     ../install/bin/psppire (If everything worked, you should see psppire...)