+Prerequisites for Building PSPP from Git
+----------------------------------------
+
To build this project from the sources direct from the Git archive,
you must install the prerequisites listed in README, plus the
following:
* gperf 3.0.1 (or later).
- * Gnulib, from Git at <git://git.savannah.gnu.org/gnulib.git>.
- If you do not have Git installed, up-to-date snapshots are
- at <http://git.savannah.gnu.org/gitweb/?p=gnulib.git>.
- Note that Gnulib does not require any form of installation:
- simply checking it out into a directory is sufficient. We
- recommend checking out gnulib into a directory named `gnulib'
- at the same level as PSPP.
+ * Gnulib (see below for details).
* libtool 1.5.22 (or later).
- * Texinfo 4.7 or later, to build the documentation.
+ * Texinfo 5.2 or later, to build the documentation.
+
+ * Gimp -- 2.8.2 is known to work
+
+After you install PSPP's prerequisites, you must obtain a copy of
+Gnulib, then bootstrap the tree, as described in the sections below.
+After that, you may follow the procedure described in INSTALL.
+
+Obtaining Gnulib
+----------------
+
+This version of PSPP should work with the Gnulib commit shown below.
+Gnulib does not maintain a stable API or ABI, so it is possible that
+PSPP will not work with older or newer versions of Gnulib.
+
+ commit 6ccfbb4ce5d4fa79f7afb48f3648f2e0401523c3
+ Author: Paul Eggert <eggert@cs.ucla.edu>
+ Date: Sat Nov 3 23:31:33 2018 -0700
+
+ parse-datetime: simplify test for mktime failure
-Once you have these installed, execute
+ * lib/parse-datetime.y (mktime_ok): Simplify.
+ Remove args TZ and T; no longer needed. Callers changed.
+
+To clone Gnulib into a directory named "gnulib" using Git, and then
+check out this particular commit, run these commands:
+ git clone git://git.savannah.gnu.org/gnulib.git gnulib
+ cd gnulib
+ git checkout $COMMIT
+where $COMMIT should be replaced by the commit number listed above
+(usually it is sufficient to just type the first 6 or so digits).
+
+If you do not have Git installed, then you may alternately download
+http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=$COMMIT;sf=tgz
+where $COMMIT is, again, at least the first few digits of the commit
+number listed above. This download will yield a tar.gz file that you
+may extract with "gunzip" and "tar" to yield identical results.
+
+Bootstrapping
+-------------
+
+Once you have Gnulib installed, PSPP must be "bootstrapped" using the
+following command:
make -f Smake
If you checked Gnulib out in a directory named `gnulib' at the same
level as PSPP, then this is sufficient. Otherwise, provide the
location of GNULIB on the `make' command line:
make -f Smake GNULIB=/gnulib/base/directory/name
-After executing Smake, you may configure the source tree in the usual
-way with ./configure, e.g.
+After executing Smake, follow the procedure described in INSTALL to
+build and install PSPP. On some systems this may be as simple as:
./configure
-For a list of options:
- ./configure --help
+ make
-To test:
+Once PSPP is built, you may run its self-tests with:
make check
-
-For a very thorough test:
+or for a more thorough test:
make distcheck
+
+Glade UI Design
+---------------
+
+The ui files in src/ui/gui may be viewed (maybe changed) with Glade. For this
+you need
+
+ * libgladeui 2.0 or later
+
+Then you need to run
+
+ configure --with-gui-tools
+ make
+ make install
+
+psppire uses some self defined widgets. To use glade these widgets have
+to be announced to glade such that you can view the interface.
+The install process will install the psppire glade library, icons and
+psppire.xml files in the appropriate system locations. You cannot override
+this with --prefix. After that you can run "glade" and open the ui files.
+
+Building from git on Mac OS
+---------------------------
+
+You can build on MacOS in the macports environment. After installing all
+required packages to resolve library dependencies and autotools e.t.c, you
+run make -f Smake as described above.
+
+The macports system provides the libraries and header files in a separate
+location from the MacOS system libraries. The typical locations are
+
+Libraries: /opt/local/lib
+Headers: /opt/local/include
+
+pspp under macports will be linked against the macports libraries. The configure
+script has to be informed about the library and header locations. Assume the following
+directory structure for an out of tree build:
+
+~/mypspp
+ |----pspp (This is the pspp git directory)
+ |----install (The install location containing also ui files for psppire)
+ |----build (The build directory)
+ |----gnulib (The gnulib directory as described above)
+
+Then you can build with the following commands:
+
+ cd ~/mypspp/pspp
+ make -f Smake
+ cd ../build
+ ../pspp/configure --prefix=/Users/USER/mypspp/install \
+ LDFLAGS=-L/opt/local/lib \
+ CPPFLAGS=-I/opt/local/include
+ make
+ make install
+ ../install/bin/psppire (If everything worked, you should see psppire...)