Add support for reading and writing SPV files.
[pspp] / README.Git
index b303b76ae9e7d14e518c68a65d1872b6433c73a3..d8e31afed41c6bbc5ed4380b65626734ae0ff457 100644 (file)
@@ -1,3 +1,6 @@
+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:
@@ -14,33 +17,120 @@ 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...)