* 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.
* 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 module for Perl
+ (https://cpan.org). This module enables PSPP to test its Perl
+ module more thoroughly.
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
==================
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
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