docs
[pspp] / INSTALL
diff --git a/INSTALL b/INSTALL
index 5984cc609937a6fc573b43aae6901c369eb19553..3016d0261970bb1132ab88d59bfdfcb351494f37 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -57,32 +57,23 @@ The following packages are required to install PSPP:
     * The GNU Scientific Library (http://www.gnu.org/software/gsl/),
       version 1.13 or later, including libgslcblas included with GSL.
 
-    * Perl (http://www.perl.org/), version 5.005_03 or later.  Perl is
+    * Python (https://python.org/), version 3.4 or later.  Python is
       required during build but not after installation.
 
-    * Python (https://python.org/), version 2.7 or later (Python 3 is
-      fine).  Some tests require Python; if it is missing, those tests
-      will be skipped.  PSPP does not otherwise require Python.
-
     * iconv, which should be installed as part of a Unix-like system.
       If you don't have a version already, you can install GNU
       libiconv (http://www.gnu.org/software/libiconv/).
 
+    * Cairo (http://cairographics.org/), version 1.12 or later.
+
+    * Pango (http://www.pango.org/), version 1.22 or later.
+
     * zlib (http://www.zlib.net/).
 
     * libxml2 (http://xmlsoft.org/).
 
     * gettext version 0.20 or later.
 
-The following packages are required to enable PSPP's graphing
-features.  If you cannot arrange to install them, you must run
-`configure' with --without-cairo (in which case you will get no graphing
-capability).
-
-    * Cairo (http://cairographics.org/), version 1.12 or later.
-
-    * Pango (http://www.pango.org/), version 1.22 or later.
-
 The following packages are required to enable PSPPIRE, the graphical
 user interface for PSPP.  If you cannot install them or do not wish to
 use the GUI, you must run `configure' with --without-gui.
@@ -94,12 +85,21 @@ use the GUI, you must run `configure' with --without-gui.
     * GTK+ (http://www.gtk.org/), version 3.22.0 or later.
 
     * GtkSourceView (http://projects.gnome.org/gtksourceview/)
-      version 3.4.0 or later.
+      version 3.x (3.4.2 or later) or 4.x.
 
     * GNU Spread Sheet Widget (http://www.gnu.org/software/ssw)
       version 0.7 or later.
 
-The following packages are optional:
+The following packages are only needed to build and test the Perl
+module:
+
+    * Perl (https://www.perl.org/), version 5.005_03 or later.
+
+    * The Config::Perl::V module for Perl (https://cpan.org).
+
+    * Optionally, the Text::Diff and Memory::Usage modules for Perl
+      (https://cpan.org).  These modules enable PSPP to test its Perl
+      module more thoroughly.
 
 Other optional packages:
 
@@ -117,10 +117,6 @@ Other optional packages:
       interface, but not the Postgresql interface itself, requires the
       Postgresql server to be installed.
 
-    * The Text::Diff module for Perl (http://cpan.org).  This enables
-      PSPP to test the Perl module more thoroughly.  It is not needed
-      to build or use the Perl module.
-
 Basic Installation
 ==================
 
@@ -226,6 +222,43 @@ will need not only the dependent libraries for your target, but also for the
 build machine.   This is because the native version is used to create
 examples for the user manual.
 
+To do a windows cross compilation on a debian build machine, the mingw64
+cross build system can be used. First you have to install the build
+dependencies with
+
+sudo apt install -y build-essential python3 perl texinfo texlive \
+        libgsl-dev libgtk-3-dev libgtksourceview-3.0-dev \
+        pkg-config gperf git zip curl autoconf libtool \
+        gettext libreadline-dev appstream \
+        mingw-w64 meson ninja-build \
+        imagemagick wget nsis texlive-plain-generic
+
+To build windows 64bit installers from the latest nightly do the following steps
+
+mkdir sandbox
+sandboxdir=`pwd`/sandbox
+curl -o pspp.tgz https://benpfaff.org/~blp/pspp-master/latest-source.tar.gz
+tar -xzf pspp.tgz
+./pspp-<version>/Windows/build-dependencies --arch=x86_64-w64-mingw32 --sandbox=$sandboxdir
+mkdir build
+cd build
+../pspp-<version>/configure --host="x86_64-w64-mingw32" \
+  CPPFLAGS="-I$sandboxdir/Install/include" \
+  LDFLAGS="-L$sandboxdir/Install/lib" \
+  PKG_CONFIG_LIBDIR="$sandboxdir/Install/lib/pkgconfig" \
+  --prefix=$sandboxdir/psppinst \
+  --enable-relocatable
+make -j4
+make install
+make install-html
+make install-pdf
+make Windows/installers
+
+The windows installers are then available in the build/Windows directory. Note that
+building via mingw64-configure/make does not work because some example outputs for the
+documentation are created during the build process. That requires a native version also
+during the cross compile build which does not work with mingw64-configure.
+
 See "Defining Variables", below, for more details.
 
 Installation Names
@@ -264,17 +297,10 @@ suffix on their names by giving `configure' the  option
 Optional Features
 =================
 
-`--without-cairo'
-    Don't compile in support for charts (using Cairo and Pango).  This
-    is useful if your system lacks these libraries.
-
 `--without-gui'
     Don't build the PSPPIRE gui.  Use this option if you only want to
     build the command line version of PSPP.
 
-    Cairo and Pango required to build the GUI, so --without-cairo
-    implies --without-gui.
-
 `--without-lib{xx}'
     Optional libraries should normally be detected and the relevant
     functionality will be built they exist.  However, on some poorly