work on PRINT encoding
[pspp] / INSTALL
diff --git a/INSTALL b/INSTALL
index 9ae05a33f8ac1e3f7450f11f09a453b83e72dace..183487025131b0307a127328dae1b44561dbf7a1 100644 (file)
--- a/INSTALL
+++ b/INSTALL
-Installation Instructions
-*************************
+Installation Instructions for GNU pspp
+**************************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2007 Free
-Software Foundation, Inc.
+These instructions are based on the generic GNU installation
+instructions, but they have been tailored for PSPP.
+
+Overview
+========
+
+PSPP uses the standard GNU configuration system.  Therefore, if all is well,
+the following simple procedure should work, even on non-GNU systems:
+
+ tar -xzf pspp-*.tar.gz
+ cd pspp-*
+ ./configure
+ make 
+ sudo make install
+
+Obviously, you should replace 'pspp-*' in the above, with the name of
+the tarball you are installing.  If any part of this process fails, then 
+it's likely that one or more of the necessary prerequisites is missing
+from your system.   Read on to find out how to correct this.
+
+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.
+
+    * GtkSourceView (http://projects.gnome.org/gtksourceview/) 
+      version 2.2 or later.
 
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+
+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.  The tests for the Postgresql
+      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
 ==================
@@ -20,31 +124,67 @@ http://www.gnu.org/software/autoconf/manual/html_node/Running-configure-Scripts.
    The `configure' shell script attempts to guess correct values for
 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.
 
-   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 pspp-dev@gnu.org so they can
-be considered 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.
 
-The simplest way to compile PSPP is:
+     You may invoke `configure' with --help to see what options are
+     available.  The most common of these are listed under "Optional
+     Features", below.
 
-  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.
+     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 the 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.  You will need root permissions to do this.
+  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.
+
+     Please note:  The `make install' target does NOT install the perl
+     module (see below).  To install the perl module, you must change to
+     the `perl-module' directory and manually run `make install' there.
 
   5. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
@@ -64,8 +204,11 @@ is an example:
 
      ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
 
-   *Note Defining Variables::, for more details.
+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.
 
+See "Defining Variables", below, for more details.
 
 Installation Names
 ==================
@@ -75,6 +218,16 @@ By default, `make install' installs PSPP's commands under
 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
 pass the option `--exec-prefix=PREFIX' to `configure', the package uses
@@ -93,18 +246,44 @@ suffix on their names by giving `configure' the  option
 Optional Features
 =================
 
-`--without-libplot'
-    Don't compile in support for charts (using libplot).  This is
-    useful if your system doesn't have the libplot library.
+`--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
 ==================
@@ -118,7 +297,7 @@ them in the `configure' command line, using `VAR=value'.  For example:
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).  Here is another example:
 
      /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
@@ -162,3 +341,10 @@ Generic `configure' Options
 `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.
+