docs
[pspp] / INSTALL
diff --git a/INSTALL b/INSTALL
index 90be90902c96d2fc3932620de5f51e79f0c19ca4..3016d0261970bb1132ab88d59bfdfcb351494f37 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -57,33 +57,22 @@ 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/).
 
-    * libintl, from GNU gettext (http://www.gnu.org/software/gettext).
-      GNU libc includes an integrated libintl, so there is no need to
-      separately install libintl on a GNU/Linux system.
+    * 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/).
 
-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.
+    * gettext version 0.20 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
@@ -96,11 +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:
 
@@ -118,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
 ==================
 
@@ -215,10 +210,55 @@ is an example:
 
      ./configure CC=c89 CFLAGS=-O0 LIBS=-lposix
 
+Cross Compiling
+===============
+
 To cross-compile PSPP, you will likely need to set the
 PKG_CONFIG_LIBDIR environment variable to point to an
 appropriate pkg-config for the cross-compilation environment.
 
+Part of cross-compiling procedure builds a native binary.  Therefore, you
+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
@@ -257,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