-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions for GNU pspp
+**************************************
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+These instructions are based on the generic GNU installation
+instructions, but they have been tailored for PSPP.
+
+Before You Install
+==================
+
+Before you install PSPP, you will need to install certain prerequisite
+packages. You may also want to install other packages that enable
+additional functionality in PSPP.
+
+If you do not know whether you have these installed already, you may
+proceed to "Basic Installation", below. The PSPP configuration
+process will notify you about required and optional packages that are
+not present on your system.
+
+The following packages are required to install PSPP:
+
+ * An ANSI C compiler and tool chain. On Unix-like systems, we
+ recommend GCC, but any modern compilation environment should
+ work. On Microsoft Windows, Cygwin (http://www.cygwin.com/) and
+ MinGW (http://www.mingw.org/) are known to work.
+
+ * The GNU Scientific Library (http://www.gnu.org/software/gsl/),
+ version 1.8 or later, including libgslcblas included with GSL.
+
+ * Perl (http://www.perl.org/), version 5.005_03 or later. Perl is
+ required during build but not after installation.
+
+ * 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://ww.gnu.org/software/gettext).
+ GNU libc includes an integrated libintl, so there is no need to
+ separately install libintl on a GNU/Linux system.
+
+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.
+
+ * Cairo (http://cairographics.org/), version 1.5 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.
+
+ * pkg-config (http://pkg-config.freedesktop.org/wiki/). Versions
+ 0.18 and 0.19 have a bug that will prevent library detection,
+ but other versions should be fine.
+
+ * GTK+ (http://www.gtk.org/), version 2.12.0 or later.
+
+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.
+
+Installing the following packages will allow your PSPP binary to read
+Gnumeric files.
+
+ * zlib (http://www.zlib.net/).
+
+ * libxml2 (http://xmlsoft.org/).
+
+Installing the following packages will allow your PSPP binary to write
+OpenDocument text (ODT) files:
+
+ * libxml2 (http://xmlsoft.org/).
+
+The following packages are optional.
+
+ * libncurses (http://www.gnu.org/software/ncurses/). Without it,
+ PSPP will assume it is running in an 80x25 terminal.
+
+ * libreadline and libhistory
+ (http://tiswww.case.edu/php/chet/readline/rltop.html). Without
+ them, interactive command editing and history features in the
+ text-based user interface will be disabled.
+
+ * Texinfo (http://www.gnu.org/software/texinfo/), version 4.7 or
+ later. Installing Texinfo will allow you to build PSPP
+ documentation in PostScript or PDF format.
+
+ * libpq, from Postgresql (http://postgresql.org). This enables PSPP
+ to read Postgresql databases.
Basic Installation
==================
- These are generic installation instructions.
+These are installation instructions specific to PSPP (including PSPPIRE,
+the graphic user interface). These instructions contain the
+information most commonly needed by people wishing to build the
+program from source. More detailed information can be found in the
+generic autoconf manual which is available at
+http://www.gnu.org/software/autoconf/manual/html_node/Running-configure-Scripts.html
The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
+various system-dependent variables used during compilation.
+
+ If you need to do unusual things to compile the package, please
+report the problem to bug-gnu-pspp@gnu.org. We will try to figure out
+how `configure' could work better in your situation for the next
+release.
+
+ The simplest way to compile PSPP is:
1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
+ `./configure' to configure the package for your system.
+
+ You may invoke `configure' with --help to see what options are
+ available. The most common of these are listed under "Optional
+ Features", below.
+
+ It is best to build and install PSPP in directories whose names do
+ not contain unusual characters such as spaces or single-quotes, due
+ to limitations of the tools involved in the build process.
+
+ If you installed some of the libraries that PSPP uses in a
+ non-standard location (on many systems, anywhere other than
+ /usr), you may need to provide some special flags to `configure'
+ to tell it where to find them. For example, on GNU/Linux, if you
+ installed some libraries in /usr/local, then you need to invoke
+ it with at least the following options:
+
+ ./configure LDFLAGS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib' CPPFLAGS='-I/usr/local/include'
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
+ If `configure' completes successfully, it prints the message
+ "PSPP configured successfully." at the end of its run.
+ Otherwise, it may stop with a list of packages that you must
+ install before PSPP. If it does, you need to install those
+ packages, then re-run this step. Some prerequisites may be
+ omitted by passing a --without-<feature> flag to `configure' (see
+ "Optional Features", below). If you use one of these flags, then
+ the feature that it disables will not be available in your PSPP
+ installation.
+
+ `configure' may also print a list of packages that you should
+ consider installing. If you install them, then re-run
+ `configure', additional features will be available in your PSPP
+ installation.
+
2. Type `make' to compile the package.
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ 3. Optionally, type `make check' to run the self-tests that come
+ with the package. If any of the self-tests fail, please mail
+ bug-gnu-pspp@gnu.org with the details, to give the PSPP
+ developers an opportunity to fix the problem in the next release.
- 4. Type `make install' to install the programs and any data files and
- documentation.
+ 4. Type `make install' to install the programs and any data files
+ and documentation. Ordinarily you will need root permissions to
+ do this. The "su" and "sudo" commands are common ways to obtain
+ root permissions. If you cannot get root permissions, see
+ "Installation Names", below.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
+ a different kind of computer), type `make distclean'.
Compilers and Options
=====================
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems may require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+ See "Defining Variables", below, for more details.
Installation Names
==================
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+By default, `make install' installs PSPP's commands under
+`/usr/local/bin', data files under `/usr/local/share', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You may wish to install PSPP on a machine where you do not have
+root permissions. To do so, specify a prefix relative within your
+home directory, e.g. `--prefix=$HOME' or `--prefix=$HOME/inst'. All
+PSPP files will be installed under the prefix directory, which `make
+install' will create if necessary. You may run PSPP directly from the
+`bin' directory under the prefix directory as, e.g., `~/inst/bin/pspp'
+under most shells, or for added convenience you can add the
+installation directory to your PATH by editing a shell startup file
+such as `.bashrc'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+ You can cause programs to be installed with an extra prefix or
+suffix on their names by giving `configure' the option
+`--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
+`--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.
+
+`--with-gui-tools'
+ Build the gui developer tools. There is no reason to use this
+ option unless you're involved with the development of PSPP
+
+`--without-lib{xx}'
+ Optional libraries should normally be detected and the relevant
+ functionality will be built they exist. However, on some poorly
+ configured systems a library may exist, but be totally broken.
+ In these cases you can use --without-lib{xx} to force configure
+ to disregard it.
+
+`--without-perl-module'
+ Disable building the Perl module, in case it does not build properly
+ or you do not need it.
+
+`--enable-anachronistic-dependencies'
+ If you use this option, some of the checks for dependent libraries
+ will be relaxed, permitting configure to succeed when older versions
+ of libraries are detected. Use of this option is not recommended.
+ If you use it, some features may be missing and the build may fail
+ with obscure error messages.
+
+`--enable-relocatable'
+ This option is useful for building a package which can be installed
+ into an arbitrary directory and freely copied to any other directory.
+ If you use this option, you will probably want to install the pspp
+ with a command similar to "make install DESTDIR=<distination>".
Defining Variables
==================
- Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
./configure CC=/usr/local2/bin/gcc
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
-`configure' Invocation
-======================
+Generic `configure' Options
+===========================
- `configure' recognizes the following options to control how it
-operates.
+`configure' also recognizes the following options to control how it operates.
`--help'
`-h'
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
+----------------------------------------------------------------------
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2007 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+