checkin of 0.3.0
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 10 Dec 2003 23:56:04 +0000 (23:56 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 10 Dec 2003 23:56:04 +0000 (23:56 +0000)
33 files changed:
ABOUT-NLS [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
aclocal.m4 [new file with mode: 0644]
config.guess [new file with mode: 0755]
config.h.in [new file with mode: 0644]
config.sub [new file with mode: 0755]
config/Makefile.in [new file with mode: 0644]
configure [new file with mode: 0755]
doc/Makefile.in [new file with mode: 0644]
doc/pspp.info [new file with mode: 0644]
doc/pspp.info-1 [new file with mode: 0644]
doc/pspp.info-2 [new file with mode: 0644]
doc/pspp.info-3 [new file with mode: 0644]
doc/pspp.info-4 [new file with mode: 0644]
doc/pspp.info-5 [new file with mode: 0644]
doc/pspp.info-6 [new file with mode: 0644]
doc/pspp.info-7 [new file with mode: 0644]
doc/pspp.info-8 [new file with mode: 0644]
doc/texinfo.tex
install-sh [new file with mode: 0755]
lib/Makefile.in [new file with mode: 0644]
lib/dcdflib/Makefile.in [new file with mode: 0644]
lib/gmp/Makefile.in [new file with mode: 0644]
lib/gmp/mpf/Makefile.in [new file with mode: 0644]
lib/gmp/mpn/Makefile.in [new file with mode: 0644]
lib/julcal/Makefile.in [new file with mode: 0644]
lib/misc/Makefile.in [new file with mode: 0644]
missing [new file with mode: 0755]
mkinstalldirs [new file with mode: 0755]
po/cat-id-tbl.c [new file with mode: 0644]
po/stamp-cat-id [new file with mode: 0644]
src/Makefile.in [new file with mode: 0644]
tests/Makefile.in [new file with mode: 0644]

diff --git a/ABOUT-NLS b/ABOUT-NLS
new file mode 100644 (file)
index 0000000..90f1003
--- /dev/null
+++ b/ABOUT-NLS
@@ -0,0 +1,226 @@
+Notes on the GNU Translation Project
+************************************
+
+   GNU is going international!  The GNU Translation Project is a way to
+get maintainers, translators, and users all together, so that GNU will
+gradually become able to speak many languages.  A few packages already
+provide translations for their messages.
+
+   If you found this `ABOUT-NLS' file inside a GNU distribution, you
+may assume that the distributed package does use GNU `gettext'
+internally, itself available at your nearest GNU archive site.  But you
+do *not* need to install GNU `gettext' prior to configuring, installing
+or using this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+   When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used.  The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+One advise in advance
+=====================
+
+   If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in
+the operating system where this package is being installed.  So far, no
+prior implementation provides as many useful features (such as locale
+alias or message inheritance).  It is also not possible to offer this
+additional functionality on top of a `catgets' implementation.  Future
+versions of GNU `gettext' will very likely convey even more
+functionality.  So it might be a good idea to change to GNU `gettext'
+as soon as possible.
+
+INSTALL Matters
+===============
+
+   Some GNU packages are "localizable" when properly installed; the
+programs they contain can be made to speak your own native language.
+Most such packages use GNU `gettext'.  Other packages have their own
+ways to internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system provides
+usable `catgets' (if using this is selected by the installer) or
+`gettext' functions.  If neither is available, the GNU `gettext' own
+library will be used.  This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is *not* required.  Installers may use
+special options at configuration time for changing the default
+behaviour.  The commands:
+
+     ./configure --with-included-gettext
+     ./configure --with-catgets
+     ./configure --disable-nls
+
+will respectively bypass any pre-existing `catgets' or `gettext' to use
+the internationalizing routines provided within this package, enable
+the use of the `catgets' functions (if found on the locale system), or
+else, *totally* disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might be not what is desirable.  You
+should use the more recent version of the GNU `gettext' library.  I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+   By default the configuration process will not test for the `catgets'
+function and therefore they will not be used.  The reasons are already
+given above: the emulation on top of `catgets' cannot provide all the
+extensions provided by the GNU `gettext' library.  If you nevertheless
+want to use the `catgets' functions use
+
+     ./configure --with-catgets
+
+to enable the test for `catgets' (this causes no harm if `catgets' is
+not available on your system).  If you really select this option we
+would like to hear about the reasons because we cannot think of any
+good one ourself.
+
+   Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+   As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+ISO 639 `LL' two-letter code prior to using the programs in the
+package.  For example, let's suppose that you speak German.  At the
+shell prompt, merely execute `setenv LANG de' (in `csh'),
+`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash').  This
+can be done from your `.login' or `.profile' file, once and for all.
+
+   An operating system might already offer message localization for
+many of its programs, while other programs (whether GNU or not) have
+been installed locally with the full capabilities of GNU `gettext'.
+Just using `gettext' extended syntax for `LANG' would break proper
+localization of already available operating system programs.  In this
+case, users should set both `LANGUAGE' and `LANG' variables in their
+environment, as programs using GNU `gettext' give preference to
+`LANGUAGE'.  For example, some Swedish users would rather read
+translations in German than English for when Swedish is not available.
+This is easily accomplished by setting `LANGUAGE' to `sv:de' while
+leaving `LANG' to `sv'.
+
+Translating Teams
+=================
+
+   For the GNU Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list, courtesy of Linux
+International.  You may reach your translation team at the address
+`LL@li.org', replacing LL by the two-letter ISO 639 code for your
+language.  Language codes are *not* the same as the country codes given
+in ISO 3166.  The following translation teams exist, as of February
+1997:
+
+     Arabic `ar', Chinese `zh', Czech `cs', Danish `da', Dutch `nl',
+     English `en', Esperanto `eo', Finnish `fi', French `fr', German
+     `de', Greek `el', Hebrew `he', Hungarian `hu', Irish `ga', Italian
+     `it', Indonesian `id', Japanese `ja', Korean `ko', Latin `la',
+     Norwegian `no', Persian `fa', Polish `pl', Portuguese `pt',
+     Russian `ru', Slovenian `sl', Spanish `es', Swedish `sv', Telugu
+     `te', Turkish `tr' and Ukrainian `uk'.
+
+For example, you may reach the Chinese translation team by writing to
+`zh@li.org'.
+
+   If you'd like to volunteer to *work* at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is *not* the same as the list itself, it has
+`-request' appended.  For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+     subscribe
+
+   Keep in mind that team members are expected to participate
+*actively* in translations, or at solving translational difficulties,
+rather than merely lurking around.  If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `gnu-translation@gnu.org' to reach
+the GNU coordinator for all translator teams.
+
+   The English team is special.  It works at improving and uniformizing
+the terminology used in GNU.  Proven linguistic skill are praised more
+than programming skill, here.  For the time being, please avoid
+subscribing to the English team unless explicitly invited to do so.
+
+Available Packages
+==================
+
+   Languages are not equally supported in all GNU packages.  The
+following matrix shows the current state of GNU internationalization,
+as of February 1997.  The matrix shows, in regard of each package, for
+which languages PO files have been submitted to translation
+coordination.
+
+     Ready PO files    cs de en es fi fr ja ko nl no pl pt sl sv
+                     .-------------------------------------------.
+     bash            |    []          []       []                |  3
+     bison           |    []          []       []                |  3
+     clisp           |    [] []       []                         |  3
+     cpio            |    []    []    []       []    []          |  5
+     diffutils       |          []    []             []       [] |  4
+     enscript        |    []       [] []       []          []    |  5
+     fileutils       |    []    []    []       []    [] [] [] [] |  8
+     findutils       |    []    []    []    [] []    []       [] |  7
+     flex            |                []    []                [] |  3
+     gcal            |    []          []       []                |  3
+     gettext         |    []    []    []    [] [] [] [] [] [] [] | 11
+     grep            |          []    []    [] [] [] []    [] [] |  8
+     hello           |    []    []    []    [] [] [] [] [] [] [] | 10
+     id-utils        |    []          []                         |  2
+     indent          |    []                []                   |  2
+     libc            |    []    []    []    [] []    []       [] |  7
+     m4              |    []          [] []    []             [] |  5
+     make            |    []    []    []    [] []    []          |  6
+     music           |                []                         |  1
+     ptx             |    []    []    []       [] [] [] []    [] |  8
+     recode          |    []    []    []       []    [] [] [] [] |  8
+     sh-utils        |    []          []       []       []    [] |  5
+     sharutils       |    []    []    []       []             [] |  5
+     tar             |    []          []    [] [] [] [] [] [] [] |  9
+     texinfo         |                                           |  0
+     textutils       |    []    []    []    [] []    []          |  6
+     wdiff           | [] []    []    []       [] [] []       [] |  8
+                     `-------------------------------------------'
+       14 languages    cs de en es fi fr ja ko nl no pl pt sl sv
+       27 packages      1 22  1 14  1 25  1 10 20  7 14  7  7 15  145
+
+   Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect.  This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+   For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer.  There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+GNU distribution.
+
+   If February 1997 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites.
+
diff --git a/Makefile.in b/Makefile.in
new file mode 100644 (file)
index 0000000..0f22659
--- /dev/null
@@ -0,0 +1,436 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+AUTOMAKE_OPTIONS = gnits 1.4
+
+SUBDIRS = doc intl po lib src config tests
+
+pkgdocdir = $(prefix)/doc/@PACKAGE@
+pkgdoc_DATA = NEWS README TODO
+noinst_DATA = AUTHORS THANKS
+
+DISTCLEANFILES = pref.h
+
+EXTRA_DIST = NEWS ONEWS TODO pref.h.orig reconfigure configure
+
+MAINTAINERCLEANFILES = Makefile.in configure aclocal.m4 config.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = 
+DATA =  $(noinst_DATA) $(pkgdoc_DATA)
+
+DIST_COMMON =  README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
+INSTALL Makefile.am Makefile.in NEWS THANKS TODO acconfig.h \
+acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \
+configure.in install-sh missing mkinstalldirs
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4):  configure.in  acinclude.m4
+       cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       $(SHELL) ./config.status --recheck
+$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+       cd $(srcdir) && $(AUTOCONF)
+
+config.h: stamp-h
+       @if test ! -f $@; then \
+               rm -f stamp-h; \
+               $(MAKE) stamp-h; \
+       else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES= CONFIG_HEADERS=config.h \
+            $(SHELL) ./config.status
+       @echo timestamp > stamp-h 2> /dev/null
+$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+       @if test ! -f $@; then \
+               rm -f $(srcdir)/stamp-h.in; \
+               $(MAKE) $(srcdir)/stamp-h.in; \
+       else :; fi
+$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+       cd $(top_srcdir) && $(AUTOHEADER)
+       @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
+
+mostlyclean-hdr:
+
+clean-hdr:
+
+distclean-hdr:
+       -rm -f config.h
+
+maintainer-clean-hdr:
+
+install-pkgdocDATA: $(pkgdoc_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+       @list='$(pkgdoc_DATA)'; for p in $$list; do \
+         if test -f $(srcdir)/$$p; then \
+           echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdocdir)/$$p"; \
+           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdocdir)/$$p; \
+         else if test -f $$p; then \
+           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdocdir)/$$p"; \
+           $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdocdir)/$$p; \
+         fi; fi; \
+       done
+
+uninstall-pkgdocDATA:
+       @$(NORMAL_UNINSTALL)
+       list='$(pkgdoc_DATA)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(pkgdocdir)/$$p; \
+       done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+         rev="$$subdir $$rev"; \
+         test "$$subdir" = "." && dot_seen=yes; \
+       done; \
+       test "$$dot_seen" = "no" && rev=". $$rev"; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       -rm -rf $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+       mkdir $(distdir)/=build
+       mkdir $(distdir)/=inst
+       dc_install_base=`cd $(distdir)/=inst && pwd`; \
+       cd $(distdir)/=build \
+         && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) dist
+       -rm -rf $(distdir)
+       @banner="$(distdir).tar.gz is ready for distribution"; \
+       dashes=`echo "$$banner" | sed s/./=/g`; \
+       echo "$$dashes"; \
+       echo "$$banner"; \
+       echo "$$dashes"
+dist: distdir
+       -chmod -R a+r $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+       -rm -rf $(distdir)
+dist-all: distdir
+       -chmod -R a+r $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+       -rm -rf $(distdir)
+distdir: $(DISTFILES)
+       @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \
+         echo "NEWS not updated; not releasing" 1>&2; \
+         exit 1; \
+       fi
+       -rm -rf $(distdir)
+       mkdir $(distdir)
+       -chmod 777 $(distdir)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       for subdir in $(SUBDIRS); do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           chmod 777 $(distdir)/$$subdir; \
+           (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+             || exit 1; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+all-recursive-am: config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am: install-pkgdocDATA
+install-data: install-data-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am: uninstall-pkgdocDATA
+uninstall: uninstall-recursive
+all-am: Makefile $(DATA) config.h
+all-redirect: all-recursive-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+       $(mkinstalldirs)  $(DESTDIR)$(pkgdocdir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+       -rm -f config.status
+
+maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f config.status
+
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+uninstall-pkgdocDATA install-pkgdocDATA install-data-recursive \
+uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+dist-hook:
+       cp -rp $(top_srcdir)/sysdeps $(distdir)
+       cp -rp $(top_srcdir)/examples $(distdir)
+
+# A `private installation' in my terms is just having the appropriate
+# configuration files in ~/.pspp instead of a global configuration
+# location.  So I let those files be installed automatically.
+
+private-install:
+       $(MAKE) private-install -C config
+private-uninstall:
+       $(MAKE) private-uninstall -C config
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644 (file)
index 0000000..a5dd349
--- /dev/null
@@ -0,0 +1,671 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+dnl --------------------------------------------------------- ##
+dnl The following definitions are from gettext-0.10.27.              ##
+dnl --------------------------------------------------------- ##
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 2
+
+AC_DEFUN(AM_WITH_NLS,
+  [AC_MSG_CHECKING([whether NLS is requested])
+    dnl Default is enabled NLS
+    AC_ARG_ENABLE(nls,
+      [  --disable-nls           do not use Native Language Support],
+      USE_NLS=$enableval, USE_NLS=yes)
+    AC_MSG_RESULT($USE_NLS)
+    AC_SUBST(USE_NLS)
+
+    USE_INCLUDED_LIBINTL=no
+
+    dnl If we use NLS figure out what method
+    if test "$USE_NLS" = "yes"; then
+      AC_DEFINE(ENABLE_NLS)
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If gettext or catgets are available (in this order) we
+        dnl use this.  Else we have to fall back to GNU NLS library.
+       dnl catgets is only used if permitted by option --with-catgets.
+       nls_cv_header_intl=
+       nls_cv_header_libgt=
+       CATOBJEXT=NONE
+
+       AC_CHECK_HEADER(libintl.h,
+         [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
+           [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
+              gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+
+          if test "$gt_cv_func_gettext_libc" != "yes"; then
+            AC_CHECK_LIB(intl, bindtextdomain,
+              [AC_CACHE_CHECK([for gettext in libintl],
+                gt_cv_func_gettext_libintl,
+                [AC_TRY_LINK([], [return (int) gettext ("")],
+                gt_cv_func_gettext_libintl=yes,
+                gt_cv_func_gettext_libintl=no)])])
+          fi
+
+          if test "$gt_cv_func_gettext_libc" = "yes" \
+             || test "$gt_cv_func_gettext_libintl" = "yes"; then
+             AC_DEFINE(HAVE_GETTEXT)
+             AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+               [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+             if test "$MSGFMT" != "no"; then
+               AC_CHECK_FUNCS(dcgettext)
+               AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+               AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+                 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+               AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+                              return _nl_msg_cat_cntr],
+                 [CATOBJEXT=.gmo
+                  DATADIRNAME=share],
+                 [CATOBJEXT=.mo
+                  DATADIRNAME=lib])
+               INSTOBJEXT=.mo
+             fi
+           fi
+       ])
+
+        if test "$CATOBJEXT" = "NONE"; then
+         AC_MSG_CHECKING([whether catgets can be used])
+         AC_ARG_WITH(catgets,
+           [  --with-catgets          use catgets functions if available],
+           nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+         AC_MSG_RESULT($nls_cv_use_catgets)
+
+         if test "$nls_cv_use_catgets" = "yes"; then
+           dnl No gettext in C library.  Try catgets next.
+           AC_CHECK_LIB(i, main)
+           AC_CHECK_FUNC(catgets,
+             [AC_DEFINE(HAVE_CATGETS)
+              INTLOBJS="\$(CATOBJS)"
+              AC_PATH_PROG(GENCAT, gencat, no)dnl
+              if test "$GENCAT" != "no"; then
+                AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+                if test "$GMSGFMT" = "no"; then
+                  AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
+                fi
+                AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+                  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+                USE_INCLUDED_LIBINTL=yes
+                CATOBJEXT=.cat
+                INSTOBJEXT=.cat
+                DATADIRNAME=lib
+                INTLDEPS="../intl/libintl.a"
+                INTLLIBS=$INTLDEPS
+                LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+                nls_cv_header_intl=intl/libintl.h
+                nls_cv_header_libgt=intl/libgettext.h
+              fi])
+         fi
+        fi
+
+        if test "$CATOBJEXT" = "NONE"; then
+         dnl Neither gettext nor catgets in included in the C library.
+         dnl Fall back on GNU gettext library.
+         nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        INTLOBJS="\$(GETTOBJS)"
+        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+         [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+         [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+        AC_SUBST(MSGFMT)
+       USE_INCLUDED_LIBINTL=yes
+        CATOBJEXT=.gmo
+        INSTOBJEXT=.mo
+        DATADIRNAME=share
+       INTLDEPS="../intl/libintl.a"
+       INTLLIBS=$INTLDEPS
+       LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+        nls_cv_header_intl=intl/libintl.h
+        nls_cv_header_libgt=intl/libgettext.h
+      fi
+
+      dnl Test whether we really found GNU xgettext.
+      if test "$XGETTEXT" != ":"; then
+       dnl If it is no GNU xgettext we define it as : so that the
+       dnl Makefiles still can work.
+       if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+         : ;
+       else
+         AC_MSG_RESULT(
+           [found xgettext programs is not GNU xgettext; ignore it])
+         XGETTEXT=":"
+       fi
+      fi
+
+      # We need to process the po/ directory.
+      POSUB=po
+    else
+      DATADIRNAME=share
+      nls_cv_header_intl=intl/libintl.h
+      nls_cv_header_libgt=intl/libgettext.h
+    fi
+
+    # If this is used in GNU gettext we have to set USE_NLS to `yes'
+    # because some of the sources are only built for this goal.
+    if test "$PACKAGE" = gettext; then
+      USE_NLS=yes
+      USE_INCLUDED_LIBINTL=yes
+    fi
+
+    dnl These rules are solely for the distribution goal.  While doing this
+    dnl we only have to keep exactly one list of the available catalogs
+    dnl in configure.in.
+    for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATALOGS)
+    AC_SUBST(CATOBJEXT)
+    AC_SUBST(DATADIRNAME)
+    AC_SUBST(GMOFILES)
+    AC_SUBST(INSTOBJEXT)
+    AC_SUBST(INTLDEPS)
+    AC_SUBST(INTLLIBS)
+    AC_SUBST(INTLOBJS)
+    AC_SUBST(POFILES)
+    AC_SUBST(POSUB)
+  ])
+
+AC_DEFUN(AM_GNU_GETTEXT,
+  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+   AC_REQUIRE([AC_PROG_CC])dnl
+   AC_REQUIRE([AC_ISC_POSIX])dnl
+   AC_REQUIRE([AC_HEADER_STDC])dnl
+   AC_REQUIRE([AC_C_CONST])dnl
+   AC_REQUIRE([AC_C_INLINE])dnl
+   AC_REQUIRE([AC_TYPE_OFF_T])dnl
+   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+   AC_REQUIRE([AC_FUNC_MMAP])dnl
+
+   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h values.h])
+   AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next])
+
+   if test "${ac_cv_func_stpcpy+set}" != "set"; then
+     AC_CHECK_FUNCS(stpcpy)
+   fi
+   if test "${ac_cv_func_stpcpy}" = "yes"; then
+     AC_DEFINE(HAVE_STPCPY)
+   fi
+
+   AM_LC_MESSAGES
+   AM_WITH_NLS
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       AC_MSG_CHECKING(for catalogs to be installed)
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       AC_MSG_RESULT($LINGUAS)
+     fi
+
+     dnl Construct list of names of catalog files to be constructed.
+     if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+   dnl Determine which catalog format we have (if any is needed)
+   dnl For now we know about two different formats:
+   dnl   Linux libc-5 and the normal X/Open format
+   test -d intl || mkdir intl
+   if test "$CATOBJEXT" = ".cat"; then
+     AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
+
+     dnl Transform the SED scripts while copying because some dumb SEDs
+     dnl cannot handle comments.
+     sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+   fi
+   dnl po2tbl.sed is always needed.
+   sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+     $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+   dnl In the intl/Makefile.in we have a special dependency which makes
+   dnl only sense for gettext.  We comment this out for non-gettext
+   dnl packages.
+   if test "$PACKAGE" = "gettext"; then
+     GT_NO="#NO#"
+     GT_YES=
+   else
+     GT_NO=
+     GT_YES="#YES#"
+   fi
+   AC_SUBST(GT_NO)
+   AC_SUBST(GT_YES)
+
+   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+   dnl Try to locate is.
+   MKINSTALLDIRS=
+   if test $ac_aux_dir; then
+     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+   fi
+   if test -z $MKINSTALLDIRS; then
+     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+   fi
+   AC_SUBST(MKINSTALLDIRS)
+
+   dnl Configure the intl/Makefile for shared libs.
+   if test "${enable_shared+set}" = set; then
+     l=l
+   else
+     l=
+   fi
+   AC_SUBST(l)
+
+   dnl Generate list of files to be processed by xgettext which will
+   dnl be included in po/Makefile.
+   test -d po || mkdir po
+   if test "x$srcdir" != "x."; then
+     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+       posrcprefix="$srcdir/"
+     else
+       posrcprefix="../$srcdir/"
+     fi
+   else
+     posrcprefix="../"
+   fi
+   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+  ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# serial 1
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN(AM_PATH_PROG_WITH_TEST,
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+       ac_cv_path_$1="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 1
+
+AC_DEFUN(AM_LC_MESSAGES,
+  [if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES)
+    fi
+  fi])
+
+dnl Check longest integer in digits.
+
+AC_DEFUN([BLP_INT_DIGITS],
+[
+AC_MSG_CHECKING(number of digits in LONG_MIN (incl. sign))
+AC_CACHE_VAL(blp_int_digits,
+            [AC_TRY_RUN([#include <stdio.h>
+                          #include <limits.h>
+                         int
+                         main()
+                         {
+                           int len;
+                           char s[80];
+                           sprintf(s, "%ld", LONG_MAX);
+                           len = strlen(s);
+                           sprintf(s, "%ld", LONG_MIN);
+                           if(strlen(s)>len) len=strlen(s);
+                           sprintf(s, "%lu", ULONG_MAX);
+                           if(strlen(s)>len) len=strlen(s);
+                           exit(len);
+                         }
+                        ],
+                        eval "blp_int_digits=19",
+                        eval "blp_int_digits=$?"
+                        if test "$blp_int_digits" -lt 11; then
+                          blp_int_digits=11
+                        fi,
+                        eval "blp_int_digits=19")
+            ])
+AC_DEFINE_UNQUOTED(INT_DIGITS, $blp_int_digits)
+AC_MSG_RESULT($blp_int_digits)
+])dnl
+
+dnl Check quality of this machine's sprintf implementation.
+
+AC_DEFUN([BLP_IS_SPRINTF_GOOD],
+[
+AC_MSG_CHECKING(if sprintf returns a char count)
+AC_CACHE_VAL(blp_is_sprintf_good,
+             [AC_TRY_RUN([#include <stdio.h>
+                          int 
+                          main()
+                          {
+                            char s[8];
+                            exit((int)sprintf(s, "abcdefg")!=7);
+                          }
+                         ], 
+                         eval "blp_is_sprintf_good=yes",
+                        eval "blp_is_sprintf_good=no",
+                        eval "blp_is_sprintf_good=no")
+             ])
+if test "$blp_is_sprintf_good" = yes; then
+  AC_DEFINE(HAVE_GOOD_SPRINTF)
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_RESULT(no)
+fi
+])dnl
+
+dnl Check for proper random number generator.
+
+AC_DEFUN([BLP_RANDOM],
+[
+AC_MSG_CHECKING(random number generator)
+AC_CACHE_VAL(blp_random_good, 
+  AC_TRY_COMPILE([#include <stdlib.h>], [int x=RAND_MAX;], 
+    blp_random_good=yes, blp_random_good=no))
+if test "$blp_random_good" = yes; then
+  AC_DEFINE(HAVE_GOOD_RANDOM)
+  AC_MSG_RESULT(good)
+else
+  AC_MSG_RESULT(bad)
+fi
+])dnl
+
+dnl aclocal.m4 ends here
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+AC_DEFUN(AM_CONFIG_HEADER,
+[AC_PREREQ([2.12])
+AC_CONFIG_HEADER([$1])
+dnl When config.status generates a header, we must update the stamp-h file.
+dnl This file resides in the same directory as the config header
+dnl that is generated.  We must strip everything past the first ":",
+dnl and everything past the last "/".
+AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
+ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
+<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
+<<am_indx=1
+for am_file in <<$1>>; do
+  case " <<$>>CONFIG_HEADERS " in
+  *" <<$>>am_file "*<<)>>
+    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+    ;;
+  esac
+  am_indx=`expr "<<$>>am_indx" + 1`
+done<<>>dnl>>)
+changequote([,]))])
+
+
+# serial 1
+
+# @defmac AC_PROG_CC_STDC
+# @maindex PROG_CC_STDC
+# @ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @code{CC} to make it so.  This macro tries various
+# options that select ANSI C on some system or another.  It considers the
+# compiler to be in ANSI C mode if it handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @code{ansi2knr}, which comes with Ghostscript.
+# @end defmac
+
+AC_DEFUN(AM_PROG_CC_STDC,
+[AC_REQUIRE([AC_PROG_CC])
+AC_BEFORE([$0], [AC_C_INLINE])
+AC_BEFORE([$0], [AC_C_CONST])
+dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
+dnl a magic option to avoid problems with ANSI preprocessor commands
+dnl like #elif.
+dnl FIXME: can't do this because then AC_AIX won't work due to a
+dnl circular dependency.
+dnl AC_BEFORE([$0], [AC_PROG_CPP])
+AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_CACHE_VAL(am_cv_prog_cc_stdc,
+[am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX                        -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  AC_TRY_COMPILE(
+[#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+], [
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+],
+[am_cv_prog_cc_stdc="$ac_arg"; break])
+done
+CC="$ac_save_CC"
+])
+if test -z "$am_cv_prog_cc_stdc"; then
+  AC_MSG_RESULT([none needed])
+else
+  AC_MSG_RESULT($am_cv_prog_cc_stdc)
+fi
+case "x$am_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+])
+
+# Do all the work for Automake.  This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   if test "[$]*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftestfile`
+   fi
+   if test "[$]*" != "X $srcdir/configure conftestfile" \
+      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "[$]2" = conftestfile
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN(AM_MISSING_PROG,
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+   $1=$2
+   AC_MSG_RESULT(found)
+else
+   $1="$3/missing $2"
+   AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+
+# serial 1
+
+AC_DEFUN(AM_C_PROTOTYPES,
+[AC_REQUIRE([AM_PROG_CC_STDC])
+AC_REQUIRE([AC_PROG_CPP])
+AC_MSG_CHECKING([for function prototypes])
+if test "$am_cv_prog_cc_stdc" != no; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes])
+  U= ANSI2KNR=
+else
+  AC_MSG_RESULT(no)
+  U=_ ANSI2KNR=./ansi2knr
+  # Ensure some checks needed by ansi2knr itself.
+  AC_HEADER_STDC
+  AC_CHECK_HEADERS(string.h)
+fi
+AC_SUBST(U)dnl
+AC_SUBST(ANSI2KNR)dnl
+])
+
diff --git a/config.guess b/config.guess
new file mode 100755 (executable)
index 0000000..19066fb
--- /dev/null
@@ -0,0 +1,539 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Written by Per Bothner <bothner@cygnus.com>.
+# The master version of this file is at the FSF in /home/gd/gnu/lib.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit system type (host/target name).
+#
+# Only a few systems have been added to this list; please add others
+# (but try to keep the structure clean).
+#
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 8/24/94.)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    alpha:OSF1:V*:*)
+       # After 1.2, OSF1 uses "V1.3" for uname -r.
+       echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
+       exit 0 ;;
+    alpha:OSF1:*:*)
+       # 1.2 uses "1.2" for uname -r.
+       echo alpha-dec-osf${UNAME_RELEASE}
+        exit 0 ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit 0 ;;
+    amiga:NetBSD:*:*)
+      echo m68k-cbm-netbsd${UNAME_RELEASE}
+      exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit 0;;
+    Pyramid*:OSx*:*:*)
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit 0 ;;
+    sun4*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    i86pc:SunOS:5.*:*)
+       echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit 0 ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:NetBSD:*:*)
+       echo m68k-atari-netbsd${UNAME_RELEASE}
+       exit 0 ;;
+    sun3*:NetBSD:*:*)
+       echo m68k-sun-netbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mac68k:NetBSD:*:*)
+       echo m68k-apple-netbsd${UNAME_RELEASE}
+       exit 0 ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    mips:*:5*:RISCos)
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit 0 ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit 0 ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit 0 ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    AViiON:dgux:*:*)
+       if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
+            -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+       else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+       fi
+       exit 0 ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit 0 ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit 0 ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit 0 ;;
+   ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i[34]86:AIX:*:*)
+       echo i386-ibm-aix
+       exit 0 ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               sed 's/^                //' << EOF >dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+               rm -f dummy.c dummy
+               echo rs6000-ibm-aix3.2.5
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit 0 ;;
+    *:AIX:*:4)
+       if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if grep bos410 /usr/include/stdio.h >/dev/null 2>&1; then
+               IBM_REV=4.1
+       elif grep bos411 /usr/include/stdio.h >/dev/null 2>&1; then
+               IBM_REV=4.1.1
+       else
+               IBM_REV=4.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit 0 ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to 
+       exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit 0 ;;
+    9000/[3478]??:HP-UX:*:*)
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/7?? | 9000/8?7 ) HP_ARCH=hppa1.1 ;;
+           9000/8?? )            HP_ARCH=hppa1.0 ;;
+       esac
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit 0 ;;
+    3050*:HI-UX:*:*)
+       sed 's/^        //' << EOF >dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+       rm -f dummy.c dummy
+       echo unknown-hitachi-hiuxwe2
+       exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit 0 ;;
+    hp7??:OSF1:*:* | hp8?7:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit 0 ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit 0 ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*X-MP:*:*:*)
+       echo xmp-cray-unicos
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE}
+       exit 0 ;;
+    CRAY*C90:*:*:*)
+       echo c90-cray-unicos${UNAME_RELEASE}
+       exit 0 ;;
+    CRAY-2:*:*:*)
+       echo cray2-cray-unicos
+        exit 0 ;;
+    hp3[0-9][05]:NetBSD:*:*)
+       echo m68k-hp-netbsd${UNAME_RELEASE}
+       exit 0 ;;
+    i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    *:FreeBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit 0 ;;
+    *:NetBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       exit 0 ;;
+    *:GNU:*:*)
+       echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit 0 ;;
+    *:Linux:*:*)
+       # Systems without a BFD linker
+       if test -d /usr/lib/ldscripts/. ; then
+         :
+       else
+         echo "${UNAME_MACHINE}-unknown-linuxoldld"
+         exit 0
+       fi
+       # Determine whether the default compiler is a.out or elf
+       cat >dummy.c <<EOF
+main(argc, argv)
+int argc;
+char *argv[];
+{
+#ifdef __ELF__
+  printf ("%s-unknown-linux\n", argv[1]);
+#else
+  printf ("%s-unknown-linuxaout\n", argv[1]);
+#endif
+  return 0;
+}
+EOF
+       ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
+       rm -f dummy.c dummy;;
+# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
+# are messed up and put the nodename in both sysname and nodename.
+    i[34]86:DYNIX/ptx:4*:*)
+       echo i386-sequent-sysv4
+       exit 0 ;;
+    i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+       else
+               echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
+       fi
+       exit 0 ;;
+    i[34]86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+               echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-unknown-sysv32
+       fi
+       exit 0 ;;
+    Intel:Mach:3*:*)
+       echo i386-unknown-mach3
+       exit 0 ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit 0 ;;
+    M680[234]0:*:R3V[567]*:*)
+       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
+        uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4.3 && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m680[234]0:LynxOS:2.2*:*)
+       echo m68k-lynx-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit 0 ;;
+    i[34]86:LynxOS:2.2*:*)
+       echo i386-lynx-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    TSUNAMI:LynxOS:2.2*:*)
+       echo sparc-lynx-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    rs6000:LynxOS:2.2*:*)
+       echo rs6000-lynx-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+cat >dummy.c <<EOF
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+         ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  printf ("%s-next-nextstep%s\n", __ARCHITECTURE__,  version==2 ? "2" : "3");
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-unknown-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+  printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+  printf ("vax-dec-bsd\n"); exit (0);
+#else
+  printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
+rm -f dummy.c dummy
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit 0 ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit 0 ;;
+    c34*)
+       echo c34-convex-bsd
+       exit 0 ;;
+    c38*)
+       echo c38-convex-bsd
+       exit 0 ;;
+    c4*)
+       echo c4-convex-bsd
+       exit 0 ;;
+    esac
+fi
+
+#echo '(Unable to guess system type)' 1>&2
+
+exit 1
diff --git a/config.h.in b/config.h.in
new file mode 100644 (file)
index 0000000..1e0b02b
--- /dev/null
@@ -0,0 +1,339 @@
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+/* Special definitions, to process by autoheader.
+   Copyright (C) 1997-9, 2000 Free Software Foundation. */
+
+/* Definitions for byte order, according to significance of bytes, from low
+   addresses to high addresses.  The value is what you get by putting '4'
+   in the most significant byte, '3' in the second most significant byte,
+   '2' in the second least significant byte, and '1' in the least
+   significant byte.  These definitions never need to be modified. */
+#define BIG    4321    /* 68k */
+#define LITTLE  1234   /* i[3456]86 */
+#define UNKNOWN 0000   /* Endianness must be determined at runtime. */
+
+/* Definitions for floating-point representation. */
+#define FPREP_IEEE754  754     /* The usual IEEE-754 format. */
+#define FPREP_UNKNOWN  666     /* Triggers an error at compile time. */
+
+/* We want prototypes for all the GNU extensions. */
+#define _GNU_SOURCE    1
+
+/* Name of the distribution. */
+#define PACKAGE "PSPP"
+
+/* Version of the distribution. */
+#undef VERSION
+
+/* The concatenation of the strings "GNU ", and PACKAGE.  */
+#define GNU_PACKAGE "GNU PSPP"
+
+/* Define to 1 if ANSI function prototypes are usable.  */
+#undef PROTOTYPES
+
+
+
+/* Define if using alloca.c.  */
+#undef C_ALLOCA
+
+/* Define to empty if the keyword does not work.  */
+#undef const
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro.  */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+#undef HAVE_ALLOCA_H
+
+/* Define if you don't have vprintf but do have _doprnt.  */
+#undef HAVE_DOPRNT
+
+/* Define if you have a working `mmap' system call.  */
+#undef HAVE_MMAP
+
+/* Define if you have the vprintf function.  */
+#undef HAVE_VPRINTF
+
+/* Define as __inline if that's what the C compiler calls it.  */
+#undef inline
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef off_t
+
+/* Define if you need to in order for stat and other things to work.  */
+#undef _POSIX_SOURCE
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+#undef size_t
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
+#undef STAT_MACROS_BROKEN
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/* Define if you can safely include both <sys/time.h> and <time.h>.  */
+#undef TIME_WITH_SYS_TIME
+
+/* Define if your <sys/time.h> declares struct tm.  */
+#undef TM_IN_SYS_TIME
+
+/* Define if sprintf() returns the number of characters written to
+   the destination string, excluding the null terminator. */
+#undef HAVE_GOOD_SPRINTF
+
+/* Define if rand() and company work according to ANSI. */
+#undef HAVE_GOOD_RANDOM
+
+/* Define endianness of computer here as BIG or LITTLE, if known.
+   If not known, define as UNKNOWN. */
+#define ENDIAN BIG
+
+/* Define as floating-point representation of this computer.  For
+   i386, m68k, and other common chips, this is FPREP_IEEE754. */
+#define FPREP FPREP_IEEE754
+
+/* Number of digits in longest `long' value, including sign.  This is
+   usually 11, for 32-bit `long's, or 19, for 64-bit `long's. */
+#define INT_DIGITS 19
+
+/* Define if you have the history library (-lhistory).  */
+#undef HAVE_LIBHISTORY
+
+/* Define if you have the termcap library (-ltermcap).  */
+#undef HAVE_LIBTERMCAP
+
+/* Define if your locale.h file contains LC_MESSAGES.  */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if NLS is requested.  */
+#undef ENABLE_NLS
+
+/* Define as 1 if you have catgets and don't want to use GNU gettext.  */
+#undef HAVE_CATGETS
+
+/* Define as 1 if you have gettext and don't want to use GNU gettext.  */
+#undef HAVE_GETTEXT
+
+/* Define as 1 if you have the stpcpy function.  */
+#undef HAVE_STPCPY
+
+/* The number of bytes in a double.  */
+#undef SIZEOF_DOUBLE
+
+/* The number of bytes in a float.  */
+#undef SIZEOF_FLOAT
+
+/* The number of bytes in a int.  */
+#undef SIZEOF_INT
+
+/* The number of bytes in a long.  */
+#undef SIZEOF_LONG
+
+/* The number of bytes in a long double.  */
+#undef SIZEOF_LONG_DOUBLE
+
+/* The number of bytes in a long long.  */
+#undef SIZEOF_LONG_LONG
+
+/* The number of bytes in a short.  */
+#undef SIZEOF_SHORT
+
+/* Define if you have the __argz_count function.  */
+#undef HAVE___ARGZ_COUNT
+
+/* Define if you have the __argz_next function.  */
+#undef HAVE___ARGZ_NEXT
+
+/* Define if you have the __argz_stringify function.  */
+#undef HAVE___ARGZ_STRINGIFY
+
+/* Define if you have the __setfpucw function.  */
+#undef HAVE___SETFPUCW
+
+/* Define if you have the dcgettext function.  */
+#undef HAVE_DCGETTEXT
+
+/* Define if you have the feholdexcept function.  */
+#undef HAVE_FEHOLDEXCEPT
+
+/* Define if you have the finite function.  */
+#undef HAVE_FINITE
+
+/* Define if you have the getcwd function.  */
+#undef HAVE_GETCWD
+
+/* Define if you have the getdelim function.  */
+#undef HAVE_GETDELIM
+
+/* Define if you have the gethostname function.  */
+#undef HAVE_GETHOSTNAME
+
+/* Define if you have the getline function.  */
+#undef HAVE_GETLINE
+
+/* Define if you have the getpagesize function.  */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the getpid function.  */
+#undef HAVE_GETPID
+
+/* Define if you have the isinf function.  */
+#undef HAVE_ISINF
+
+/* Define if you have the isnan function.  */
+#undef HAVE_ISNAN
+
+/* Define if you have the memchr function.  */
+#undef HAVE_MEMCHR
+
+/* Define if you have the memmem function.  */
+#undef HAVE_MEMMEM
+
+/* Define if you have the memmove function.  */
+#undef HAVE_MEMMOVE
+
+/* Define if you have the memset function.  */
+#undef HAVE_MEMSET
+
+/* Define if you have the munmap function.  */
+#undef HAVE_MUNMAP
+
+/* Define if you have the putenv function.  */
+#undef HAVE_PUTENV
+
+/* Define if you have the setenv function.  */
+#undef HAVE_SETENV
+
+/* Define if you have the setlocale function.  */
+#undef HAVE_SETLOCALE
+
+/* Define if you have the stpcpy function.  */
+#undef HAVE_STPCPY
+
+/* Define if you have the strcasecmp function.  */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function.  */
+#undef HAVE_STRCHR
+
+/* Define if you have the strerror function.  */
+#undef HAVE_STRERROR
+
+/* Define if you have the strncasecmp function.  */
+#undef HAVE_STRNCASECMP
+
+/* Define if you have the strpbrk function.  */
+#undef HAVE_STRPBRK
+
+/* Define if you have the strstr function.  */
+#undef HAVE_STRSTR
+
+/* Define if you have the strtod function.  */
+#undef HAVE_STRTOD
+
+/* Define if you have the strtok_r function.  */
+#undef HAVE_STRTOK_R
+
+/* Define if you have the strtol function.  */
+#undef HAVE_STRTOL
+
+/* Define if you have the strtoul function.  */
+#undef HAVE_STRTOUL
+
+/* Define if you have the <argz.h> header file.  */
+#undef HAVE_ARGZ_H
+
+/* Define if you have the <fenv.h> header file.  */
+#undef HAVE_FENV_H
+
+/* Define if you have the <fpu_control.h> header file.  */
+#undef HAVE_FPU_CONTROL_H
+
+/* Define if you have the <ieeefp.h> header file.  */
+#undef HAVE_IEEEFP_H
+
+/* Define if you have the <limits.h> header file.  */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <locale.h> header file.  */
+#undef HAVE_LOCALE_H
+
+/* Define if you have the <malloc.h> header file.  */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <memory.h> header file.  */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <nl_types.h> header file.  */
+#undef HAVE_NL_TYPES_H
+
+/* Define if you have the <readline/history.h> header file.  */
+#undef HAVE_READLINE_HISTORY_H
+
+/* Define if you have the <readline/readline.h> header file.  */
+#undef HAVE_READLINE_READLINE_H
+
+/* Define if you have the <string.h> header file.  */
+#undef HAVE_STRING_H
+
+/* Define if you have the <sys/mman.h> header file.  */
+#undef HAVE_SYS_MMAN_H
+
+/* Define if you have the <sys/stat.h> header file.  */
+#undef HAVE_SYS_STAT_H
+
+/* Define if you have the <sys/time.h> header file.  */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <sys/types.h> header file.  */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if you have the <sys/wait.h> header file.  */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if you have the <termcap.h> header file.  */
+#undef HAVE_TERMCAP_H
+
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <values.h> header file.  */
+#undef HAVE_VALUES_H
+
+/* Define if you have the i library (-li).  */
+#undef HAVE_LIBI
+
+/* Define if you have the m library (-lm).  */
+#undef HAVE_LIBM
+
+/* Define if you have the readline library (-lreadline).  */
+#undef HAVE_LIBREADLINE
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Define if compiler has function prototypes */
+#undef PROTOTYPES
+
+
+#include <pref.h>
+
+/* Local Variables: */
+/* mode:c */
+/* End: */
diff --git a/config.sub b/config.sub
new file mode 100755 (executable)
index 0000000..b1ee668
--- /dev/null
@@ -0,0 +1,866 @@
+#! /bin/sh
+# Configuration validation subroutine script, version 1.1.
+#   Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can. 
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+if [ x$1 = x ]
+then
+       echo Configuration name missing. 1>&2
+       echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
+       echo "or     $0 ALIAS" 1>&2
+       echo where ALIAS is a recognized configuration type. 1>&2
+       exit 1
+fi
+
+# First pass through any local machine types.
+case $1 in
+       *local*)
+               echo $1
+               exit 0
+               ;;
+       *)
+       ;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS (if any).
+basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+if [ $basic_machine != $1 ]
+then os=`echo $1 | sed 's/.*-/-/'`
+else os=; fi
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
+               os=
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
+               | arme[lb] | pyramid \
+               | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
+               | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
+               | powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
+               | pdp11 | mips64el | mips64orion | mips64orionel \
+               | sparc)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
+             | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
+             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
+             | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
+             | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
+             | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
+             | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
+             | mips64el-* | mips64orion-* | mips64orionel-*)
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-cbm
+               ;;
+       amigados)
+               basic_machine=m68k-cbm
+               os=-amigados
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-cbm
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       cray2)
+               basic_machine=cray2-cray
+               os=-unicos
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i[3456]86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+               os=-sysv32
+               ;;
+       i[3456]86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+               os=-sysv4
+               ;;
+       i[3456]86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+               os=-sysv
+               ;;
+       i[3456]86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+               os=-solaris2
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+        pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pentium | p5 | p6)
+               # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
+               basic_machine=i586-intel
+               ;;
+       pentium-* | p5-* | p6-*)
+               # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       k5)
+               # We don't have specific support for AMD's K5 yet, so just call it a Pentium
+               basic_machine=i586-amd
+               ;;
+       nexen)
+               # We don't have specific support for Nexgen yet, so just call it a Pentium
+               basic_machine=i586-nexgen
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=rs6000-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       xmp)
+               basic_machine=xmp-cray
+               os=-unicos
+               ;;
+        xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       mips)
+               basic_machine=mips-mips
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sparc)
+               basic_machine=sparc-sun
+               ;;
+        cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+       # -solaris* is a basic system type, with this one exception.
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -unixware* | svr4*)
+               os=-sysv4
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+             | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
+             | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
+             | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* )
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+        pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigados
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+        *-gould)
+               os=-sysv
+               ;;
+        *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+        *-sgi)
+               os=-irix
+               ;;
+        *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -lynxos*)
+                               vendor=lynx
+                               ;;
+                       -aix*)
+                               vendor=ibm
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -vxworks*)
+                               vendor=wrs
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
diff --git a/config/Makefile.in b/config/Makefile.in
new file mode 100644 (file)
index 0000000..37c5ef3
--- /dev/null
@@ -0,0 +1,238 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+pkgsysconfdir = $(sysconfdir)/$(PACKAGE)
+pkgsysconf_DATA = devices html-prologue papersize ps-prologue
+EXTRA_DIST = devices html-prologue papersize ps-prologue
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DATA =  $(pkgsysconf_DATA)
+
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps config/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+install-pkgsysconfDATA: $(pkgsysconf_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(pkgsysconfdir)
+       @list='$(pkgsysconf_DATA)'; for p in $$list; do \
+         if test -f $(srcdir)/$$p; then \
+           echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \
+           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p; \
+         else if test -f $$p; then \
+           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \
+           $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p; \
+         fi; fi; \
+       done
+
+uninstall-pkgsysconfDATA:
+       @$(NORMAL_UNINSTALL)
+       list='$(pkgsysconf_DATA)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(pkgsysconfdir)/$$p; \
+       done
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = config
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-pkgsysconfDATA
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-pkgsysconfDATA
+uninstall: uninstall-am
+all-am: Makefile $(DATA)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+       $(mkinstalldirs)  $(DESTDIR)$(pkgsysconfdir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: uninstall-pkgsysconfDATA install-pkgsysconfDATA tags distdir \
+info-am info dvi-am dvi check check-am installcheck-am installcheck \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# A `private installation' in my terms is just having the appropriate
+# configuration files in ~/.pspp instead of a global configuration
+# location.  So I let those files be installed automatically.
+
+private-install:
+       $(mkinstalldirs) $$HOME/.pspp
+       cd $(srcdir); cp $(pkgsysconf_DATA) $$HOME/.pspp
+private-uninstall:
+       -cd $$HOME/.pspp; rm -f $(pkgsysconf_DATA)
+       -rmdir $$HOME/.pspp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..1b14d04
--- /dev/null
+++ b/configure
@@ -0,0 +1,6079 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --disable-nls           do not use Native Language Support"
+ac_help="$ac_help
+  --with-included-gettext use the GNU gettext library included here"
+ac_help="$ac_help
+  --with-catgets          use catgets functions if available"
+ac_help="$ac_help
+  --with-checker          compile with Checker (for debugging)"
+ac_help="$ac_help
+  --enable-debugging      turn on debugging options"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=src/q2c.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='       '
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+
+
+CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE=1"
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:543: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:573: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+       continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:624: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:656: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 667 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:698: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:703: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:731: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+echo "configure:763: checking for POSIXized ISC" >&5
+if test -d /etc/conf/kconfig.d &&
+  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+then
+  echo "$ac_t""yes" 1>&6
+  ISC=yes # If later tests want to check for ISC.
+  cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
+EOF
+
+  if test "$GCC" = yes; then
+    CC="$CC -posix"
+  else
+    CC="$CC -Xp"
+  fi
+else
+  echo "$ac_t""no" 1>&6
+  ISC=
+fi
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:786: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:816: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+       continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:867: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:899: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 910 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:941: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:946: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:974: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+
+
+
+echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:1009: checking for ${CC-cc} option to accept ANSI C" >&5
+if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX                        -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  cat > conftest.$ac_ext <<EOF
+#line 1025 "configure"
+#include "confdefs.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+
+int main() {
+
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+
+; return 0; }
+EOF
+if { (eval echo configure:1062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  am_cv_prog_cc_stdc="$ac_arg"; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+CC="$ac_save_CC"
+
+fi
+
+if test -z "$am_cv_prog_cc_stdc"; then
+  echo "$ac_t""none needed" 1>&6
+else
+  echo "$ac_t""$am_cv_prog_cc_stdc" 1>&6
+fi
+case "x$am_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+# Do some error checking and defaulting for the host and target type.
+# The inputs are:
+#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
+#
+# The rules are:
+# 1. You are not allowed to specify --host, --target, and nonopt at the
+#    same time.
+# 2. Host defaults to nonopt.
+# 3. If nonopt is not specified, then host defaults to the current host,
+#    as determined by config.guess.
+# 4. Target and build default to nonopt.
+# 5. If nonopt is not specified, then target and build default to host.
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+case $host---$target---$nonopt in
+NONE---*---* | *---NONE---* | *---*---NONE) ;;
+*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+esac
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1132: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking target system type""... $ac_c" 1>&6
+echo "configure:1153: checking target system type" >&5
+
+target_alias=$target
+case "$target_alias" in
+NONE)
+  case $nonopt in
+  NONE) target_alias=$host_alias ;;
+  *) target_alias=$nonopt ;;
+  esac ;;
+esac
+
+target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$target" 1>&6
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1171: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+test "$host_alias" != "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1205: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+         if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         else
+           ac_cv_path_install="$ac_dir/$ac_prog -c"
+           break 2
+         fi
+       fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:1258: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftestfile`
+   fi
+   if test "$*" != "X $srcdir/configure conftestfile" \
+      && test "$*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+   fi
+
+   test "$2" = conftestfile
+   )
+then
+   # Ok.
+   :
+else
+   { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+  program_transform_name=
+else
+  # Double any \ or $.  echo might interpret backslashes.
+  cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+  rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:1315: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftestmake <<\EOF
+all:
+       @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1>&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=pspp
+
+VERSION=0.3.0
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:1361: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+   ACLOCAL=aclocal
+   echo "$ac_t""found" 1>&6
+else
+   ACLOCAL="$missing_dir/missing aclocal"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:1374: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+   AUTOCONF=autoconf
+   echo "$ac_t""found" 1>&6
+else
+   AUTOCONF="$missing_dir/missing autoconf"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:1387: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+   AUTOMAKE=automake
+   echo "$ac_t""found" 1>&6
+else
+   AUTOMAKE="$missing_dir/missing automake"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:1400: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+   AUTOHEADER=autoheader
+   echo "$ac_t""found" 1>&6
+else
+   AUTOHEADER="$missing_dir/missing autoheader"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:1413: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+   MAKEINFO=makeinfo
+   echo "$ac_t""found" 1>&6
+else
+   MAKEINFO="$missing_dir/missing makeinfo"
+   echo "$ac_t""missing" 1>&6
+fi
+
+
+
+#AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+#GNU_PACKAGE="GNU $PACKAGE"
+#AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE")
+
+ALL_LINGUAS=""
+
+if test "$program_transform_name" = s,x,x,; then
+  program_transform_name=
+else
+  # Double any \ or $.  echo might interpret backslashes.
+  cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+  rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1469: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+         if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         else
+           ac_cv_path_install="$ac_dir/$ac_prog -c"
+           break 2
+         fi
+       fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1524: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1553: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1568 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 1585 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1591: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 1602 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1633: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1638 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1663 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1681 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1702 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:1737: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1742 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x = {0,0};
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:1791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:1812: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 1819 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+  inline | yes) ;;
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
+ ;;
+  *)  cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:1852: checking for off_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1857 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_off_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_off_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+  cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:1885: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1890 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_size_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:1920: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1925 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:1932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_header_alloca_h=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:1953: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1958 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:1986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_func_alloca_works=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.${ac_objext}
+  cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:2018: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2023 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_os_cray=yes
+else
+  rm -rf conftest*
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2048: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2053 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+  break
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:2103: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2111 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:2130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_stack_direction=1
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2155: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2160 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2194: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2199 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:2247: checking for working mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2255 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+       mmap private not fixed
+       mmap private fixed at somewhere currently unmapped
+       mmap private fixed at somewhere already mapped
+       mmap shared not fixed
+       mmap shared fixed at somewhere currently unmapped
+       mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the filesystem buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propogated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192  /* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
+
+int
+main()
+{
+       char *data, *data2, *data3;
+       int i, pagesize;
+       int fd;
+
+       pagesize = getpagesize();
+
+       /*
+        * First, make a file with some known garbage in it.
+        */
+       data = malloc(pagesize);
+       if (!data)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               *(data + i) = rand();
+       umask(0);
+       fd = creat("conftestmmap", 0600);
+       if (fd < 0)
+               exit(1);
+       if (write(fd, data, pagesize) != pagesize)
+               exit(1);
+       close(fd);
+
+       /*
+        * Next, try to mmap the file at a fixed address which
+        * already has something else allocated at it.  If we can,
+        * also make sure that we see the same garbage.
+        */
+       fd = open("conftestmmap", O_RDWR);
+       if (fd < 0)
+               exit(1);
+       data2 = malloc(2 * pagesize);
+       if (!data2)
+               exit(1);
+       data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+       if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+           MAP_PRIVATE | MAP_FIXED, fd, 0L))
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data2 + i))
+                       exit(1);
+
+       /*
+        * Finally, make sure that changes to the mapped area
+        * do not percolate back to the file as seen by read().
+        * (This is a bug on some variants of i386 svr4.0.)
+        */
+       for (i = 0; i < pagesize; ++i)
+               *(data2 + i) = *(data2 + i) + 1;
+       data3 = malloc(pagesize);
+       if (!data3)
+               exit(1);
+       if (read(fd, data3, pagesize) != pagesize)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data3 + i))
+                       exit(1);
+       close(fd);
+       unlink("conftestmmap");
+       exit(0);
+}
+
+EOF
+if { (eval echo configure:2395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func_mmap_fixed_mapped=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+fi
+
+                           
+   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h values.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2423: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2428 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+   for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2463: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2468 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+   if test "${ac_cv_func_stpcpy+set}" != "set"; then
+     for ac_func in stpcpy
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2520: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2525 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+   fi
+   if test "${ac_cv_func_stpcpy}" = "yes"; then
+     cat >> confdefs.h <<\EOF
+#define HAVE_STPCPY 1
+EOF
+
+   fi
+
+   if test $ac_cv_header_locale_h = yes; then
+    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:2582: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2587 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
+EOF
+if { (eval echo configure:2594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  am_cv_val_LC_MESSAGES=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  am_cv_val_LC_MESSAGES=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
+
+    fi
+  fi
+   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+echo "configure:2615: checking whether NLS is requested" >&5
+        # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval="$enable_nls"
+  USE_NLS=$enableval
+else
+  USE_NLS=yes
+fi
+
+    echo "$ac_t""$USE_NLS" 1>&6
+    
+
+    USE_INCLUDED_LIBINTL=no
+
+        if test "$USE_NLS" = "yes"; then
+      cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
+EOF
+
+      echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+echo "configure:2635: checking whether included gettext is requested" >&5
+      # Check whether --with-included-gettext or --without-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then
+  withval="$with_included_gettext"
+  nls_cv_force_use_gnu_gettext=$withval
+else
+  nls_cv_force_use_gnu_gettext=no
+fi
+
+      echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+                                       nls_cv_header_intl=
+       nls_cv_header_libgt=
+       CATOBJEXT=NONE
+
+       ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
+echo "configure:2654: checking for libintl.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2659 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
+echo "configure:2681: checking for gettext in libc" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2686 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+int main() {
+return (int) gettext ("")
+; return 0; }
+EOF
+if { (eval echo configure:2693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  gt_cv_func_gettext_libc=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gt_cv_func_gettext_libc=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
+
+          if test "$gt_cv_func_gettext_libc" != "yes"; then
+            echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
+echo "configure:2709: checking for bindtextdomain in -lintl" >&5
+ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lintl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2717 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char bindtextdomain();
+
+int main() {
+bindtextdomain()
+; return 0; }
+EOF
+if { (eval echo configure:2728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
+echo "configure:2744: checking for gettext in libintl" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2749 "configure"
+#include "confdefs.h"
+
+int main() {
+return (int) gettext ("")
+; return 0; }
+EOF
+if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  gt_cv_func_gettext_libintl=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gt_cv_func_gettext_libintl=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+          fi
+
+          if test "$gt_cv_func_gettext_libc" = "yes" \
+             || test "$gt_cv_func_gettext_libintl" = "yes"; then
+             cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
+EOF
+
+             # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2784: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$ac_t""$MSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+             if test "$MSGFMT" != "no"; then
+               for ac_func in dcgettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2818: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2823 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+               # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2873: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+               # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2909: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+               cat > conftest.$ac_ext <<EOF
+#line 2941 "configure"
+#include "confdefs.h"
+
+int main() {
+extern int _nl_msg_cat_cntr;
+                              return _nl_msg_cat_cntr
+; return 0; }
+EOF
+if { (eval echo configure:2949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  CATOBJEXT=.gmo
+                  DATADIRNAME=share
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CATOBJEXT=.mo
+                  DATADIRNAME=lib
+fi
+rm -f conftest*
+               INSTOBJEXT=.mo
+             fi
+           fi
+       
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+        if test "$CATOBJEXT" = "NONE"; then
+         echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
+echo "configure:2972: checking whether catgets can be used" >&5
+         # Check whether --with-catgets or --without-catgets was given.
+if test "${with_catgets+set}" = set; then
+  withval="$with_catgets"
+  nls_cv_use_catgets=$withval
+else
+  nls_cv_use_catgets=no
+fi
+
+         echo "$ac_t""$nls_cv_use_catgets" 1>&6
+
+         if test "$nls_cv_use_catgets" = "yes"; then
+                   echo $ac_n "checking for main in -li""... $ac_c" 1>&6
+echo "configure:2985: checking for main in -li" >&5
+ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-li  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2993 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:3000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-li $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+           echo $ac_n "checking for catgets""... $ac_c" 1>&6
+echo "configure:3028: checking for catgets" >&5
+if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3033 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char catgets(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char catgets();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_catgets) || defined (__stub___catgets)
+choke me
+#else
+catgets();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_catgets=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_catgets=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_CATGETS 1
+EOF
+
+              INTLOBJS="\$(CATOBJS)"
+              # Extract the first word of "gencat", so it can be a program name with args.
+set dummy gencat; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3078: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GENCAT" in
+  /*)
+  ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GENCAT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no"
+  ;;
+esac
+fi
+GENCAT="$ac_cv_path_GENCAT"
+if test -n "$GENCAT"; then
+  echo "$ac_t""$GENCAT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+              if test "$GENCAT" != "no"; then
+                # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3114: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+                if test "$GMSGFMT" = "no"; then
+                  # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3151: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+                fi
+                # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3186: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+                USE_INCLUDED_LIBINTL=yes
+                CATOBJEXT=.cat
+                INSTOBJEXT=.cat
+                DATADIRNAME=lib
+                INTLDEPS="../intl/libintl.a"
+                INTLLIBS=$INTLDEPS
+                LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+                nls_cv_header_intl=intl/libintl.h
+                nls_cv_header_libgt=intl/libgettext.h
+              fi
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+         fi
+        fi
+
+        if test "$CATOBJEXT" = "NONE"; then
+                         nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+                INTLOBJS="\$(GETTOBJS)"
+        # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3244: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$ac_t""$MSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3278: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3314: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        
+       USE_INCLUDED_LIBINTL=yes
+        CATOBJEXT=.gmo
+        INSTOBJEXT=.mo
+        DATADIRNAME=share
+       INTLDEPS="../intl/libintl.a"
+       INTLLIBS=$INTLDEPS
+       LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+        nls_cv_header_intl=intl/libintl.h
+        nls_cv_header_libgt=intl/libgettext.h
+      fi
+
+            if test "$XGETTEXT" != ":"; then
+                       if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+         : ;
+       else
+         echo "$ac_t""found xgettext programs is not GNU xgettext; ignore it" 1>&6
+         XGETTEXT=":"
+       fi
+      fi
+
+      # We need to process the po/ directory.
+      POSUB=po
+    else
+      DATADIRNAME=share
+      nls_cv_header_intl=intl/libintl.h
+      nls_cv_header_libgt=intl/libgettext.h
+    fi
+
+    # If this is used in GNU gettext we have to set USE_NLS to `yes'
+    # because some of the sources are only built for this goal.
+    if test "$PACKAGE" = gettext; then
+      USE_NLS=yes
+      USE_INCLUDED_LIBINTL=yes
+    fi
+
+                for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+        
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+echo "configure:3404: checking for catalogs to be installed" >&5
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       echo "$ac_t""$LINGUAS" 1>&6
+     fi
+
+          if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+            test -d intl || mkdir intl
+   if test "$CATOBJEXT" = ".cat"; then
+     ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
+echo "configure:3424: checking for linux/version.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3429 "configure"
+#include "confdefs.h"
+#include <linux/version.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3434: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  msgformat=linux
+else
+  echo "$ac_t""no" 1>&6
+msgformat=xopen
+fi
+
+
+               sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+   fi
+      sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+     $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+            if test "$PACKAGE" = "gettext"; then
+     GT_NO="#NO#"
+     GT_YES=
+   else
+     GT_NO=
+     GT_YES="#YES#"
+   fi
+   
+   
+
+            MKINSTALLDIRS=
+   if test $ac_aux_dir; then
+     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+   fi
+   if test -z $MKINSTALLDIRS; then
+     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+   fi
+   
+
+      if test "${enable_shared+set}" = set; then
+     l=l
+   else
+     l=
+   fi
+   
+
+         test -d po || mkdir po
+   if test "x$srcdir" != "x."; then
+     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+       posrcprefix="$srcdir/"
+     else
+       posrcprefix="../$srcdir/"
+     fi
+   else
+     posrcprefix="../"
+   fi
+   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+  
+
+
+
+# Check whether --with-checker or --without-checker was given.
+if test "${with_checker+set}" = set; then
+  withval="$with_checker"
+  CC="checkergcc" LOCAL_CC="gcc" CC_OPTIONS="-Werror"
+fi
+
+# Check whether --enable-debugging or --disable-debugging was given.
+if test "${enable_debugging+set}" = set; then
+  enableval="$enable_debugging"
+  CC_OPTIONS="-DDEBUGGING=1"
+fi
+
+
+# LOCAL_CC runs on the build system, targets the build system.
+# CC runs on the build system, targets the host system.
+if test -z "$LOCAL_CC"; then
+  LOCAL_CC="$CC"
+fi
+
+
+echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
+echo "configure:3525: checking for sin in -lm" >&5
+ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3533 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char sin();
+
+int main() {
+sin()
+; return 0; }
+EOF
+if { (eval echo configure:3544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for mpf_get_str in -lgmp""... $ac_c" 1>&6
+echo "configure:3572: checking for mpf_get_str in -lgmp" >&5
+ac_lib_var=`echo gmp'_'mpf_get_str | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgmp  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3580 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char mpf_get_str();
+
+int main() {
+mpf_get_str()
+; return 0; }
+EOF
+if { (eval echo configure:3591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="-lgmp $LIBS" GMP_SUBDIRS= GMP_LIBS=
+else
+  echo "$ac_t""no" 1>&6
+GMP_SUBDIRS=gmp GMP_LIBS='$(GMP_LIBS)'
+fi
+
+
+
+
+echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
+echo "configure:3616: checking for tgetent in -lncurses" >&5
+ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lncurses  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3624 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tgetent();
+
+int main() {
+tgetent()
+; return 0; }
+EOF
+if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="-lncurses $LIBS" termcap=yes
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
+echo "configure:3654: checking for tgetent in -ltermcap" >&5
+ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ltermcap  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3662 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tgetent();
+
+int main() {
+tgetent()
+; return 0; }
+EOF
+if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="-ltermcap $LIBS" termcap=yes
+else
+  echo "$ac_t""no" 1>&6
+termcap=no
+fi
+
+fi
+
+if test "$termcap" = yes; then
+  for ac_hdr in termcap.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3701: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3706 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+  cat >> confdefs.h <<\EOF
+#define HAVE_LIBTERMCAP 1
+EOF
+
+fi
+
+echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:3744: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lreadline  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3752 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:3763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo readline | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lreadline $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_lib_readline_readline" = yes; then
+  for ac_hdr in readline/readline.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3795: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3800 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3805: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+  echo $ac_n "checking for add_history in -lreadline""... $ac_c" 1>&6
+echo "configure:3832: checking for add_history in -lreadline" >&5
+ac_lib_var=`echo readline'_'add_history | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lreadline  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3840 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char add_history();
+
+int main() {
+add_history()
+; return 0; }
+EOF
+if { (eval echo configure:3851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  history=yes
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for add_history in -lhistory""... $ac_c" 1>&6
+echo "configure:3870: checking for add_history in -lhistory" >&5
+ac_lib_var=`echo history'_'add_history | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lhistory  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3878 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char add_history();
+
+int main() {
+add_history()
+; return 0; }
+EOF
+if { (eval echo configure:3889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="-lhistory" history=yes
+else
+  echo "$ac_t""no" 1>&6
+history=no
+fi
+
+fi
+
+  if test "$history" = yes; then
+    for ac_hdr in readline/history.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3917: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3922 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+    cat >> confdefs.h <<\EOF
+#define HAVE_LIBHISTORY 1
+EOF
+
+  fi
+fi
+
+for ac_hdr in limits.h memory.h sys/stat.h sys/time.h sys/types.h \
+                fpu_control.h sys/mman.h sys/wait.h ieeefp.h fenv.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3965: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3970 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
+echo "configure:4002: checking whether stat file-mode macros are broken" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4007 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined(S_ISBLK) && defined(S_IFDIR)
+# if S_ISBLK (S_IFDIR)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISBLK) && defined(S_IFCHR)
+# if S_ISBLK (S_IFCHR)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISLNK) && defined(S_IFREG)
+# if S_ISLNK (S_IFREG)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISSOCK) && defined(S_IFREG)
+# if S_ISSOCK (S_IFREG)
+You lose.
+# endif
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "You lose" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_header_stat_broken=yes
+else
+  rm -rf conftest*
+  ac_cv_header_stat_broken=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_header_stat_broken" 1>&6
+if test $ac_cv_header_stat_broken = yes; then
+  cat >> confdefs.h <<\EOF
+#define STAT_MACROS_BROKEN 1
+EOF
+
+fi
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:4058: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4063 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4071: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 4088 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 4106 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4127 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:4138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+echo "configure:4162: checking whether time.h and sys/time.h may both be included" >&5
+if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4167 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+int main() {
+struct tm *tp;
+; return 0; }
+EOF
+if { (eval echo configure:4176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_time=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_time=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_time" 1>&6
+if test $ac_cv_header_time = yes; then
+  cat >> confdefs.h <<\EOF
+#define TIME_WITH_SYS_TIME 1
+EOF
+
+fi
+
+
+
+
+echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
+echo "configure:4200: checking for function prototypes" >&5
+if test "$am_cv_prog_cc_stdc" != no; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define PROTOTYPES 1
+EOF
+
+  U= ANSI2KNR=
+else
+  echo "$ac_t""no" 1>&6
+  U=_ ANSI2KNR=./ansi2knr
+  # Ensure some checks needed by ansi2knr itself.
+  echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:4213: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4218 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 4243 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 4261 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4282 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:4293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+  for ac_hdr in string.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:4320: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4325 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4330: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+fi
+
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:4360: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4365 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x = {0,0};
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:4414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:4435: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 4442 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:4449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+  inline | yes) ;;
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
+ ;;
+  *)  cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:4475: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4480 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_size_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
+echo "configure:4508: checking whether struct tm is in sys/time.h or time.h" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4513 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <time.h>
+int main() {
+struct tm *tp; tp->tm_sec;
+; return 0; }
+EOF
+if { (eval echo configure:4521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_struct_tm=time.h
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_struct_tm=sys/time.h
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_tm" 1>&6
+if test $ac_cv_struct_tm = sys/time.h; then
+  cat >> confdefs.h <<\EOF
+#define TM_IN_SYS_TIME 1
+EOF
+
+fi
+
+
+echo $ac_n "checking size of short""... $ac_c" 1>&6
+echo "configure:4543: checking size of short" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_short=2
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4551 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(short));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_short=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_short=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_short" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+EOF
+
+
+echo $ac_n "checking size of int""... $ac_c" 1>&6
+echo "configure:4582: checking size of int" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_int=4
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4590 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(int));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_int=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_int=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_int" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+EOF
+
+
+echo $ac_n "checking size of long""... $ac_c" 1>&6
+echo "configure:4621: checking size of long" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_long=4
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4629 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(long));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_long=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_long=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_long" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+EOF
+
+
+echo $ac_n "checking size of long long""... $ac_c" 1>&6
+echo "configure:4660: checking size of long long" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_long_long=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4668 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(long long));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_long_long=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_long_long=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_long_long" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+EOF
+
+
+echo $ac_n "checking size of float""... $ac_c" 1>&6
+echo "configure:4699: checking size of float" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_float=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4707 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(float));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_float=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_float=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_float" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_FLOAT $ac_cv_sizeof_float
+EOF
+
+
+echo $ac_n "checking size of double""... $ac_c" 1>&6
+echo "configure:4738: checking size of double" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_double=8
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4746 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(double));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_double=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_double=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_double" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_DOUBLE $ac_cv_sizeof_double
+EOF
+
+
+echo $ac_n "checking size of long double""... $ac_c" 1>&6
+echo "configure:4777: checking size of long double" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_long_double=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4785 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(long double));
+  exit(0);
+}
+EOF
+if { (eval echo configure:4796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_long_double=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_sizeof_long_double=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_long_double" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double
+EOF
+
+
+
+
+cat >> confdefs.h <<\EOF
+#define FPREP FPREP_IEEE754
+EOF
+
+
+
+if test "$cross_compiling" = no; then
+      echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:4825: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_bigendian=unknown
+       # See if sys/param.h defines the BYTE_ORDER macro.
+       cat > conftest.$ac_ext <<EOF
+#line 4832 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+           #include <sys/param.h>
+int main() {
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+           bogus endian macros
+           #endif
+; return 0; }
+EOF
+if { (eval echo configure:4842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+           cat > conftest.$ac_ext <<EOF
+#line 4846 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+                #include <sys/param.h>
+int main() {
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+                #endif
+; return 0; }
+EOF
+if { (eval echo configure:4856: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_bigendian=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_bigendian=no
+fi
+rm -f conftest*
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+       if test $ac_cv_c_bigendian = unknown; then
+          if test "$cross_compiling" = yes; then
+  { echo "configure: error: Internal error determining endianness." 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4876 "configure"
+#include "confdefs.h"
+main () {
+               /* Are we little or big endian?  From Harbison&Steele.  */
+               union
+                 {
+                   long l;
+                   char c[sizeof (long)];
+                 } u;
+               u.l = 1;
+               exit (u.c[sizeof (long) - 1] == 1);
+               }
+EOF
+if { (eval echo configure:4889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_bigendian=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_c_bigendian=yes
+fi
+rm -fr conftest*
+fi
+
+       fi
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
+
+  if test "$ac_cv_c_bigendian" = yes; then
+    cat >> confdefs.h <<\EOF
+#define ENDIAN BIG
+EOF
+
+  elif test "$ac_cv_c_bigendian" = no; then
+    cat >> confdefs.h <<\EOF
+#define ENDIAN LITTLE
+EOF
+
+  else
+    { echo "configure: error: Machine's endianness is unknown." 1>&2; exit 1; }
+  fi
+else
+  cat >> confdefs.h <<\EOF
+#define ENDIAN UNKNOWN
+EOF
+
+
+  echo "configure: warning: Optionally set value for endianness for best performance." 1>&2
+fi
+
+
+echo $ac_n "checking if sprintf returns a char count""... $ac_c" 1>&6
+echo "configure:4930: checking if sprintf returns a char count" >&5
+if eval "test \"`echo '$''{'blp_is_sprintf_good'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  eval "blp_is_sprintf_good=no"
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4938 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+                          int 
+                          main()
+                          {
+                            char s[8];
+                            exit((int)sprintf(s, "abcdefg")!=7);
+                          }
+                         
+EOF
+if { (eval echo configure:4949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  eval "blp_is_sprintf_good=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  eval "blp_is_sprintf_good=no"
+fi
+rm -fr conftest*
+fi
+
+             
+fi
+
+if test "$blp_is_sprintf_good" = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GOOD_SPRINTF 1
+EOF
+
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking number of digits in LONG_MIN (incl. sign)""... $ac_c" 1>&6
+echo "configure:4976: checking number of digits in LONG_MIN (incl. sign)" >&5
+if eval "test \"`echo '$''{'blp_int_digits'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  eval "blp_int_digits=19"
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4984 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+                          #include <limits.h>
+                         int
+                         main()
+                         {
+                           int len;
+                           char s[80];
+                           sprintf(s, "%ld", LONG_MAX);
+                           len = strlen(s);
+                           sprintf(s, "%ld", LONG_MIN);
+                           if(strlen(s)>len) len=strlen(s);
+                           sprintf(s, "%lu", ULONG_MAX);
+                           if(strlen(s)>len) len=strlen(s);
+                           exit(len);
+                         }
+                        
+EOF
+if { (eval echo configure:5003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  eval "blp_int_digits=19"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  eval "blp_int_digits=$?"
+                        if test "$blp_int_digits" -lt 11; then
+                          blp_int_digits=11
+                        fi
+fi
+rm -fr conftest*
+fi
+
+            
+fi
+
+cat >> confdefs.h <<EOF
+#define INT_DIGITS $blp_int_digits
+EOF
+
+echo "$ac_t""$blp_int_digits" 1>&6
+
+
+echo $ac_n "checking random number generator""... $ac_c" 1>&6
+echo "configure:5029: checking random number generator" >&5
+if eval "test \"`echo '$''{'blp_random_good'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5034 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+int main() {
+int x=RAND_MAX;
+; return 0; }
+EOF
+if { (eval echo configure:5041: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  blp_random_good=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  blp_random_good=no
+fi
+rm -f conftest*
+fi
+
+if test "$blp_random_good" = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GOOD_RANDOM 1
+EOF
+
+  echo "$ac_t""good" 1>&6
+else
+  echo "$ac_t""bad" 1>&6
+fi
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:5067: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5072 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:5079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_header_alloca_h=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:5100: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5105 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:5133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_func_alloca_works=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.${ac_objext}
+  cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:5165: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5170 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_os_cray=yes
+else
+  rm -rf conftest*
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5195: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5200 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+  break
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:5250: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5258 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:5277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_stack_direction=1
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
+echo "configure:5299: checking for 8-bit clean memcmp" >&5
+if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_memcmp_clean=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5307 "configure"
+#include "confdefs.h"
+
+main()
+{
+  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+  exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
+}
+
+EOF
+if { (eval echo configure:5317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func_memcmp_clean=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func_memcmp_clean=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
+test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
+
+echo $ac_n "checking for vprintf""... $ac_c" 1>&6
+echo "configure:5335: checking for vprintf" >&5
+if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5340 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char vprintf(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char vprintf();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_vprintf) || defined (__stub___vprintf)
+choke me
+#else
+vprintf();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_vprintf=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_vprintf=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_VPRINTF 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_func_vprintf" != yes; then
+echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
+echo "configure:5387: checking for _doprnt" >&5
+if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5392 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _doprnt(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char _doprnt();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub__doprnt) || defined (__stub____doprnt)
+choke me
+#else
+_doprnt();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func__doprnt=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func__doprnt=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_DOPRNT 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+for ac_func in memmove memset stpcpy strpbrk strerror strtol strtoul memchr \
+                 getline getdelim strcasecmp strncasecmp memmem strtok_r
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5443: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5448 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+fi
+done
+
+
+for ac_func in gethostname strstr strtod __setfpucw isinf isnan finite getpid \
+              feholdexcept
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5501: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5506 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:5555: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+  rm -f conftestdata
+  ac_cv_prog_LN_S="ln -s"
+else
+  ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test "$ac_cv_prog_gcc" = yes; then
+       CFLAGS="-g -Wall -W -Wno-uninitialized -Wwrite-strings \
+-Wstrict-prototypes -Wpointer-arith"
+       if test "$CC_OPTIONS" != ""; then
+               CFLAGS="$CFLAGS $CC_OPTIONS"
+       fi
+fi
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile                           \
+         intl/Makefile                         \
+         po/Makefile.in                        \
+         lib/Makefile                          \
+         lib/gmp/Makefile                      \
+         lib/gmp/mpn/Makefile                  \
+         lib/gmp/mpf/Makefile                  \
+         lib/julcal/Makefile                   \
+         lib/misc/Makefile                     \
+         lib/dcdflib/Makefile                  \
+         doc/Makefile                          \
+         src/Makefile                          \
+         config/Makefile                       \
+          tests/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@CC@%$CC%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@target@%$target%g
+s%@target_alias@%$target_alias%g
+s%@target_cpu@%$target_cpu%g
+s%@target_vendor@%$target_vendor%g
+s%@target_os@%$target_os%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@RANLIB@%$RANLIB%g
+s%@CPP@%$CPP%g
+s%@ALLOCA@%$ALLOCA%g
+s%@USE_NLS@%$USE_NLS%g
+s%@MSGFMT@%$MSGFMT%g
+s%@GMSGFMT@%$GMSGFMT%g
+s%@XGETTEXT@%$XGETTEXT%g
+s%@GENCAT@%$GENCAT%g
+s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
+s%@CATALOGS@%$CATALOGS%g
+s%@CATOBJEXT@%$CATOBJEXT%g
+s%@DATADIRNAME@%$DATADIRNAME%g
+s%@GMOFILES@%$GMOFILES%g
+s%@INSTOBJEXT@%$INSTOBJEXT%g
+s%@INTLDEPS@%$INTLDEPS%g
+s%@INTLLIBS@%$INTLLIBS%g
+s%@INTLOBJS@%$INTLOBJS%g
+s%@POFILES@%$POFILES%g
+s%@POSUB@%$POSUB%g
+s%@GT_NO@%$GT_NO%g
+s%@GT_YES@%$GT_YES%g
+s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
+s%@l@%$l%g
+s%@LOCAL_CC@%$LOCAL_CC%g
+s%@GMP_SUBDIRS@%$GMP_SUBDIRS%g
+s%@GMP_LIBS@%$GMP_LIBS%g
+s%@U@%$U%g
+s%@ANSI2KNR@%$ANSI2KNR%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@LN_S@%$LN_S%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile                         \
+         intl/Makefile                         \
+         po/Makefile.in                        \
+         lib/Makefile                          \
+         lib/gmp/Makefile                      \
+         lib/gmp/mpn/Makefile                  \
+         lib/gmp/mpf/Makefile                  \
+         lib/julcal/Makefile                   \
+         lib/misc/Makefile                     \
+         lib/dcdflib/Makefile                  \
+         doc/Makefile                          \
+         src/Makefile                          \
+         config/Makefile                       \
+          tests/Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([  ]*\)#\([        ]*define[       ][      ]*\)'
+ac_dB='\([     ][      ]*\)[^  ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_uB='\([     ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+ac_sources="$nls_cv_header_libgt"
+ac_dests="$nls_cv_header_intl"
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+srcdir=$ac_given_srcdir
+while test -n "$ac_sources"; do
+  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
+  set $ac_sources; ac_source=$1; shift; ac_sources=$*
+
+  echo "linking $srcdir/$ac_source to $ac_dest"
+
+  if test ! -r $srcdir/$ac_source; then
+    { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
+  fi
+  rm -f $ac_dest
+
+  # Make relative symlinks.
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
+    # The dest file is in a subdirectory.
+    test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
+    ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dest_dir_suffix.
+    ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dest_dir_suffix= ac_dots=
+  fi
+
+  case "$srcdir" in
+  [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
+  *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
+  esac
+
+  # Make a symlink if possible; otherwise try a hard link.
+  if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
+    ln $srcdir/$ac_source $ac_dest; then :
+  else
+    { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
+  fi
+done
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+
+          # Copy pref.h from pref.h.orig if prudent
+          if test ! -f pref.h; then
+            echo "creating pref.h"
+            cp $ac_given_srcdir/pref.h.orig pref.h
+          elif test "`ls -t pref.h.orig pref.h 2>/dev/null | sed 1q`" = pref.h.orig; then
+            echo "replacing pref.h with newer pref.h.orig"
+            cp $ac_given_srcdir/pref.h.orig pref.h
+          else
+            echo "pref.h exists"
+          fi
+          if test -f pref.h; then touch pref.h; fi
+         
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644 (file)
index 0000000..726b6de
--- /dev/null
@@ -0,0 +1,333 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+info_TEXINFOS = pspp.texi
+
+# FIXME: remove this when the manual is fixed to eliminate dangling
+# references.
+MAKEINFO = makeinfo --no-validate
+
+EXTRA_DIST = pspp.man
+
+MAINTAINERCLEANFILES = Makefile.in README.html
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+TEXI2DVI = texi2dvi
+INFO_DEPS = pspp.info
+DVIS = pspp.dvi
+TEXINFOS = pspp.texi
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in mdate-sh texinfo.tex
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+pspp.info: pspp.texi
+pspp.dvi: pspp.texi
+
+
+DVIPS = dvips
+
+.texi.info:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texi.dvi:
+       TEXINPUTS=.:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texi:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.info:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.dvi:
+       TEXINPUTS=.:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi.info:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.txi.dvi:
+       TEXINPUTS=.:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi:
+       @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       cd $(srcdir) \
+         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+.dvi.ps:
+       $(DVIPS) $< -o $@
+
+install-info-am: $(INFO_DEPS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(infodir)
+       @list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         d=$(srcdir); \
+         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+           if test -f $$d/$$ifile; then \
+             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+           else : ; fi; \
+         done; \
+       done
+       @$(POST_INSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         list='$(INFO_DEPS)'; \
+         for file in $$list; do \
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+           install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
+         done; \
+       else : ; fi
+
+uninstall-info:
+       $(PRE_UNINSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         ii=yes; \
+       else ii=; fi; \
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         test -z "$ii" \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+       done
+       @$(NORMAL_UNINSTALL)
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+       done
+
+dist-info: $(INFO_DEPS)
+       list='$(INFO_DEPS)'; \
+       for base in $$list; do \
+         d=$(srcdir); \
+         for file in `cd $$d && eval echo $$base*`; do \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file; \
+         done; \
+       done
+
+mostlyclean-aminfo:
+       -rm -f pspp.aux pspp.cp pspp.cps pspp.dvi pspp.fn pspp.fns pspp.ky \
+         pspp.kys pspp.ps pspp.log pspp.pg pspp.toc pspp.tp pspp.tps \
+         pspp.vr pspp.vrs pspp.op pspp.tr pspp.cv pspp.cn
+
+clean-aminfo:
+
+distclean-aminfo:
+
+maintainer-clean-aminfo:
+       cd $(srcdir) && for i in $(INFO_DEPS); do \
+         rm -f $$i; \
+         if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
+           rm -f $$i-[0-9]*; \
+         fi; \
+       done
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = doc
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
+info-am: $(INFO_DEPS)
+info: info-am
+dvi-am: $(DVIS)
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-info-am
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-info
+uninstall: uninstall-am
+all-am: Makefile $(INFO_DEPS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+       $(mkinstalldirs)  $(DESTDIR)$(infodir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-aminfo mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-aminfo clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-aminfo distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-aminfo maintainer-clean-generic \
+               distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
+distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir \
+info-am info dvi-am dvi check check-am installcheck-am installcheck \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/pspp.info b/doc/pspp.info
new file mode 100644 (file)
index 0000000..b1e813b
--- /dev/null
@@ -0,0 +1,247 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+Indirect:
+pspp.info-1: 1191
+pspp.info-2: 50013
+pspp.info-3: 95263
+pspp.info-4: 142742
+pspp.info-5: 192073
+pspp.info-6: 241547
+pspp.info-7: 290618
+pspp.info-8: 319595
+\1f
+Tag Table:
+(Indirect)
+Node: Top\7f1191
+Node: Introduction\7f2975
+Node: License\7f4202
+Node: Credits\7f5652
+Node: Installation\7f6504
+Node: UNIX installation\7f7595
+Node: Configuration\7f9720
+Node: File locations\7f10913
+Node: Configuration techniques\7f14494
+Node: Configuration files\7f15443
+Node: Environment variables\7f16957
+Node: Variable values\7f17588
+Node: Environment substitutions\7f19106
+Node: Predefined variables\7f20144
+Node: Output devices\7f20893
+Node: Driver categories\7f22308
+Node: Macro definitions\7f24244
+Node: Device definitions\7f25679
+Node: Dimensions\7f28054
+Ref: Dimensions-Footnote-1\7f29517
+Node: papersize\7f29540
+Node: Distinguishing line types\7f31052
+Node: Tokenizing lines\7f31851
+Node: PostScript driver class\7f33597
+Node: PS output options\7f34813
+Node: PS page options\7f37192
+Node: PS file options\7f38204
+Node: PS font options\7f41737
+Node: PS line options\7f42360
+Node: Prologue\7f43529
+Node: Encodings\7f47205
+Node: ASCII driver class\7f49410
+Node: ASCII output options\7f50013
+Node: ASCII page options\7f51806
+Node: ASCII font options\7f53357
+Node: HTML driver class\7f58657
+Node: HTML Prologue\7f59694
+Node: Miscellaneous configuring\7f61621
+Node: Improving output quality\7f63534
+Node: Invocation\7f65617
+Node: Non-option Arguments\7f66672
+Node: Configuration Options\7f68322
+Node: Input and output options\7f69241
+Node: Language control options\7f70501
+Node: Informational options\7f71877
+Node: Language\7f73477
+Node: Tokens\7f74400
+Node: Commands\7f80633
+Node: Types of Commands\7f83917
+Node: Order of Commands\7f85434
+Node: Missing Observations\7f87793
+Node: Variables\7f89188
+Node: Attributes\7f89902
+Node: System Variables\7f92120
+Node: Sets of Variables\7f93146
+Node: Input/Output Formats\7f95263
+Node: Scratch Variables\7f106891
+Node: Files\7f108078
+Node: BNF\7f109433
+Node: Expressions\7f111644
+Node: Booleans\7f112916
+Node: Missing Values in Expressions\7f113832
+Node: Grouping Operators\7f114569
+Node: Arithmetic Operators\7f114981
+Node: Logical Operators\7f115723
+Node: Relational Operators\7f116563
+Node: Functions\7f117930
+Node: Advanced Mathematics\7f119366
+Node: Miscellaneous Mathematics\7f120127
+Node: Trigonometry\7f121183
+Node: Missing Value Functions\7f122579
+Node: Pseudo-Random Numbers\7f125204
+Node: Set Membership\7f126476
+Node: Statistical Functions\7f127636
+Node: String Functions\7f130182
+Node: Time & Date\7f136184
+Node: Time & Date Concepts\7f137443
+Node: Time Construction\7f139526
+Node: Time Extraction\7f140156
+Node: Date Construction\7f141066
+Node: Date Extraction\7f142742
+Node: Miscellaneous Functions\7f146129
+Node: Functions Not Implemented\7f148012
+Node: Order of Operations\7f148355
+Node: Data Input and Output\7f148969
+Node: BEGIN DATA\7f150490
+Node: CLEAR TRANSFORMATIONS\7f151122
+Node: DATA LIST\7f151500
+Node: DATA LIST FIXED\7f152386
+Node: DATA LIST FIXED Examples\7f157285
+Node: DATA LIST FREE\7f159317
+Node: DATA LIST LIST\7f161026
+Node: END CASE\7f161663
+Node: END FILE\7f161890
+Node: FILE HANDLE\7f162132
+Node: INPUT PROGRAM\7f163522
+Node: LIST\7f168376
+Node: MATRIX DATA\7f170091
+Node: NEW FILE\7f173924
+Node: PRINT\7f174114
+Node: PRINT EJECT\7f176701
+Node: PRINT SPACE\7f177350
+Node: REREAD\7f178019
+Node: REPEATING DATA\7f179113
+Node: WRITE\7f182611
+Node: System and Portable Files\7f183505
+Node: APPLY DICTIONARY\7f184287
+Node: EXPORT\7f186332
+Node: GET\7f187024
+Node: IMPORT\7f188917
+Node: MATCH FILES\7f189764
+Node: SAVE\7f192073
+Node: SYSFILE INFO\7f194124
+Node: XSAVE\7f194590
+Node: Variable Attributes\7f195218
+Node: ADD VALUE LABELS\7f196471
+Node: DISPLAY\7f196874
+Node: DISPLAY VECTORS\7f198123
+Node: FORMATS\7f198377
+Node: LEAVE\7f199071
+Node: MISSING VALUES\7f200345
+Node: MODIFY VARS\7f201560
+Node: NUMERIC\7f203332
+Node: PRINT FORMATS\7f203988
+Node: RENAME VARIABLES\7f204422
+Node: VALUE LABELS\7f205141
+Node: STRING\7f205820
+Node: VARIABLE LABELS\7f206353
+Node: VECTOR\7f206867
+Node: WRITE FORMATS\7f208139
+Node: Data Manipulation\7f208547
+Node: AGGREGATE\7f209414
+Node: AUTORECODE\7f214340
+Node: COMPUTE\7f215392
+Node: COUNT\7f216046
+Node: FLIP\7f218994
+Node: IF\7f220528
+Node: RECODE\7f221770
+Node: SORT CASES\7f224679
+Node: Data Selection\7f225838
+Node: FILTER\7f226682
+Node: N OF CASES\7f227626
+Node: PROCESS IF\7f229219
+Node: SAMPLE\7f230310
+Node: SELECT IF\7f232006
+Node: SPLIT FILE\7f232772
+Node: TEMPORARY\7f233608
+Node: WEIGHT\7f234577
+Node: Conditionals and Looping\7f235550
+Node: BREAK\7f236073
+Node: DO IF\7f236378
+Node: DO REPEAT\7f237165
+Node: LOOP\7f239150
+Node: Statistics\7f241172
+Node: DESCRIPTIVES\7f241547
+Node: FREQUENCIES\7f244849
+Node: CROSSTABS\7f249271
+Node: Utilities\7f254556
+Node: COMMENT\7f255739
+Node: DOCUMENT\7f256190
+Node: DISPLAY DOCUMENTS\7f256866
+Node: DISPLAY FILE LABEL\7f257198
+Node: DROP DOCUMENTS\7f257480
+Node: EXECUTE\7f257885
+Node: FILE LABEL\7f258116
+Node: INCLUDE\7f258550
+Node: QUIT\7f258971
+Node: SET\7f259280
+Node: SUBTITLE\7f267859
+Node: TITLE\7f268438
+Node: Not Implemented\7f268956
+Node: Data File Format\7f269902
+Node: File Header Record\7f272026
+Node: Variable Record\7f275432
+Node: Value Label Record\7f279986
+Node: Value Label Variable Record\7f281293
+Node: Document Record\7f282093
+Node: Machine int32 Info Record\7f282924
+Node: Machine flt64 Info Record\7f285067
+Node: Miscellaneous Informational Records\7f286313
+Node: Dictionary Termination Record\7f287542
+Node: Data Record\7f288190
+Node: Portable File Format\7f290618
+Node: Portable File Characters\7f291596
+Node: Portable File Structure\7f292686
+Node: Portable File Header\7f294552
+Node: Version and Date Info Record\7f297260
+Node: Identification Records\7f297834
+Node: Variable Count Record\7f298352
+Node: Variable Records\7f298785
+Node: Value Label Records\7f300482
+Node: Portable File Data\7f301211
+Node: q2c Input Format\7f301781
+Node: Invoking q2c\7f302387
+Node: q2c Input Structure\7f302769
+Node: Grammar Rules\7f304931
+Node: Bugs\7f311772
+Node: Known bugs\7f312859
+Node: Contacting the Author\7f314271
+Node: Function Index\7f314523
+Node: Concept Index\7f319595
+Node: Command Index\7f342766
+\1f
+End Tag Table
diff --git a/doc/pspp.info-1 b/doc/pspp.info-1
new file mode 100644 (file)
index 0000000..be3f0b1
--- /dev/null
@@ -0,0 +1,1330 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
+
+PSPP
+****
+
+   This file documents the PSPP package for statistical analysis of
+sampled data.  This is edition 0.2, for PSPP version 0.2, last modified
+at Time-stamp: <2000-01-02 22:32:14 blp>.
+
+* Menu:
+
+* Introduction::                Description of the package.
+* License::                     Your rights and obligations.
+* Credits::                     Acknowledgement of authors.
+
+* Installation::                How to compile and install PSPP.
+* Configuration::               Configuring PSPP.
+* Invocation::                  Starting and running PSPP.
+
+* Language::                    Basics of the PSPP command language.
+* Expressions::                 Numeric and string expression syntax.
+
+* Data Input and Output::       Reading data from user files.
+* System and Portable Files::   Dealing with system & portable files.
+* Variable Attributes::         Adjusting and examining variables.
+* Data Manipulation::           Simple operations on data.
+* Data Selection::              Select certain cases for analysis.
+* Conditionals and Looping::    Doing things many times or not at all.
+* Statistics::                  Basic statistical procedures.
+* Utilities::                   Other commands.
+* Not Implemented::             What's not here yet
+
+* Data File Format::            Format of PSPP system files.
+* Portable File Format::        Format of PSPP portable files.
+* q2c Input Format::            Format of syntax accepted by q2c.
+
+* Bugs::                        Known problems; submitting bug reports.
+
+* Function Index::              Index of PSPP functions for expressions.
+* Concept Index::               Index of concepts.
+* Command Index::               Index of PSPP procedures.
+
+\1f
+File: pspp.info,  Node: Introduction,  Next: License,  Prev: Top,  Up: Top
+
+Introduction
+************
+
+   PSPP is a tool for statistical analysis of sampled data.  It reads a
+syntax file and a data file, analyzes the data, and writes the results
+to a listing file or to standard output.
+
+   The language accepted by PSPP is similar to those accepted by SPSS
+statistical products.  The details of PSPP's language are given later
+in this manual.
+
+   PSPP produces output in two forms: tables and charts.  Both of these
+can be written in several formats; currently, ASCII, PostScript, and
+HTML are supported.  In the future, more drivers, such as PCL and X
+Window System drivers, may be developed.  For now, Ghostscript,
+available from the Free Software Foundation, may be used to convert
+PostScript chart output to other formats.
+
+   The current version of PSPP, 0.2, is woefully incomplete in terms of
+its statistical procedure support.  PSPP is a work in progress.  The
+author hopes to support fully support all features in the products that
+PSPP replaces, eventually.  The author welcomes questions, comments,
+donations, and code submissions.  *Note Submitting Bug Reports: Bugs,
+for instructions on contacting the author.
+
+\1f
+File: pspp.info,  Node: License,  Next: Credits,  Prev: Introduction,  Up: Top
+
+Your rights and obligations
+***************************
+
+   Most of PSPP is distributed under the GNU General Public License.
+The General Public License says, in effect, that you may modify and
+distribute PSPP as you like, as long as you grant the same rights to
+others.  It also states that you must provide source code when you
+distribute PSPP, or, if you obtained PSPP source code from an anonymous
+ftp site, give out the name of that site.
+
+   The General Public License is given in full in the source
+distribution as file `COPYING'.  In Debian GNU/Linux, this file is also
+available as file `/usr/doc/copyright/GPL'.
+
+   To quote the GPL itself:
+
+     This program is free software; you can redistribute it and/or
+     modify it under the terms of the GNU General Public License as
+     published by the Free Software Foundation; either version 2 of the
+     License, or (at your option) any later version.
+
+     This program is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with this program; if not, write to the Free Software
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+\1f
+File: pspp.info,  Node: Credits,  Next: Installation,  Prev: License,  Up: Top
+
+Credits
+*******
+
+     I'm always embarrassed when I see an index an author has made of
+     his own work.  It's a shameless exhibition--to the trained eye.
+     Never index your own book.
+
+     --Claire Minton, `Cat's Cradle', Kurt Vonnegut, Jr.
+
+   Most of PSPP, as well as this manual (including the indices), was
+written by Ben Pfaff.  *Note Contacting the Author::, for instructions
+on contacting the author.
+
+   The PSPP source code incorporates `julcal10' originally written by
+Michael A. Covington and translated into C by Jim Van Zandt.  The
+original package can be found in directory
+`ftp://ftp.cdrom.com/pub/algorithms/c/julcal10'.  The entire contents
+of that directory constitute the package.  The files actually used in
+PSPP are `julcal.c' and `julcal.h'.
+
+\1f
+File: pspp.info,  Node: Installation,  Next: Configuration,  Prev: Credits,  Up: Top
+
+Installing PSPP
+***************
+
+   PSPP conforms to the GNU Coding Standards.  PSPP is written in, and
+requires for proper operation, ANSI/ISO C.  You might want to
+additionally note the following points:
+
+   * The compiler and linker must allow for significance of several
+     characters in external identifiers.  The exact number is unknown
+     but at least 31 is recommended.
+
+   * The `int' type must be 32 bits or wider.
+
+   * The recommended compiler is gcc 2.7.2.1 or later, but any ANSI
+     compiler will do if it fits the above criteria.
+
+   Many UNIX variants should work out-of-the-box, as PSPP uses GNU
+autoconf to detect differences between environments.  Please report any
+problems with compilation of PSPP under UNIX and UNIX-like operating
+systems--portability is a major concern of the author.
+
+   The pages below give specific instructions for installing PSPP on
+each type of system mentioned above.
+
+* Menu:
+
+* UNIX installation::           Installing on UNIX-like environments.
+
+\1f
+File: pspp.info,  Node: UNIX installation,  Prev: Installation,  Up: Installation
+
+UNIX installation
+=================
+
+To install PSPP under a UNIX-like operating system, follow the steps
+below in order.  Some of the text below was taken directly from various
+Free Software Foundation sources.
+
+  1. `cd' to the directory containing the PSPP source.
+
+  2. Type `./configure' to configure for your particular operating
+     system and compiler.  Running `configure' takes a while.  While
+     running, it displays some messages telling which features it is
+     checking for.
+
+     You can optionally supply some options to `configure' in order to
+     give it hints about how to do its job.  Type `./configure --help'
+     to see a list of options.  One of the most useful options is
+     `--with-checker', which enables the use of the Checker memory
+     debugger under supported operating systems.  Checker must already
+     be installed to use this option.  Do not use `--with-checker' if
+     you are not debugging PSPP itself.
+
+  3. (optional) Edit `Makefile', `config.h', and `pref.h'.  These files
+     are produced by `configure'.  Note that most PSPP settings can be
+     changed at runtime.
+
+     `pref.h' is only generated by `configure' if it does not already
+     exist.  (It's copied from `prefh.orig'.)
+
+  4. Type `make' to compile the package.  If there are any errors during
+     compilation, try to fix them.  If modifications are necessary to
+     compile correctly under your configuration, contact the author.
+     *Note Submitting Bug Reports: Bugs, for details.
+
+  5. Type `make check' to run self-tests on the compiled PSPP package.
+
+  6. Become the superuser and type `make install' to install the PSPP
+     binaries, by default in `/usr/local/bin/'.  The directory
+     `/usr/local/share/pspp/' is created and populated with files
+     needed by PSPP at runtime.  This step will also cause the PSPP
+     documentation to be installed in `/usr/local/info/', but only if
+     that directory already exists.
+
+  7. (optional) Type `make clean' to delete the PSPP binaries from the
+     source tree.
+
+\1f
+File: pspp.info,  Node: Configuration,  Next: Invocation,  Prev: Installation,  Up: Top
+
+Configuring PSPP
+****************
+
+   PSPP has dozens of configuration possibilities and hundreds of
+settings.  This is both a bane and a blessing.  On one hand, it's
+possible to easily accommodate diverse ranges of setups.  But, on the
+other, the multitude of possibilities can overwhelm the casual user.
+Fortunately, the configuration mechanisms are profusely described in the
+sections below....
+
+* Menu:
+
+* File locations::              How PSPP finds config files.
+* Configuration techniques::    Many different methods of configuration....
+* Configuration files::         How configuration files are read.
+* Environment variables::       All about environment variables.
+* Output devices::              Describing your terminal(s) and printer(s).
+* PostScript driver class::     Configuration of PostScript devices.
+* ASCII driver class::          Configuration of character-code devices.
+* HTML driver class::           Configuration for HTML output.
+* Miscellaneous configuring::   Even more configuration variables.
+* Improving output quality::    Hints for producing ever-more-lovely output.
+
+\1f
+File: pspp.info,  Node: File locations,  Next: Configuration techniques,  Prev: Configuration,  Up: Configuration
+
+Locating configuration files
+============================
+
+   PSPP uses the same method to find most of its configuration files:
+
+  1. The "base name" of the file being sought is determined.
+
+  2. The path to search is determined.
+
+  3. Each directory in the search path, from left to right, is searched
+     for a file with the name of the base name.  The first occurrence
+     is read as the configuration file.
+
+   The first two steps are elaborated below for the sake of our pedantic
+friends.
+
+  1. A "base name" is a file name lacking an absolute directory
+     reference.  Some examples of base names are: `ps-encodings',
+     `devices', `devps/DESC' (under UNIX), `devps\DESC' (under M$
+     environments).
+
+     Determining the base name is a two-step process:
+
+       a. If the appropriate environment variable is defined, the value
+          of that variable is used (*note Environment variables::).
+          For instance, when searching for the output driver
+          initialization file, the variable examined is
+          `STAT_OUTPUT_INIT_FILE'.
+
+       b. Otherwise, the compiled-in default is used.  For example,
+          when searching for the output driver initialization file, the
+          default base name is `devices'.
+
+     *Please note:* If a user-specified base name does contain an
+     absolute directory reference, as in a file name like
+     `/home/pfaff/fonts/TR', no path is searched--the file name is used
+     exactly as given--and the algorithm terminates.
+
+  2. The path is the first of the following that is defined:
+
+        * A variable definition for the path given in the user
+          environment.  This is a PSPP-specific environment variable
+          name; for instance, `STAT_OUTPUT_INIT_PATH'.
+
+        * In some cases, another, less-specific environment variable is
+          checked.  For instance, when searching for font files, the
+          PostScript driver first checks for a variable with name
+          `STAT_GROFF_FONT_PATH', then for one with name
+          `GROFF_FONT_PATH'.  (However, font searching has its own list
+          of esoteric search rules.)
+
+        * The configuration file path, which is itself determined by the
+          following rules:
+
+            a. If the command line contains an option of the form `-B
+               PATH' or `--config-dir=PATH', then the value given on the
+               rightmost occurrence of such an option is used.
+
+            b. Otherwise, if the environment variable
+               `STAT_CONFIG_PATH' is defined, the value of that
+               variable is used.
+
+            c. Otherwise, the compiled-in fallback default is used.  On
+               UNIX machines, the default fallback path is
+
+                 1. `~/.pspp'
+
+                 2. `/usr/local/lib/pspp'
+
+                 3. `/usr/lib/pspp'
+
+               On DOS machines, the default fallback path is:
+
+                 1. All the paths from the DOS search path in the
+                    `PATH' environment variable, in left-to-right order.
+
+                 2. `C:\PSPP', as a last resort.
+
+               Note that the installer of PSPP can easily change this
+               default fallback path; thus the above should not be
+               taken as gospel.
+
+   As a final note: Under DOS, directories given in paths are delimited
+by semicolons (`;'); under UNIX, directories are delimited by colons
+(`:').  This corresponds with the standard path delimiter under these
+OSes.
+
+\1f
+File: pspp.info,  Node: Configuration techniques,  Next: Configuration files,  Prev: File locations,  Up: Configuration
+
+Configuration techniques
+========================
+
+   There are many ways that PSPP can be configured.  These are
+described in the list below.  Values given by earlier items take
+precedence over those given by later items.
+
+  1. Syntax commands that modify settings, such as `SET'.
+
+  2. Command-line options.  *Note Invocation::.
+
+  3. PSPP-specific environment variable contents.  *Note Environment
+     variables::.
+
+  4. General environment variable contents.  *Note Environment
+     variables::.
+
+  5. Configuration file contents.  *Note Configuration files::.
+
+  6. Fallback defaults.
+
+   Some of the above may not apply to a particular setting.  For
+instance, the current pager (such as `more', `most', or `less') cannot
+be determined by configuration file contents because there is no
+appropriate configuration file.
+
+\1f
+File: pspp.info,  Node: Configuration files,  Next: Environment variables,  Prev: Configuration techniques,  Up: Configuration
+
+Configuration files
+===================
+
+   Most configuration files have a common form:
+
+   * Each line forms a separate command or directive.  This means that
+     lines cannot be broken up, unless they are spliced together with a
+     trailing backslash, as described below.
+
+   * Before anything else is done, trailing whitespace is removed.
+
+   * When a line ends in a backslash (`\'), the backslash is removed,
+     and the next line is read and appended to the current line.
+
+        - Whitespace preceding the backslash is retained.
+
+        - This rule continues to be applied until the line read does
+          not end in a backslash.
+
+        - It is an error if the last line in the file ends in a
+          backslash.
+
+   * Comments are introduced by an octothorpe (#), and continue until
+     the end of the line.
+
+        - An octothorpe inside balanced pairs of double quotation marks
+          (`"') or single quotation marks (`'') does not introduce a
+          comment.
+
+        - The backslash character can be used inside balanced quotes of
+          either type to escape the following character as a literal
+          character.
+
+          (This is distinct from the use of a backslash as a
+          line-splicing character.)
+
+        - Line splicing takes place before comment removal.
+
+   * Blank lines, and lines that contain only whitespace, are ignored.
+
+\1f
+File: pspp.info,  Node: Environment variables,  Next: Output devices,  Prev: Configuration files,  Up: Configuration
+
+Environment variables
+=====================
+
+   You may think the concept of environment variables is a fairly simple
+one.  However, the author of PSPP has found a way to complicate even
+something so simple.  Environment variables are further described in
+the sections below:
+
+* Menu:
+
+* Variable values::             Values of variables are determined this way.
+* Environment substitutions::   How environment substitutions are made.
+* Predefined variables::        A few variables are automatically defined.
+
+\1f
+File: pspp.info,  Node: Variable values,  Next: Environment substitutions,  Prev: Environment variables,  Up: Environment variables
+
+Values of environment variables
+-------------------------------
+
+   Values for environment variables are obtained by the following means,
+which are arranged in order of decreasing precedence:
+
+  1. Command-line options.  *Note Invocation::.
+
+  2. The `environment' configuration file--more on this below.
+
+  3. Actual environment variables (defined in the shell or other parent
+     process).
+
+   The `environment' configuration file is located through application
+of the usual algorithm for configuration files (*note File locations::),
+except that its contents do not affect the search path used to find
+`environment' itself.  Use of `environment' is discouraged on systems
+that allow an arbitrarily large environment; it is supported for use on
+systems like MS-DOS that limit environment size.
+
+   `environment' is composed of lines having the form `KEY=VALUE',
+where KEY and the equals sign (`=') are required, and VALUE is
+optional.  If VALUE is given, variable KEY is given that value; if
+VALUE is absent, variable KEY is undefined (deleted).  Variables may
+not be defined with a null value.
+
+   Environment substitutions are performed on each line in the file
+(*note Environment substitutions::).
+
+   See *Note Configuration files::, for more details on formatting of
+the environment configuration file.
+
+     *Please note:* Support for `environment' is not yet implemented.
+
+\1f
+File: pspp.info,  Node: Environment substitutions,  Next: Predefined variables,  Prev: Variable values,  Up: Environment variables
+
+Environment substitutions
+-------------------------
+
+   Much of the power of environment variables lies in the way that they
+may be substituted into configuration files.  Variable substitutions are
+described below.
+
+   The line is scanned from left to right.  In this scan, all characters
+other than dollar signs (`$') are retained unmolested.  Dollar signs,
+however, introduce an environment variable reference.  References take
+three forms:
+
+`$VAR'
+     Replaced by the value of environment variable VAR, determined as
+     specified in *Note Variable values::.  VAR must be one of the
+     following:
+
+        * One or more letters.
+
+        * Exactly one nonalphabetic character.  This may not be a left
+          brace (`{').
+
+`${VAR}'
+     Same as above, but VAR may contain any character (except `}').
+
+`$$'
+     Replaced by a single dollar sign.
+
+   Undefined variables expand to a empty value.
+
+\1f
+File: pspp.info,  Node: Predefined variables,  Prev: Environment substitutions,  Up: Environment variables
+
+Predefined environment variables
+--------------------------------
+
+   There are two environment variables predefined for use in environment
+substitutions:
+
+`VER'
+     Defined as the version number of PSPP, as a string, in a format
+     something like `0.9.4'.
+
+`ARCH'
+     Defined as the host architecture of PSPP, as a string, in standard
+     cpu-manufacturer-OS format.  For instance, Debian GNU/Linux 1.1 on
+     an Intel machine defines this as `i586-unknown-linux'.  This is
+     somewhat dependent on the system used to compile PSPP.
+
+   Nothing prevents these values from being overridden, although it's a
+good idea not to do so.
+
+\1f
+File: pspp.info,  Node: Output devices,  Next: PostScript driver class,  Prev: Environment variables,  Up: Configuration
+
+Output devices
+==============
+
+   Configuring output devices is the most complicated aspect of
+configuring PSPP.  The output device configuration file is named
+`devices'.  It is searched for using the usual algorithm for finding
+configuration files (*note File locations::).  Each line in the file is
+read in the usual manner for configuration files (*note Configuration
+files::).
+
+   Lines in `devices' are divided into three categories, described
+briefly in the table below:
+
+driver category definitions
+     Define a driver in terms of other drivers.
+
+macro definitions
+     Define environment variables local to the the output driver
+     configuration file.
+
+device definitions
+     Describe the configuration of an output device.
+
+   The following sections further elaborate the contents of the
+`devices' file.
+
+* Menu:
+
+* Driver categories::           How to organize the driver namespace.
+* Macro definitions::           Environment variables local to `devices'.
+* Device definitions::          Output device descriptions.
+* Dimensions::                  Lengths, widths, sizes, ....
+* papersize::                   Letter, legal, A4, envelope, ....
+* Distinguishing line types::   Details on `devices' parsing.
+* Tokenizing lines::            Dividing `devices' lines into tokens.
+
+\1f
+File: pspp.info,  Node: Driver categories,  Next: Macro definitions,  Prev: Output devices,  Up: Output devices
+
+Driver categories
+-----------------
+
+   Drivers can be divided into categories.  Drivers are specified by
+their names, or by the names of the categories that they are contained
+in.  Only certain drivers are enabled each time PSPP is run; by
+default, these are the drivers in the category `default'.  To enable a
+different set of drivers, use the `-o DEVICE' command-line option
+(*note Invocation::).
+
+   Categories are specified with a line of the form `CATEGORY=DRIVER1
+DRIVER2 DRIVER3 ...  DRIVERN'.  This line specifies that the category
+CATEGORY is composed of drivers named DRIVER1, DRIVER2, and so on.
+There may be any number of drivers in the category, from zero on up.
+
+   Categories may also be specified on the command line (*note
+Invocation::).
+
+   This is all you need to know about categories.  If you're still
+curious, read on.
+
+   First of all, the term `categories' is a bit of a misnomer.  In fact,
+the internal representation is nothing like the hierarchy that the term
+seems to imply: a linear list is used to keep track of the enabled
+drivers.
+
+   When PSPP first begins reading `devices', this list contains the
+name of any drivers or categories specified on the command line, or the
+single item `default' if none were specified.
+
+   Each time a category definition is specified, the list is searched
+for an item with the value of CATEGORY.  If a matching item is found,
+it is deleted.  If there was a match, the list of drivers (DRIVER1
+through DRIVERN) is then appended to the list.
+
+   Each time a driver definition line is encountered, the list is
+searched.  If the list contains an item with that driver's name, the
+driver is enabled and the item is deleted from the list.  Otherwise,
+the driver is not enabled.
+
+   It is an error if the list is not empty when the end of `devices' is
+reached.
+
+\1f
+File: pspp.info,  Node: Macro definitions,  Next: Device definitions,  Prev: Driver categories,  Up: Output devices
+
+Macro definitions
+-----------------
+
+   Macro definitions take the form `define MACRONAME DEFINITION'.  In
+such a macro definition, the environment variable MACRONAME is defined
+to expand to the value DEFINITION.  Before the definition is made,
+however, any macros used in DEFINITION are expanded.
+
+   Please note the following nuances of macro usage:
+
+   * For the purposes of this section, "macro" and "environment
+     variable" are synonyms.
+
+   * Macros may not take arguments.
+
+   * Macros may not recurse.
+
+   * Macros are just environment variable definitions like other
+     environment variable definitions, with the exception that they are
+     limited in scope to the `devices' configuration file.
+
+   * Macros override other all environment variables of the same name
+     (within the scope of `devices').
+
+   * Earlier macro definitions for a particular KEY override later
+     ones.  In particular, macro definitions on the command line
+     override those in the device definition file.  *Note Non-option
+     Arguments::.
+
+   * There are two predefined macros, whose values are determined at
+     runtime:
+
+    `viewwidth'
+          Defined as the width of the console screen, in columns of
+          text.
+
+    `viewlength'
+          Defined as the length of the console screen, in lines of text.
+
+\1f
+File: pspp.info,  Node: Device definitions,  Next: Dimensions,  Prev: Macro definitions,  Up: Output devices
+
+Driver definitions
+------------------
+
+   Driver definitions are the ultimate purpose of the `devices'
+configuration file.  These are where the real action is.  Driver
+definitions tell PSPP where it should send its output.
+
+   Each driver definition line is divided into four fields.  These
+fields are delimited by colons (`:').  Each line is subjected to
+environment variable interpolation before it is processed further
+(*note Environment substitutions::).  From left to right, the four
+fields are, in brief:
+
+driver name
+     A unique identifier, used to determine whether to enable the
+     driver.
+
+class name
+     One of the predefined driver classes supported by PSPP.  The
+     currently supported driver classes include `postscript' and
+     `ascii'.
+
+device type(s)
+     Zero or more of the following keywords, delimited by spaces:
+
+    `screen'
+          Indicates that the device is a screen display.  This may
+          reduce the amount of buffering done by the driver, to make
+          interactive use more convenient.
+
+    `printer'
+          Indicates that the device is a printer.
+
+    `listing'
+          Indicates that the device is a listing file.
+
+     These options are just hints to PSPP and do not cause the output
+     to be directed to the screen, or to the printer, or to a listing
+     file--those must be set elsewhere in the options.  They are used
+     primarily to decide which devices should be enabled at any given
+     time.  *Note SET::, for more information.
+
+options
+     An optional set of options to pass to the driver itself.  The exact
+     format for the options varies among drivers.
+
+   The driver is enabled if:
+
+  1. Its driver name is specified on the command line, or
+
+  2. It's in a category specified on the command line, or
+
+  3. If no categories or driver names are specified on the command
+     line, it is in category `default'.
+
+   For more information on driver names, see *Note Driver categories::.
+
+   The class name must be one of those supported by PSPP.  The classes
+supported depend on the options with which PSPP was compiled.  See
+later sections in this chapter for descriptions of the available driver
+classes.
+
+   Options are dependent on the driver.  See the driver descriptions for
+details.
+
+\1f
+File: pspp.info,  Node: Dimensions,  Next: papersize,  Prev: Device definitions,  Up: Output devices
+
+Dimensions
+----------
+
+   Quite often in configuration it is necessary to specify a length or a
+size.  PSPP uses a common syntax for all such, calling them
+collectively by the name "dimensions".
+
+   * You can specify dimensions in decimal form (`12.5') or as
+     fractions, either as mixed numbers (`12-1/2') or raw fractions
+     (`25/2').
+
+   * A number of different units are available.  These are suffixed to
+     the numeric part of the dimension.  There must be no spaces
+     between the number and the unit.  The available units are
+     identical to those offered by the popular typesetting system TeX:
+
+    `in'
+          inch (1 `in' = 2.54 `cm')
+
+    `"'
+          inch (1 `in' = 2.54 `cm')
+
+    `pt'
+          printer's point (1 `in' = 72.27 `pt')
+
+    `pc'
+          pica (12 `pt' = 1 `pc')
+
+    `bp'
+          PostScript point (1 `in' = 72 `bp')
+
+    `cm'
+          centimeter
+
+    `mm'
+          millimeter (10 `mm' = 1 `cm')
+
+    `dd'
+          didot point (1157 `dd' = 1238 `pt')
+
+    `cc'
+          cicero (1 `cc' = 12 `dd')
+
+    `sp'
+          scaled point (65536 `sp' = 1 `pt')
+
+   * If no explicit unit is given, a DWIM(1) "feature" attempts to
+     guess the best unit:
+
+        - Numbers less than 50 are assumed to be in inches.
+
+        - Numbers 50 or greater are assumed to be in millimeters.
+
+   ---------- Footnotes ----------
+
+   (1) Do What I Mean
+
+\1f
+File: pspp.info,  Node: papersize,  Next: Distinguishing line types,  Prev: Dimensions,  Up: Output devices
+
+Paper sizes
+-----------
+
+   Output drivers usually deal with some sort of hardcopy media.  This
+media is called "paper" by the drivers, though in reality it could be a
+transparency or film or thinly veiled sarcasm.  To make it easier for
+you to deal with paper, PSPP allows you to have (of course!) a
+configuration file that gives symbolic names, like "letter" or "legal"
+or "a4", to paper sizes, rather than forcing you to use cryptic numbers
+like "8-1/2 x 11" or "210 by 297".  Surprisingly enough, this
+configuration file is named `papersize'.  *Note Configuration files::.
+
+   When PSPP tries to connect a symbolic paper name to a paper size, it
+reads and parses each non-comment line in the file, in order.  The first
+field on each line must be a symbolic paper name in double quotes.
+Paper names may not contain double quotes.  Paper names are not
+case-sensitive: `legal' and `Legal' are equivalent.
+
+   If a match is found for the paper name, the rest of the line is
+parsed.  If it is found to be a pair of dimensions (*note Dimensions::)
+separated by either `x' or `by', then those are taken to be the paper
+size, in order of width followed by length.  There _must_ be at least
+one space on each side of `x' or `by'.
+
+   Otherwise the line must be of the form `"PAPER-1"="PAPER-2"'.  In
+this case the target of the search becomes paper name PAPER-2 and the
+search through the file continues.
+
+\1f
+File: pspp.info,  Node: Distinguishing line types,  Next: Tokenizing lines,  Prev: papersize,  Up: Output devices
+
+How lines are divided into types
+--------------------------------
+
+   The lines in `devices' are distinguished in the following manner:
+
+  1. Leading whitespace is removed.
+
+  2. If the resulting line begins with the exact string `define',
+     followed by one or more whitespace characters, the line is
+     processed as a macro definition.
+
+  3. Otherwise, the line is scanned for the first instance of a colon
+     (`:') or an equals sign (`=').
+
+  4. If a colon is encountered first, the line is processed as a driver
+     definition.
+
+  5. Otherwise, if an equals sign is encountered, the line is processed
+     as a macro definition.
+
+  6. Otherwise, the line is ill-formed.
+
+\1f
+File: pspp.info,  Node: Tokenizing lines,  Prev: Distinguishing line types,  Up: Output devices
+
+How lines are divided into tokens
+---------------------------------
+
+   Each driver definition line is run through a simple tokenizer.  This
+tokenizer recognizes two basic types of tokens.
+
+   The first type is an equals sign (`=').  Equals signs are both
+delimiters between tokens and tokens in themselves.
+
+   The second type is an identifier or string token.  Identifiers and
+strings are equivalent after tokenization, though they are written
+differently.  An identifier is any string of characters other than
+whitespace or equals sign.
+
+   A string is introduced by a single- or double-quote character (`''
+or `"') and, in general, continues until the next occurrence of that
+same character.  The following standard C escapes can also be embedded
+within strings:
+
+`\''
+     A single-quote (`'').
+
+`\"'
+     A double-quote (`"').
+
+`\?'
+     A question mark (`?').  Included for hysterical raisins.
+
+`\\'
+     A backslash (`\').
+
+`\a'
+     Audio bell (ASCII 7).
+
+`\b'
+     Backspace (ASCII 8).
+
+`\f'
+     Formfeed (ASCII 12).
+
+`\n'
+     Newline (ASCII 10)
+
+`\r'
+     Carriage return (ASCII 13).
+
+`\t'
+     Tab (ASCII 9).
+
+`\v'
+     Vertical tab (ASCII 11).
+
+`\OOO'
+     Each `o' must be an octal digit.  The character is the one having
+     the octal value specified.  Any number of octal digits is read and
+     interpreted; only the lower 8 bits are used.
+
+`\xHH'
+     Each `h' must be a hex digit.  The character is the one having the
+     hexadecimal value specified.  Any number of hex digits is read and
+     interpreted; only the lower 8 bits are used.
+
+   Tokens, outside of quoted strings, are delimited by whitespace or
+equals signs.
+
+\1f
+File: pspp.info,  Node: PostScript driver class,  Next: ASCII driver class,  Prev: Output devices,  Up: Configuration
+
+The PostScript driver class
+===========================
+
+   The `postscript' driver class is used to produce output that is
+acceptable to PostScript printers and to PC-based PostScript
+interpreters such as Ghostscript.  Continuing a long tradition, PSPP's
+PostScript driver is configurable to the point of absurdity.
+
+   There are actually two PostScript drivers.  The first one,
+`postscript', produces ordinary DSC-compliant PostScript output.  The
+second one `epsf', produces an Encapsulated PostScript file.  The two
+drivers are otherwise identical in configuration and in operation.
+
+   The PostScript driver is described in further detail below.
+
+* Menu:
+
+* PS output options::           Output file options.
+* PS page options::             Paper, margins, scaling & rotation, more!
+* PS file options::             Configuration files.
+* PS font options::             Default fonts, font options.
+* PS line options::             Line widths, options.
+* Prologue::                    Details on the PostScript prologue.
+* Encodings::                   Details on PostScript font encodings.
+
+\1f
+File: pspp.info,  Node: PS output options,  Next: PS page options,  Prev: PostScript driver class,  Up: PostScript driver class
+
+PostScript output options
+-------------------------
+
+   These options deal with the form of the output and the output file
+itself:
+
+`output-file=FILENAME'
+     File to which output should be sent.  This can be an ordinary
+     filename (i.e., `"pspp.ps"'), a pipe filename (i.e., `"|lpr"'), or
+     stdout (`"-"').  Default: `"pspp.ps"'.
+
+`color=BOOLEAN'
+     Most of the time black-and-white PostScript devices are smart
+     enough to map colors to shades themselves.  However, you can cause
+     the PSPP output driver to do an ugly simulation of this in its own
+     driver by turning `color' off.  Default: `on'.
+
+     This is a boolean setting, as are many settings in the PostScript
+     driver.  Valid positive boolean values are `on', `true', `yes',
+     and nonzero integers.  Negative boolean values are `off', `false',
+     `no', and zero.
+
+`data=DATA-TYPE'
+     One of `clean7bit', `clean8bit', or `binary'.  This controls what
+     characters will be written to the output file.  PostScript
+     produced with `clean7bit' can be transmitted over 7-bit
+     transmission channels that use ASCII control characters for line
+     control.  `clean8bit' is similar but allows characters above 127 to
+     be written to the output file.  `binary' allows any character in
+     the output file.  Default: `clean7bit'.
+
+`line-ends=LINE-END-TYPE'
+     One of `cr', `lf', or `crlf'.  This controls what is used for
+     newline in the output file.  Default: `cr'.
+
+`optimize-line-size=LEVEL'
+     Either `0' or `1'.  If LEVEL is `1', then short line segments will
+     be collected and merged into longer ones.  This reduces output
+     file size but requires more time and memory.  A LEVEL of `0' has
+     the advantage of being better for interactive environments.  `1'
+     is the default unless the `screen' flag is set; in that case, the
+     default is `0'.
+
+`optimize-text-size=LEVEL'
+     One of `0', `1', or `2', each higher level representing
+     correspondingly more aggressive space savings for text in the
+     output file and requiring correspondingly more time and memory.
+     Unfortunately the levels presently are all the same.  `1' is the
+     default unless the `screen' flag is set; in that case, the default
+     is `0'.
+
+\1f
+File: pspp.info,  Node: PS page options,  Next: PS file options,  Prev: PS output options,  Up: PostScript driver class
+
+PostScript page options
+-----------------------
+
+   These options affect page setup:
+
+`headers=BOOLEAN'
+     Controls whether the standard headers showing the time and date and
+     title and subtitle are printed at the top of each page.  Default:
+     `on'.
+
+`paper-size=PAPER-SIZE'
+     Paper size, either as a symbolic name (i.e., `letter' or `a4') or
+     specific measurements (i.e., `8-1/2x11' or `"210 x 297"'.  *Note
+     Paper sizes: papersize.  Default: `letter'.
+
+`orientation=ORIENTATION'
+     Either `portrait' or `landscape'.  Default: `portrait'.
+
+`left-margin=DIMENSION'
+`right-margin=DIMENSION'
+`top-margin=DIMENSION'
+`bottom-margin=DIMENSION'
+     Sets the margins around the page.  The headers, if enabled, are not
+     included in the margins; they are in addition to the margins.  For
+     a description of dimensions, see *Note Dimensions::.  Default:
+     `0.5in'.
+
+\1f
+File: pspp.info,  Node: PS file options,  Next: PS font options,  Prev: PS page options,  Up: PostScript driver class
+
+PostScript file options
+-----------------------
+
+   Oh, my.  You don't really want to know about the way that the
+PostScript driver deals with files, do you?  Well I suppose you're
+entitled, but I warn you right now: it's not pretty.  Here goes....
+
+   First let's look at the options that are available:
+
+`font-dir=FONT-DIRECTORY'
+     Sets the font directory.  Default: `devps'.
+
+`prologue-file=PROLOGUE-FILE-NAME'
+     Sets the name of the PostScript prologue file.  You can write your
+     own prologue, though I have no idea why you'd want to: see *Note
+     Prologue::.  Default: `ps-prologue'.
+
+`device-file=DEVICE-FILE-NAME'
+     Sets the name of the Groff-format device description file.  The
+     PostScript driver reads this in order to know about the scaling of
+     fonts and so on.  The format of such files is described in
+     groff_font(5), included with Groff.  Default: `DESC'.
+
+`encoding-file=ENCODING-FILE-NAME'
+     Sets the name of the encoding file.  This file contains a list of
+     all font encodings that will be needed so that the driver can put
+     all of them at the top of the prologue.  *Note Encodings::.
+     Default: `ps-encodings'.
+
+     If the specified encoding file cannot be found, this error will be
+     silently ignored, since most people do not need any encodings
+     besides the ones that can be found using `auto-encodings',
+     described below.
+
+`auto-encode=BOOLEAN'
+     When enabled, the font encodings needed by the default
+     proportional- and fixed-pitch fonts will automatically be dumped
+     to the PostScript output.  Otherwise, it is assumed that the user
+     has an encoding file and knows how to use it (*note Encodings::).
+     There is probably no good reason to turn off this convenient
+     feature.  Default: `on'.
+
+   Next I suppose it's time to describe the search algorithm.  When the
+PostScript driver needs a file, whether that file be a font, a
+PostScript prologue, or what you will, it searches in this manner:
+
+  1. Constructs a path by taking the first of the following that is
+     defined:
+
+       a. Environment variable `STAT_GROFF_FONT_PATH'.  *Note
+          Environment variables::.
+
+       b. Environment variable `GROFF_FONT_PATH'.
+
+       c. The compiled-in fallback default.
+
+  2. Constructs a base name from concatenating, in order, the font
+     directory, a path separator (`/' or `\'), and the file to be
+     found.  A typical base name would be something like
+     `devps/ps-encodings'.
+
+  3. Searches for the base name in the path constructed above.  If the
+     file is found, the algorithm terminates.
+
+  4. Searches for the base name in the standard configuration path.  See
+     *Note File locations::, for more details.  If the file is found,
+     the algorithm terminates.
+
+  5. At this point we remove the font directory and path separator from
+     the base name.  Now the base name is simply the file to be found,
+     i.e., `ps-encodings'.
+
+  6. Searches for the base name in the path constructed in the first
+     step.  If the file is found, the algorithm terminates.
+
+  7. Searches for the base name in the standard configuration path.  If
+     the file is found, the algorithm terminates.
+
+  8. The algorithm terminates unsuccessfully.
+
+   So, as you see, there are several ways to configure the PostScript
+drivers.  Careful selection of techniques can make the configuration
+very flexible indeed.
+
+\1f
+File: pspp.info,  Node: PS font options,  Next: PS line options,  Prev: PS file options,  Up: PostScript driver class
+
+PostScript font options
+-----------------------
+
+   The list of available font options is short and sweet:
+
+`prop-font=FONT-NAME'
+     Sets the default proportional font.  The name should be that of a
+     PostScript font.  Default: `"Helvetica"'.
+
+`fixed-font=FONT-NAME'
+     Sets the default fixed-pitch font.  The name should be that of a
+     PostScript font.  Default: `"Courier"'.
+
+`font-size=FONT-SIZE'
+     Sets the size of the default fonts, in thousandths of a point.
+     Default: `10000'.
+
+\1f
+File: pspp.info,  Node: PS line options,  Next: Prologue,  Prev: PS font options,  Up: PostScript driver class
+
+PostScript line options
+-----------------------
+
+   Most tables contain lines, or rules, between cells.  Some features of
+the way that lines are drawn in PostScript tables are user-definable:
+
+`line-style=STYLE'
+     Sets the style used for lines used to divide tables into sections.
+     STYLE must be either `thick', in which case thick lines are used,
+     or DOUBLE, in which case double lines are used.  Default: `thick'.
+
+`line-gutter=DIMENSION'
+     Sets the line gutter, which is the amount of whitespace on either
+     side of lines that border text or graphics objects.  *Note
+     Dimensions::.  Default: `0.5pt'.
+
+`line-spacing=DIMENSION'
+     Sets the line spacing, which is the amount of whitespace that
+     separates lines that are side by side, as in a double line.
+     Default: `0.5pt'.
+
+`line-width=DIMENSION'
+     Sets the width of a typical line used in tables.  Default: `0.5pt'.
+
+`line-width-thick=DIMENSION'
+     Sets the width of a thick line used in tables.  Not used if
+     `line-style' is set to `thick'.  Default: `1.5pt'.
+
+\1f
+File: pspp.info,  Node: Prologue,  Next: Encodings,  Prev: PS line options,  Up: PostScript driver class
+
+The PostScript prologue
+-----------------------
+
+   Most PostScript files that are generated mechanically by programs
+consist of two parts: a prologue and a body.  The prologue is generally
+a collection of boilerplate.  Only the body differs greatly between two
+outputs from the same program.
+
+   This is also the strategy used in the PSPP PostScript driver.  In
+general, the prologue supplied with PSPP will be more than sufficient.
+In this case, you will not need to read the rest of this section.
+However, hackers might want to know more.  Read on, if you fall into
+this category.
+
+   The prologue is dumped into the output stream essentially unmodified.
+However, two actions are performed on its lines.  First, certain lines
+may be omitted as specified in the prologue file itself.  Second,
+variables are substituted.
+
+   The following lines are omitted:
+
+  1. All lines that contain three bangs in a row (`!!!').
+
+  2. Lines that contain `!eps', if the PostScript driver is producing
+     ordinary PostScript output.  Otherwise an EPS file is being
+     produced, and the line is included in the output, although
+     everything following `!eps' is deleted.
+
+  3. Lines that contain `!ps', if the PostScript driver is producing EPS
+     output.  Otherwise, ordinary PostScript is being produced, and the
+     line is included in the output, although everything following
+     `!ps' is deleted.
+
+   The following are the variables that are substituted.  Only the
+variables listed are substituted; environment variables are not.  *Note
+Environment substitutions::.
+
+`bounding-box'
+     The page bounding box, in points, as four space-separated numbers.
+     For U.S. letter size paper, this is `0 0 612 792'.
+
+`creator'
+     PSPP version as a string: `GNU PSPP 0.1b', for example.
+
+`date'
+     Date the file was created.  Example: `Tue May 21 13:46:22 1991'.
+
+`data'
+     Value of the `data' PostScript driver option, as one of the strings
+     `Clean7Bit', `Clean8Bit', or `Binary'.
+
+`orientation'
+     Page orientation, as one of the strings `Portrait' or `Landscape'.
+
+`user'
+     Under multiuser OSes, the user's login name, taken either from the
+     environment variable `LOGNAME' or, if that fails, the result of the
+     C library function `getlogin()'.  Defaults to `nobody'.
+
+`host'
+     System hostname as reported by `gethostname()'.  Defaults to
+     `nowhere'.
+
+`prop-font'
+     Name of the default proportional font, prefixed by the word `font'
+     and a space.  Example: `font Times-Roman'.
+
+`fixed-font'
+     Name of the default fixed-pitch font, prefixed by the word `font'
+     and a space.
+
+`scale-factor'
+     The page scaling factor as a floating-point number.  Example:
+     `1.0'.  Note that this is also passed as an argument to the BP
+     macro.
+
+`paper-length'
+
+`paper-width'
+     The paper length and paper width, respectively, in thousandths of a
+     point.  Note that these are also passed as arguments to the BP
+     macro.
+
+`left-margin'
+
+`top-margin'
+     The left margin and top margin, respectively, in thousandths of a
+     point.  Note that these are also passed as arguments to the BP
+     macro.
+
+`title'
+     Document title as a string.  This is not the title specified in the
+     PSPP syntax file.  A typical title is the word `PSPP' followed by
+     the syntax file name in parentheses.  Example: `PSPP (<stdin>)'.
+
+`source-file'
+     PSPP syntax file name.  Example: `mary96/first.stat'.
+
+   Any other questions about the PostScript prologue can best be
+answered by examining the default prologue or the PSPP source.
+
+\1f
+File: pspp.info,  Node: Encodings,  Prev: Prologue,  Up: PostScript driver class
+
+PostScript encodings
+--------------------
+
+   PostScript fonts often contain many more than 256 characters, in
+order to accommodate foreign language characters and special symbols.
+PostScript uses "encodings" to map these onto single-byte symbol sets.
+Each font can have many different encodings applied to it.
+
+   PSPP's PostScript driver needs to know which encoding to apply to
+each font.  It can determine this from the information encapsulated in
+the Groff font description that it reads.  However, there is an
+additional problem--for efficiency, the PostScript driver needs to have
+a complete list of all encodings that will be used in the entire
+session _when it opens the output file_.  For this reason, it can't use
+the information built into the fonts because it doesn't know which fonts
+will be used.
+
+   As a stopgap solution, there are two mechanisms for specifying which
+encodings will be used.  The first mechanism is automatic and it is the
+only one that most PSPP users will ever need.  The second mechanism is
+manual, but it is more flexible.  Either mechanism or both may be used
+at one time.
+
+   The first mechanism is activated by the `auto-encode' driver option
+(*note PS file options::).  When enabled, `auto-encode' causes the
+PostScript driver to include the encodings used by the default
+proportional and fixed-pitch fonts (*note PS font options::).  Many
+PSPP output files will only need these encodings.
+
+   The second mechanism is the file specified by the `encoding-file'
+option (*note PS file options::).  If it exists, this file must consist
+of lines in PSPP configuration-file format (*note Configuration
+files::).  Each line that is not a comment should name a PostScript
+encoding to include in the output.
+
+   It is not an error if an encoding is included more than once, by
+either mechanism.  It will appear only once in the output.  It is also
+not an error if an encoding is included in the output but never used.
+It _is_ an error if an encoding is used but not included by one of
+these mechanisms.  In this case, the built-in PostScript encoding
+`ISOLatin1Encoding' is substituted.
+
+\1f
+File: pspp.info,  Node: ASCII driver class,  Next: HTML driver class,  Prev: PostScript driver class,  Up: Configuration
+
+The ASCII driver class
+======================
+
+   The ASCII driver class produces output that can be displayed on a
+terminal or output to printers.  All of its options are highly
+configurable.  The ASCII driver has class name `ascii'.
+
+   The ASCII driver is described in further detail below.
+
+* Menu:
+
+* ASCII output options::        Output file options.
+* ASCII page options::          Page size, margins, more.
+* ASCII font options::          Box character, bold & italics.
+
diff --git a/doc/pspp.info-2 b/doc/pspp.info-2
new file mode 100644 (file)
index 0000000..2bb56f8
--- /dev/null
@@ -0,0 +1,1297 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: ASCII output options,  Next: ASCII page options,  Prev: ASCII driver class,  Up: ASCII driver class
+
+ASCII output options
+--------------------
+
+`output-file=FILENAME'
+     File to which output should be sent.  This can be an ordinary
+     filename (i.e., `"pspp.ps"'), a pipe filename (i.e., `"|lpr"'), or
+     stdout (`"-"').  Default: `"pspp.list"'.
+
+`char-set=CHAR-SET-TYPE'
+     One of `ascii' or `latin1'.  This has no effect on output at the
+     present time.  Default: `ascii'.
+
+`form-feed-string=FORM-FEED-VALUE'
+     The string written to the output to cause a formfeed.  See also
+     `paginate', described below, for a related setting.  Default:
+     `"\f"'.
+
+`newline-string=NEWLINE-VALUE'
+     The string written to the output to cause a newline (carriage
+     return plus linefeed).  The default, which can be specified
+     explicitly with `newline-string=default', is to use the
+     system-dependent newline sequence by opening the output file in
+     text mode.  This is usually the right choice.
+
+     However, `newline-string' can be set to any string.  When this is
+     done, the output file is opened in binary mode.
+
+`paginate=BOOLEAN'
+     If set, a formfeed (as set in `form-feed-string', described above)
+     will be written to the device after every page.  Default: `on'.
+
+`tab-width=TAB-WIDTH-VALUE'
+     The distance between tab stops for this device.  If set to 0, tabs
+     will not be used in the output.  Default: `8'.
+
+`init=INITIALIZATION-STRING.'
+     String written to the device before anything else, at the
+     beginning of the output.  Default: `""' (the empty string).
+
+`done=FINALIZATION-STRING.'
+     String written to the device after everything else, at the end of
+     the output.  Default: `""' (the empty string).
+
+\1f
+File: pspp.info,  Node: ASCII page options,  Next: ASCII font options,  Prev: ASCII output options,  Up: ASCII driver class
+
+ASCII page options
+------------------
+
+   These options affect page setup:
+
+`headers=BOOLEAN'
+     If enabled, two lines of header information giving title and
+     subtitle, page number, date and time, and PSPP version are printed
+     at the top of every page.  These two lines are in addition to any
+     top margin requested.  Default: `on'.
+
+`length=LINE-COUNT'
+     Physical length of a page, in lines.  Headers and margins are
+     subtracted from this value.  Default: `66'.
+
+`width=CHARACTER-COUNT'
+     Physical width of a page, in characters.  Margins are subtracted
+     from this value.  Default: `130'.
+
+`lpi=LINES-PER-INCH'
+     Number of lines per vertical inch.  Not currently used.  Default:
+     `6'.
+
+`cpi=CHARACTERS-PER-INCH'
+     Number of characters per horizontal inch.  Not currently used.
+     Default: `10'.
+
+`left-margin=LEFT-MARGIN-WIDTH'
+     Width of the left margin, in characters.  PSPP subtracts this value
+     from the page width.  Default: `0'.
+
+`right-margin=RIGHT-MARGIN-WIDTH'
+     Width of the right margin, in characters.  PSPP subtracts this
+     value from the page width.  Default: `0'.
+
+`top-margin=TOP-MARGIN-LINES'
+     Length of the top margin, in lines.  PSPP subtracts this value from
+     the page length.  Default: `2'.
+
+`bottom-margin=BOTTOM-MARGIN-LINES'
+     Length of the bottom margin, in lines.  PSPP subtracts this value
+     from the page length.  Default: `2'.
+
+\1f
+File: pspp.info,  Node: ASCII font options,  Prev: ASCII page options,  Up: ASCII driver class
+
+ASCII font options
+------------------
+
+   These are the ASCII font options:
+
+`box[LINE-TYPE]=BOX-CHARS'
+     The characters used for lines in tables produced by the ASCII
+     driver can be changed using this option.  LINE-TYPE is used to
+     indicate which type of line to change; BOX-CHARS is the character
+     or string of characters to use for this type of line.
+
+     LINE-TYPE must be a 4-digit number in base 4.  The digits are in
+     the order `right', `bottom', `left', `top'.  The four
+     possibilities for each digit are:
+
+    0
+          No line.
+
+    1
+          Single line.
+
+    2
+          Double line.
+
+    3
+          Special device-defined line, if one is available; otherwise,
+          a double line.
+
+     Examples:
+
+    `box[0101]="|"'
+          Sets `|' as the character to use for a single-width line with
+          bottom and top components.
+
+    `box[2222]="#"'
+          Sets `#' as the character to use for the intersection of four
+          double-width lines, one each from the top, bottom, left and
+          right.
+
+    `box[1100]="\xda"'
+          Sets `"\xda"', which under MS-DOG is a box character suitable
+          for the top-left corner of a box, as the character for the
+          intersection of two single-width lines, one each from the
+          right and bottom.
+
+     Defaults:
+
+        * `box[0000]=" "'
+
+        * `box[1000]="-"'
+          `box[0010]="-"'
+          `box[1010]="-"'
+
+        * `box[0100]="|"'
+          `box[0001]="|"'
+          `box[0101]="|"'
+
+        * `box[2000]="="'
+          `box[0020]="="'
+          `box[2020]="="'
+
+        * `box[0200]="#"'
+          `box[0002]="#"'
+          `box[0202]="#"'
+
+        * `box[3000]="="'
+          `box[0030]="="'
+          `box[3030]="="'
+
+        * `box[0300]="#"'
+          `box[0003]="#"'
+          `box[0303]="#"'
+
+        * For all others, `+' is used unless there are double lines or
+          special lines, in which case `#' is used.
+
+`italic-on=ITALIC-ON-STRING'
+     Character sequence written to turn on italics or underline
+     printing.  If this is set to `overstrike', then the driver will
+     simulate underlining by overstriking with underscore characters
+     (`_') in the manner described by `overstrike-style' and
+     `carriage-return-style'.  Default: `overstrike'.
+
+`italic-off=ITALIC-OFF-STRING'
+     Character sequence to turn off italics or underline printing.
+     Default: `""' (the empty string).
+
+`bold-on=BOLD-ON-STRING'
+     Character sequence written to turn on bold or emphasized printing.
+     If set to `overstrike', then the driver will simulated bold
+     printing by overstriking characters in the manner described by
+     `overstrike-style' and `carriage-return-style'.  Default:
+     `overstrike'.
+
+`bold-off=BOLD-OFF-STRING'
+     Character sequence to turn off bold or emphasized printing.
+     Default: `""' (the empty string).
+
+`bold-italic-on=BOLD-ITALIC-ON-STRING'
+     Character sequence written to turn on bold-italic printing.  If
+     set to `overstrike', then the driver will simulate bold-italics by
+     overstriking twice, once with the character, a second time with an
+     underscore (`_') character, in the manner described by
+     `overstrike-style' and `carriage-return-style'.  Default:
+     `overstrike'.
+
+`bold-italic-off=BOLD-ITALIC-OFF-STRING'
+     Character sequence to turn off bold-italic printing.  Default: `""'
+     (the empty string).
+
+`overstrike-style=OVERSTRIKE-OPTION'
+     Either `single' or `line':
+
+        * If `single' is selected, then, to overstrike a line of text,
+          the output driver will output a character, backspace,
+          overstrike, output a character, backspace, overstrike, and so
+          on along a line.
+
+        * If `line' is selected then the output driver will output an
+          entire line, then backspace or emit a carriage return (as
+          indicated by `carriage-return-style'), then overstrike the
+          entire line at once.
+
+     `single' is recommended for use with ttys and programs that
+     understand overstriking in text files, such as the pager `less'.
+     `single' will also work with printer devices but results in rapid
+     back-and-forth motions of the printhead that can cause the printer
+     to physically overheat!
+
+     `line' is recommended for use with printer devices.  Most programs
+     that understand overstriking in text files will not properly deal
+     with `line' mode.
+
+     Default: `single'.
+
+`carriage-return-style=CARRIAGE-RETURN-TYPE'
+     Either `bs' or `cr'.  This option applies only when one or more of
+     the font commands is set to `overstrike' and, at the same time,
+     `overstrike-style' is set to `line'.
+
+        * If `bs' is selected then the driver will return to the
+          beginning of a line by emitting a sequence of backspace
+          characters (ASCII 8).
+
+        * If `cr' is selected then the driver will return to the
+          beginning of a line by emitting a single carriage-return
+          character (ASCII 13).
+
+     Although `cr' is preferred as being more compact, `bs' is more
+     general since some devices do not interpret carriage returns in the
+     desired manner.  Default: `bs'.
+
+\1f
+File: pspp.info,  Node: HTML driver class,  Next: Miscellaneous configuring,  Prev: ASCII driver class,  Up: Configuration
+
+The HTML driver class
+=====================
+
+   The `html' driver class is used to produce output for viewing in
+tables-capable web browsers such as Emacs' w3-mode.  Its configuration
+is very simple.  Currently, the output has a very plain format.  In the
+future, further work may be done on improving the output appearance.
+
+   There are few options for use with the `html' driver class:
+
+`output-file=FILENAME'
+     File to which output should be sent.  This can be an ordinary
+     filename (i.e., `"pspp.ps"'), a pipe filename (i.e., `"|lpr"'), or
+     stdout (`"-"').  Default: `"pspp.html"'.
+
+`prologue-file=PROLOGUE-FILE-NAME'
+     Sets the name of the PostScript prologue file.  You can write your
+     own prologue if you want to customize colors or other settings: see
+     *Note HTML Prologue::.  Default: `html-prologue'.
+
+* Menu:
+
+* HTML Prologue::               Format of the HTML prologue file.
+
+\1f
+File: pspp.info,  Node: HTML Prologue,  Prev: HTML driver class,  Up: HTML driver class
+
+The HTML prologue
+-----------------
+
+   HTML files that are generated by PSPP consist of two parts: a
+prologue and a body.  The prologue is a collection of boilerplate.
+Only the body differs greatly between two outputs.  You can tune the
+colors and other attributes of the output by editing the prologue.
+
+   The prologue is dumped into the output stream essentially unmodified.
+However, two actions are performed on its lines.  First, certain lines
+may be omitted as specified in the prologue file itself.  Second,
+variables are substituted.
+
+   The following lines are omitted:
+
+  1. All lines that contain three bangs in a row (`!!!').
+
+  2. Lines that contain `!title', if no title is set for the output.  If
+     a title is set, then the characters `!title' are removed before the
+     line is output.
+
+  3. Lines that contain `!subtitle', if no subtitle is set for the
+     output.  If a subtitle is set, then the characters `!subtitle' are
+     removed before the line is output.
+
+   The following are the variables that are substituted.  Only the
+variables listed are substituted; environment variables are not.  *Note
+Environment substitutions::.
+
+`generator'
+     PSPP version as a string: `GNU PSPP 0.1b', for example.
+
+`date'
+     Date the file was created.  Example: `Tue May 21 13:46:22 1991'.
+
+`user'
+     Under multiuser OSes, the user's login name, taken either from the
+     environment variable `LOGNAME' or, if that fails, the result of the
+     C library function `getlogin()'.  Defaults to `nobody'.
+
+`host'
+     System hostname as reported by `gethostname()'.  Defaults to
+     `nowhere'.
+
+`title'
+     Document title as a string.  This is the title specified in the
+     PSPP syntax file.
+
+`subtitle'
+     Document subtitle as a string.
+
+`source-file'
+     PSPP syntax file name.  Example: `mary96/first.stat'.
+
+\1f
+File: pspp.info,  Node: Miscellaneous configuring,  Next: Improving output quality,  Prev: HTML driver class,  Up: Configuration
+
+Miscellaneous configuration
+===========================
+
+   The following environment variables can be used to further configure
+PSPP:
+
+`HOME'
+     Used to determine the user's home directory.  No default value.
+
+`STAT_INCLUDE_PATH'
+     Path used to find include files in PSPP syntax files.  Defaults
+     vary across operating systems:
+
+    UNIX
+             * `.'
+
+             * `~/.pspp/include'
+
+             * `/usr/local/lib/pspp/include'
+
+             * `/usr/lib/pspp/include'
+
+             * `/usr/local/share/pspp/include'
+
+             * `/usr/share/pspp/include'
+
+    MS-DOS
+             * `.'
+
+             * `C:\PSPP\INCLUDE'
+
+             * `$PATH'
+
+    Other OSes
+          No default path.
+
+`STAT_PAGER'
+`PAGER'
+     When PSPP invokes an external pager, it uses the first of these
+     that is defined.  There is a default pager only if the person who
+     compiled PSPP defined one.
+
+`TERM'
+     The terminal type `termcap' or `ncurses' will use, if such support
+     was compiled into PSPP.
+
+`STAT_OUTPUT_INIT_FILE'
+     The basename used to search for the driver definition file.  *Note
+     Output devices::.  *Note File locations::.  Default: `devices'.
+
+`STAT_OUTPUT_PAPERSIZE_FILE'
+     The basename used to search for the papersize file.  *Note
+     papersize::.  *Note File locations::.  Default: `papersize'.
+
+`STAT_OUTPUT_INIT_PATH'
+     The path used to search for the driver definition file and the
+     papersize file.  *Note File locations::.  Default: the standard
+     configuration path.
+
+`TMPDIR'
+     The `sort' procedure stores its temporary files in this directory.
+     Default: (UNIX) `/tmp', (MS-DOS) `\', (other OSes) empty string.
+
+`TEMP'
+
+`TMP'
+     Under MS-DOS only, these variables are consulted after TMPDIR, in
+     this order.
+
+\1f
+File: pspp.info,  Node: Improving output quality,  Prev: Miscellaneous configuring,  Up: Configuration
+
+Improving output quality
+========================
+
+   When its drivers are set up properly, PSPP can produce output that
+looks very good indeed.  The PostScript driver, suitably configured, can
+produce presentation-quality output.  Here are a few guidelines for
+producing better-looking output, regardless of output driver.  Your
+mileage may vary, of course, and everyone has different esthetic
+preferences.
+
+   * Width is important in PSPP output.  Greater output width leads to
+     more readable output, to a point.  Try the following to increase
+     the output width:
+
+        - If you're using the ASCII driver with a dot-matrix printer,
+          figure out what you need to do to put the printer into
+          compressed mode.  Put that string into the `init-string'
+          setting.  Try to get 132 columns; 160 might be better, but
+          you might find that print that tiny is difficult to read.
+
+        - With the PostScript driver, try these ideas:
+
+             + Landscape mode.
+
+             + Legal-size (8.5" x 14") paper in landscape mode.
+
+             + Reducing font sizes.  If you're using 12-point fonts,
+               try 10 point; if you're using 10-point fonts, try 8
+               point.  Some fonts are more readable than others at
+               small sizes.
+
+     Try to strike a balance between character size and page width.
+
+   * Use high-quality fonts.  Many public domain fonts are poor in
+     quality.  Recently, URW made some high-quality fonts available
+     under the GPL.  These are probably suitable.
+
+   * Be sure you're using the proper font metrics.  The font metrics
+     provided with PSPP may not correspond to the fonts actually being
+     printed.  This can cause bizarre-looking output.
+
+   * Make sure that you're using good ink/ribbon/toner.  Darker print is
+     easier to read.
+
+   * Use plain fonts with serifs, such as Times-Roman or Palatino.
+     Avoid choosing italic or bold fonts as document base fonts.
+
+\1f
+File: pspp.info,  Node: Invocation,  Next: Language,  Prev: Configuration,  Up: Top
+
+Invoking PSPP
+*************
+
+     pspp [ -B DIR | --config-dir=DIR ] [ -o DEVICE | --device=DEVICE ]
+            [ -d VAR[=VALUE] | --define=VAR[=VALUE] ] [-u VAR | --undef=VAR ]
+            [ -f FILE | --out-file=FILE ] [ -p | --pipe ] [ -I- | --no-include ]
+            [ -I DIR | --include=DIR ] [ -i | --interactive ]
+            [ -n | --edit | --dry-run | --just-print | --recon ]
+            [ -r | --no-statrc ] [ -h | --help ] [ -l | --list ]
+            [ -c COMMAND | --command COMMAND ] [ -s | --safer ]
+            [ --testing-mode ] [ -V | --version ] [ -v | --verbose ]
+            [ KEY=VALUE ] FILE....
+
+* Menu:
+
+* Non-option Arguments::        Specifying syntax files and output devices.
+* Configuration Options::       Change the configuration for the current run.
+* Input and output options::    Controlling input and output files.
+* Language control options::    Language variants.
+* Informational options::       Helpful information about PSPP.
+
+\1f
+File: pspp.info,  Node: Non-option Arguments,  Next: Configuration Options,  Prev: Invocation,  Up: Invocation
+
+Non-option Arguments
+====================
+
+   Syntax files and output device substitutions can be specified on
+PSPP's command line:
+
+`FILE'
+     A file by itself on the command line will be executed as a syntax
+     file.  PSPP terminates after the syntax file runs, unless the `-i'
+     or `--interactive' option is given (*note Language control
+     options::).
+
+`FILE1 FILE2'
+     When two or more filenames are given on the command line, the first
+     syntax file is executed, then PSPP's dictionary is cleared, then
+     the second syntax file is executed.
+
+`FILE1 + FILE2'
+     If syntax files' names are delimited by a plus sign (`+'), then the
+     dictionary is not cleared between their executions, as if they were
+     concatenated together into a single file.
+
+`KEY=VALUE'
+     Defines an output device macro KEY to expand to VALUE, overriding
+     any macro having the same KEY defined in the device configuration
+     file.  *Note Macro definitions::.
+
+   There is one other way to specify a syntax file, if your operating
+system supports it.  If you have a syntax file `foobar.stat', put the
+notation
+
+     #! /usr/local/bin/pspp
+
+   at the top, and mark the file as executable with `chmod +x
+foobar.stat'.  (If PSPP is not installed in `/usr/local/bin', then
+insert its actual installation directory into the syntax file instead.)
+Now you should be able to invoke the syntax file just by typing its
+name.  You can include any options on the command line as usual.  PSPP
+entirely ignores any lines beginning with `#!'.
+
+\1f
+File: pspp.info,  Node: Configuration Options,  Next: Input and output options,  Prev: Non-option Arguments,  Up: Invocation
+
+Configuration Options
+=====================
+
+   Configuration options are used to change PSPP's configuration for the
+current run.  The configuration options are:
+
+`-B DIR'
+`--config-dir=DIR'
+     Sets the configuration directory to DIR.  *Note File locations::.
+
+`-o DEVICE'
+`--device=DEVICE'
+     Selects the output device with name DEVICE.  If this option is
+     given more than once, then all devices mentioned are selected.
+     This option disables all devices besides those mentioned on the
+     command line.
+
+`-d VAR[=VALUE]'
+`--define=VAR[=VALUE]'
+     Defines an `environment variable' named VAR having the optional
+     value VALUE specified.  *Note Variable values::.
+
+`-u VAR'
+`--undef=VAR'
+     Undefines the `environment variable' named VAR.  *Note Variable
+     values::.
+
+\1f
+File: pspp.info,  Node: Input and output options,  Next: Language control options,  Prev: Configuration Options,  Up: Invocation
+
+Input and output options
+========================
+
+   Input and output options affect how PSPP reads input and writes
+output.  These are the input and output options:
+
+`-f FILE'
+`--out-file=FILE'
+     This overrides the output file name for devices designated as
+     listing devices.  If a file named FILE already exists, it is
+     overwritten.
+
+`-p'
+`--pipe'
+     Allows PSPP to be used as a filter by causing the syntax file to be
+     read from stdin and output to be written to stdout.  Conflicts
+     with the `-f FILE' and `--file=FILE' options.
+
+`-I-'
+`--no-include'
+     Clears all directories from the include path.  This includes all
+     directories put in the include path by default.  *Note
+     Miscellaneous configuring::.
+
+`-I DIR'
+`--include=DIR'
+     Appends directory DIR to the path that is searched for include
+     files in PSPP syntax files.
+
+`-c COMMAND'
+`--command=COMMAND'
+     Execute literal command COMMAND.  The command is executed before
+     startup syntax files, if any.
+
+`--testing-mode'
+     Invoke heuristics to assist with testing PSPP.  For use by `make
+     check' and similar scripts.
+
+\1f
+File: pspp.info,  Node: Language control options,  Next: Informational options,  Prev: Input and output options,  Up: Invocation
+
+Language control options
+========================
+
+   Language control options control how PSPP syntax files are parsed and
+interpreted.  The available language control options are:
+
+`-i'
+`--interactive'
+     When a syntax file is specified on the command line, PSPP normally
+     terminates after processing it.  Giving this option will cause
+     PSPP to bring up a command prompt after processing the syntax file.
+
+     In addition, this forces syntax files to be interpreted in
+     interactive mode, rather than the default batch mode.  *Note
+     Tokenizing lines::, for information on the differences between
+     batch mode and interactive mode command interpretation.
+
+`-n'
+`--edit'
+`--dry-run'
+`--just-print'
+`--recon'
+     Only the syntax of any syntax file specified or of commands
+     entered at the command line is checked.  Transformations are not
+     performed and procedures are not executed.  Not yet implemented.
+
+`-r'
+`--no-statrc'
+     Prevents the execution of the PSPP startup syntax file.  Not yet
+     implemented, as startup syntax files aren't, either.
+
+`-s'
+`--safer'
+     Disables certain unsafe operations.  This includes the `ERASE' and
+     `HOST' commands, as well as use of pipes as input and output files.
+
+\1f
+File: pspp.info,  Node: Informational options,  Prev: Language control options,  Up: Invocation
+
+Informational options
+=====================
+
+   Informational options cause information about PSPP to be written to
+the terminal.  Here are the available options:
+
+`-h'
+
+`--help'
+     Prints a message describing PSPP command-line syntax and the
+     available device driver classes, then terminates.
+
+`-l'
+
+`--list'
+     Lists the available device driver classes, then terminates.
+
+`-V'
+
+`--version'
+     Prints a brief message listing PSPP's version, warranties you don't
+     have, copying conditions and copyright, and e-mail address for bug
+     reports, then terminates.
+
+`-v'
+
+`--verbose'
+     Increments PSPP's verbosity level.  Higher verbosity levels cause
+     PSPP to display greater amounts of information about what it is
+     doing.  Often useful for debugging PSPP's configuration.
+
+     This option can be given multiple times to set the verbosity level
+     to that value.  The default verbosity level is 0, in which no
+     informational messages will be displayed.
+
+     Higher verbosity levels cause messages to be displayed when the
+     corresponding events take place.
+
+    1
+          Driver and subsystem initializations.
+
+    2
+          Completion of driver initializations.  Beginning of driver
+          closings.
+
+    3
+          Completion of driver closings.
+
+    4
+          Files searched for; success of searches.
+
+    5
+          Individual directories included in file searches.
+
+     Each verbosity level also includes messages from lower verbosity
+     levels.
+
+\1f
+File: pspp.info,  Node: Language,  Next: Expressions,  Prev: Invocation,  Up: Top
+
+The PSPP language
+*****************
+
+     *Please note:* PSPP is not even close to completion.  Only a few
+     actual statistical procedures are implemented.  PSPP is a work in
+     progress.
+
+   This chapter discusses elements common to many PSPP commands.  Later
+chapters will describe individual commands in detail.
+
+* Menu:
+
+* Tokens::                      Characters combine to form tokens.
+* Commands::                    Tokens combine to form commands.
+* Types of Commands::           Commands come in several flavors.
+* Order of Commands::           Commands combine to form syntax files.
+* Missing Observations::        Handling missing observations.
+* Variables::                   The unit of data storage.
+* Files::                       Files used by PSPP.
+* BNF::                         How command syntax is described.
+
+\1f
+File: pspp.info,  Node: Tokens,  Next: Commands,  Prev: Language,  Up: Language
+
+Tokens
+======
+
+   PSPP divides most syntax file lines into series of short chunks
+called "tokens", "lexical elements", or "lexemes".  These tokens are
+then grouped to form commands, each of which tells PSPP to take some
+action--read in data, write out data, perform a statistical procedure,
+etc.  The process of dividing input into tokens is "tokenization", or
+"lexical analysis".  Each type of token is described below.
+
+   Tokens must be separated from each other by "delimiters".
+Delimiters include whitespace (spaces, tabs, carriage returns, line
+feeds, vertical tabs), punctuation (commas, forward slashes, etc.), and
+operators (plus, minus, times, divide, etc.)  Note that while whitespace
+only separates tokens, other delimiters are tokens in themselves.
+
+*Identifiers*
+     Identifiers are names that specify variable names, commands, or
+     command details.
+
+        * The first character in an identifier must be a letter, `#', or
+          `@'.  Some system identifiers begin with `$', but
+          user-defined variables' names may not begin with `$'.
+
+        * The remaining characters in the identifier must be letters,
+          digits, or one of the following special characters:
+
+               .  _  $  #  @
+
+        * Variable names may be any length, but only the first 8
+          characters are significant.
+
+        * Identifiers are not case-sensitive: `foobar', `Foobar',
+          `FooBar', `FOOBAR', and `FoObaR' are different
+          representations of the same identifier.
+
+        * Identifiers other than variable names may be abbreviated to
+          their first 3 characters if this abbreviation is unambiguous.
+          These identifiers are often called "keywords".  (Unique
+          abbreviations of more than 3 characters are also accepted:
+          `FRE', `FREQ', and `FREQUENCIES' are equivalent when the last
+          is a keyword.)
+
+        * Whether an identifier is a keyword depends on the context.
+
+        * Some keywords are reserved.  These keywords may not be used
+          in any context besides those explicitly described in this
+          manual.  The reserved keywords are:
+
+               ALL  AND  BY  EQ  GE  GT  LE  LT  NE  NOT  OR  TO  WITH
+
+        * Since keywords are identifiers, all the rules for identifiers
+          apply.  Specifically, they must be delimited as are other
+          identifiers: `WITH' is a reserved keyword, but `WITHOUT' is a
+          valid variable name.
+
+     *Caution:* It is legal to end a variable name with a period, but
+     _don't do it!_  The variable name will be misinterpreted when it is
+     the final token on a line: `FOO.' will be divided into two separate
+     tokens, `FOO' and `.', the "terminal dot".  *Note Forming commands
+     of tokens: Commands.
+
+*Numbers*
+     Numbers may be specified as integers or reals.  Integers are
+     internally converted into reals.  Scientific notation is not
+     supported.  Here are some examples of valid numbers:
+
+          1234  3.14159265359  .707106781185  8945.
+
+     *Caution:* The last example will be interpreted as two tokens,
+     `8945' and `.', if it is the last token on a line.
+
+*Strings*
+     Strings are literal sequences of characters enclosed in pairs of
+     single quotes (`'') or double quotes (`"').
+
+        * Whitespace and case of letters _are_ significant inside
+          strings.
+
+        * Whitespace characters inside a string are not delimiters.
+
+        * To include single-quote characters in a string, enclose the
+          string in double quotes.
+
+        * To include double-quote characters in a string, enclose the
+          string in single quotes.
+
+        * It is not possible to put both single- and double-quote
+          characters inside one string.
+
+*Hexstrings*
+     Hexstrings are string variants that use hex digits to specify
+     characters.
+
+        * A hexstring may be used anywhere that an ordinary string is
+          allowed.
+
+        * A hexstring begins with `X'' or `x'', and ends with `''.
+
+        * No whitespace is allowed between the initial `X' and `''.
+
+        * Double quotes `"' may be used in place of single quotes `'' if
+          done in both places.
+
+        * Each pair of hex digits is internally changed into a single
+          character with the given value.
+
+        * If there is an odd number of hex digits, the missing last
+          digit is assumed to be `0'.
+
+        * *Please note:* Use of hexstrings is nonportable because the
+          same numeric values are associated with different glyphs by
+          different operating systems.  Therefore, their use should be
+          confined to syntax files that will not be widely distributed.
+
+        * *Please note also:* The character with value 00 is reserved
+          for internal use by PSPP.  Its use in strings causes an error
+          and replacement with a blank space (in ASCII, hex 20, decimal
+          32).
+
+*Punctuation*
+     Punctuation separates tokens; punctuators are delimiters.  These
+     are the punctuation characters:
+
+          ,  /  =  (  )
+
+*Operators*
+     Operators describe mathematical operations.  Some operators are
+     delimiters:
+
+          (  )  +  -  *  /  **
+
+     Many of the above operators are also punctuators.  Punctuators are
+     distinguished from operators by context.
+
+     The other operators are all reserved keywords.  None of these are
+     delimiters:
+
+          AND  EQ  GE  GT  LE  LT  NE  OR
+
+*Terminal Dot*
+     A period (`.') at the end of a line (except for whitespace) is one
+     type of a "terminal dot", although not every terminal dot is a
+     period at the end of a line.  *Note Forming commands of tokens:
+     Commands.  A period is a terminal dot _only_ when it is at the end
+     of a line; otherwise it is part of a floating-point number.  (A
+     period outside a number in the middle of a line is an error.)
+
+          *Please note:* The character used for the "terminal dot" can
+          be changed with the SET command.  This is strongly
+          discouraged, and throughout all the remainder of this manual
+          it will be assumed that the default setting is in effect.
+
+\1f
+File: pspp.info,  Node: Commands,  Next: Types of Commands,  Prev: Tokens,  Up: Language
+
+Forming commands of tokens
+==========================
+
+   Most PSPP commands share a common structure, diagrammed below:
+
+     CMD... [SBC[=][SPEC [[,]SPEC]...]] [[/[=][SPEC [[,]SPEC]...]]...].
+
+   In the above, rather daunting, expression, pairs of square brackets
+(`[ ]') indicate optional elements, and names such as CMD indicate
+parts of the syntax that vary from command to command.  Ellipses
+(`...') indicate that the preceding part may be repeated an arbitrary
+number of times.  Let's pick apart what it says above:
+
+   * A command begins with a command name of one or more keywords, such
+     as `FREQUENCIES', `DATA LIST', or `N OF CASES'.  CMD may be
+     abbreviated to its first word if that is unambiguous; each word in
+     CMD may be abbreviated to a unique prefix of three or more
+     characters as described above.
+
+   * The command name may be followed by one or more "subcommands":
+
+        - Each subcommand begins with a unique keyword, indicated by SBC
+          above.  This is analogous to the command name.
+
+        - The subcommand name is optionally followed by an equals sign
+          (`=').
+
+        - Some subcommands accept a series of one or more specifications
+          (SPEC), optionally separated by commas.
+
+        - Each subcommand must be separated from the next (if any) by a
+          forward slash (`/').
+
+   * Each command must be terminated with a "terminal dot".  The
+     terminal dot may be given one of three ways:
+
+        - (most commonly) A period character at the very end of a line,
+          as described above.
+
+        - (only if NULLINE is on: *Note Setting user preferences: SET,
+          for more details.)  A completely blank line.
+
+        - (in batch mode only) Any line that is not indented from the
+          left side of the page causes a terminal dot to be inserted
+          before that line.  Therefore, each command begins with a line
+          that is flush left, followed by zero or more lines that are
+          indented one or more characters from the left margin.
+
+          In batch mode, PSPP will ignore a plus sign, minus sign, or
+          period (`+', `-', or `.') as the first character in a line.
+          Any of these characters as the first character on a line will
+          begin a new command.  This allows for visual indentation of a
+          command without that command being considered part of the
+          previous command.
+
+          PSPP is in batch mode when it is reading input from a file,
+          rather than from an interactive user.  Note that the other
+          forms of the terminal dot may also be used in batch mode.
+
+          Sometimes, one encounters syntax files that are intended to be
+          interpreted in interactive mode rather than batch mode (for
+          instance, this can happen if a session log file is used
+          directly as a syntax file).  When this occurs, use the `-i'
+          command line option to force interpretation in interactive
+          mode (*note Language control options::).
+
+   PSPP ignores empty commands when they are generated by the above
+rules.  Note that, as a consequence of these rules, each command must
+begin on a new line.
+
+\1f
+File: pspp.info,  Node: Types of Commands,  Next: Order of Commands,  Prev: Commands,  Up: Language
+
+Types of Commands
+=================
+
+   Commands in PSPP are divided roughly into six categories:
+
+*Utility commands*
+     Set or display various global options that affect PSPP operations.
+     May appear anywhere in a syntax file.  *Note Utility commands:
+     Utilities.
+
+*File definition commands*
+     Give instructions for reading data from text files or from special
+     binary "system files".  Most of these commands discard any previous
+     data or variables in order to replace it with the new data and
+     variables.  At least one must appear before the first command in
+     any of the categories below.  *Note Data Input and Output::.
+
+*Input program commands*
+     Though rarely used, these provide powerful tools for reading data
+     files in arbitrary textual or binary formats.  *Note INPUT
+     PROGRAM::.
+
+*Transformations*
+     Perform operations on data and write data to output files.
+     Transformations are not carried out until a procedure is executed.
+
+*Restricted transformations*
+     Same as transformations for most purposes.  *Note Order of
+     Commands::, for a detailed description of the differences.
+
+*Procedures*
+     Analyze data, writing results of analyses to the listing file.
+     Cause transformations specified earlier in the file to be
+     performed.  In a more general sense, a "procedure" is any command
+     that causes the active file (the data) to be read.
+
+\1f
+File: pspp.info,  Node: Order of Commands,  Next: Missing Observations,  Prev: Types of Commands,  Up: Language
+
+Order of Commands
+=================
+
+   PSPP does not place many restrictions on ordering of commands.  The
+main restriction is that variables must be defined with one of the
+file-definition commands before they are otherwise referred to.
+
+   Of course, there are specific rules, for those who are interested.
+PSPP possesses five internal states, called initial, INPUT PROGRAM,
+FILE TYPE, transformation, and procedure states.  (Please note the
+distinction between the INPUT PROGRAM and FILE TYPE _commands_ and the
+INPUT PROGRAM and FILE TYPE _states_.)
+
+   PSPP starts up in the initial state.  Each successful completion of
+a command may cause a state transition.  Each type of command has its
+own rules for state transitions:
+
+*Utility commands*
+        * Legal in all states, except Pennsylvania.
+
+        * Do not cause state transitions.  Exception: when the N OF
+          CASES command is executed in the procedure state, it causes a
+          transition to the transformation state.
+
+*DATA LIST*
+        * Legal in all states.
+
+        * When executed in the initial or procedure state, causes a
+          transition to the transformation state.
+
+        * Clears the active file if executed in the procedure or
+          transformation state.
+
+*INPUT PROGRAM*
+        * Invalid in INPUT PROGRAM and FILE TYPE states.
+
+        * Causes a transition to the INPUT PROGRAM state.
+
+        * Clears the active file.
+
+*FILE TYPE*
+        * Invalid in INPUT PROGRAM and FILE TYPE states.
+
+        * Causes a transition to the FILE TYPE state.
+
+        * Clears the active file.
+
+*Other file definition commands*
+        * Invalid in INPUT PROGRAM and FILE TYPE states.
+
+        * Cause a transition to the transformation state.
+
+        * Clear the active file, except for ADD FILES, MATCH FILES, and
+          UPDATE.
+
+*Transformations*
+        * Invalid in initial and FILE TYPE states.
+
+        * Cause a transition to the transformation state.
+
+*Restricted transformations*
+        * Invalid in initial, INPUT PROGRAM, and FILE TYPE states.
+
+        * Cause a transition to the transformation state.
+
+*Procedures*
+        * Invalid in initial, INPUT PROGRAM, and FILE TYPE states.
+
+        * Cause a transition to the procedure state.
+
+\1f
+File: pspp.info,  Node: Missing Observations,  Next: Variables,  Prev: Order of Commands,  Up: Language
+
+Handling missing observations
+=============================
+
+   PSPP includes special support for unknown numeric data values.
+Missing observations are assigned a special value, called the
+"system-missing value".  This "value" actually indicates the absence of
+value; it means that the actual value is unknown.  Procedures
+automatically exclude from analyses those observations or cases that
+have missing values.  Whether single observations or entire cases are
+excluded depends on the procedure.
+
+   The system-missing value exists only for numeric variables.  String
+variables always have a defined value, even if it is only a string of
+spaces.
+
+   Variables, whether numeric or string, can have designated
+"user-missing values".  Every user-missing value is an actual value for
+that variable.  However, most of the time user-missing values are
+treated in the same way as the system-missing value.  String variables
+that are wider than a certain width, usually 8 characters (depending on
+computer architecture), cannot have user-missing values.
+
+   For more information on missing values, see the following sections:
+*Note Variables::, *Note MISSING VALUES::, *Note Expressions::.  See
+also the documentation on individual procedures for information on how
+they handle missing values.
+
+\1f
+File: pspp.info,  Node: Variables,  Next: Files,  Prev: Missing Observations,  Up: Language
+
+Variables
+=========
+
+   Variables are the basic unit of data storage in PSPP.  All the
+variables in a file taken together, apart from any associated data, are
+said to form a "dictionary".  Each case contain a value for each
+variable.  Some details of variables are described in the sections
+below.
+
+* Menu:
+
+* Attributes::                  Attributes of variables.
+* System Variables::            Variables automatically defined by PSPP.
+* Sets of Variables::           Lists of variable names.
+* Input/Output Formats::        Input and output formats.
+* Scratch Variables::           Variables deleted by procedures.
+
+\1f
+File: pspp.info,  Node: Attributes,  Next: System Variables,  Prev: Variables,  Up: Variables
+
+Attributes of Variables
+-----------------------
+
+   Each variable has a number of attributes, including:
+
+*Name*
+     This is an identifier.  Each variable must have a different name.
+     *Note Tokens::.
+
+*Type*
+     Numeric or string.
+
+*Width*
+     (string variables only) String variables with a width of 8
+     characters or fewer are called "short string variables".  Short
+     string variables can be used in many procedures where "long string
+     variables" (those with widths greater than 8) are not allowed.
+
+          *Please note:* Certain systems may consider strings longer
+          than 8 characters to be short strings.  Eight characters
+          represents a minimum figure for the maximum length of a short
+          string.
+
+*Position*
+     Variables in the dictionary are arranged in a specific order.  The
+     DISPLAY command can be used to show this order: see *Note
+     DISPLAY::.
+
+*Orientation*
+     Dexter or sinister.  *Note LEAVE::.
+
+*Missing values*
+     Optionally, up to three values, or a range of values, or a specific
+     value plus a range, can be specified as "user-missing values".
+     There is also a "system-missing value" that is assigned to an
+     observation when there is no other obvious value for that
+     observation.  Observations with missing values are automatically
+     excluded from analyses.  User-missing values are actual data
+     values, while the system-missing value is not a value at all.
+     *Note Missing Observations::.
+
+*Variable label*
+     A string that describes the variable.  *Note VARIABLE LABELS::.
+
+*Value label*
+     Optionally, these associate each possible value of the variable
+     with a string.  *Note VALUE LABELS::.
+
+*Print format*
+     Display width, format, and (for numeric variables) number of
+     decimal places.  This attribute does not affect how data are
+     stored, just how they are displayed.  Example: a width of 8, with
+     2 decimal places.  *Note PRINT FORMATS::.
+
+*Write format*
+     Similar to print format, but used by certain commands that are
+     designed to write to binary files.  *Note WRITE FORMATS::.
+
+\1f
+File: pspp.info,  Node: System Variables,  Next: Sets of Variables,  Prev: Attributes,  Up: Variables
+
+Variables Automatically Defined by PSPP
+---------------------------------------
+
+   There are seven system variables.  These are not like ordinary
+variables, as they are not stored in each case.  They can only be used
+in expressions.  These system variables, whose values and output formats
+cannot be modified, are described below.
+
+`$CASENUM'
+     Case number of the case at the moment.  This changes as cases are
+     shuffled around.
+
+`$DATE'
+     Date the PSPP process was started, in format A9, following the
+     pattern `DD MMM YY'.
+
+`$JDATE'
+     Number of days between 15 Oct 1582 and the time the PSPP process
+     was started.
+
+`$LENGTH'
+     Page length, in lines, in format F11.
+
+`$SYSMIS'
+     System missing value, in format F1.
+
+`$TIME'
+     Number of seconds between midnight 14 Oct 1582 and the time the
+     active file was read, in format F20.
+
+`$WIDTH'
+     Page width, in characters, in format F3.
+
+\1f
+File: pspp.info,  Node: Sets of Variables,  Next: Input/Output Formats,  Prev: System Variables,  Up: Variables
+
+Lists of variable names
+-----------------------
+
+   There are several ways to specify a set of variables:
+
+  1. (Most commonly.)  List the variable names one after another,
+     optionally separating them by commas.
+
+  2. (This method cannot be used on commands that define the
+     dictionary, such as `DATA LIST'.)  The syntax is the names of two
+     existed variables, separated by the reserved keyword `TO'.  The
+     meaning is to include every variable in the dictionary between and
+     including the variables specified.  For instance, if the
+     dictionary contains six variables with the names `ID', `X1', `X2',
+     `GOAL', `MET', and `NEXTGOAL', in that order, then `X2 TO MET'
+     would include variables `X2', `GOAL', and `MET'.
+
+  3. (This method can be used only on commands that define the
+     dictionary, such as `DATA LIST'.)  It is used to define sequences
+     of variables that end in consecutive integers.  The syntax is two
+     identifiers that end in numbers.  This method is best illustrated
+     with examples:
+
+        * The syntax `X1 TO X5' defines 5 variables:
+
+             - X1
+
+             - X2
+
+             - X3
+
+             - X4
+
+             - X5
+
+        * The syntax `ITEM0008 TO ITEM0013' defines 6 variables:
+
+             - ITEM0008
+
+             - ITEM0009
+
+             - ITEM0010
+
+             - ITEM0011
+
+             - ITEM0012
+
+             - ITEM0013
+
+        * Each of the syntaxes `QUES001 TO QUES9' and `QUES6 TO QUES3'
+          are invalid, although for different reasons, which should be
+          evident.
+
+     Note that after a set of variables has been defined on `DATA LIST'
+     or another command with this method, the same set can be
+     referenced on later commands using the same syntax.
+
+  4. The above methods can be combined, either one after another or
+     delimited by commas.  For instance, the combined syntax `A Q5 TO
+     Q8 X TO Z' is legal as long as each part `A', `Q5 TO Q8', `X TO Z'
+     is individually legal.
+
diff --git a/doc/pspp.info-3 b/doc/pspp.info-3
new file mode 100644 (file)
index 0000000..cfa8920
--- /dev/null
@@ -0,0 +1,1257 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: Input/Output Formats,  Next: Scratch Variables,  Prev: Sets of Variables,  Up: Variables
+
+Input and Output Formats
+------------------------
+
+   Data that PSPP inputs and outputs must have one of a number of
+formats.  These formats are described, in general, by a format
+specification of the form `NAMEw.d', where NAME is the format name and
+W is a field width.  D is the optional desired number of decimal
+places, if appropriate.  If D is not included then it is assumed to be
+0.  Some formats do not allow D to be specified.
+
+   When an input format is specified on DATA LIST or another command,
+then it is converted to an output format for the purposes of PRINT and
+other data output commands.  For most purposes, input and output
+formats are the same; the salient differences are described below.
+
+   Below are listed the input and output formats supported by PSPP.  If
+an input format is mapped to a different output format by default, then
+that mapping is indicated with =>.  Each format has the listed bounds
+on input width (iw) and output width (ow).
+
+   The standard numeric input and output formats are given in the
+following table:
+
+Fw.d: 1 <= iw,ow <= 40
+     Standard decimal format with D decimal places.  If the number is
+     too large to fit within the field width, it is expressed in
+     scientific notation (`1.2+34') if w >= 6, with always at least two
+     digits in the exponent.  When used as an input format, scientific
+     notation is allowed but an E or an F must be used to introduce the
+     exponent.
+
+     The default output format is the same as the input format, except
+     if D > 1.  In that case the output W is always made to be at least
+     2 + D.
+
+Ew.d: 1 <= iw <= 40; 6 <= ow <= 40
+     For input this is equivalent to F format except that no E or F is
+     require to introduce the exponent.  For output, produces scientific
+     notation in the form `1.2+34'.  There are always at least two
+     digits given in the exponent.
+
+     The default output W is the largest of the input W, the input D +
+     7, and 10.  The default output D is the input D, but at least 3.
+
+COMMAw.d: 1 <= iw,ow <= 40
+     Equivalent to F format, except that groups of three digits are
+     comma-separated on output.  If the number is too large to express
+     in the field width, then first commas are eliminated, then if
+     there is still not enough space the number is expressed in
+     scientific notation given that w >= 6.  Commas are allowed and
+     ignored when this is used as an input format.
+
+DOTw.d: 1 <= iw,ow <= 40
+     Equivalent to COMMA format except that the roles of comma and
+     decimal point are interchanged.  However: If SET /DECIMAL=DOT is
+     in effect, then COMMA uses `,' for a decimal point and DOT uses
+     `.' for a decimal point.
+
+DOLLARw.d: 1 <= iw <= 40; 2 <= ow <= 40
+     Equivalent to COMMA format, except that the number is prefixed by a
+     dollar sign (`$') if there is room.  On input the value is allowed
+     to be prefixed by a dollar sign, which is ignored.
+
+     The default output W is the input W, but at least 2.
+
+PCTw.d: 2 <= iw,ow <= 40
+     Equivalent to F format, except that the number is suffixed by a
+     percent sign (`%') if there is room.  On input the value is
+     allowed to be suffixed by a percent sign, which is ignored.
+
+     The default output W is the input W, but at least 2.
+
+Nw.d: 1 <= iw,ow <= 40
+     Only digits are allowed within the field width.  The decimal point
+     is assumed to be D digits from the right margin.
+
+     The default output format is F with the same W and D, except if D
+     > 1.  In that case the output W is always made to be at least 2 +
+     D.
+
+Zw.d => F: 1 <= iw,ow <= 40
+     Zoned decimal input.  If you need to use this then you know how.
+
+IBw.d => F: 1 <= iw,ow <= 8
+     Integer binary format.  The field is interpreted as a fixed-point
+     positive or negative binary number in two's-complement notation.
+     The location of the decimal point is implied.  Endianness is the
+     same as the host machine.
+
+     The default output format is F8.2 if D is 0.  Otherwise it is F,
+     with output W as 9 + input D and output D as input D.
+
+PIB => F: 1 <= iw,ow <= 8
+     Positive integer binary format.  The field is interpreted as a
+     fixed-point positive binary number.  The location of the decimal
+     point is implied.  Endianness is teh same as the host machine.
+
+     The default output format follows the rules for IB format.
+
+Pw.d => F: 1 <= iw,ow <= 16
+     Binary coded decimal format.  Each byte from left to right, except
+     the rightmost, represents two digits.  The upper nibble of each
+     byte is more significant.  The upper nibble of the final byte is
+     the least significant digit.  The lower nibble of the final byte
+     is the sign; a value of D represents a negative sign and all other
+     values are considered positive.  The decimal point is implied.
+
+     The default output format follows the rules for IB format.
+
+PKw.d => F: 1 <= iw,ow <= 16
+     Positive binary code decimal format.  Same as P but the last byte
+     is the same as the others.
+
+     The default output format follows the rules for IB format.
+
+RBw => F: 2 <= iw,ow <= 8
+     Binary C architecture-dependent "double" format.  For a standard
+     IEEE754 implementation W should be 8.
+
+     The default output format follows the rules for IB format.
+
+PIBHEXw.d => F: 2 <= iw,ow <= 16
+     PIB format encoded as textual hex digit pairs.  W must be even.
+
+     The input width is mapped to a default output width as follows:
+     2=>4, 4=>6, 6=>9, 8=>11, 10=>14, 12=>16, 14=>18, 16=>21.  No
+     allowances are made for decimal places.
+
+RBHEXw => F: 4 <= iw,ow <= 16
+     RB format encoded as textual hex digits pairs.  W must be even.
+
+     The default output format is F8.2.
+
+CCAw.d: 1 <= ow <= 40
+CCBw.d: 1 <= ow <= 40
+CCCw.d: 1 <= ow <= 40
+CCDw.d: 1 <= ow <= 40
+CCEw.d: 1 <= ow <= 40
+     User-defined custom currency formats.  May not be used as an input
+     format.  *Note SET::, for more details.
+
+   The date and time numeric input and output formats accept a number of
+possible formats.  Before describing the formats themselves, some
+definitions of the elements that make up their formats will be helpful:
+
+"leader"
+     All formats accept an optional whitespace leader.
+
+"day"
+     An integer between 1 and 31 representing the day of month.
+
+"day-count"
+     An integer representing a number of days.
+
+"date-delimiter"
+     One or more characters of whitespace or the following characters:
+     `- / . ,'
+
+"month"
+     A month name in one of the following forms:
+        * An integer between 1 and 12.
+
+        * Roman numerals representing an integer between 1 and 12.
+
+        * At least the first three characters of an English month name
+          (January, February, ...).
+
+"year"
+     An integer year number between 1582 and 19999, or between 1 and
+     199.  Years between 1 and 199 will have 1900 added.
+
+"julian"
+     A single number with a year number in the first 2, 3, or 4 digits
+     (as above) and the day number within the year in the last 3 digits.
+
+"quarter"
+     An integer between 1 and 4 representing a quarter.
+
+"q-delimiter"
+     The letter `Q' or `q'.
+
+"week"
+     An integer between 1 and 53 representing a week within a year.
+
+"wk-delimiter"
+     The letters `wk' in any case.
+
+"time-delimiter"
+     At least one characters of whitespace or `:' or `.'.
+
+"hour"
+     An integer greater than 0 representing an hour.
+
+"minute"
+     An integer between 0 and 59 representing a minute within an hour.
+
+"opt-second"
+     Optionally, a time-delimiter followed by a real number
+     representing a number of seconds.
+
+"hour24"
+     An integer between 0 and 23 representing an hour within a day.
+
+"weekday"
+     At least the first two characters of an English day word.
+
+"spaces"
+     Any amount or no amount of whitespace.
+
+"sign"
+     An optional positive or negative sign.
+
+"trailer"
+     All formats accept an optional whitespace trailer.
+
+   The date input formats are strung together from the above pieces.  On
+output, the date formats are always printed in a single canonical
+manner, based on field width.  The date input and output formats are
+described below:
+
+DATEw: 9 <= iw,ow <= 40
+     Date format. Input format: leader + day + date-delimiter + month +
+     date-delimiter + year + trailer.  Output format: DD-MMM-YY for W <
+     11, DD-MMM-YYYY otherwise.
+
+EDATEw: 8 <= iw,ow <= 40
+     European date format.  Input format same as DATE.  Output format:
+     DD.MM.YY for W < 10, DD.MM.YYYY otherwise.
+
+SDATEw: 8 <= iw,ow <= 40
+     Standard date format. Input format: leader + year + date-delimiter
+     + month + date-delimiter + day + trailer.  Output format: YY/MM/DD
+     for W < 10, YYYY/MM/DD otherwise.
+
+ADATEw: 8 <= iw,ow <= 40
+     American date format.  Input format: leader + month +
+     date-delimiter + day + date-delimiter + year + trailer.  Output
+     format: MM/DD/YY for W < 10, MM/DD/YYYY otherwise.
+
+JDATEw: 5 <= iw,ow <= 40
+     Julian date format.  Input format: leader + julian + trailer.
+     Output format: YYDDD for W < 7, YYYYDDD otherwise.
+
+QYRw: 4 <= iw <= 40, 6 <= ow <= 40
+     Quarter/year format.  Input format: leader + quarter + q-delimiter
+     + year + trailer.  Output format: `Q Q YY', where the first `Q' is
+     one of the digits 1, 2, 3, 4, if W < 8, `Q Q YYYY' otherwise.
+
+MOYRw: 6 <= iw,ow <= 40
+     Month/year format.  Input format: leader + month + date-delimiter
+     + year + trailer.  Output format: `MMM YY' for W < 8, `MMM YYYY'
+     otherwise.
+
+WKYRw: 6 <= iw <= 40, 8 <= ow <= 40
+     Week/year format.  Input format: leader + week + wk-delimiter +
+     year + trailer.  Output format: `WW WK YY' for W < 10, `WW WK
+     YYYY' otherwise.
+
+DATETIMEw.d: 17 <= iw,ow <= 40
+     Date and time format.  Input format: leader + day + date-delimiter
+     + month + date-delimiter + yaer + time-delimiter + hour24 +
+     time-delimiter + minute + opt-second.  Output format: `DD-MMM-YYYY
+     HH:MM'.  If W > 19 then seconds `:SS' is added.  If W > 22 and D >
+     0 then fractional seconds `.SS' are added.
+
+TIMEw.d: 5 <= iw,ow <= 40
+     Time format.  Input format: leader + sign + spaces + hour +
+     time-delimiter + minute + opt-second.  Output format: `HH:MM'.
+     Seconds and fractional seconds are available with W of at least 8
+     and 10, respectively.
+
+DTIMEw.d: 1 <= iw <= 40, 8 <= ow <= 40
+     Time format with day count.  Input format: leader + sign + spaces +
+     day-count + time-delimiter + hour + time-delimiter + minute +
+     opt-second.  Output format: `DD HH:MM'.  Seconds and fractional
+     seconds are available with W of at least 8 and 10, respectively.
+
+WKDAYw: 2 <= iw,ow <= 40
+     A weekday as a number between 1 and 7, where 1 is Sunday.  Input
+     format: leader + weekday + trailer.  Output format: as many
+     characters, in all capital letters, of the English name of the
+     weekday as will fit in the field width.
+
+MONTHw: 3 <= iw,ow <= 40
+     A month as a number between 1 and 12, where 1 is January.  Input
+     format: leader + month + trailer.  Output format: as many
+     character, in all capital letters, of the English name of the
+     month as will fit in the field width.
+
+   There are only two formats that may be used with string variables:
+
+Aw: 1 <= iw <= 255, 1 <= ow <= 254
+     The entire field is treated as a string value.
+
+AHEXw => A: 2 <= iw <= 254; 2 <= ow <= 510
+     The field is composed of characters in a string encoded as textual
+     hex digit pairs.
+
+     The default output W is half the input W.
+
+\1f
+File: pspp.info,  Node: Scratch Variables,  Prev: Input/Output Formats,  Up: Variables
+
+Scratch Variables
+-----------------
+
+   Most of the time, variables don't retain their values between cases.
+Instead, either they're being read from a data file or the active file,
+in which case they assume the value read, or, if created with COMPUTE or
+another transformation, they're initialized to the system-missing value
+or to blanks, depending on type.
+
+   However, sometimes it's useful to have a variable that keeps its
+value between cases.  You can do this with LEAVE (*note LEAVE::), or
+you can use a "scratch variable".  Scratch variables are variables whose
+names begin with an octothorpe (`#').
+
+   Scratch variables have the same properties as variables left with
+LEAVE: they retain their values between cases, and for the first case
+they are initialized to 0 or blanks.  They have the additional property
+that they are deleted before the execution of any procedure.  For this
+reason, scratch variables can't be used for analysis.  To obtain the
+same effect, use COMPUTE (*note COMPUTE::) to copy the scratch
+variable's value into an ordinary variable, then analysis that variable.
+
+\1f
+File: pspp.info,  Node: Files,  Next: BNF,  Prev: Variables,  Up: Language
+
+Files Used by PSPP
+==================
+
+   PSPP makes use of many files each time it runs.  Some of these it
+reads, some it writes, some it creates.  Here is a table listing the
+most important of these files:
+
+*command file*
+*syntax file*
+     These names (synonyms) refer to the file that contains
+     instructions to PSPP that tell it what to do.  The syntax file's
+     name is specified on the PSPP command line.  Syntax files can also
+     be pulled in with the `INCLUDE' command.
+
+*data file*
+     Data files contain raw data in ASCII format suitable for being
+     read in by the `DATA LIST' command.  Data can be embedded in the
+     syntax file with `BEGIN DATA' and `END DATA' commands: this makes
+     the syntax file a data file too.
+
+*listing file*
+     One or more output files are created by PSPP each time it is run.
+     The output files receive the tables and charts produced by
+     statistical procedures.  The output files may be in any number of
+     formats, depending on how PSPP is configured.
+
+*active file*
+     The active file is the "file" on which all PSPP procedures are
+     performed.  The active file contains variable definitions and
+     cases.  The active file is not necessarily a disk file: it is
+     stored in memory if there is room.
+
+\1f
+File: pspp.info,  Node: BNF,  Prev: Files,  Up: Language
+
+Backus-Naur Form
+================
+
+   The syntax of some parts of the PSPP language is presented in this
+manual using the formalism known as "Backus-Naur Form", or BNF. The
+following table describes BNF:
+
+   * Words in all-uppercase are PSPP keyword tokens.  In BNF, these are
+     often called "terminals".  There are some special terminals, which
+     are actually written in lowercase for clarity:
+
+    `number'
+          A real number.
+
+    `integer'
+          An integer number.
+
+    `string'
+          A string.
+
+    `var-name'
+          A single variable name.
+
+    `=', `/', `+', `-', etc.
+          Operators and punctuators.
+
+    `.'
+          The terminal dot.  This is not necessarily an actual dot in
+          the syntax file: *Note Commands::, for more details.
+
+   * Other words in all lowercase refer to BNF definitions, called
+     "productions".  These productions are also known as
+     "nonterminals".  Some nonterminals are very common, so they are
+     defined here in English for clarity:
+
+    `var-list'
+          A list of one or more variable names or the keyword `ALL'.
+
+    `expression'
+          An expression.  *Note Expressions::, for details.
+
+   * `::=' means "is defined as".  The left side of `::=' gives the
+     name of the nonterminal being defined.  The right side of `::='
+     gives the definition of that nonterminal.  If the right side is
+     empty, then one possible expansion of that nonterminal is nothing.
+     A BNF definition is called a "production".
+
+   * So, the key difference between a terminal and a nonterminal is
+     that a terminal cannot be broken into smaller parts--in fact,
+     every terminal is a single token (*note Tokens::).  On the other
+     hand, nonterminals are composed of a (possibly empty) sequence of
+     terminals and nonterminals.  Thus, terminals indicate the deepest
+     level of syntax description.  (In parsing theory, terminals are
+     the leaves of the parse tree; nonterminals form the branches.)
+
+   * The first nonterminal defined in a set of productions is called the
+     "start symbol".  The start symbol defines the entire syntax for
+     that command.
+
+\1f
+File: pspp.info,  Node: Expressions,  Next: Data Input and Output,  Prev: Language,  Up: Top
+
+Mathematical Expressions
+************************
+
+   Some PSPP commands use expressions, which share a common syntax
+among all PSPP commands.  Expressions are made up of "operands", which
+can be numbers, strings, or variable names, separated by "operators".
+There are five types of operators: grouping, arithmetic, logical,
+relational, and functions.
+
+   Every operator takes one or more "arguments" as input and produces
+or "returns" exactly one result as output.  Both strings and numeric
+values can be used as arguments and are produced as results, but each
+operator accepts only specific combinations of numeric and string values
+as arguments.  With few exceptions, operator arguments may be
+full-fledged expressions in themselves.
+
+* Menu:
+
+* Booleans::                       Boolean values.
+* Missing Values in Expressions::  Using missing values in expressions.
+* Grouping Operators::             ( )
+* Arithmetic Operators::           + - * / **
+* Logical Operators::              AND NOT OR
+* Relational Operators::           EQ GE GT LE LT NE
+* Functions::                      More-sophisticated operators.
+* Order of Operations::            Operator precedence.
+
+\1f
+File: pspp.info,  Node: Booleans,  Next: Missing Values in Expressions,  Prev: Expressions,  Up: Expressions
+
+Boolean values
+==============
+
+   There is a third type for arguments and results, the "Boolean" type,
+which is used to represent true/false conditions.  Booleans have only
+three possible values: 0 (false), 1 (true), and system-missing.
+System-missing is neither true or false.
+
+   * A numeric expression that has value 0, 1, or system-missing may be
+     used in place of a Boolean.  Thus, the expression `0 AND 1' is
+     valid (although it is always true).
+
+   * A numeric expression with any other value will cause an error if
+     it is used as a Boolean.  So, `2 OR 3' is invalid.
+
+   * A Boolean expression may not be used in place of a numeric
+     expression.  Thus, `(1>2) + (3<4)' is invalid.
+
+   * Strings and Booleans are not compatible, and neither may be used in
+     place of the other.
+
+\1f
+File: pspp.info,  Node: Missing Values in Expressions,  Next: Grouping Operators,  Prev: Booleans,  Up: Expressions
+
+Missing Values in Expressions
+=============================
+
+   String missing values are not treated specially in expressions.  Most
+numeric operators return system-missing when given system-missing
+arguments.  Exceptions are listed under particular operator
+descriptions.
+
+   User-missing values for numeric variables are always transformed into
+the system-missing value, except inside the arguments to the `VALUE',
+`SYSMIS', and `MISSING' functions.
+
+   The missing-value functions can be used to precisely control how
+missing values are treated in expressions.  *Note Missing Value
+Functions::, for more details.
+
+\1f
+File: pspp.info,  Node: Grouping Operators,  Next: Arithmetic Operators,  Prev: Missing Values in Expressions,  Up: Expressions
+
+Grouping Operators
+==================
+
+   Parentheses (`()') are the grouping operators.  Surround an
+expression with parentheses to force early evaluation.
+
+   Parentheses also surround the arguments to functions, but in that
+situation they act as punctuators, not as operators.
+
+\1f
+File: pspp.info,  Node: Arithmetic Operators,  Next: Logical Operators,  Prev: Grouping Operators,  Up: Expressions
+
+Arithmetic Operators
+====================
+
+   The arithmetic operators take numeric arguments and produce numeric
+results.
+
+`A + B'
+     Adds A and B, returning the sum.
+
+`A - B'
+     Subtracts B from A, returning the difference.
+
+`A * B'
+     Multiplies A and B, returning the product.
+
+`A / B'
+     Divides A by B, returning the quotient.  If B is zero, the result
+     is system-missing.
+
+`A ** B'
+     Returns the result of raising A to the power B.  If A is negative
+     and B is not an integer, the result is system-missing.  The result
+     of `0**0' is system-missing as well.
+
+`- A'
+     Reverses the sign of A.
+
+\1f
+File: pspp.info,  Node: Logical Operators,  Next: Relational Operators,  Prev: Arithmetic Operators,  Up: Expressions
+
+Logical Operators
+=================
+
+   The logical operators take logical arguments and produce logical
+results, meaning "true or false".  PSPP logical operators are not true
+Boolean operators because they may also result in a system-missing
+value.
+
+`A AND B'
+`A & B'
+     True if both A and B are true.  However, if one argument is false
+     and the other is missing, the result is false, not missing.  If
+     both arguments are missing, the result is missing.
+
+`A OR B'
+`A | B'
+     True if at least one of A and B is true.  If one argument is true
+     and the other is missing, the result is true, not missing.  If both
+     arguments are missing, the result is missing.
+
+`NOT A'
+`~ A'
+     True if A is false.
+
+\1f
+File: pspp.info,  Node: Relational Operators,  Next: Functions,  Prev: Logical Operators,  Up: Expressions
+
+Relational Operators
+====================
+
+   The relational operators take numeric or string arguments and
+produce Boolean results.
+
+   Note that, with numeric arguments, PSPP does not make exact
+relational tests.  Instead, two numbers are considered to be equal even
+if they differ by a small amount.  This amount, "epsilon", is dependent
+on the PSPP configuration and determined at compile time.  (The default
+value is 0.000000001, or `10**(-9)'.)  Use of epsilon allows for
+round-off errors.  Use of epsilon is also idiotic, but the author is
+not a numeric analyst.
+
+   Strings cannot be compared to numbers.  When strings of different
+lengths are compared, the shorter string is right-padded with spaces to
+match the length of the longer string.
+
+   The results of string comparisons, other than tests for equality or
+inequality, are dependent on the character set in use.  String
+comparisons are case-sensitive.
+
+`A EQ B'
+`A = B'
+     True if A is equal to B.
+
+`A LE B'
+`A <= B'
+     True if A is less than or equal to B.
+
+`A LT B'
+`A < B'
+     True if A is less than B.
+
+`A GE B'
+`A >= B'
+     True if A is greater than or equal to B.
+
+`A GT B'
+`A > B'
+     True if A is greater than B.
+
+`A NE B'
+`A ~= B'
+`A <> B'
+     True is A is not equal to B.
+
+\1f
+File: pspp.info,  Node: Functions,  Next: Order of Operations,  Prev: Relational Operators,  Up: Expressions
+
+Functions
+=========
+
+   PSPP functions provide mathematical abilities above and beyond those
+possible using simple operators.  Functions have a common syntax: each
+is composed of a function name followed by a left parenthesis, one or
+more arguments, and a right parenthesis.  Function names are *not*
+reserved; their names are specially treated only when followed by a
+left parenthesis: `EXP(10)' refers to the constant value `e' raised to
+the 10th power, but `EXP' by itself refers to the value of variable EXP.
+
+   The sections below describe each function in detail.
+
+* Menu:
+
+* Advanced Mathematics::        EXP LG10 LN SQRT
+* Miscellaneous Mathematics::   ABS MOD MOD10 RND TRUNC
+* Trigonometry::                ACOS ARCOS ARSIN ARTAN ASIN ATAN COS SIN TAN
+* Missing Value Functions::     MISSING NMISS NVALID SYSMIS VALUE
+* Pseudo-Random Numbers::       NORMAL UNIFORM
+* Set Membership::              ANY RANGE
+* Statistical Functions::       CFVAR MAX MEAN MIN SD SUM VARIANCE
+* String Functions::            CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER
+                                RINDEX RPAD RTRIM STRING SUBSTR UPCASE
+* Time & Date::                 CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx
+* Miscellaneous Functions::     LAG YRMODA
+* Functions Not Implemented::   CDF.xxx CDFNORM IDF.xxx NCDF.xxx PROBIT RV.xxx
+
+\1f
+File: pspp.info,  Node: Advanced Mathematics,  Next: Miscellaneous Mathematics,  Prev: Functions,  Up: Functions
+
+Advanced Mathematical Functions
+-------------------------------
+
+   Advanced mathematical functions take numeric arguments and produce
+numeric results.
+
+ - Function:  EXP (EXPONENT)
+     Returns e (approximately 2.71828) raised to power EXPONENT.
+
+ - Function:  LG10 (NUMBER)
+     Takes the base-10 logarithm of NUMBER.  If NUMBER is not positive,
+     the result is system-missing.
+
+ - Function:  LN (NUMBER)
+     Takes the base-`e' logarithm of NUMBER.  If NUMBER is not
+     positive, the result is system-missing.
+
+ - Function:  SQRT (NUMBER)
+     Takes the square root of NUMBER.  If NUMBER is negative, the
+     result is system-missing.
+
+\1f
+File: pspp.info,  Node: Miscellaneous Mathematics,  Next: Trigonometry,  Prev: Advanced Mathematics,  Up: Functions
+
+Miscellaneous Mathematical Functions
+------------------------------------
+
+   Miscellaneous mathematical functions take numeric arguments and
+produce numeric results.
+
+ - Function:  ABS (NUMBER)
+     Results in the absolute value of NUMBER.
+
+ - Function:  MOD (NUMERATOR, DENOMINATOR)
+     Returns the remainder (modulus) of NUMERATOR divided by
+     DENOMINATOR.  If DENOMINATOR is 0, the result is system-missing.
+     However, if NUMERATOR is 0 and DENOMINATOR is system-missing, the
+     result is 0.
+
+ - Function:  MOD10 (NUMBER)
+     Returns the remainder when NUMBER is divided by 10.  If NUMBER is
+     negative, MOD10(NUMBER) is negative or zero.
+
+ - Function:  RND (NUMBER)
+     Takes the absolute value of NUMBER and rounds it to an integer.
+     Then, if NUMBER was negative originally, negates the result.
+
+ - Function:  TRUNC (NUMBER)
+     Discards the fractional part of NUMBER; that is, rounds NUMBER
+     towards zero.
+
+\1f
+File: pspp.info,  Node: Trigonometry,  Next: Missing Value Functions,  Prev: Miscellaneous Mathematics,  Up: Functions
+
+Trigonometric Functions
+-----------------------
+
+   Trigonometric functions take numeric arguments and produce numeric
+results.
+
+ - Function:  ACOS (NUMBER)
+ - Function:  ARCOS (NUMBER)
+     Takes the arccosine, in radians, of NUMBER.  Results in
+     system-missing if NUMBER is not between -1 and 1.  Portability:
+     none.
+
+ - Function:  ARSIN (NUMBER)
+     Takes the arcsine, in radians, of NUMBER.  Results in
+     system-missing if NUMBER is not between -1 and 1 inclusive.
+
+ - Function:  ARTAN (NUMBER)
+     Takes the arctangent, in radians, of NUMBER.
+
+ - Function:  ASIN (NUMBER)
+     Takes the arcsine, in radians, of NUMBER.  Results in
+     system-missing if NUMBER is not between -1 and 1 inclusive.
+     Portability: none.
+
+ - Function:  ATAN (NUMBER)
+     Takes the arctangent, in radians, of NUMBER.
+
+     *Please note:* Use of the AR* group of inverse trigonometric
+     functions is recommended over the A* group because they are more
+     portable.
+
+ - Function:  COS (RADIANS)
+     Takes the cosine of RADIANS.
+
+ - Function:  SIN (ANGLE)
+     Takes the sine of RADIANS.
+
+ - Function:  TAN (ANGLE)
+     Takes the tangent of RADIANS.  Results in system-missing at values
+     of ANGLE that are too close to odd multiples of pi/2.
+     Portability: none.
+
+\1f
+File: pspp.info,  Node: Missing Value Functions,  Next: Pseudo-Random Numbers,  Prev: Trigonometry,  Up: Functions
+
+Missing-Value Functions
+-----------------------
+
+   Missing-value functions take various types as arguments, returning
+various types of results.
+
+ - Function:  MISSING (VARIABLE OR EXPRESSION)
+     NUM may be a single variable name or an expression.  If it is a
+     variable name, results in 1 if the variable has a user-missing or
+     system-missing value for the current case, 0 otherwise.  If it is
+     an expression, results in 1 if the expression has the
+     system-missing value, 0 otherwise.
+
+          *Please note:* If the argument is a string expression other
+          than a variable name, MISSING is guaranteed to return 0,
+          because strings do not have a system-missing value.  Also,
+          when using a numeric expression argument, remember that
+          user-missing values are converted to the system-missing value
+          in most contexts.  Thus, the expressions `MISSING(VAR1 OP
+          VAR2)' and `MISSING(VAR1) OR MISSING(VAR2)' are often
+          equivalent, depending on the specific operator OP used.
+
+ - Function:  NMISS (EXPR [, EXPR]...)
+     Each argument must be a numeric expression.  Returns the number of
+     user- or system-missing values in the list.  As a special
+     extension, the syntax `VAR1 TO VAR2' may be used to refer to a
+     range of variables; see *Note Sets of Variables::, for more
+     details.
+
+ - Function:  NVALID (EXPR [, EXPR]...)
+     Each argument must be a numeric expression.  Returns the number of
+     values in the list that are not user- or system-missing.  As a
+     special extension, the syntax `VAR1 TO VAR2' may be used to refer
+     to a range of variables; see *Note Sets of Variables::, for more
+     details.
+
+ - Function:  SYSMIS (VARIABLE OR EXPRESSION)
+     When given the name of a numeric variable, returns 1 if the value
+     of that variable is system-missing.  Otherwise, if the value is not
+     missing or if it is user-missing, returns 0.  If given the name of
+     a string variable, always returns 1.  If given an expression other
+     than a single variable name, results in 1 if the value is system-
+     or user-missing, 0 otherwise.
+
+ - Function:  VALUE (VARIABLE)
+     Prevents the user-missing values of VARIABLE from being
+     transformed into system-missing values: If VARIABLE is not system-
+     or user-missing, results in the value of VARIABLE.  If VARIABLE is
+     user-missing, results in the value of VARIABLE anyway.  If
+     VARIABLE is system-missing, results in system-missing.
+
+\1f
+File: pspp.info,  Node: Pseudo-Random Numbers,  Next: Set Membership,  Prev: Missing Value Functions,  Up: Functions
+
+Pseudo-Random Number Generation Functions
+-----------------------------------------
+
+   Pseudo-random number generation functions take numeric arguments and
+produce numeric results.
+
+   The system's C library random generator is used as a basis for
+generating random numbers, since random number generation is a
+system-dependent task.  However, Knuth's Algorithm B is used to shuffle
+the resultant values, which is enough to make even a stream of
+consecutive integers random enough for most applications.
+
+   (If you're worried about the quality of the random number generator,
+well, you're using a statistical processing package--analyze it!)
+
+ - Function:  NORMAL (NUMBER)
+     Results in a random number.  Results from `NORMAL' are normally
+     distributed with a mean of 0 and a standard deviation of NUMBER.
+
+ - Function:  UNIFORM (NUMBER)
+     Results in a random number between 0 and NUMBER.  Results from
+     `UNIFORM' are evenly distributed across its entire range.  There
+     may be a maximum on the largest random number ever generated--this
+     is often 2**31-1 (2,147,483,647), but it may be orders of magnitude
+     higher or lower.
+
+\1f
+File: pspp.info,  Node: Set Membership,  Next: Statistical Functions,  Prev: Pseudo-Random Numbers,  Up: Functions
+
+Set-Membership Functions
+------------------------
+
+   Set membership functions determine whether a value is a member of a
+set.  They take a set of numeric arguments or a set of string
+arguments, and produce Boolean results.
+
+   String comparisons are performed according to the rules given in
+*Note Relational Operators::.
+
+ - Function:  ANY (VALUE, SET [, SET]...)
+     Results in true if VALUE is equal to any of the SET values.
+     Otherwise, results in false.  If VALUE is system-missing, returns
+     system-missing.  System-missing values in SET do not cause ANY to
+     return system-missing.
+
+ - Function:  RANGE (VALUE, LOW, HIGH [, LOW, HIGH]...)
+     Results in true if VALUE is in any of the intervals bounded by LOW
+     and HIGH inclusive.  Otherwise, results in false.  Each LOW must
+     be less than or equal to its corresponding HIGH value.  LOW and
+     HIGH must be given in pairs.  If VALUE is system-missing, returns
+     system-missing.  System-missing values in SET do not cause RANGE
+     to return system-missing.
+
+\1f
+File: pspp.info,  Node: Statistical Functions,  Next: String Functions,  Prev: Set Membership,  Up: Functions
+
+Statistical Functions
+---------------------
+
+   Statistical functions compute descriptive statistics on a list of
+values.  Some statistics can be computed on numeric or string values;
+other can only be computed on numeric values.  They result in the same
+type as their arguments.
+
+   With statistical functions it is possible to specify a minimum
+number of non-missing arguments for the function to be evaluated.  To
+do so, append a dot and the number to the function name.  For instance,
+to specify a minimum of three valid arguments to the MEAN function, use
+the name `MEAN.3'.
+
+ - Function:  CFVAR (NUMBER, NUMBER[, ...])
+     Results in the coefficient of variation of the values of NUMBER.
+     This function requires at least two valid arguments to give a
+     non-missing result.  (The coefficient of variation is the standard
+     deviation divided by the mean.)
+
+ - Function:  MAX (VALUE, VALUE[, ...])
+     Results in the value of the greatest VALUE.  The VALUEs may be
+     numeric or string.  Although at least two arguments must be given,
+     only one need be valid for MAX to give a non-missing result.
+
+ - Function:  MEAN (NUMBER, NUMBER[, ...])
+     Results in the mean of the values of NUMBER.  Although at least
+     two arguments must be given, only one need be valid for MEAN to
+     give a non-missing result.
+
+ - Function:  MIN (NUMBER, NUMBER[, ...])
+     Results in the value of the least VALUE.  The VALUEs may be
+     numeric or string.  Although at least two arguments must be given,
+     only one need be valid for MAX to give a non-missing result.
+
+ - Function:  SD (NUMBER, NUMBER[, ...])
+     Results in the standard deviation of the values of NUMBER.  This
+     function requires at least two valid arguments to give a
+     non-missing result.
+
+ - Function:  SUM (NUMBER, NUMBER[, ...])
+     Results in the sum of the values of NUMBER.  Although at least two
+     arguments must be given, only one need by valid for SUM to give a
+     non-missing result.
+
+ - Function:  VAR (NUMBER, NUMBER[, ...])
+     Results in the variance of the values of NUMBER.  This function
+     requires at least two valid arguments to give a non-missing result.
+
+ - Function:  VARIANCE (NUMBER, NUMBER[, ...])
+     Results in the variance of the values of NUMBER.  This function
+     requires at least two valid arguments to give a non-missing result.
+     (Use VAR in preference to VARIANCE for reasons of portability.)
+
+\1f
+File: pspp.info,  Node: String Functions,  Next: Time & Date,  Prev: Statistical Functions,  Up: Functions
+
+String Functions
+----------------
+
+   String functions take various arguments and return various results.
+
+ - Function:  CONCAT (STRING, STRING[, ...])
+     Returns a string consisting of each STRING in sequence.
+     `CONCAT("abc", "def", "ghi")' has a value of `"abcdefghi"'.  The
+     resultant string is truncated to a maximum of 255 characters.
+
+ - Function:  INDEX (HAYSTACK, NEEDLE)
+     Returns a positive integer indicating the position of the first
+     occurrence NEEDLE in HAYSTACK.  Returns 0 if HAYSTACK does not
+     contain NEEDLE.  Returns system-missing if NEEDLE is an empty
+     string.
+
+ - Function:  INDEX (HAYSTACK, NEEDLE, DIVISOR)
+     Divides NEEDLE into parts, each with length DIVISOR.  Searches
+     HAYSTACK for the first occurrence of each part, and returns the
+     smallest value.  Returns 0 if HAYSTACK does not contain any part
+     in NEEDLE.  It is an error if DIVISOR cannot be evenly divided
+     into the length of NEEDLE.  Returns system-missing if NEEDLE is an
+     empty string.
+
+ - Function:  LENGTH (STRING)
+     Returns the number of characters in STRING.
+
+ - Function:  LOWER (STRING)
+     Returns a string identical to STRING except that all uppercase
+     letters are changed to lowercase letters.  The definitions of
+     "uppercase" and "lowercase" are system-dependent.
+
+ - Function:  LPAD (STRING, LENGTH)
+     If STRING is at least LENGTH characters in length, returns STRING
+     unchanged.  Otherwise, returns STRING padded with spaces on the
+     left side to length LENGTH.  Returns an empty string if LENGTH is
+     system-missing, negative, or greater than 255.
+
+ - Function:  LPAD (STRING, LENGTH, PADDING)
+     If STRING is at least LENGTH characters in length, returns STRING
+     unchanged.  Otherwise, returns STRING padded with PADDING on the
+     left side to length LENGTH.  Returns an empty string if LENGTH is
+     system-missing, negative, or greater than 255, or if PADDING does
+     not contain exactly one character.
+
+ - Function:  LTRIM (STRING)
+     Returns STRING, after removing leading spaces.  Other whitespace,
+     such as tabs, carriage returns, line feeds, and vertical tabs, is
+     not removed.
+
+ - Function:  LTRIM (STRING, PADDING)
+     Returns STRING, after removing leading PADDING characters.  If
+     PADDING does not contain exactly one character, returns an empty
+     string.
+
+ - Function:  NUMBER (STRING)
+     Returns the number produced when STRING is interpreted according
+     to format FX.0, where X is the number of characters in STRING.  If
+     STRING does not form a proper number, system-missing is returned
+     without an error message.  Portability: none.
+
+ - Function:  NUMBER (STRING, FORMAT)
+     Returns the number produced when STRING is interpreted according
+     to format specifier FORMAT.  Only the number of characters in
+     STRING specified by FORMAT are examined.  For example,
+     `NUMBER("123", F3.0)' and `NUMBER("1234", F3.0)' both have value
+     123.  If STRING does not form a proper number, system-missing is
+     returned without an error message.
+
+ - Function:  RINDEX (STRING, FORMAT)
+     Returns a positive integer indicating the position of the last
+     occurrence of NEEDLE in HAYSTACK.  Returns 0 if HAYSTACK does not
+     contain NEEDLE.  Returns system-missing if NEEDLE is an empty
+     string.
+
+ - Function:  RINDEX (HAYSTACK, NEEDLE, DIVISOR)
+     Divides NEEDLE into parts, each with length DIVISOR.  Searches
+     HAYSTACK for the last occurrence of each part, and returns the
+     largest value.  Returns 0 if HAYSTACK does not contain any part in
+     NEEDLE.  It is an error if DIVISOR cannot be evenly divided into
+     the length of NEEDLE.  Returns system-missing if NEEDLE is an
+     empty string.
+
+ - Function:  RPAD (STRING, LENGTH)
+     If STRING is at least LENGTH characters in length, returns STRING
+     unchanged.  Otherwise, returns STRING padded with spaces on the
+     right to length LENGTH.  Returns an empty string if LENGTH is
+     system-missing, negative, or greater than 255.
+
+ - Function:  RPAD (STRING, LENGTH, PADDING)
+     If STRING is at least LENGTH characters in length, returns STRING
+     unchanged.  Otherwise, returns STRING padded with PADDING on the
+     right to length LENGTH.  Returns an empty string if LENGTH is
+     system-missing, negative, or greater than 255, or if PADDING does
+     not contain exactly one character.
+
+ - Function:  RTRIM (STRING)
+     Returns STRING, after removing trailing spaces.  Other types of
+     whitespace are not removed.
+
+ - Function:  RTRIM (STRING, PADDING)
+     Returns STRING, after removing trailing PADDING characters.  If
+     PADDING does not contain exactly one character, returns an empty
+     string.
+
+ - Function:  STRING (NUMBER, FORMAT)
+     Returns a string corresponding to NUMBER in the format given by
+     format specifier FORMAT.  For example, `STRING(123.56, F5.1)' has
+     the value `"123.6"'.
+
+ - Function:  SUBSTR (STRING, START)
+     Returns a string consisting of the value of STRING from position
+     START onward.  Returns an empty string if START is system-missing
+     or has a value less than 1 or greater than the number of
+     characters in STRING.
+
+ - Function:  SUBSTR (STRING, START, COUNT)
+     Returns a string consisting of the first COUNT characters from
+     STRING beginning at position START.  Returns an empty string if
+     START or COUNT is system-missing, if START is less than 1 or
+     greater than the number of characters in STRING, or if COUNT is
+     less than 1.  Returns a string shorter than COUNT characters if
+     START + COUNT - 1 is greater than the number of characters in
+     STRING.  Examples: `SUBSTR("abcdefg", 3, 2)' has value `"cd"';
+     `SUBSTR("Ben Pfaff", 5, 10)' has the value `"Pfaff"'.
+
+ - Function:  UPCASE (STRING)
+     Returns STRING, changing lowercase letters to uppercase letters.
+
+\1f
+File: pspp.info,  Node: Time & Date,  Next: Miscellaneous Functions,  Prev: String Functions,  Up: Functions
+
+Time & Date Functions
+---------------------
+
+   The legal range of dates for use in PSPP is 15 Oct 1582 through 31
+Dec 19999.
+
+     *Please note:* Most time & date extraction functions will accept
+     invalid arguments:
+
+        * Negative numbers in PSPP time format.
+
+        * Numbers less than 86,400 in PSPP date format.
+
+     However, sensible results are not guaranteed for these invalid
+     values.  The given equivalents for these functions are definitely
+     not guaranteed for invalid values.
+
+     *Please note also:* The time & date construction functions *do*
+     produce reasonable and useful results for out-of-range values;
+     these are not considered invalid.
+
+* Menu:
+
+* Time & Date Concepts::        How times & dates are defined and represented
+* Time Construction::           TIME.{DAYS HMS}
+* Time Extraction::             CTIME.{DAYS HOURS MINUTES SECONDS}
+* Date Construction::           DATE.{DMY MDY MOYR QYR WKYR YRDAY}
+* Date Extraction::             XDATE.{DATE HOUR JDAY MDAY MINUTE MONTH
+                                       QUARTER SECOND TDAY TIME WEEK
+                                       WKDAY YEAR}
+
+\1f
+File: pspp.info,  Node: Time & Date Concepts,  Next: Time Construction,  Prev: Time & Date,  Up: Time & Date
+
+How times & dates are defined and represented
+.............................................
+
+   Times and dates are handled by PSPP as single numbers.  A "time" is
+an interval.  PSPP measures times in seconds.  Thus, the following
+intervals correspond with the numeric values given:
+
+               10 minutes                        600
+               1 hour                          3,600
+               1 day, 3 hours, 10 seconds     97,210
+               40 days                     3,456,000
+               10010 d, 14 min, 24 s     864,864,864
+
+   A "date", on the other hand, is a particular instant in the past or
+the future.  PSPP represents a date as a number of seconds after the
+midnight that separated 8 Oct 1582 and 9 Oct 1582.  (Please note that 15
+Oct 1582 immediately followed 9 Oct 1582.)  Thus, the midnights before
+the dates given below correspond with the numeric PSPP dates given:
+
+                   15 Oct 1582                86,400
+                    4 Jul 1776         6,113,318,400
+                    1 Jan 1900        10,010,390,400
+                    1 Oct 1978        12,495,427,200
+                   24 Aug 1995        13,028,601,600
+
+Please note:
+
+   * A time may be added to, or subtracted from, a date, resulting in a
+     date.
+
+   * The difference of two dates may be taken, resulting in a time.
+
+   * Two times may be added to, or subtracted from, each other,
+     resulting in a time.
+
+   (Adding two dates does not produce a useful result.)
+
+   Since times and dates are merely numbers, the ordinary addition and
+subtraction operators are employed for these purposes.
+
+     *Please note:* Many dates and times have extremely large
+     values--just look at the values above.  Thus, it is not a good
+     idea to take powers of these values; also, the accuracy of some
+     procedures may be affected.  If necessary, convert times or dates
+     in seconds to some other unit, like days or years, before
+     performing analysis.
+
+\1f
+File: pspp.info,  Node: Time Construction,  Next: Time Extraction,  Prev: Time & Date Concepts,  Up: Time & Date
+
+Functions that Produce Times
+............................
+
+   These functions take numeric arguments and produce numeric results in
+PSPP time format.
+
+ - Function:  TIME.DAYS (NDAYS)
+     Results in a time value corresponding to NDAYS days.
+     (`TIME.DAYS(X)' is equivalent to `X * 60 * 60 * 24'.)
+
+ - Function:  TIME.HMS (NHOURS, NMINS, NSECS)
+     Results in a time value corresponding to NHOURS hours, NMINS
+     minutes, and NSECS seconds.  (`TIME.HMS(H, M, S)' is equivalent to
+     `H*60*60 + M*60 + S'.)
+
+\1f
+File: pspp.info,  Node: Time Extraction,  Next: Date Construction,  Prev: Time Construction,  Up: Time & Date
+
+Functions that Examine Times
+............................
+
+   These functions take numeric arguments in PSPP time format and give
+numeric results.
+
+ - Function:  CTIME.DAYS (TIME)
+     Results in the number of days and fractional days in TIME.
+     (`CTIME.DAYS(X)' is equivalent to `X/60/60/24'.)
+
+ - Function:  CTIME.HOURS (TIME)
+     Results in the number of hours and fractional hours in TIME.
+     (`CTIME.HOURS(X)' is equivalent to `X/60/60'.)
+
+ - Function:  CTIME.MINUTES (TIME)
+     Results in the number of minutes and fractional minutes in TIME.
+     (`CTIME.MINUTES(X)' is equivalent to `X/60'.)
+
+ - Function:  CTIME.SECONDS (TIME)
+     Results in the number of seconds and fractional seconds in TIME.
+     (`CTIME.SECONDS' does nothing; `CTIME.SECONDS(X)' is equivalent to
+     `X'.)
+
+\1f
+File: pspp.info,  Node: Date Construction,  Next: Date Extraction,  Prev: Time Extraction,  Up: Time & Date
+
+Functions that Produce Dates
+............................
+
+   These functions take numeric arguments and give numeric results in
+the PSPP date format.  Arguments taken by these functions are:
+
+DAY
+     Refers to a day of the month between 1 and 31.
+
+MONTH
+     Refers to a month of the year between 1 and 12.
+
+QUARTER
+     Refers to a quarter of the year between 1 and 4.  The quarters of
+     the year begin on the first days of months 1, 4, 7, and 10.
+
+WEEK
+     Refers to a week of the year between 1 and 53.
+
+YDAY
+     Refers to a day of the year between 1 and 366.
+
+YEAR
+     Refers to a year between 1582 and 19999.
+
+   If these functions' arguments are out-of-range, they are correctly
+normalized before conversion to date format.  Non-integers are rounded
+toward zero.
+
+ - Function:  DATE.DMY (DAY, MONTH, YEAR)
+ - Function:  DATE.MDY (MONTH, DAY, YEAR)
+     Results in a date value corresponding to the midnight before day
+     DAY of month MONTH of year YEAR.
+
+ - Function:  DATE.MOYR (MONTH, YEAR)
+     Results in a date value corresponding to the midnight before the
+     first day of month MONTH of year YEAR.
+
+ - Function:  DATE.QYR (QUARTER, YEAR)
+     Results in a date value corresponding to the midnight before the
+     first day of quarter QUARTER of year YEAR.
+
+ - Function:  DATE.WKYR (WEEK, YEAR)
+     Results in a date value corresponding to the midnight before the
+     first day of week WEEK of year YEAR.
+
+ - Function:  DATE.YRDAY (YEAR, YDAY)
+     Results in a date value corresponding to the midnight before day
+     YDAY of year YEAR.
+
diff --git a/doc/pspp.info-4 b/doc/pspp.info-4
new file mode 100644 (file)
index 0000000..740c29a
--- /dev/null
@@ -0,0 +1,1366 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: Date Extraction,  Prev: Date Construction,  Up: Time & Date
+
+Functions that Examine Dates
+............................
+
+   These functions take numeric arguments in PSPP date or time format
+and give numeric results.  These names are used for arguments:
+
+DATE
+     A numeric value in PSPP date format.
+
+TIME
+     A numeric value in PSPP time format.
+
+TIME-OR-DATE
+     A numeric value in PSPP time or date format.
+
+ - Function:  XDATE.DATE (TIME-OR-DATE)
+     For a time, results in the time corresponding to the number of
+     whole days DATE-OR-TIME includes.  For a date, results in the date
+     corresponding to the latest midnight at or before DATE-OR-TIME;
+     that is, gives the date that DATE-OR-TIME is in.  (XDATE.DATE(X)
+     is equivalent to TRUNC(X/86400)*86400.)  Applying this function to
+     a time is a Portability: none feature.
+
+ - Function:  XDATE.HOUR (TIME-OR-DATE)
+     For a time, results in the number of whole hours beyond the number
+     of whole days represented by DATE-OR-TIME.  For a date, results in
+     the hour (as an integer between 0 and 23) corresponding to
+     DATE-OR-TIME.  (XDATE.HOUR(X) is equivalent to
+     MOD(TRUNC(X/3600),24))  Applying this function to a time is a
+     Portability: none feature.
+
+ - Function:  XDATE.JDAY(DATE)
+     Results in the day of the year (as an integer between 1 and 366)
+     corresponding to DATE.
+
+ - Function:  XDATE.MDAY(DATE)
+     Results in the day of the month (as an integer between 1 and 31)
+     corresponding to DATE.
+
+ - Function:  XDATE.MINUTE(TIME-OR-DATE)
+     Results in the number of minutes (as an integer between 0 and 59)
+     after the last hour in TIME-OR-DATE.  (XDATE.MINUTE(X) is
+     equivalent to MOD(TRUNC(X/60),60)) Applying this function to a
+     time is a Portability: none feature.
+
+ - Function:  XDATE.MONTH(DATE)
+     Results in the month of the year (as an integer between 1 and 12)
+     corresponding to DATE.
+
+ - Function:  XDATE.QUARTER(DATE)
+     Results in the quarter of the year (as an integer between 1 and 4)
+     corresponding to DATE.
+
+ - Function:  XDATE.SECOND(TIME-OR-DATE)
+     Results in the number of whole seconds after the last whole minute
+     (as an integer between 0 and 59) in TIME-OR-DATE.
+     (XDATE.SECOND(X) is equivalent to MOD(X, 60).)  Applying this
+     function to a time is a Portability: none feature.
+
+ - Function:  XDATE.TDAY(TIME)
+     Results in the number of whole days (as an integer) in TIME.
+     (XDATE.TDAY(X) is equivalent to TRUNC(X/86400).)
+
+ - Function:  XDATE.TIME(DATE)
+     Results in the time of day at the instant corresponding to DATE,
+     in PSPP time format.  This is the number of seconds since midnight
+     on the day corresponding to DATE.  (XDATE.TIME(X) is equivalent to
+     TRUNC(X/86400)*86400.)
+
+ - Function:  XDATE.WEEK(DATE)
+     Results in the week of the year (as an integer between 1 and 53)
+     corresponding to DATE.
+
+ - Function:  XDATE.WKDAY(DATE)
+     Results in the day of week (as an integer between 1 and 7)
+     corresponding to DATE.  The days of the week are:
+
+    1
+          Sunday
+
+    2
+          Monday
+
+    3
+          Tuesday
+
+    4
+          Wednesday
+
+    5
+          Thursday
+
+    6
+          Friday
+
+    7
+          Saturday
+
+ - Function:  XDATE.YEAR (DATE)
+     Returns the year (as an integer between 1582 and 19999)
+     corresponding to DATE.
+
+\1f
+File: pspp.info,  Node: Miscellaneous Functions,  Next: Functions Not Implemented,  Prev: Time & Date,  Up: Functions
+
+Miscellaneous Functions
+-----------------------
+
+   Miscellaneous functions take various arguments and produce various
+results.
+
+ - Function:  LAG (VARIABLE)
+     VARIABLE must be a numeric or string variable name.  `LAG' results
+     in the value of that variable for the case before the current one.
+     In case-selection procedures, `LAG' results in the value of the
+     variable for the last case selected.  Results in system-missing
+     (for numeric variables) or blanks (for string variables) for the
+     first case or before any cases are selected.
+
+ - Function:  LAG (VARIABLE, NCASES)
+     VARIABLE must be a numeric or string variable name.  NCASES must
+     be a small positive constant integer, although there is no explicit
+     limit.  (Use of a large value for NCASES will increase memory
+     consumption, since PSPP must keep NCASES cases in memory.)  `LAG
+     (VARIABLE, NCASES' results in the value of VARIABLE that is NCASES
+     before the case currently being processed.  See `LAG (VARIABLE)'
+     above for more details.
+
+ - Function:  YRMODA (YEAR, MONTH, DAY)
+     YEAR is a year between 0 and 199 or 1582 and 19999.  MONTH is a
+     month between 1 and 12.  DAY is a day between 1 and 31.  If MONTH
+     or DAY is out-of-range, it changes the next higher unit.  For
+     instance, a DAY of 0 refers to the last day of the previous month,
+     and a MONTH of 13 refers to the first month of the next year.
+     YEAR must be in range.  If YEAR is between 0 and 199, 1900 is
+     added.  YEAR, MONTH, and DAY must all be integers.
+
+     `YRMODA' results in the number of days between 15 Oct 1582 and the
+     date specified, plus one.  The date passed to `YRMODA' must be on
+     or after 15 Oct 1582.  15 Oct 1582 has a value of 1.
+
+\1f
+File: pspp.info,  Node: Functions Not Implemented,  Prev: Miscellaneous Functions,  Up: Functions
+
+Functions Not Implemented
+-------------------------
+
+   These functions are not yet implemented and thus not yet documented,
+since it's a hassle.
+
+   * `CDF.xxx'
+
+   * `CDFNORM'
+
+   * `IDF.xxx'
+
+   * `NCDF.xxx'
+
+   * `PROBIT'
+
+   * `RV.xxx'
+
+\1f
+File: pspp.info,  Node: Order of Operations,  Prev: Functions,  Up: Expressions
+
+Operator Precedence
+===================
+
+   The following table describes operator precedence.  Smaller-numbered
+levels in the table have higher precedence.  Within a level, operations
+are performed from left to right, except for level 2 (exponentiation),
+where operations are performed from right to left.  If an operator
+appears in the table in two places (`-'), the first occurrence is
+unary, the second is binary.
+
+  1. `(  )'
+
+  2. `**'
+
+  3. `-'
+
+  4. `*  /'
+
+  5. `+  -'
+
+  6. `EQ  GE  GT  LE  LT  NE'
+
+  7. `AND  NOT  OR'
+
+\1f
+File: pspp.info,  Node: Data Input and Output,  Next: System and Portable Files,  Prev: Expressions,  Up: Top
+
+Data Input and Output
+*********************
+
+   Data is the focus of the PSPP language.  This chapter examines the
+PSPP commands for defining variables and reading and writing data.
+
+     *Please note:* Data is not actually read until a procedure is
+     executed.  These commands tell PSPP how to read data, but they do
+     not _cause_ PSPP to read data.
+
+* Menu:
+
+* BEGIN DATA::                  Embed data within a syntax file.
+* CLEAR TRANSFORMATIONS::       Clear pending transformations.
+* DATA LIST::                   Fundamental data reading command.
+* END CASE::                    Output the current case.
+* END FILE::                    Terminate the current input program.
+* FILE HANDLE::                 Support for fixed-length records.
+* INPUT PROGRAM::               Support for complex input programs.
+* LIST::                        List cases in the active file.
+* MATRIX DATA::                 Read matrices in text format.
+* NEW FILE::                    Clear the active file and dictionary.
+* PRINT::                       Display values in print formats.
+* PRINT EJECT::                 Eject the current page then print.
+* PRINT SPACE::                 Print blank lines.
+* REREAD::                      Take another look at the previous input line.
+* REPEATING DATA::              Multiple cases on a single line.
+* WRITE::                       Display values in write formats.
+
+\1f
+File: pspp.info,  Node: BEGIN DATA,  Next: CLEAR TRANSFORMATIONS,  Prev: Data Input and Output,  Up: Data Input and Output
+
+BEGIN DATA
+==========
+
+     BEGIN DATA.
+     ...
+     END DATA.
+
+   BEGIN DATA and END DATA can be used to embed raw ASCII data in a PSPP
+syntax file.  DATA LIST or another input procedure must be used before
+BEGIN DATA (*note DATA LIST::).  BEGIN DATA and END DATA must be used
+together.  The END DATA command must appear by itself on a single line,
+with no leading whitespace and exactly one space between the words
+`END' and `DATA', followed immediately by the terminal dot, like this:
+
+     END DATA.
+
+\1f
+File: pspp.info,  Node: CLEAR TRANSFORMATIONS,  Next: DATA LIST,  Prev: BEGIN DATA,  Up: Data Input and Output
+
+CLEAR TRANSFORMATIONS
+=====================
+
+     CLEAR TRANSFORMATIONS.
+
+   The CLEAR TRANSFORMATIONS command clears out all pending
+transformations.  It does not cancel the current input program.  It is
+valid only when PSPP is interactive, not in syntax files.
+
+\1f
+File: pspp.info,  Node: DATA LIST,  Next: END CASE,  Prev: CLEAR TRANSFORMATIONS,  Up: Data Input and Output
+
+DATA LIST
+=========
+
+   Used to read text or binary data, DATA LIST is the most fundamental
+data-reading command.  Even the more sophisticated input methods use
+DATA LIST commands as a building block.  Understanding DATA LIST is
+important to understanding how to use PSPP to read your data files.
+
+   There are two major variants of DATA LIST, which are fixed format
+and free format.  In addition, free format has a minor variant, list
+format, which is discussed in terms of its differences from vanilla
+free format.
+
+   Each form of DATA LIST is described in detail below.
+
+* Menu:
+
+* DATA LIST FIXED::             Fixed columnar locations for data.
+* DATA LIST FREE::              Any spacing you like.
+* DATA LIST LIST::              Each case must be on a single line.
+
+\1f
+File: pspp.info,  Node: DATA LIST FIXED,  Next: DATA LIST FREE,  Prev: DATA LIST,  Up: DATA LIST
+
+DATA LIST FIXED
+---------------
+
+     DATA LIST [FIXED]
+             {TABLE,NOTABLE}
+             FILE='filename'
+             RECORDS=record_count
+             END=end_var
+             /[line_no] var_spec...
+     
+     where each var_spec takes one of the forms
+             var_list start-end [type_spec]
+             var_list (fortran_spec)
+
+   DATA LIST FIXED is used to read data files that have values at fixed
+positions on each line of single-line or multiline records.  The
+keyword FIXED is optional.
+
+   The FILE subcommand must be used if input is to be taken from an
+external file.  It may be used to specify a filename as a string or a
+file handle (*note FILE HANDLE::).  If the FILE subcommand is not used,
+then input is assumed to be specified within the command file using
+BEGIN DATA...END DATA (*note BEGIN DATA::).
+
+   The optional RECORDS subcommand, which takes a single integer as an
+argument, is used to specify the number of lines per record.  If RECORDS
+is not specified, then the number of lines per record is calculated from
+the list of variable specifications later in the DATA LIST command.
+
+   The END subcommand is only useful in conjunction with the INPUT
+PROGRAM input procedure, and for that reason it is not discussed here
+(*note INPUT PROGRAM::).
+
+   DATA LIST can optionally output a table describing how the data file
+will be read.  The TABLE subcommand enables this output, and NOTABLE
+disables it.  The default is to output the table.
+
+   The list of variables to be read from the data list must come last in
+the DATA LIST command.  Each line in the data record is introduced by a
+slash (`/').  Optionally, a line number may follow the slash.
+Following, any number of variable specifications may be present.
+
+   Each variable specification consists of a list of variable names
+followed by a description of their location on the input line.  Sets of
+variables may specified using DATA LIST's TO convention (*note Sets of
+Variables::).  There are two ways to specify the location of the
+variable on the line: SPSS style and FORTRAN style.
+
+   With SPSS style, the starting column and ending column for the field
+are specified after the variable name, separated by a dash (`-').  For
+instance, the third through fifth columns on a line would be specified
+`3-5'.  By default, variables are considered to be in `F' format (*note
+Input/Output Formats::).  (This default can be changed; see *Note SET::
+for more information.)
+
+   When using SPSS style, to use a variable format other than the
+default, specify the format type in parentheses after the column
+numbers.  For instance, for alphanumeric `A' format, use `(A)'.
+
+   In addition, implied decimal places can be specified in parentheses
+after the column numbers.  As an example, suppose that a data file has a
+field in which the characters `1234' should be interpreted as having
+the value 12.34.  Then this field has two implied decimal places, and
+the corresponding specification would be `(2)'.  If a field that has
+implied decimal places contains a decimal point, then the implied
+decimal places are not applied.
+
+   Changing the variable format and adding implied decimal places can be
+done together; for instance, `(N,5)'.
+
+   When using SPSS style, the input and output width of each variable is
+computed from the field width.  The field width must be evenly divisible
+into the number of variables specified.
+
+   FORTRAN style is an altogether different approach to specifying field
+locations.  With this approach, a list of variable input format
+specifications, separated by commas, are placed after the variable names
+inside parentheses.  Each format specifier advances as many characters
+into the input line as it uses.
+
+   In addition to the standard format specifiers (*note Input/Output
+Formats::), FORTRAN style defines some extensions:
+
+`X'
+     Advance the current column on this line by one character position.
+
+`T'X
+     Set the current column on this line to column X, with column
+     numbers considered to begin with 1 at the left margin.
+
+`NEWREC'X
+     Skip forward X lines in the current record, resetting the active
+     column to the left margin.
+
+Repeat count
+     Any format specifier may be preceded by a number.  This causes the
+     action of that format specifier to be repeated the specified
+     number of times.
+
+(SPEC1, ..., SPECN)
+     Group the given specifiers together.  This is most useful when
+     preceded by a repeat count.  Groups may be nested arbitrarily.
+
+   FORTRAN and SPSS styles may be freely intermixed.  SPSS style leaves
+the active column immediately after the ending column specified.  Record
+motion using `NEWREC' in FORTRAN style also applies to later FORTRAN
+and SPSS specifiers.
+
+* Menu:
+
+* DATA LIST FIXED Examples::    Examples of DATA LIST FIXED.
+
+\1f
+File: pspp.info,  Node: DATA LIST FIXED Examples,  Prev: DATA LIST FIXED,  Up: DATA LIST FIXED
+
+Examples
+........
+
+  1.      DATA LIST TABLE /NAME 1-10 (A) INFO1 TO INFO3 12-17 (1).
+          
+          BEGIN DATA.
+          John Smith 102311
+          Bob Arnold 122015
+          Bill Yates  918 6
+          END DATA.
+
+     Defines the following variables:
+
+        * `NAME', a 10-character-wide long string variable, in columns 1
+          through 10.
+
+        * `INFO1', a numeric variable, in columns 12 through 13.
+
+        * `INFO2', a numeric variable, in columns 14 through 15.
+
+        * `INFO3', a numeric variable, in columns 16 through 17.
+
+     The `BEGIN DATA'/`END DATA' commands cause three cases to be
+     defined:
+
+          Case   NAME         INFO1   INFO2   INFO3
+             1   John Smith     10      23      11
+             2   Bob Arnold     12      20      15
+             3   Bill Yates      9      18       6
+
+     The `TABLE' keyword causes PSPP to print out a table describing
+     the four variables defined.
+
+  2.      DAT LIS FIL="survey.dat"
+                  /ID 1-5 NAME 7-36 (A) SURNAME 38-67 (A) MINITIAL 69 (A)
+                  /Q01 TO Q50 7-56
+                  /.
+
+     Defines the following variables:
+
+        * `ID', a numeric variable, in columns 1-5 of the first record.
+
+        * `NAME', a 30-character long string variable, in columns 7-36
+          of the first record.
+
+        * `SURNAME', a 30-character long string variable, in columns
+          38-67 of the first record.
+
+        * `MINITIAL', a 1-character short string variable, in column 69
+          of the first record.
+
+        * Fifty variables `Q01', `Q02', `Q03', ..., `Q49', `Q50', all
+          numeric, `Q01' in column 7, `Q02' in column 8, ..., `Q49' in
+          column 55, `Q50' in column 56, all in the second record.
+
+     Cases are separated by a blank record.
+
+     Data is read from file `survey.dat' in the current directory.
+
+     This example shows keywords abbreviated to their first 3 letters.
+
+
+\1f
+File: pspp.info,  Node: DATA LIST FREE,  Next: DATA LIST LIST,  Prev: DATA LIST FIXED,  Up: DATA LIST
+
+DATA LIST FREE
+--------------
+
+     DATA LIST FREE
+             [{NOTABLE,TABLE}]
+             FILE='filename'
+             END=end_var
+             /var_spec...
+     
+     where each var_spec takes one of the forms
+             var_list [(type_spec)]
+             var_list *
+
+   In free format, the input data is structured as a series of comma- or
+whitespace-delimited fields (end of line is one form of whitespace; it
+is not treated specially).  Field contents may be surrounded by matched
+pairs of apostrophes (`'') or quotes (`"'), or they may be unenclosed.
+For any type of field leading white space (up to the apostrophe or
+quote, if any) is not included in the field.
+
+   Multiple consecutive delimiters are equivalent to a single delimiter.
+To specify an empty field, write an empty set of single or double
+quotes; for instance, `""'.
+
+   The NOTABLE and TABLE subcommands are as in DATA LIST FIXED above.
+NOTABLE is the default.
+
+   The FILE and END subcommands are as in DATA LIST FIXED above.
+
+   The variables to be parsed are given as a single list of variable
+names.  This list must be introduced by a single slash (`/').  The set
+of variable names may contain format specifications in parentheses
+(*note Input/Output Formats::).  Format specifications apply to all
+variables back to the previous parenthesized format specification.
+
+   In addition, an asterisk may be used to indicate that all variables
+preceding it are to have input/output format `F8.0'.
+
+   Specified field widths are ignored on input, although all normal
+limits on field width apply, but they are honored on output.
+
+\1f
+File: pspp.info,  Node: DATA LIST LIST,  Prev: DATA LIST FREE,  Up: DATA LIST
+
+DATA LIST LIST
+--------------
+
+     DATA LIST LIST
+             [{NOTABLE,TABLE}]
+             FILE='filename'
+             END=end_var
+             /var_spec...
+     
+     where each var_spec takes one of the forms
+             var_list [(type_spec)]
+             var_list *
+
+   Syntactically and semantically, DATA LIST LIST is equivalent to DATA
+LIST FREE, with one exception: each input line is expected to correspond
+to exactly one input record.  If more or fewer fields are found on an
+input line than expected, an appropriate diagnostic is issued.
+
+\1f
+File: pspp.info,  Node: END CASE,  Next: END FILE,  Prev: DATA LIST,  Up: Data Input and Output
+
+END CASE
+========
+
+     END CASE.
+
+   END CASE is used within INPUT PROGRAM to output the current case.
+*Note INPUT PROGRAM::.
+
+\1f
+File: pspp.info,  Node: END FILE,  Next: FILE HANDLE,  Prev: END CASE,  Up: Data Input and Output
+
+END FILE
+========
+
+     END FILE.
+
+   END FILE is used within INPUT PROGRAM to terminate the current input
+program.  *Note INPUT PROGRAM::.
+
+\1f
+File: pspp.info,  Node: FILE HANDLE,  Next: INPUT PROGRAM,  Prev: END FILE,  Up: Data Input and Output
+
+FILE HANDLE
+===========
+
+     FILE HANDLE handle_name
+             /NAME='filename'
+             /RECFORM={VARIABLE,FIXED,SPANNED}
+             /LRECL=rec_len
+             /MODE={CHARACTER,IMAGE,BINARY,MULTIPUNCH,360}
+
+   Use the FILE HANDLE command to define the attributes of a file that
+does not use conventional variable-length records terminated by newline
+characters.
+
+   Specify the file handle name as an identifier.  Any given identifier
+may only appear once in a PSPP run.  File handles may not be reassigned
+to a different file.  The file handle name must immediately follow the
+FILE HANDLE command name.
+
+   The NAME subcommand specifies the name of the file associated with
+the handle.  It is the only required subcommand.
+
+   The RECFORM subcommand specifies how the file is laid out.  VARIABLE
+specifies variable-length lines terminated with newlines, and it is the
+default.  FIXED specifies fixed-length records.  SPANNED is not
+supported.
+
+   LRECL specifies the length of fixed-length records.  It is required
+if `/RECFORM FIXED' is specified.
+
+   MODE specifies a file mode.  CHARACTER, the default, causes the data
+file to be opened in ANSI C text mode.  BINARY causes the data file to
+be opened in ANSI C binary mode.  The other possibilities are not
+supported.
+
+\1f
+File: pspp.info,  Node: INPUT PROGRAM,  Next: LIST,  Prev: FILE HANDLE,  Up: Data Input and Output
+
+INPUT PROGRAM
+=============
+
+     INPUT PROGRAM.
+     ... input commands ...
+     END INPUT PROGRAM.
+
+   The INPUT PROGRAM...END INPUT PROGRAM construct is used to specify a
+complex input program.  By placing data input commands within INPUT
+PROGRAM, PSPP programs can take advantage of more complex file
+structures than available by using DATA LIST by itself.
+
+   The first sort of extended input program is to simply put multiple
+DATA LIST commands within the INPUT PROGRAM.  This will cause all of
+the data files to be read in parallel.  Input will stop when end of
+file is reached on any of the data files.
+
+   Transformations, such as conditional and looping constructs, can
+also be included within an INPUT PROGRAM.  These can be used to combine
+input from several data files in more complex ways.  However, input
+will still stop when end of file is reached on any of the data files.
+
+   To prevent INPUT PROGRAM from terminating at the first end of file,
+use the END subcommand on DATA LIST.  This subcommand takes a variable
+name, which should be a numeric scratch variable (*note Scratch
+Variables::).  (It need not be a scratch variable but otherwise the
+results can be surprising.)  The value of this variable is set to 0
+when reading the data file, or 1 when end of file is encountered.
+
+   Some additional commands are useful in conjunction with INPUT
+PROGRAM.  END CASE is the first one.  Normally each loop through the
+INPUT PROGRAM structure produces one case.  But with END CASE you can
+control exactly when cases are output.  When END CASE is used, looping
+from the end of INPUT PROGRAM to the beginning does not cause a case to
+be output.
+
+   END FILE is the other command.  When the END subcommand is used on
+DATA LIST, there is no way for the INPUT PROGRAM construct to stop
+looping, so an infinite loop results.  The END FILE command, when
+executed, stops the flow of input data and passes out of the INPUT
+PROGRAM structure.
+
+   All this is very confusing.  A few examples should help to clarify.
+
+     INPUT PROGRAM.
+             DATA LIST NOTABLE FILE='a.data'/X 1-10.
+             DATA LIST NOTABLE FILE='b.data'/Y 1-10.
+     END INPUT PROGRAM.
+     LIST.
+
+   The example above reads variable X from file `a.data' and variable Y
+from file `b.data'.  If one file is shorter than the other then the
+extra data in the longer file is ignored.
+
+     INPUT PROGRAM.
+             NUMERIC #A #B.
+     
+             DO IF NOT #A.
+                     DATA LIST NOTABLE END=#A FILE='a.data'/X 1-10.
+             END IF.
+             DO IF NOT #B.
+                     DATA LIST NOTABLE END=#B FILE='b.data'/Y 1-10.
+             END IF.
+             DO IF #A AND #B.
+                     END FILE.
+             END IF.
+             END CASE.
+     END INPUT PROGRAM.
+     LIST.
+
+   This example reads variable X from `a.data' and variable Y from
+`b.data'.  If one file is shorter than the other then the missing field
+is set to the system-missing value alongside the present value for the
+remaining length of the longer file.
+
+     INPUT PROGRAM.
+             NUMERIC #A #B.
+     
+             DO IF #A.
+                     DATA LIST NOTABLE END=#B FILE='b.data'/X 1-10.
+                     DO IF #B.
+                             END FILE.
+                     ELSE.
+                             END CASE.
+                     END IF.
+             ELSE.
+                     DATA LIST NOTABLE END=#A FILE='a.data'/X 1-10.
+                     DO IF NOT #A.
+                             END CASE.
+                     END IF.
+             END IF.
+     END INPUT PROGRAM.
+     LIST.
+
+   The above example reads data from file `a.data', then from `b.data',
+and concatenates them into a single active file.
+
+     INPUT PROGRAM.
+             NUMERIC #EOF.
+     
+             LOOP IF NOT #EOF.
+                     DATA LIST NOTABLE END=#EOF FILE='a.data'/X 1-10.
+                     DO IF NOT #EOF.
+                             END CASE.
+                     END IF.
+             END LOOP.
+     
+             COMPUTE #EOF = 0.
+             LOOP IF NOT #EOF.
+                     DATA LIST NOTABLE END=#EOF FILE='b.data'/X 1-10.
+                     DO IF NOT #EOF.
+                             END CASE.
+                     END IF.
+             END LOOP.
+     
+             END FILE.
+     END INPUT PROGRAM.
+     LIST.
+
+   The above example does the same thing as the previous example, in a
+different way.
+
+     INPUT PROGRAM.
+             LOOP #I=1 TO 50.
+                     COMPUTE X=UNIFORM(10).
+                     END CASE.
+             END LOOP.
+             END FILE.
+     END INPUT PROGRAM.
+     LIST/FORMAT=NUMBERED.
+
+   The above example causes an active file to be created consisting of
+50 random variates between 0 and 10.
+
+\1f
+File: pspp.info,  Node: LIST,  Next: MATRIX DATA,  Prev: INPUT PROGRAM,  Up: Data Input and Output
+
+LIST
+====
+
+     LIST
+             /VARIABLES=var_list
+             /CASES=FROM start_index TO end_index BY incr_index
+             /FORMAT={UNNUMBERED,NUMBERED} {WRAP,SINGLE}
+                     {NOWEIGHT,WEIGHT}
+
+   The LIST procedure prints the values of specified variables to the
+listing file.
+
+   The VARIABLES subcommand specifies the variables whose values are to
+be printed.  Keyword VARIABLES is optional.  If VARIABLES subcommand is
+not specified then all variables in the active file are printed.
+
+   The CASES subcommand can be used to specify a subset of cases to be
+printed.  Specify FROM and the case number of the first case to print,
+TO and the case number of the last case to print, and BY and the number
+of cases to advance between printing cases, or any subset of those
+settings.  If CASES is not specified then all cases are printed.
+
+   The FORMAT subcommand can be used to change the output format.
+NUMBERED will print case numbers along with each case; UNNUMBERED, the
+default, causes the case numbers to be omitted.  The WRAP and SINGLE
+settings are currently not used.  WEIGHT will cause case weights to be
+printed along with variable values; NOWEIGHT, the default, causes case
+weights to be omitted from the output.
+
+   Case numbers start from 1.  They are counted after all
+transformations have been considered.
+
+   LIST will attempt to fit all the values on a single line.  If
+necessary, variable names will be display vertically in order to fit.
+If values cannot fit on a single line, then a multi-line format will be
+used.
+
+   LIST is a procedure.  It causes the data to be read.
+
+\1f
+File: pspp.info,  Node: MATRIX DATA,  Next: NEW FILE,  Prev: LIST,  Up: Data Input and Output
+
+MATRIX DATA
+===========
+
+     MATRIX DATA
+             /VARIABLES=var_list
+             /FILE='filename'
+             /FORMAT={LIST,FREE} {LOWER,UPPER,FULL} {DIAGONAL,NODIAGONAL}
+             /SPLIT={new_var,var_list}
+             /FACTORS=var_list
+             /CELLS=n_cells
+             /N=n
+             /CONTENTS={N_VECTOR,N_SCALAR,N_MATRIX,MEAN,STDDEV,COUNT,MSE,
+                        DFE,MAT,COV,CORR,PROX}
+
+   The MATRIX DATA command reads square matrices in one of several
+textual formats.  MATRIX DATA clears the dictionary and replaces it and
+reads a data file.
+
+   Use VARIABLES to specify the variables that form the rows and
+columns of the matrices.  You may not specify a variable named
+VARNAME_.  You should specify VARIABLES first.
+
+   Specify the file to read on FILE, either as a file name string or a
+file handle (*note FILE HANDLE::).  If FILE is not specified then
+matrix data must immediately follow MATRIX DATA with a BEGIN DATA...END
+DATA construct (*note BEGIN DATA::).
+
+   The FORMAT subcommand specifies how the matrices are formatted.
+LIST, the default, indicates that there is one line per row of matrix
+data; FREE allows single matrix rows to be broken across multiple
+lines.  This is analogous to the difference between DATA LIST FREE and
+DATA LIST LIST (*note DATA LIST::).  LOWER, the default, indicates that
+the lower triangle of the matrix is given; UPPER indicates the upper
+triangle; and FULL indicates that the entire matrix is given.
+DIAGONAL, the default, indicates that the diagonal is part of the data;
+NODIAGONAL indicates that it is omitted.  DIAGONAL/NODIAGONAL have no
+effect when FULL is specified.
+
+   The SPLIT subcommand is used to specify SPLIT FILE variables for the
+input matrices (*note SPLIT FILE::).  Specify either a single variable
+not specified on VARIABLES, or one or more variables that are specified
+on VARIABLES.  In the former case, the SPLIT values are not present in
+the data and ROWTYPE_ may not be specified on VARIABLES.  In the latter
+case, the SPLIT values are present in the data.
+
+   Specify a list of factor variables on FACTORS.  Factor variables must
+also be listed on VARIABLES.  Factor variables are used when there are
+some variables where, for each possible combination of their values,
+statistics on the matrix variables are included in the data.
+
+   If FACTORS is specified and ROWTYPE_ is not specified on VARIABLES,
+the CELLS subcommand is required.  Specify the number of factor variable
+combinations that are given.  For instance, if factor variable A has 2
+values and factor variable B has 3 values, specify 6.
+
+   The N subcommand specifies a population number of observations.
+When N is specified, one N record is output for each SPLIT FILE.
+
+   Use CONTENTS to specify what sort of information the matrices
+include.  Each possible option is described in more detail below.  When
+ROWTYPE_ is specified on VARIABLES, CONTENTS is optional; otherwise, if
+CONTENTS is not specified then /CONTENTS=CORR is assumed.
+
+N
+
+N_VECTOR
+     Number of observations as a vector, one value for each variable.
+
+N_SCALAR
+     Number of observations as a single value.
+
+N_MATRIX
+     Matrix of counts.
+
+MEAN
+     Vector of means.
+
+STDDEV
+     Vector of standard deviations.
+
+COUNT
+     Vector of counts.
+
+MSE
+     Vector of mean squared errors.
+
+DFE
+     Vector of degrees of freedom.
+
+MAT
+     Generic matrix.
+
+COV
+     Covariance matrix.
+
+CORR
+     Correlation matrix.
+
+PROX
+     Proximities matrix.
+
+   The exact semantics of the matrices read by MATRIX DATA are complex.
+Right now MATRIX DATA isn't too useful due to a lack of procedures
+accepting or producing related data, so these semantics aren't
+documented.  Later, they'll be described here in detail.
+
+\1f
+File: pspp.info,  Node: NEW FILE,  Next: PRINT,  Prev: MATRIX DATA,  Up: Data Input and Output
+
+NEW FILE
+========
+
+     NEW FILE.
+
+   The NEW FILE command clears the current active file.
+
+\1f
+File: pspp.info,  Node: PRINT,  Next: PRINT EJECT,  Prev: NEW FILE,  Up: Data Input and Output
+
+PRINT
+=====
+
+     PRINT
+             OUTFILE='filename'
+             RECORDS=n_lines
+             {NOTABLE,TABLE}
+             /[line_no] arg...
+     
+     arg takes one of the following forms:
+             'string' [start-end]
+             var_list start-end [type_spec]
+             var_list (fortran_spec)
+             var_list *
+
+   The PRINT transformation writes variable data to an output file.
+PRINT is executed when a procedure causes the data to be read.  In
+order to execute the PRINT transformation without invoking a procedure,
+use the EXECUTE command (*note EXECUTE::).
+
+   All PRINT subcommands are optional.
+
+   The OUTFILE subcommand specifies the file to receive the output.  The
+file may be a file name as a string or a file handle (*note FILE
+HANDLE::).  If OUTFILE is not present then output will be sent to PSPP's
+output listing file.
+
+   The RECORDS subcommand specifies the number of lines to be output.
+The number of lines may optionally be surrounded by parentheses.
+
+   TABLE will cause the PRINT command to output a table to the listing
+file that describes what it will print to the output file.  NOTABLE, the
+default, suppresses this output table.
+
+   Introduce the strings and variables to be printed with a slash
+(`/').  Optionally, the slash may be followed by a number indicating
+which output line will be specified.  In the absence of this line
+number, the next line number will be specified.  Multiple lines may be
+specified using multiple slashes with the intended output for a line
+following its respective slash.
+
+   Literal strings may be printed.  Specify the string itself.
+Optionally the string may be followed by a column number or range of
+column numbers, specifying the location on the line for the string to be
+printed.  Otherwise, the string will be printed at the current position
+on the line.
+
+   Variables to be printed can be specified in the same ways as
+available for DATA LIST FIXED (*note DATA LIST FIXED::).  In addition,
+a variable list may be followed by an asterisk (`*'), which indicates
+that the variables should be printed in their dictionary print formats,
+separated by spaces.  A variable list followed by a slash or the end of
+command will be interpreted the same way.
+
+   If a FORTRAN type specification is used to move backwards on the
+current line, then text is written at that point on the line, the line
+will be truncated to that length, although additional text being added
+will again extend the line to that length.
+
+\1f
+File: pspp.info,  Node: PRINT EJECT,  Next: PRINT SPACE,  Prev: PRINT,  Up: Data Input and Output
+
+PRINT EJECT
+===========
+
+     PRINT EJECT
+             OUTFILE='filename'
+             RECORDS=n_lines
+             {NOTABLE,TABLE}
+             /[line_no] arg...
+     
+     arg takes one of the following forms:
+             'string' [start-end]
+             var_list start-end [type_spec]
+             var_list (fortran_spec)
+             var_list *
+
+   PRINT EJECT is used to write data to an output file.  Before the
+data is written, the current page in the listing file is ejected.
+
+   *Note PRINT::, for more information on syntax and usage.
+
+\1f
+File: pspp.info,  Node: PRINT SPACE,  Next: REREAD,  Prev: PRINT EJECT,  Up: Data Input and Output
+
+PRINT SPACE
+===========
+
+     PRINT SPACE OUTFILE='filename' n_lines.
+
+   The PRINT SPACE prints one or more blank lines to an output file.
+
+   The OUTFILE subcommand is optional.  It may be used to direct output
+to a file specified by file name as a string or file handle (*note FILE
+HANDLE::).  If OUTFILE is not specified then output will be directed to
+the listing file.
+
+   n_lines is also optional.  If present, it is an expression (*note
+Expressions::) specifying the number of blank lines to be printed.  The
+expression must evaluate to a nonnegative value.
+
+\1f
+File: pspp.info,  Node: REREAD,  Next: REPEATING DATA,  Prev: PRINT SPACE,  Up: Data Input and Output
+
+REREAD
+======
+
+     REREAD FILE=handle COLUMN=column.
+
+   The REREAD transformation allows the previous input line in a data
+file already processed by DATA LIST or another input command to be
+re-read for further processing.
+
+   The FILE subcommand, which is optional, is used to specify the file
+to have its line re-read.  The file must be specified in the form of a
+file handle (*note FILE HANDLE::).  If FILE is not specified then the
+last file specified on DATA LIST will be assumed (last file specified
+lexically, not in terms of flow-of-control).
+
+   By default, the line re-read is re-read in its entirety.  With the
+COLUMN subcommand, a prefix of the line can be exempted from
+re-reading.  Specify an expression (*note Expressions::) evaluating to
+the first column that should be included in the re-read line.  Columns
+are numbered from 1 at the left margin.
+
+   Multiple REREAD commands will not back up in the data file.  Instead,
+they will re-read the same line multiple times.
+
+\1f
+File: pspp.info,  Node: REPEATING DATA,  Next: WRITE,  Prev: REREAD,  Up: Data Input and Output
+
+REPEATING DATA
+==============
+
+     REPEATING DATA
+             /STARTS=start-end
+             /OCCURS=n_occurs
+             /FILE='filename'
+             /LENGTH=length
+             /CONTINUED[=cont_start-cont_end]
+             /ID=id_start-id_end=id_var
+             /{TABLE,NOTABLE}
+             /DATA=var_spec...
+     
+     where each var_spec takes one of the forms
+             var_list start-end [type_spec]
+             var_list (fortran_spec)
+
+   The REPEATING DATA command is used to parse groups of data repeating
+in a uniform format, possibly with several groups on a single line.
+Each group of data corresponds with one case.  REPEATING DATA may only
+be used within an INPUT PROGRAM structure.  When used with DATA LIST, it
+can be used to parse groups of cases that share a subset of variables
+but differ in their other data.
+
+   The STARTS subcommand is required.  Specify a range of columns, using
+literal numbers or numeric variable names.  This range specifies the
+columns on the first line that are used to contain groups of data.  The
+ending column is optional.  If it is not specified, then the record
+width of the input file is used.  For the inline file (*note BEGIN
+DATA::) this is 80 columns; for a file with fixed record widths it is
+the record width; for other files it is 1024 characters by default.
+
+   The OCCURS subcommand is required.  It must be a number or the name
+of a numeric variable.  Its value is the number of groups present in the
+current record.
+
+   The DATA subcommand is required.  It must be the last subcommand
+specified.  It is used to specify the data present within each repeating
+group.  Column numbers are specified relative to the beginning of a
+group at column 1.  Data is specified in the same way as with DATA LIST
+FIXED (*note DATA LIST FIXED::).
+
+   All other subcommands are optional.
+
+   FILE specifies the file to read, either a file name as a string or a
+file handle (*note FILE HANDLE::).  If FILE is not present then the
+default is the last file handle used on DATA LIST (lexically, not in
+terms of flow of control).
+
+   By default REPEATING DATA will output a table describing how it will
+parse the input data.  Specifying NOTABLE will disable this behavior;
+specifying TABLE will explicitly enable it.
+
+   The LENGTH subcommand specifies the length in characters of each
+group.  If it is not present then length is inferred from the DATA
+subcommand.  LENGTH can be a number or a variable name.
+
+   Normally all the data groups are expected to be present on a single
+line.  Use the CONTINUED command to indicate that data can be continued
+onto additional lines.  If data on continuation lines starts at the left
+margin and continues through the entire field width, no column
+specifications are necessary on CONTINUED.  Otherwise, specify the
+possible range of columns in the same way as on STARTS.
+
+   When data groups are continued from line to line, it's easily
+possible for cases to get out of sync if hand editing is not done
+carefully.  The ID subcommand allows a case identifier to be present on
+each line of repeating data groups.  REPEATING DATA will check for the
+same identifier on each line and report mismatches.  Specify the range
+of columns that the identifier will occupy, followed by an equals sign
+(`=') and the identifier variable name.  The variable must already have
+been declared with NUMERIC or another command.
+
+\1f
+File: pspp.info,  Node: WRITE,  Prev: REPEATING DATA,  Up: Data Input and Output
+
+WRITE
+=====
+
+     WRITE
+             OUTFILE='filename'
+             RECORDS=n_lines
+             {NOTABLE,TABLE}
+             /[line_no] arg...
+     
+     arg takes one of the following forms:
+             'string' [start-end]
+             var_list start-end [type_spec]
+             var_list (fortran_spec)
+             var_list *
+
+   WRITE is used to write text or binary data to an output file.
+
+   *Note PRINT::, for more information on syntax and usage.  The main
+difference between PRINT and WRITE is that whereas by default PRINT uses
+variables' print formats, WRITE uses write formats.
+
+   The sole additional difference is that if WRITE is used to send
+output to a binary file, carriage control characters will not be output.
+*Note FILE HANDLE::, for information on how to declare a file as binary.
+
+\1f
+File: pspp.info,  Node: System and Portable Files,  Next: Variable Attributes,  Prev: Data Input and Output,  Up: Top
+
+System Files and Portable Files
+*******************************
+
+   The commands in this chapter read, write, and examine system files
+and portable files.
+
+* Menu:
+
+* APPLY DICTIONARY::            Apply system file dictionary to active file.
+* EXPORT::                      Write to a portable file.
+* GET::                         Read from a system file.
+* IMPORT::                      Read from a portable file.
+* MATCH FILES::                 Merge system files.
+* SAVE::                        Write to a system file.
+* SYSFILE INFO::                Display system file dictionary.
+* XSAVE::                       Write to a system file, as a transform.
+
+\1f
+File: pspp.info,  Node: APPLY DICTIONARY,  Next: EXPORT,  Prev: System and Portable Files,  Up: System and Portable Files
+
+APPLY DICTIONARY
+================
+
+     APPLY DICTIONARY FROM='filename'.
+
+   The APPLY DICTIONARY command applies the variable labels, value
+labels, and missing values from variables in a system file to
+corresponding variables in the active file.  In some cases it also
+updates the weighting variable.
+
+   Specify a system file with a file name string or as a file handle
+(*note FILE HANDLE::).  The dictionary in the system file will be read,
+but it will not replace the active file dictionary.  The system file's
+data will not be read.
+
+   Only variables with names that exist in both the active file and the
+system file are considered.  Variables with the same name but different
+types (numeric, string) will cause an error message.  Otherwise, the
+system file variables' attributes will replace those in their matching
+active file variables, as described below.
+
+   If a system file variable has a variable label, then it will replace
+the active file variable's variable label.  If the system file variable
+does not have a variable label, then the active file variable's variable
+label, if any, will be retained.
+
+   If the active file variable is numeric or short string, then value
+labels and missing values, if any, will be copied to the active file
+variable.  If the system file variable does not have value labels or
+missing values, then those in the active file variable, if any, will not
+be disturbed.
+
+   Finally, weighting of the active file is updated (*note WEIGHT::).
+If the active file has a weighting variable, and the system file does
+not, or if the weighting variable in the system file does not exist in
+the active file, then the active file weighting variable, if any, is
+retained.  Otherwise, the weighting variable in the system file becomes
+the active file weighting variable.
+
+   APPLY DICTIONARY takes effect immediately.  It does not read the
+active file.  The system file is not modified.
+
+\1f
+File: pspp.info,  Node: EXPORT,  Next: GET,  Prev: APPLY DICTIONARY,  Up: System and Portable Files
+
+EXPORT
+======
+
+     EXPORT
+             /OUTFILE='filename'
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+
+   The EXPORT procedure writes the active file dictionary and data to a
+specified portable file.
+
+   The OUTFILE subcommand, which is the only required subcommand,
+specifies the portable file to be written as a file name string or a
+file handle (*note FILE HANDLE::).
+
+   DROP, KEEP, and RENAME follow the same format as the SAVE procedure
+(*note SAVE::).
+
+   EXPORT is a procedure.  It causes the active file to be read.
+
+\1f
+File: pspp.info,  Node: GET,  Next: IMPORT,  Prev: EXPORT,  Up: System and Portable Files
+
+GET
+===
+
+     GET
+             /FILE='filename'
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+
+   The GET transformation clears the current dictionary and active file
+and replaces them with the dictionary and data from a specified system
+file.
+
+   The FILE subcommand is the only required subcommand.  Specify the
+system file to be read as a string file name or a file handle (*note
+FILE HANDLE::).
+
+   By default, all the variables in a system file are read.  The DROP
+subcommand can be used to specify a list of variables that are not to be
+read.  By contrast, the KEEP subcommand can be used to specify variable
+that are to be read, with all other variables not read.
+
+   Normally variables in a system file retain the names that they were
+saved under.  Use the RENAME subcommand to change these names.  Specify,
+within parentheses, a list of variable names followed by an equals sign
+(`=') and the names that they should be renamed to.  Multiple
+parenthesized groups of variable names can be included on a single
+RENAME subcommand.  Variables' names may be swapped using a RENAME
+subcommand of the form `/RENAME=(A B=B A)'.
+
+   Alternate syntax for the RENAME subcommand allows the parentheses to
+be eliminated.  When this is done, only a single variable may be
+renamed at once.  For instance, `/RENAME=A=B'.  This alternate syntax is
+deprecated.
+
+   DROP, KEEP, and RENAME are performed in left-to-right order.  They
+each may be present any number of times.
+
+   Please note that DROP, KEEP, and RENAME do not cause the system file
+on disk to be modified.  Only the active file read from the system file
+is changed.
+
+   GET does not cause the data to be read, only the dictionary.  The
+data is read later, when a procedure is executed.
+
+\1f
+File: pspp.info,  Node: IMPORT,  Next: MATCH FILES,  Prev: GET,  Up: System and Portable Files
+
+IMPORT
+======
+
+     IMPORT
+             /FILE='filename'
+             /TYPE={COMM,TAPE}
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+
+   The IMPORT transformation clears the active file dictionary and data
+and replaces them with a dictionary and data from a portable file on
+disk.
+
+   The FILE subcommand, which is the only required subcommand, specifies
+the portable file to be read as a file name string or a file handle
+(*note FILE HANDLE::).
+
+   The TYPE subcommand is currently not used.
+
+   DROP, KEEP, and RENAME follow the syntax used by GET (*note GET::).
+
+   IMPORT does not cause the data to be read, only the dictionary.  The
+data is read later, when a procedure is executed.
+
+\1f
+File: pspp.info,  Node: MATCH FILES,  Next: SAVE,  Prev: IMPORT,  Up: System and Portable Files
+
+MATCH FILES
+===========
+
+     MATCH FILES
+             /BY var_list
+             /{FILE,TABLE}={*,'filename'}
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+             /IN=var_name
+             /FIRST=var_name
+             /LAST=var_name
+             /MAP
+
+   The MATCH FILES command merges one or more system files, optionally
+including the active file.  Records with the same values for BY
+variables are combined into a single record.  Records with different
+values are output in order.  Thus, multiple sorted system files are
+combined into a single sorted system file based on the value of the BY
+variables.
+
+   The BY subcommand specifies a list of variables that are used to
+match records from each of the system files.  Variables specified must
+exist in all the files specified on FILE and TABLE.  BY should usually
+be specified.  If TABLE is used then BY is required.
+
+   Specify FILE with a system file as a file name string or file handle
+(*note FILE HANDLE::).  An asterisk (`*') may also be specified to
+indicate the current active file.  The files specified on FILE are
+merged together based on the BY variables, or combined case-by-case if
+BY is not specified.  Normally at least two FILE subcommands should be
+specified.
+
+   Specify TABLE with a system file in order to use it as a "table
+lookup file".  Records in table lookup files are not used up after
+they've been used once.  This means that data in table lookup files can
+correspond to any number of records in FILE files.  Table lookup files
+correspond to lookup tables in traditional relational database systems.
+It is incorrect to have records with duplicate BY values in table lookup
+files.
+
+   Any number of FILE and TABLE subcommands may be specified.  Each
+instance of FILE or TABLE can be followed by DROP, KEEP, and/or RENAME
+subcommands.  These take the same form as the corresponding subcommands
+of GET (*note GET::), and perform the same functions.
+
+   Variables belonging to files that are not present for the current
+case are set to the system-missing value for numeric variables or
+spaces for string variables.
+
+   IN, FIRST, LAST, and MAP are currently not used.
+
diff --git a/doc/pspp.info-5 b/doc/pspp.info-5
new file mode 100644 (file)
index 0000000..e1621d8
--- /dev/null
@@ -0,0 +1,1412 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: SAVE,  Next: SYSFILE INFO,  Prev: MATCH FILES,  Up: System and Portable Files
+
+SAVE
+====
+
+     SAVE
+             /OUTFILE='filename'
+             /{COMPRESSED,UNCOMPRESSED}
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+
+   The SAVE procedure causes the dictionary and data in the active file
+to be written to a system file.
+
+   The FILE subcommand is the only required subcommand.  Specify the
+system file to be written as a string file name or a file handle (*note
+FILE HANDLE::).
+
+   The COMPRESS and UNCOMPRESS subcommand determine whether the saved
+system file is compressed.  By default, system files are compressed.
+This default can be changed with the SET command (*note SET::).
+
+   By default, all the variables in the active file dictionary are
+written to the system file.  The DROP subcommand can be used to specify
+a list of variables not to be written.  In contrast, KEEP specifies
+variables to be written, with all variables not specified not written.
+
+   Normally variables are saved to a system file under the same names
+they have in the active file.  Use the RENAME command to change these
+names.  Specify, within parentheses, a list of variable names followed
+by an equals sign (`=') and the names that they should be renamed to.
+Multiple parenthesized groups of variable names can be included on a
+single RENAME subcommand.  Variables' names may be swapped using a
+RENAME subcommand of the form `/RENAME=(A B=B A)'.
+
+   Alternate syntax for the RENAME subcommand allows the parentheses to
+be eliminated.  When this is done, only a single variable may be
+renamed at once.  For instance, `/RENAME=A=B'.  This alternate syntax is
+deprecated.
+
+   DROP, KEEP, and RENAME are performed in left-to-right order.  They
+each may be present any number of times.
+
+   Please note that DROP, KEEP, and RENAME do not cause the active file
+to be modified.  Only the system file written to disk is changed.
+
+   SAVE causes the data to be read.  It is a procedure.
+
+\1f
+File: pspp.info,  Node: SYSFILE INFO,  Next: XSAVE,  Prev: SAVE,  Up: System and Portable Files
+
+SYSFILE INFO
+============
+
+     SYSFILE INFO FILE='filename'.
+
+   The SYSFILE INFO command reads the dictionary in a system file and
+displays the information in its dictionary.
+
+   Specify a file name or file handle.  SYSFILE INFO will read that
+file as a system file and display information on its dictionary.
+
+   The file does not replace the current active file.
+
+\1f
+File: pspp.info,  Node: XSAVE,  Prev: SYSFILE INFO,  Up: System and Portable Files
+
+XSAVE
+=====
+
+     XSAVE
+             /FILE='filename'
+             /{COMPRESSED,UNCOMPRESSED}
+             /DROP=var_list
+             /KEEP=var_list
+             /RENAME=(src_names=target_names)...
+
+   The XSAVE transformation writes the active file dictionary and data
+to a system file stored on disk.
+
+   XSAVE is a transformation, not a procedure.  It is executed when the
+data is read by a procedure or procedure-like command.  In all other
+respects, XSAVE is identical to SAVE.  *Note SAVE::, for more
+information on syntax and usage.
+
+\1f
+File: pspp.info,  Node: Variable Attributes,  Next: Data Manipulation,  Prev: System and Portable Files,  Up: Top
+
+Manipulating variables
+**********************
+
+   The variables in the active file dictionary are important.  There are
+several utility functions for examining and adjusting them.
+
+* Menu:
+
+* ADD VALUE LABELS::            Add value labels to variables.
+* DISPLAY::                     Display variable names & descriptions.
+* DISPLAY VECTORS::             Display a list of vectors.
+* FORMATS::                     Set print and write formats.
+* LEAVE::                       Don't clear variables between cases.
+* MISSING VALUES::              Set missing values for variables.
+* MODIFY VARS::                 Rename, reorder, and drop variables.
+* NUMERIC::                     Create new numeric variables.
+* PRINT FORMATS::               Set variable print formats.
+* RENAME VARIABLES::            Rename variables.
+* VALUE LABELS::                Set value labels for variables.
+* STRING::                      Create new string variables.
+* VARIABLE LABELS::             Set variable labels for variables.
+* VECTOR::                      Declare an array of variables.
+* WRITE FORMATS::               Set variable write formats.
+
+\1f
+File: pspp.info,  Node: ADD VALUE LABELS,  Next: DISPLAY,  Prev: Variable Attributes,  Up: Variable Attributes
+
+ADD VALUE LABELS
+================
+
+     ADD VALUE LABELS
+             /var_list value 'label' [value 'label']...
+
+   ADD VALUE LABELS has the same syntax and purpose as VALUE LABELS (see
+above), but it does not clear away value labels from the variables
+before adding the ones specified.
+
+\1f
+File: pspp.info,  Node: DISPLAY,  Next: DISPLAY VECTORS,  Prev: ADD VALUE LABELS,  Up: Variable Attributes
+
+DISPLAY
+=======
+
+     DISPLAY {NAMES,INDEX,LABELS,VARIABLES,DICTIONARY,SCRATCH}
+             [SORTED] [var_list]
+
+   DISPLAY displays requested information on variables.  Variables can
+optionally be sorted alphabetically.  The entire dictionary or just
+specified variables can be described.
+
+   One of the following keywords can be present:
+
+NAMES
+     The variables' names are displayed.
+
+INDEX
+     The variables' names are displayed along with a value describing
+     their position within the active file dictionary.
+
+LABELS
+     Variable names, positions, and variable labels are displayed.
+
+VARIABLES
+     Variable names, positions, print and write formats, and missing
+     values are displayed.
+
+DICTIONARY
+     Variable names, positions, print and write formats, missing values,
+     variable labels, and value labels are displayed.
+
+SCRATCH
+     Varible names are displayed, for scratch variables only (*note
+     Scratch Variables::).
+
+   If SORTED is specified, then the variables are displayed in ascending
+order based on their names; otherwise, they are displayed in the order
+that they occur in the active file dictionary.
+
+\1f
+File: pspp.info,  Node: DISPLAY VECTORS,  Next: FORMATS,  Prev: DISPLAY,  Up: Variable Attributes
+
+DISPLAY VECTORS
+===============
+
+     DISPLAY VECTORS.
+
+   The DISPLAY VECTORS command causes a list of the currently declared
+vectors to be displayed.
+
+\1f
+File: pspp.info,  Node: FORMATS,  Next: LEAVE,  Prev: DISPLAY VECTORS,  Up: Variable Attributes
+
+FORMATS
+=======
+
+     FORMATS var_list (fmt_spec).
+
+   The FORMATS command set the print and write formats for the specified
+variables to the specified format specification.  *Note Input/Output
+Formats::.
+
+   Specify a list of variables followed by a format specification in
+parentheses.  The print and write formats of the specified variables
+will be changed.
+
+   Additional lists of variables and formats may be included if they are
+delimited by a slash (`/').
+
+   The FORMATS command takes effect immediately.  It is not affected by
+conditional and looping structures such as DO IF or LOOP.
+
+\1f
+File: pspp.info,  Node: LEAVE,  Next: MISSING VALUES,  Prev: FORMATS,  Up: Variable Attributes
+
+LEAVE
+=====
+
+     LEAVE var_list.
+
+   The LEAVE command prevents the specified variables from being
+reinitialized whenever a new case is processed.
+
+   Normally, when a data file is processed, every variable in the active
+file is initialized to the system-missing value or spaces at the
+beginning of processing for each case.  When a variable has been
+specified on LEAVE, this is not the case.  Instead, that variable is
+initialized to 0 (not system-missing) or spaces for the first case.
+After that, it retains its value between cases.
+
+   This becomes useful for counters.  For instance, in the example below
+the variable SUM maintains a running total of the values in the ITEM
+variable.
+
+     DATA LIST /ITEM 1-3.
+     COMPUTE SUM=SUM+ITEM.
+     PRINT /ITEM SUM.
+     LEAVE SUM
+     BEGIN DATA.
+     123
+     404
+     555
+     999
+     END DATA.
+
+Partial output from this example:
+
+     123   123.00
+     404   527.00
+     555  1082.00
+     999  2081.00
+
+   It is best to use the LEAVE command immediately before invoking a
+procedure command, because it is reset by certain transformations--for
+instance, COMPUTE and IF.  LEAVE is also reset by all procedure
+invocations.
+
+\1f
+File: pspp.info,  Node: MISSING VALUES,  Next: MODIFY VARS,  Prev: LEAVE,  Up: Variable Attributes
+
+MISSING VALUES
+==============
+
+     MISSING VALUES var_list (missing_values).
+     
+     missing_values takes one of the following forms:
+             num1
+             num1, num2
+             num1, num2, num3
+             num1 THRU num2
+             num1 THRU num2, num3
+             string1
+             string1, string2
+             string1, string2, string3
+     As part of a range, LO or LOWEST may take the place of num1;
+     HI or HIGHEST may take the place of num2.
+
+   The MISSING VALUES command sets user-missing values for numeric and
+short string variables.  Long string variables may not have missing
+values.
+
+   Specify a list of variables, followed by a list of their user-missing
+values in parentheses.  Up to three discrete values may be given, or,
+for numeric variables only, a range of values optionally accompanied by
+a single discrete value.  Ranges may be open-ended on one end, indicated
+through the use of the keyword LO or LOWEST or HI or HIGHEST.
+
+   The MISSING VALUES command takes effect immediately.  It is not
+affected by conditional and looping constructs such as DO IF or LOOP.
+
+\1f
+File: pspp.info,  Node: MODIFY VARS,  Next: NUMERIC,  Prev: MISSING VALUES,  Up: Variable Attributes
+
+MODIFY VARS
+===========
+
+     MODIFY VARS
+             /REORDER={FORWARD,BACKWARD} {POSITIONAL,ALPHA} (var_list)...
+             /RENAME=(old_names=new_names)...
+             /{DROP,KEEP}=var_list
+             /MAP
+
+   The MODIFY VARS commands allows variables in the active file to be
+reordered, renamed, or deleted from the active file.
+
+   At least one subcommand must be specified, and no subcommand may be
+specified more than once.  DROP and KEEP may not both be specified.
+
+   The REORDER subcommand changes the order of variables in the active
+file.  Specify one or more lists of variable names in parentheses.  By
+default, each list of variables is rearranged into the specified order.
+To put the variables into the reverse of the specified order, put
+keyword BACKWARD before the parentheses.  To put them into alphabetical
+order in the dictionary, specify keyword ALPHA before the parentheses.
+BACKWARD and ALPHA may also be combined.
+
+   To rename variables in the active file, specify RENAME, an equals
+sign (`='), and lists of the old variable names and new variable names
+separated by another equals sign within parentheses.  There must be the
+same number of old and new variable names.  Each old variable is
+renamed to the corresponding new variable name.  Multiple parenthesized
+groups of variables may be specified.
+
+   The DROP subcommand deletes a specified list of variables from the
+active file.
+
+   The KEEP subcommand keeps the specified list of variables in the
+active file.  Any unlisted variables are delete from the active file.
+
+   MAP is currently ignored.
+
+   MODIFY VARS takes effect immediately.  It does not cause the data to
+be read.
+
+\1f
+File: pspp.info,  Node: NUMERIC,  Next: PRINT FORMATS,  Prev: MODIFY VARS,  Up: Variable Attributes
+
+NUMERIC
+=======
+
+     NUMERIC /var_list [(fmt_spec)].
+
+   The NUMERIC command explicitly declares new numeric variables,
+optionally setting their output formats.
+
+   Specify a slash (`/'), followed by the names of the new numeric
+variables.  If you wish to set their output formats, follow their names
+by an output format specification in parentheses (*note Input/Output
+Formats::).  If no output format specification is given then the
+variables will default to F8.2.
+
+   Variables created with NUMERIC will be initialized to the
+system-missing value.
+
+\1f
+File: pspp.info,  Node: PRINT FORMATS,  Next: RENAME VARIABLES,  Prev: NUMERIC,  Up: Variable Attributes
+
+PRINT FORMATS
+=============
+
+     PRINT FORMATS var_list (fmt_spec).
+
+   The PRINT FORMATS command sets the print formats for the specified
+variables to the specified format specification.
+
+   Syntax is identical to that of FORMATS (*note FORMATS::), but the
+PRINT FORMATS command sets only print formats, not write formats.
+
+\1f
+File: pspp.info,  Node: RENAME VARIABLES,  Next: VALUE LABELS,  Prev: PRINT FORMATS,  Up: Variable Attributes
+
+RENAME VARIABLES
+================
+
+     RENAME VARIABLES (old_names=new_names)... .
+
+   The RENAME VARIABLES command allows the names of variables in the
+active file to be changed.
+
+   To rename variables, specify lists of the old variable names and new
+variable names, separated by an equals sign (`='), within parentheses.
+There must be the same number of old and new variable names.  Each old
+variable is renamed to the corresponding new variable name.  Multiple
+parenthesized groups of variables may be specified.
+
+   RENAME VARIABLES takes effect immediately.  It does not cause the
+data to be read.
+
+\1f
+File: pspp.info,  Node: VALUE LABELS,  Next: STRING,  Prev: RENAME VARIABLES,  Up: Variable Attributes
+
+VALUE LABELS
+============
+
+     VALUE LABELS
+             /var_list value 'label' [value 'label']...
+
+   The VALUE LABELS command allows values of numeric and short string
+variables to be associated with labels.  In this way, a short value can
+stand for a long value.
+
+   In order to set up value labels for a set of variables, specify the
+variable names after a slash (`/'), followed by a list of values and
+their associated labels, separated by spaces.
+
+   Before the VALUE LABELS command is executed, any existing value
+labels are cleared from the variables specified.
+
+\1f
+File: pspp.info,  Node: STRING,  Next: VARIABLE LABELS,  Prev: VALUE LABELS,  Up: Variable Attributes
+
+STRING
+======
+
+     STRING /var_list (fmt_spec).
+
+   The STRING command creates new string variables for use in
+transformations.
+
+   Specify a slash (`/'), followed by the names of the string variables
+to create and the desired output format specification in parentheses
+(*note Input/Output Formats::).  Variable widths are implicitly derived
+from the specified output formats.
+
+   Created variables are initialized to spaces.
+
+\1f
+File: pspp.info,  Node: VARIABLE LABELS,  Next: VECTOR,  Prev: STRING,  Up: Variable Attributes
+
+VARIABLE LABELS
+===============
+
+     VARIABLE LABELS
+             /var_list 'var_label'.
+
+   The VARIABLE LABELS command is used to associate an explanatory name
+with a group of variables.  This name (a variable label) is displayed by
+statistical procedures.
+
+   To assign a variable label to a group of variables, specify a slash
+(`/'), followed by the list of variable names and the variable label as
+a string.
+
+\1f
+File: pspp.info,  Node: VECTOR,  Next: WRITE FORMATS,  Prev: VARIABLE LABELS,  Up: Variable Attributes
+
+VECTOR
+======
+
+     Two possible syntaxes:
+             VECTOR vec_name=var_list.
+             VECTOR vec_name_list(count).
+
+   The VECTOR command allows a group of variables to be accessed as if
+they were consecutive members of an array with a vector(index) notation.
+
+   To make a vector out of a set of existing variables, specify a name
+for the vector followed by an equals sign (`=') and the variables that
+belong in the vector.
+
+   To make a vector and create variables at the same time, specify one
+or more vector names followed by a count in parentheses.  This will
+cause variables named `VEC1' through `VECCOUNT' to be created as
+numeric variables.  Variable names including numeric suffixes may not
+exceed 8 characters in length, and none of the variables may exist
+prior to the VECTOR command.
+
+   All the variables in a vector must be the same type.
+
+   Vectors created with VECTOR disappear after any procedure or
+procedure-like command is executed.  The variables contained in the
+vectors remain, unless they are scratch variables (*note Scratch
+Variables::).
+
+   Variables within a vector may be references in expressions using
+vector(index) syntax.
+
+\1f
+File: pspp.info,  Node: WRITE FORMATS,  Prev: VECTOR,  Up: Variable Attributes
+
+WRITE FORMATS
+=============
+
+     WRITE FORMATS var_list (fmt_spec).
+
+   The WRITE FORMATS command sets the write formats for the specified
+variables to the specified format specification.
+
+   Syntax is identical to that of FORMATS (*note FORMATS::), but the
+WRITE FORMATS command sets only write formats, not print formats.
+
+\1f
+File: pspp.info,  Node: Data Manipulation,  Next: Data Selection,  Prev: Variable Attributes,  Up: Top
+
+Data transformations
+********************
+
+   The PSPP procedures examined in this chapter manipulate data and
+prepare the active file for later analyses.  They do not produce output,
+as a rule.
+
+* Menu:
+
+* AGGREGATE::                   Summarize multiple cases into a single case.
+* AUTORECODE::                  Automatic recoding of variables.
+* COMPUTE::                     Assigning a variable a calculated value.
+* COUNT::                       Counting variables with particular values.
+* FLIP::                        Exchange variables with cases.
+* IF::                          Conditionally assigning a calculated value.
+* RECODE::                      Mapping values from one set to another.
+* SORT CASES::                  Sort the active file.
+
+\1f
+File: pspp.info,  Node: AGGREGATE,  Next: AUTORECODE,  Prev: Data Manipulation,  Up: Data Manipulation
+
+AGGREGATE
+=========
+
+     AGGREGATE
+             /BREAK=var_list
+             /PRESORTED
+             /OUTFILE={*,'filename'}
+             /DOCUMENT
+             /MISSING=COLUMNWISE
+             /dest_vars=agr_func(src_vars, args...)...
+
+   The AGGREGATE command summarizes groups of cases into single cases.
+Cases are divided into groups that have the same values for one or more
+variables called "break variables".  Several functions are available
+for summarizing case contents.
+
+   BREAK is the only required subcommand (in addition, at least one
+aggregation variable must be specified).  Specify a list of variable
+names.  The values of these variables are used to divide the active file
+into groups to be summarized.
+
+   By default, the active file is sorted based on the break variables
+before aggregation takes place.  If the active file is already sorted,
+specify PRESORTED to save time.
+
+   The OUTFILE subcommand specifies a system file by file name string or
+file handle (*note FILE HANDLE::).  The aggregated cases are sent to
+this file.  If OUTFILE is not specified, or if `*' is specified, then
+the aggregated cases replace the active file.
+
+   Normally the aggregate file does not receive the documents from the
+active file, even if the aggregate file replaces the active file.
+Specify DOCUMENT to have the documents from the active file copied to
+the aggregate file.
+
+   At least one aggregation variable must be specified.  Specify a list
+of aggregation variables, an equals sign (`='), an aggregation function
+name (see the list below), and a list of source variables in
+parentheses.  In addition, some aggregation functions expect additional
+arguments in the parentheses following the source variable names.
+
+   There must be exactly as many source variables as aggregation
+variables.  Each aggregation variable receives the results of applying
+the specified aggregation function to the corresponding source
+variable.  Most aggregation functions may be applied to numeric and
+short and long string variables.  Others are restricted to numeric
+values; these are marked as such in this list below.
+
+   Any number of sets of aggregation variables may be specified.
+
+   The available aggregation functions are as follows:
+
+SUM(var_name)
+     Sum.  Limited to numeric values.
+
+MEAN(var_name)
+     Arithmetic mean.  Limited to numeric values.
+
+SD(var_name)
+     Standard deviation of the mean.  Limited to numeric values.
+
+MAX(var_name)
+     Maximum value.
+
+MIN(var_name)
+     Minimum value.
+
+FGT(var_name, value)
+PGT(var_name, value)
+     Fraction between 0 and 1, or percentage between 0 and 100,
+     respectively, of values greater than the specified constant.
+
+FLT(var_name, value)
+PLT(var_name, value)
+     Fraction or percentage, respectively, of values less than the
+     specified constant.
+
+FIN(var_name, low, high)
+PIN(var_name, low, high)
+     Fraction or percentage, respectively, of values within the
+     specified inclusive range of constants.
+
+FOUT(var_name, low, high)
+POUT(var_name, low, high)
+     Fraction or percentage, respectively, of values strictly outside
+     the specified range of constants.
+
+N(var_name)
+     Number of non-missing values.
+
+N
+     Number of cases aggregated to form this group.  Don't supply a
+     source variable for this aggregation function.
+
+NU(var_name)
+     Number of non-missing values.  Each case is considered to have a
+     weight of 1, regardless of the current weighting variable (*note
+     WEIGHT::).
+
+NU
+     Number of cases aggregated to form this group.  Each case is
+     considered to have a weight of 1, regardless of the current
+     weighting variable.
+
+NMISS(var_name)
+     Number of missing values.
+
+NUMISS(var_name)
+     Number of missing values.  Each case is considered to have a
+     weight of 1, regardless of the current weighting variable.
+
+FIRST(var_name)
+     First value in this group.
+
+LAST(var_name)
+     Last value in this group.
+
+   When string values are compared by aggregation functions, they are
+done in terms of internal character codes.  On most modern computers,
+this is a form of ASCII.
+
+   In addition, there is a parallel set of aggregation functions having
+the same names as those above, but with a dot after the last character
+(for instance, `SUM.').  These functions are the same as the above,
+except that they cause user-missing values, which are normally excluded
+from calculations, to be included.
+
+   Normally, only a single case (2 for SD and SD.) need be non-missing
+in each group in order for the aggregate variable to be non-missing.  If
+/MISSING=COLUMNWISE is specified, the behavior reverses: that is, a
+single missing value is enough to make the aggregate variable become a
+missing value.
+
+   AGGREGATE ignores the current SPLIT FILE settings and causes them to
+be canceled (*note SPLIT FILE::).
+
+\1f
+File: pspp.info,  Node: AUTORECODE,  Next: COMPUTE,  Prev: AGGREGATE,  Up: Data Manipulation
+
+AUTORECODE
+==========
+
+     AUTORECODE VARIABLES=src_vars INTO dest_vars
+             /DESCENDING
+             /PRINT
+
+   The AUTORECODE procedure considers the N values that a variable
+takes on and maps them onto values 1...N on a new numeric variable.
+
+   Subcommand VARIABLES is the only required subcommand and must come
+first.  Specify VARIABLES, an equals sign (`='), a list of source
+variables, INTO, and a list of target variables.  There must the same
+number of source and target variables.  The target variables must not
+already exist.
+
+   By default, increasing values of a source variable (for a string,
+this is based on character code comparisons) are recoded to increasing
+values of its target variable.  To cause increasing values of a source
+variable to be recoded to decreasing values of its target variable (N
+down to 1), specify DESCENDING.
+
+   PRINT is currently ignored.
+
+   AUTORECODE is a procedure.  It causes the data to be read.
+
+\1f
+File: pspp.info,  Node: COMPUTE,  Next: COUNT,  Prev: AUTORECODE,  Up: Data Manipulation
+
+COMPUTE
+=======
+
+     COMPUTE var_name = expression.
+
+   `COMPUTE' creates a variable with the name specified (if necessary),
+then evaluates the given expression for every case and assigns the
+result to the variable.  *Note Expressions::.
+
+   Numeric variables created or computed by `COMPUTE' are assigned an
+output width of 8 character with two decimal places (`F8.2').  String
+variables created or computed by `COMPUTE' have the same width as the
+existing variable or constant.
+
+   COMPUTE is a transformation.  It does not cause the active file to be
+read.
+
+\1f
+File: pspp.info,  Node: COUNT,  Next: FLIP,  Prev: COMPUTE,  Up: Data Manipulation
+
+COUNT
+=====
+
+     COUNT var_name = var... (value...).
+     
+     Each value takes one of the following forms:
+             number
+             string
+             num1 THRU num2
+             MISSING
+             SYSMIS
+     In addition, num1 and num2 can be LO or LOWEST, or HI or HIGHEST,
+     respectively.
+
+   `COUNT' creates or replaces a numeric "target" variable that counts
+the occurrence of a "criterion" value or set of values over one or more
+"test" variables for each case.
+
+   The target variable values are always nonnegative integers.  They are
+never missing.  The target variable is assigned an F8.2 output format.
+*Note Input/Output Formats::.  Any variables, including long and short
+string variables, may be test variables.
+
+   User-missing values of test variables are treated just like any other
+values.  They are *not* treated as system-missing values.  User-missing
+values that are criterion values or inside ranges of criterion values
+are counted as any other values.  However (for numeric variables),
+keyword `MISSING' may be used to refer to all system- and user-missing
+values.
+
+   `COUNT' target variables are assigned values in the order specified.
+In the command `COUNT A=A B(1) /B=A B(2).', the following actions
+occur:
+
+   - The number of occurrences of 1 between `A' and `B' is counted.
+
+   - `A' is assigned this value.
+
+   - The number of occurrences of 1 between `B' and the *new* value of
+     `A' is counted.
+
+   - `B' is assigned this value.
+
+   Despite this ordering, all `COUNT' criterion variables must exist
+before the procedure is executed--they may not be created as target
+variables earlier in the command!  Break such a command into two
+separate commands.
+
+   The examples below may help to clarify.
+
+  A. Assuming `Q0', `Q2', ..., `Q9' are numeric variables, the
+     following commands:
+
+       1. Count the number of times the value 1 occurs through these
+          variables for each case and assigns the count to variable
+          `QCOUNT'.
+
+       2. Print out the total number of times the value 1 occurs
+          throughout _all_ cases using `DESCRIPTIVES'.  *Note
+          DESCRIPTIVES::, for details.
+
+          COUNT QCOUNT=Q0 TO Q9(1).
+          DESCRIPTIVES QCOUNT /STATISTICS=SUM.
+
+  B. Given these same variables, the following commands:
+
+       1. Count the number of valid values of these variables for each
+          case and assigns the count to variable `QVALID'.
+
+       2. Multiplies each value of `QVALID' by 10 to obtain a
+          percentage of valid values, using `COMPUTE'.  *Note
+          COMPUTE::, for details.
+
+       3. Print out the percentage of valid values across all cases,
+          using `DESCRIPTIVES'.  *Note DESCRIPTIVES::, for details.
+
+          COUNT QVALID=Q0 TO Q9 (LO THRU HI).
+          COMPUTE QVALID=QVALID*10.
+          DESCRIPTIVES QVALID /STATISTICS=MEAN.
+
+\1f
+File: pspp.info,  Node: FLIP,  Next: IF,  Prev: COUNT,  Up: Data Manipulation
+
+FLIP
+====
+
+     FLIP /VARIABLES=var_list /NEWNAMES=var_name.
+
+   The FLIP command transposes rows and columns in the active file.  It
+causes cases to be swapped with variables, and vice versa.
+
+   There are no required subcommands.  The VARIABLES subcommand
+specifies variables that will be transformed into cases.  Variables not
+specified are discarded.  By default, all variables are selected for
+transposition.
+
+   The variables specified by NEWNAMES, which must be a string
+variable, is used to give names to the variables created by FLIP.  If
+NEWNAMES is not specified then the default is a variable named
+CASE_LBL, if it exists.  If it does not then the variables created by
+FLIP are named VAR000 through VAR999, then VAR1000, VAR1001, and so on.
+
+   When a NEWNAMES variable is available, the names must be
+canonicalized before becoming variable names.  Invalid characters are
+replaced by letter `V' in the first position, or by `_' in subsequent
+positions.  If the name thus generated is not unique, then numeric
+extensions are added, starting with 1, until a unique name is found or
+there are no remaining possibilities.  If the latter occurs then the
+FLIP operation aborts.
+
+   The resultant dictionary contains a CASE_LBL variable, which stores
+the names of the variables in the dictionary before the transposition.
+If the active file is subsequently transposed using FLIP, this variable
+can be used to recreate the original variable names.
+
+\1f
+File: pspp.info,  Node: IF,  Next: RECODE,  Prev: FLIP,  Up: Data Manipulation
+
+IF
+==
+
+     Two possible syntaxes:
+             IF test_expr target_var=target_expr.
+             IF test_expr target_vec(target_index)=target_expr.
+
+   The IF transformation conditionally assigns the value of a target
+expression to a target variable, based on the truth of a test
+expression.
+
+   Specify a boolean-valued expression (*note Expressions::) to be
+tested following the IF keyword.  This expression is calculated for
+each case.  If the value is true, then the value of target_expr is
+computed and assigned to target_var.  If the value is false or missing,
+nothing is done.  Numeric and short and long string variables may be
+used.  The type of target_expr must match the type of target_var.
+
+   For numeric variables only, target_var need not exist before the IF
+transformation is executed.  In this case, target_var is assigned the
+system-missing value if the IF condition is not true.  String variables
+must be declared before they can be used as targets for IF.
+
+   In addition to ordinary variables, the target variable may be an
+element of a vector.  In this case, the vector index must be specified
+in parentheses following the vector name.
+
+\1f
+File: pspp.info,  Node: RECODE,  Next: SORT CASES,  Prev: IF,  Up: Data Manipulation
+
+RECODE
+======
+
+     RECODE var_list (src_value...=dest_value)... [INTO var_list].
+     
+     src_value may take the following forms:
+             number
+             string
+             num1 THRU num2
+             MISSING
+             SYSMIS
+             ELSE
+     Open-ended ranges may be specified using LO or LOWEST for num1
+     or HI or HIGHEST for num2.
+     
+     dest_value may take the following forms:
+             num
+             string
+             SYSMIS
+             COPY
+
+   The RECODE command is used to translate data from one range of
+values to another, using flexible user-specified mappings.  Data may be
+remapped in-place or copied to new variables.  Numeric, short string,
+and long string data can be recoded.
+
+   Specify the list of source variables, followed by one or more mapping
+specifications each enclosed in parentheses.  If the data is to be
+copied to new variables, specify INTO, then the list of target
+variables.  String target variables must already have been declared
+using STRING or another transformation, but numeric target variables can
+be created on the fly.  There must be exactly as many target variables
+as source variables.  Each source variable is remapped into its
+corresponding target variable.
+
+   When INTO is not used, the input and output variables must be of the
+same type.  Otherwise, string values can be recoded into numeric values,
+and vice versa.  When this is done and there is no mapping for a
+particular value, either a value consisting of all spaces or the
+system-missing value is assigned, depending on variable type.
+
+   Mappings are considered from left to right.  The first src_value that
+matches the value of the source variable causes the target variable to
+receive the value indicated by the dest_value.  Literal number, string,
+and range src_value's should be self-explanatory.  MISSING as a
+src_value matches any user- or system-missing value.  SYSMIS matches the
+system missing value only.  ELSE is a catch-all that matches anything.
+It should be the last src_value specified.
+
+   Numeric and string dest_value's should also be self-explanatory.
+COPY causes the input values to be copied to the output.  This is only
+value if the source and target variables are of the same type.  SYSMIS
+indicates the system-missing value.
+
+   If the source variables are strings and the target variables are
+numeric, then there is one additional mapping available: (CONVERT),
+which must be the last specified mapping.  CONVERT causes a number
+specified as a string to be converted to a numeric value.  If the string
+cannot be parsed as a number, then the system-missing value is assigned.
+
+   Multiple recodings can be specified on the same RECODE command.
+Introduce additional recodings with a slash (`/') in order to separate
+them from the previous recodings.
+
+\1f
+File: pspp.info,  Node: SORT CASES,  Prev: RECODE,  Up: Data Manipulation
+
+SORT CASES
+==========
+
+     SORT CASES BY var_list.
+
+   SORT CASES sorts the active file by the values of one or more
+variables.
+
+   Specify BY and a list of variables to sort by.  By default, variables
+are sorted in ascending order.  To override sort order, specify (D) or
+(DOWN) after a list of variables to get descending order, or (A) or (UP)
+for ascending order.  These apply to the entire list of variables
+preceding them.
+
+   SORT CASES is a procedure.  It causes the data to be read.
+
+   SORT CASES will attempt to sort the entire active file in main
+memory.  If main memory is exhausted then it will use a merge sort
+algorithm that involves writing and reading numerous temporary files.
+Environment variables determine the temporary files' location.  The
+first of SPSSTMPDIR, SPSSXTMPDIR, or TMPDIR that is set determines the
+location.  Otherwise, if the compiler environment defined P_tmpdir,
+that is used.  Otherwise, under Unix-like OSes /tmp is used; under
+MS-DOS, the first of TEMP, TMP, or root on the current drive is used;
+under other OSes, the current directory.
+
+\1f
+File: pspp.info,  Node: Data Selection,  Next: Conditionals and Looping,  Prev: Data Manipulation,  Up: Top
+
+Selecting data for analysis
+***************************
+
+   This chapter documents PSPP commands that temporarily or permanently
+select data records from the active file for analysis.
+
+* Menu:
+
+* FILTER::                      Exclude cases based on a variable.
+* N OF CASES::                  Limit the size of the active file.
+* PROCESS IF::                  Temporarily excluding cases.
+* SAMPLE::                      Select a specified proportion of cases.
+* SELECT IF::                   Permanently delete selected cases.
+* SPLIT FILE::                  Do multiple analyses with one command.
+* TEMPORARY::                   Make transformations' effects temporary.
+* WEIGHT::                      Weight cases by a variable.
+
+\1f
+File: pspp.info,  Node: FILTER,  Next: N OF CASES,  Prev: Data Selection,  Up: Data Selection
+
+FILTER
+======
+
+     FILTER BY var_name.
+     FILTER OFF.
+
+   The FILTER command allows a boolean-valued variable to be used to
+select cases from the data stream for processing.
+
+   In order to set up filtering, specify BY and a variable name.
+Keyword BY is optional but recommended.  Cases which have a zero or
+system- or user-missing value are excluded from analysis, but not
+deleted from the data stream.  Cases with other values are analyzed.
+
+   Use FILTER OFF to turn off case filtering.
+
+   Filtering takes place immediately before cases pass to a procedure
+for analysis.  Only one filter variable may be active at once.
+Normally, case filtering continues until it is explicitly turned off
+with FILTER OFF.  However, if FILTER is placed after TEMPORARY, then
+filtering stops after execution of the next procedure or procedure-like
+command.
+
+\1f
+File: pspp.info,  Node: N OF CASES,  Next: PROCESS IF,  Prev: FILTER,  Up: Data Selection
+
+N OF CASES
+==========
+
+     N [OF CASES] num_of_cases [ESTIMATED].
+
+   Sometimes you may want to disregard cases of your input.  The `N'
+command can be used to do this.  `N 100' tells PSPP to disregard all
+cases after the first 100.
+
+   If the value specified for `N' is greater than the number of cases
+read in, the value is ignored.
+
+   `N' does not discard cases or cause them not to be read in.  It just
+causes cases beyond the last one specified to be ignored by data
+analysis commands.
+
+   A later `N' command can increase or decrease the number of cases
+selected.  (To select all the cases without knowing how many there are,
+specify a very high number: 100000 or whatever you think is large
+enough.)
+
+   Transformation procedures performed after `N' is executed _do_ cause
+cases to be discarded.
+
+   The `SAMPLE', `PROCESS IF', and `SELECT IF' commands have precedence
+over `N'--the same results are obtained by both of the following
+fragments, given the same random number seeds:
+
+     ...set up, read in data...
+     N 100.
+     SAMPLE .5.
+     ...analyze data...
+     
+     ...set up, read in data...
+     SAMPLE .5.
+     N 100.
+     ...analyze data...
+
+   Both fragments above first randomly sample approximately half of the
+cases, then select the first 100 of those sampled.
+
+   `N' with the `ESTIMATED' keyword can be used to give an estimated
+number of cases before DATA LIST or another command to read in data.
+(`ESTIMATED' never limits the number of cases processed by procedures.)
+
+\1f
+File: pspp.info,  Node: PROCESS IF,  Next: SAMPLE,  Prev: N OF CASES,  Up: Data Selection
+
+PROCESS IF
+==========
+
+     PROCESS IF expression.
+
+   The PROCESS IF command is used to temporarily eliminate cases from
+the data stream.  Its effects are active only through the execution of
+the next procedure or procedure-like command.
+
+   Specify a boolean expression (*note Expressions::).  If the value of
+the expression is true for a particular case, the case will be
+analyzed.  If the expression has a false or missing value, then the
+case will be deleted from the data stream for this procedure only.
+
+   Regardless of its placement relative to other commands, PROCESS IF
+always takes effect immediately before data passes to the procedure.
+Only one PROCESS IF command may be in effect at any given time.
+
+   The effects of PROCESS IF are similar not identical to the effects of
+executing TEMPORARY then SELECT IF (*note SELECT IF::).
+
+   Use of PROCESS IF is deprecated.  It is included for compatibility
+with old command files.  New syntax files should use SELECT IF or FILTER
+instead.
+
+\1f
+File: pspp.info,  Node: SAMPLE,  Next: SELECT IF,  Prev: PROCESS IF,  Up: Data Selection
+
+SAMPLE
+======
+
+     SAMPLE num1 [FROM num2].
+
+   `SAMPLE' is used to randomly sample a proportion of the cases in the
+active file.  `SAMPLE' is temporary, affecting only the next procedure,
+unless that is a data transformation, such as `SELECT IF' or `RECODE'.
+
+   The proportion to sample can be expressed as a single number between
+0 and 1.  If `k' is the number specified, and `N' is the number of
+currently-selected cases in the active file, then after `SAMPLE K.',
+there will be `k*N', plus or minus one, cases selected.
+
+   The proportion to sample can also be specified in the style `SAMPLE
+M FROM N'.  With this style, cases are selected as follows:
+
+  1. If N is equal to the number of currently-selected cases in the
+     active file, exactly M cases will be selected.
+
+  2. If N is greater than the number of currently-selected cases in the
+     active file, an equivalent proportion of cases will be selected.
+
+  3. If N is less than the number of currently-selected cases in the
+     active, exactly M cases will be selected _from the first N cases
+     in the active file._
+
+   `SAMPLE', `SELECT IF', and `PROCESS IF' are performed in the order
+specified by the syntax file.
+
+   `SAMPLE' is ignored before `SORT CASES'.
+
+   `SAMPLE' is always performed before `N OF CASES', regardless of
+ordering in the syntax file.  *Note N OF CASES::.
+
+   The same values for `SAMPLE' may result in different samples.  To
+obtain the same sample, use the `SET' command to set the random number
+seed to the same value before each `SAMPLE'.  By default, the random
+number seed is based on the system time.
+
+\1f
+File: pspp.info,  Node: SELECT IF,  Next: SPLIT FILE,  Prev: SAMPLE,  Up: Data Selection
+
+SELECT IF
+=========
+
+     SELECT IF expression.
+
+   The SELECT IF command is used to select particular cases for analysis
+based on the value of a boolean expression.  Cases not selected are
+permanently eliminated, unless TEMPORARY is in effect (*note
+TEMPORARY::).
+
+   Specify a boolean expression (*note Expressions::).  If the value of
+the expression is true for a particular case, the case will be
+analyzed.  If the expression has a false or missing value, then the
+case will be deleted from the data stream.
+
+   Always place SELECT IF commands as early in the command file as
+possible.  Cases that are deleted early can be processed more
+efficiently in time and space.
+
+\1f
+File: pspp.info,  Node: SPLIT FILE,  Next: TEMPORARY,  Prev: SELECT IF,  Up: Data Selection
+
+SPLIT FILE
+==========
+
+     Two possible syntaxes:
+             SPLIT FILE BY var_list.
+             SPLIT FILE OFF.
+
+   The SPLIT FILE command allows multiple sets of data present in one
+data file to be analyzed separately using single statistical procedure
+commands.
+
+   Specify a list of variable names in order to analyze multiple sets of
+data separately.  Groups of cases having the same values for these
+variables are analyzed by statistical procedure commands as one group.
+An independent analysis is carried out for each group of cases, and the
+variable values for the group are printed along with the analysis.
+
+   Specify OFF in order to disable SPLIT FILE and resume analysis of the
+entire active file as a single group of data.
+
+\1f
+File: pspp.info,  Node: TEMPORARY,  Next: WEIGHT,  Prev: SPLIT FILE,  Up: Data Selection
+
+TEMPORARY
+=========
+
+     TEMPORARY.
+
+   The TEMPORARY command is used to make the effects of transformations
+following its execution temporary.  These transformations will affect
+only the execution of the next procedure or procedure-like command.
+Their effects will not be saved to the active file.
+
+   The only specification is the command name.
+
+   TEMPORARY may not appear within a DO IF or LOOP construct.  It may
+appear only once between procedures and procedure-like commands.
+
+   An example may help to clarify:
+
+     DATA LIST /X 1-2.
+     BEGIN DATA.
+      2
+      4
+     10
+     15
+     20
+     24
+     END DATA.
+     COMPUTE X=X/2.
+     TEMPORARY.
+     COMPUTE X=X+3.
+     DESCRIPTIVES X.
+     DESCRIPTIVES X.
+
+   The data read by the first DESCRIPTIVES command are 4, 5, 8, 10.5,
+13, 15.  The data read by the first DESCRIPTIVES command are 1, 2, 5,
+7.5, 10, 12.
+
+\1f
+File: pspp.info,  Node: WEIGHT,  Prev: TEMPORARY,  Up: Data Selection
+
+WEIGHT
+======
+
+     WEIGHT BY var_name.
+     WEIGHT OFF.
+
+   WEIGHT can be used to assign cases varying weights in order to
+change the frequency distribution of the active file.  Execution of
+WEIGHT is delayed until data have been read in.
+
+   If a variable name is specified, WEIGHT causes the values of that
+variable to be used as weighting factors for subsequent statistical
+procedures.  Use of keyword BY is optional but recommended.  Weighting
+variables must be numeric.  Scratch variables may not be used for
+weighting (*note Scratch Variables::).
+
+   When OFF is specified, subsequent statistical procedures will weight
+all cases equally.
+
+   Weighting values do not need to be integers.  However, negative and
+system- and user-missing values for the weighting variable are
+interpreted as weighting factors of 0.
+
+   WEIGHT does not cause cases in the active file to be replicated in
+memory.
+
+\1f
+File: pspp.info,  Node: Conditionals and Looping,  Next: Statistics,  Prev: Data Selection,  Up: Top
+
+Conditional and Looping Constructs
+**********************************
+
+   This chapter documents PSPP commands used for conditional execution,
+looping, and flow of control.
+
+* Menu:
+
+* BREAK::                       Exit a loop.
+* DO IF::                       Conditionally execute a block of code.
+* DO REPEAT::                   Textually repeat a code block.
+* LOOP::                        Repeat a block of code.
+
+\1f
+File: pspp.info,  Node: BREAK,  Next: DO IF,  Prev: Conditionals and Looping,  Up: Conditionals and Looping
+
+BREAK
+=====
+
+     BREAK.
+
+   BREAK terminates execution of the innermost currently executing LOOP
+construct.
+
+   BREAK is allowed only inside a LOOP construct.  *Note LOOP::, for
+more details.
+
+\1f
+File: pspp.info,  Node: DO IF,  Next: DO REPEAT,  Prev: BREAK,  Up: Conditionals and Looping
+
+DO IF
+=====
+
+     DO IF condition.
+             ...
+     [ELSE IF condition.
+             ...
+     ]...
+     [ELSE.
+             ...]
+     END IF.
+
+   The DO IF command allows one of several sets of transformations to be
+executed, depending on user-specified conditions.
+
+   Specify a boolean expression.  If the condition is true, then the
+block of code following DO IF is executed.  If the condition is
+missing, then none of the code blocks is executed.  If the condition is
+false, then the boolean expressions on the first ELSE IF, if present,
+is tested in turn, with the same rules applied.  If all expressions
+evaluate to false, then the ELSE code block is executed, if it is
+present.
+
+\1f
+File: pspp.info,  Node: DO REPEAT,  Next: LOOP,  Prev: DO IF,  Up: Conditionals and Looping
+
+DO REPEAT
+=========
+
+     DO REPEAT repvar_name=expansion....
+             ...
+     END REPEAT [PRINT].
+     
+     expansion takes one of the following forms:
+             var_list
+             num_or_range...
+             'string'...
+     
+     num_or_range takes one of the following forms:
+             number
+             num1 TO num2
+
+   The DO REPEAT command causes a block of code to be repeated a number
+of times with different variables, numbers, or strings textually
+substituted into the block with each repetition.
+
+   Specify a repeat variable name followed by an equals sign (`=') and
+the list of replacements.  Replacements can be a list of variables
+(which may be existing variables or new variables or a combination
+thereof), of numbers, or of strings.  When new variable names are
+specified, DO REPEAT creates them as numeric variables.  When numbers
+are specified, runs of integers may be indicated with TO notation, for
+instance `1 TO 5' and `1 2 3 4 5' would be equivalent.  There is no
+equivalent notation for string values.
+
+   Multiple repeat variables can be specified.  When this is done, each
+variable must have the same number of replacements.
+
+   The code within DO REPEAT is repeated as many times as there are
+replacements for each variable.  The first time, the first value for
+each repeat variable is substituted; the second time, the second value
+for each repeat variable is substituted; and so on.
+
+   Repeat variable substitutions work like macros.  They take place
+anywhere in a line that the repeat variable name occurs as a token,
+including command and subcommand names.  For this reason it is not a
+good idea to select words commonly used in command and subcommand names
+as repeat variable identifiers.
+
+   If PRINT is specified on END REPEAT, the commands after substitutions
+are made are printed to the listing file, prefixed by a plus sign (`+').
+
+\1f
+File: pspp.info,  Node: LOOP,  Prev: DO REPEAT,  Up: Conditionals and Looping
+
+LOOP
+====
+
+     LOOP [index_var=start TO end [BY incr]] [IF condition].
+             ...
+     END LOOP [IF condition].
+
+   The LOOP command allows a group of commands to be iterated.  A
+number of termination options are offered.
+
+   Specify index_var in order to make that variable count from one
+value to another by a particular increment.  index_var must be a
+pre-existing numeric variable.  start, end, and incr are numeric
+expressions (*note Expressions::.)
+
+   During the first iteration, index_var is set to the value of start.
+During each successive iteration, index_var is increased by the value of
+incr.  If end > start, then the loop terminates when index_var > end;
+otherwise it terminates when index_var < end.  If incr is not specified
+then it defaults to +1 or -1 as appropriate.
+
+   If end > start and incr < 0, or if end < start and incr > 0, then the
+loop is never executed.  index_var is nevertheless set to the value of
+start.
+
+   Modifying index_var within the loop is allowed, but it has no effect
+on the value of index_var in the next iteration.
+
+   Specify a boolean expression for the condition on the LOOP command to
+cause the loop to be executed only if the condition is true.  If the
+condition is false or missing before the loop contents are executed the
+first time, the loop contents are not executed at all.
+
+   If index and condition clauses are both present on LOOP, the index
+clause is always evaluated first.
+
+   Specify a boolean expression for the condition on the END LOOP to
+cause the loop to terminate if the condition is not true after the
+enclosed code block is executed.  The condition is evaluated at the end
+of the loop, not at the beginning.
+
+   If the index clause and both condition clauses are not present, then
+the loop is executed MXLOOPS (*note SET::) times or until BREAK (*note
+BREAK::) is executed.
+
+   The BREAK command provides another way to terminate execution of a
+LOOP construct.
+
+\1f
+File: pspp.info,  Node: Statistics,  Next: Utilities,  Prev: Conditionals and Looping,  Up: Top
+
+Statistics
+**********
+
+   This chapter documents the statistical procedures that PSPP supports
+so far.
+
+* Menu:
+
+* DESCRIPTIVES::                Descriptive statistics.
+* FREQUENCIES::                 Frequency tables.
+* CROSSTABS::                   Crosstabulation tables.
+
diff --git a/doc/pspp.info-6 b/doc/pspp.info-6
new file mode 100644 (file)
index 0000000..487a3b5
--- /dev/null
@@ -0,0 +1,1652 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: DESCRIPTIVES,  Next: FREQUENCIES,  Prev: Statistics,  Up: Statistics
+
+DESCRIPTIVES
+============
+
+     DESCRIPTIVES
+             /VARIABLES=var_list
+             /MISSING={VARIABLE,LISTWISE} {INCLUDE,NOINCLUDE}
+             /FORMAT={LABELS,NOLABELS} {NOINDEX,INDEX} {LINE,SERIAL}
+             /SAVE
+             /STATISTICS={ALL,MEAN,SEMEAN,STDDEV,VARIANCE,KURTOSIS,
+                          SKEWNESS,RANGE,MINIMUM,MAXIMUM,SUM,DEFAULT,
+                          SESKEWNESS,SEKURTOSIS}
+             /SORT={NONE,MEAN,SEMEAN,STDDEV,VARIANCE,KURTOSIS,SKEWNESS,
+                    RANGE,MINIMUM,MAXIMUM,SUM,SESKEWNESS,SEKURTOSIS,NAME}
+                   {A,D}
+
+   The DESCRIPTIVES procedure reads the active file and outputs
+descriptive statistics requested by the user.  In addition, it can
+optionally compute Z-scores.
+
+   The VARIABLES subcommand, which is required, specifies the list of
+variables to be analyzed.  Keyword VARIABLES is optional.
+
+   All other subcommands are optional:
+
+   The MISSING subcommand determines the handling of missing variables.
+If INCLUDE is set, then user-missing values are included in the
+calculations.  If NOINCLUDE is set, which is the default, user-missing
+values are excluded.  If VARIABLE is set, then missing values are
+excluded on a variable by variable basis; if LISTWISE is set, then the
+entire case is excluded whenever any value in that case has a
+system-missing or, if INCLUDE is set, user-missing value.
+
+   The FORMAT subcommand affects the output format.  Currently the
+LABELS/NOLABELS and NOINDEX/INDEX settings is not used.  When SERIAL is
+set, both valid and missing number of cases are listed in the output;
+when NOSERIAL is set, only valid cases are listed.
+
+   The SAVE subcommand causes DESCRIPTIVES to calculate Z scores for all
+the specified variables.  The Z scores are saved to new variables.
+Variable names are generated by trying first the original variable name
+with Z prepended and truncated to a maximum of 8 characters, then the
+names ZSC000 through ZSC999, STDZ00 through STDZ09, ZZZZ00 through
+ZZZZ09, ZQZQ00 through ZQZQ09, in that sequence.  In addition, Z score
+variable names can be specified explicitly on VARIABLES in the variable
+list by enclosing them in parentheses after each variable.
+
+   The STATISTICS subcommand specifies the statistics to be displayed:
+
+`ALL'
+     All of the statistics below.
+
+`MEAN'
+     Arithmetic mean.
+
+`SEMEAN'
+     Standard error of the mean.
+
+`STDDEV'
+     Standard deviation.
+
+`VARIANCE'
+     Variance.
+
+`KURTOSIS'
+     Kurtosis and standard error of the kurtosis.
+
+`SKEWNESS'
+     Skewness and standard error of the skewness.
+
+`RANGE'
+     Range.
+
+`MINIMUM'
+     Minimum value.
+
+`MAXIMUM'
+     Maximum value.
+
+`SUM'
+     Sum.
+
+`DEFAULT'
+     Mean, standard deviation of the mean, minimum, maximum.
+
+`SEKURTOSIS'
+     Standard error of the kurtosis.
+
+`SESKEWNESS'
+     Standard error of the skewness.
+
+   The SORT subcommand specifies how the statistics should be sorted.
+Most of the possible values should be self-explanatory.  NAME causes the
+statistics to be sorted by name.  By default, the statistics are listed
+in the order that they are specified on the VARIABLES subcommand.  The A
+and D settings request an ascending or descending sort order,
+respectively.
+
+\1f
+File: pspp.info,  Node: FREQUENCIES,  Next: CROSSTABS,  Prev: DESCRIPTIVES,  Up: Statistics
+
+FREQUENCIES
+===========
+
+     FREQUENCIES
+             /VARIABLES=var_list
+             /FORMAT={TABLE,NOTABLE,LIMIT(limit)}
+                     {STANDARD,CONDENSE,ONEPAGE[(onepage_limit)]}
+                     {LABELS,NOLABELS}
+                     {AVALUE,DVALUE,AFREQ,DFREQ}
+                     {SINGLE,DOUBLE}
+                     {OLDPAGE,NEWPAGE}
+             /MISSING={EXCLUDE,INCLUDE}
+             /STATISTICS={DEFAULT,MEAN,SEMEAN,MEDIAN,MODE,STDDEV,VARIANCE,
+                          KURTOSIS,SKEWNESS,RANGE,MINIMUM,MAXIMUM,SUM,
+                          SESKEWNESS,SEKURTOSIS,ALL,NONE}
+             /NTILES=ntiles
+             /PERCENTILES=percent...
+     
+     (These options are not currently implemented.)
+             /BARCHART=...
+             /HISTOGRAM=...
+             /HBAR=...
+             /GROUPED=...
+     
+     (Integer mode.)
+             /VARIABLES=var_list (low,high)...
+
+   FREQUENCIES causes the data to be read and frequency tables to be
+built and output for specified variables.  FREQUENCIES can also
+calculate and display descriptive statistics (including median and
+mode) and percentiles.
+
+   In the future, FREQUENCIES will also support graphical output in the
+form of bar charts and histograms.  In addition, it will be able to
+support percentiles for grouped data.  (As a historical note, these
+options were supported in a version of PSPP written years ago, but the
+code has not survived.)
+
+   The VARIABLES subcommand is the only required subcommand.  Specify
+the variables to be analyzed.  In most cases, this is all that is
+required.  This is known as "general mode".
+
+   Occasionally, one may want to invoke a special mode called "integer
+mode".  Normally, in general mode, PSPP will automatically determine
+what values occur in the data.  In integer mode, the user specifies the
+range of values that the data assumes.  To invoke this mode, specify a
+range of data values in parentheses, separated by a comma.  Data values
+inside the range are truncated to the nearest integer, then assigned to
+that value.  If values occur outside this range, they are discarded.
+
+   The FORMAT subcommand controls the output format.  It has several
+possible settings:
+
+   * TABLE, the default, causes a frequency table to be output for every
+     variable specified.  NOTABLE prevents them from being output.
+     LIMIT with a numeric argument causes them to be output except when
+     there are more than the specified number of values in the table.
+
+   * STANDARD frequency tables contain more complete information, but
+     also to take up more space on the printed page.  CONDENSE
+     frequency tables are less informative but take up less space.
+     ONEPAGE with a numeric argument will output standard frequency
+     tables if there are the specified number of values or less,
+     condensed tables otherwise.  ONEPAGE without an argument defaults
+     to a threshold of 50 values.
+
+   * LABELS causes value labels to be displayed in STANDARD frequency
+     tables.  NOLABLES prevents this.
+
+   * Normally frequency tables are sorted in ascending order by value.
+     This is AVALUE.  DVALUE tables are sorted in descending order by
+     value.  AFREQ and DFREQ tables are sorted in ascending and
+     descending order, respectively, by frequency count.
+
+   * SINGLE spaced frequency tables are closely spaced.  DOUBLE spaced
+     frequency tables have wider spacing.
+
+   * OLDPAGE and NEWPAGE are not currently used.
+
+   The MISSING subcommand controls the handling of user-missing values.
+When EXCLUDE, the default, is set, user-missing values are not included
+in frequency tables or statistics.  When INCLUDE is set, user-missing
+are included.  System-missing values are never included in statistics,
+but are listed in frequency tables.
+
+   The available STATISTICS are the same as available in DESCRIPTIVES
+(*note DESCRIPTIVES::), with the addition of MEDIAN, the data's median
+value, and MODE, the mode.  (If there are multiple modes, the smallest
+value is reported.)  By default, the mean, standard deviation of the
+mean, minimum, and maximum are reported for each variable.
+
+   NTILES causes the specified quartiles to be reported.  For instance,
+`/NTILES=4' would cause quartiles to be reported.  In addition,
+particular percentiles can be requested with the PERCENTILES subcommand.
+
+\1f
+File: pspp.info,  Node: CROSSTABS,  Prev: FREQUENCIES,  Up: Statistics
+
+CROSSTABS
+=========
+
+     CROSSTABS
+             /TABLES=var_list BY var_list [BY var_list]...
+             /MISSING={TABLE,INCLUDE,REPORT}
+             /WRITE={NONE,CELLS,ALL}
+             /FORMAT={TABLES,NOTABLES}
+                     {LABELS,NOLABELS,NOVALLABS}
+                     {PIVOT,NOPIVOT}
+                     {AVALUE,DVALUE}
+                     {NOINDEX,INDEX}
+                     {BOX,NOBOX}
+             /CELLS={COUNT,ROW,COLUMN,TOTAL,EXPECTED,RESIDUAL,SRESIDUAL,
+                     ASRESIDUAL,ALL,NONE}
+             /STATISTICS={CHISQ,PHI,CC,LAMBDA,UC,BTAU,CTAU,RISK,GAMMA,D,
+                          KAPPA,ETA,CORR,ALL,NONE}
+     
+     (Integer mode.)
+             /VARIABLES=var_list (low,high)...
+
+   CROSSTABS reads the active file and builds and displays
+crosstabulation tables requested by the user.  It can calculate several
+statistics for each cell in the crosstabulation tables.  In addition, a
+number of statistics can be calculated for each table itself.
+
+   The TABLES subcommand is used to specify the tables to be reported.
+Any number of dimensions is permitted, and any number of variables per
+dimension is allowed.  The TABLES subcommand may be repeated as many
+times as needed.  This is the only required subcommand in "general
+mode".
+
+   Occasionally, one may want to invoke a special mode called "integer
+mode".  Normally, in general mode, PSPP will automatically determine
+what values occur in the data.  In integer mode, the user specifies the
+range of values that the data assumes.  To invoke this mode, specify the
+VARIABLES subcommand, giving a range of data values in parentheses for
+each variable to be used on the TABLES subcommand.  Data values inside
+the range are truncated to the nearest integer, then assigned to that
+value.  If values occur outside this range, they are discarded.  When it
+is present, the VARIABLES subcommand must precede the TABLES subcommand.
+
+   The MISSING subcommand determines the handling of user-missing
+values.  When set to TABLE, the default, missing values are dropped on
+a table by table basis.  When set to INCLUDE, user-missing values are
+included in tables and statistics.  When set to REPORT, which is
+allowed only in integer mode, user-missing values are included in
+tables but marked with an `M' (for "missing") and excluded from
+statistical calculations.
+
+   Currently the WRITE subcommand is not used.
+
+   The FORMAT subcommand controls the characteristics of the
+crosstabulation tables to be displayed.  It has a number of possible
+settings:
+
+   * TABLES, the default, causes crosstabulation tables to be output.
+     NOTABLES suppresses them.
+
+   * LABELS, the default, allows variable labels and value labels to
+     appear in the output.  NOLABELS suppresses them.  NOVALLABS
+     displays variable labels but suppresses value labels.
+
+   * PIVOT, the default, causes each TABLES subcommand to be displayed
+     in a pivot table format.  NOPIVOT causes the old-style
+     crosstabulation format to be used.
+
+   * AVALUE, the default, causes values to be sorted in ascending order.
+     DVALUE asserts a descending sort order.
+
+   * INDEX/NOINDEX is currently ignored.
+
+   * BOX/NOBOX is currently ignored.
+
+   The CELLS subcommand controls the contents of each cell in the
+displayed crosstabulation table.  The possible settings are:
+
+COUNT
+     Frequency count.
+
+ROW
+     Row percent.
+
+COLUMN
+     Column percent.
+
+TOTAL
+     Table percent.
+
+EXPECTED
+     Expected value.
+
+RESIDUAL
+     Residual.
+
+SRESIDUAL
+     Standardized residual.
+
+ASRESIDUAL
+     Adjusted standardized residual.
+
+ALL
+     All of the above.
+
+NONE
+     Suppress cells entirely.
+
+   `/CELLS' without any settings specified requests COUNT, ROW, COLUMN,
+and TOTAL.  If CELLS is not specified at all then only COUNT will be
+selected.
+
+   The STATISTICS subcommand selects statistics for computation:
+
+CHISQ
+     Pearson chi-square, likelihood ratio, Fisher's exact test,
+     continuity correction, linear-by-linear association.
+
+PHI
+     Phi.
+
+CC
+     Contingency coefficient.
+
+LAMBDA
+     Lambda.
+
+UC
+     Uncertainty coefficient.
+
+BTAU
+     Tau-b.
+
+CTAU
+     Tau-c.
+
+RISK
+     Risk estimate.
+
+GAMMA
+     Gamma.
+
+D
+     Somers' D.
+
+KAPPA
+     Cohen's Kappa.
+
+ETA
+     Eta.
+
+CORR
+     Spearman correlation, Pearson's r.
+
+ALL
+     All of the above.
+
+NONE
+     No statistics.
+
+   Selected statistics are only calculated when appropriate for the
+statistic.  Certain statistics require tables of a particular size, and
+some statistics are calculated only in integer mode.
+
+   `/STATISTICS' without any settings selects CHISQ.  If the STATISTICS
+subcommand is not given, no statistics are calculated.
+
+   *Please note:* Currently the implementation of CROSSTABS has the
+followings bugs:
+
+   * Pearson's R (but not Spearman!) is off a little.
+
+   * T values for Spearman's R and Pearson's R are wrong.
+
+   * How to calculate significance of symmetric and directional
+     measures?
+
+   * Asymmetric ASEs and T values for lambda are wrong.
+
+   * ASE of Goodman and Kruskal's tau is not calculated.
+
+   * ASE of symmetric somers' d is wrong.
+
+   * Approx. T of uncertainty coefficient is wrong.
+
+   Fix for any of these deficiencies would be welcomed.
+
+\1f
+File: pspp.info,  Node: Utilities,  Next: Not Implemented,  Prev: Statistics,  Up: Top
+
+Utilities
+*********
+
+   Commands that don't fit any other category are placed here.
+
+   Most of these commands are not affected by commands like IF and LOOP:
+they take effect only once, unconditionally, at the time that they are
+encountered in the input.
+
+* Menu:
+
+* COMMENT::                     Document your syntax file.
+* DOCUMENT::                    Document the active file.
+* DISPLAY DOCUMENTS::           Display active file documents.
+* DISPLAY FILE LABEL::          Display the active file label.
+* DROP DOCUMENTS::              Remove documents from the active file.
+* EXECUTE::                     Execute pending transformations.
+* FILE LABEL::                  Set the active file's label.
+* INCLUDE::                     Include a file within the current one.
+* QUIT::                        Terminate the PSPP session.
+* SET::                         Adjust PSPP runtime parameters.
+* SUBTITLE::                    Provide a document subtitle.
+* SYSFILE INFO::                Display the dictionary in a system file.
+* TITLE::                       Provide a document title.
+
+\1f
+File: pspp.info,  Node: COMMENT,  Next: DOCUMENT,  Prev: Utilities,  Up: Utilities
+
+COMMENT
+=======
+
+     Two possibles syntaxes:
+             COMMENT comment text ... .
+             *comment text ... .
+
+   The COMMENT command is ignored.  It is used to provide information to
+the author and other readers of the PSPP syntax file.
+
+   A COMMENT command can extend over any number of lines.  Don't forget
+to terminate it with a dot or a blank line!
+
+\1f
+File: pspp.info,  Node: DOCUMENT,  Next: DISPLAY DOCUMENTS,  Prev: COMMENT,  Up: Utilities
+
+DOCUMENT
+========
+
+     DOCUMENT documentary_text.
+
+   The DOCUMENT command adds one or more lines of descriptive
+commentary to the active file.  Documents added in this way are saved
+to system files.  They can be viewed using SYSFILE INFO or DISPLAY
+DOCUMENTS.  They can be removed from the active file with DROP
+DOCUMENTS.
+
+   Specify the documentary text following the DOCUMENT keyword.  You can
+extend the documentary text over as many lines as necessary.  Lines are
+truncated at 80 characters width.  Don't forget to terminate the
+DOCUMENT command with a dot or a blank line.
+
+\1f
+File: pspp.info,  Node: DISPLAY DOCUMENTS,  Next: DISPLAY FILE LABEL,  Prev: DOCUMENT,  Up: Utilities
+
+DISPLAY DOCUMENTS
+=================
+
+     DISPLAY DOCUMENTS.
+
+   DISPLAY DOCUMENTS displays the documents in the active file.  Each
+document is preceded by a line giving the time and date that it was
+added.  *Note DOCUMENT::.
+
+\1f
+File: pspp.info,  Node: DISPLAY FILE LABEL,  Next: DROP DOCUMENTS,  Prev: DISPLAY DOCUMENTS,  Up: Utilities
+
+DISPLAY FILE LABEL
+==================
+
+     DISPLAY FILE LABEL.
+
+   DISPLAY FILE LABEL displays the file label contained in the active
+file, if any.  *Note FILE LABEL::.
+
+\1f
+File: pspp.info,  Node: DROP DOCUMENTS,  Next: EXECUTE,  Prev: DISPLAY FILE LABEL,  Up: Utilities
+
+DROP DOCUMENTS
+==============
+
+     DROP DOCUMENTS.
+
+   The DROP DOCUMENTS command removes all documents from the active
+file.  New documents can be added with the DOCUMENT utility (*note
+DOCUMENT::).
+
+   DROP DOCUMENTS only changes the active file.  It does not modify any
+system files stored on disk.
+
+\1f
+File: pspp.info,  Node: EXECUTE,  Next: FILE LABEL,  Prev: DROP DOCUMENTS,  Up: Utilities
+
+EXECUTE
+=======
+
+     EXECUTE.
+
+   The EXECUTE utility causes the active file to be read and all pending
+transformations to be executed.
+
+\1f
+File: pspp.info,  Node: FILE LABEL,  Next: INCLUDE,  Prev: EXECUTE,  Up: Utilities
+
+FILE LABEL
+==========
+
+     FILE LABEL file_label.
+
+   Use the FILE LABEL command to provide a title for the active file.
+This title will be saved into system files and portable files that are
+created during this PSPP run.
+
+   It is not necessary to include quotes around file_label.  If they are
+included then they become part of the file label.
+
+\1f
+File: pspp.info,  Node: INCLUDE,  Next: QUIT,  Prev: FILE LABEL,  Up: Utilities
+
+INCLUDE
+=======
+
+     Two possible syntaxes:
+             INCLUDE 'filename'.
+             @filename.
+
+   The INCLUDE command causes the PSPP command processor to read an
+additional command file as if it were included bodily in the current
+command file.
+
+   INCLUDE files may be nested to any depth, up to the limit of
+available memory.
+
+\1f
+File: pspp.info,  Node: QUIT,  Next: SET,  Prev: INCLUDE,  Up: Utilities
+
+QUIT
+====
+
+     Two possible syntaxes:
+             QUIT.
+             EXIT.
+
+   The QUIT command terminates the current PSPP session and returns
+control to the operating system.
+
+   This command is not valid within a command file.
+
+\1f
+File: pspp.info,  Node: SET,  Next: SUBTITLE,  Prev: QUIT,  Up: Utilities
+
+SET
+===
+
+     SET
+     
+     (data input)
+             /BLANKS={SYSMIS,'.',number}
+             /DECIMAL={DOT,COMMA}
+             /FORMAT=fmt_spec
+     
+     (program input)
+             /ENDCMD='.'
+             /NULLINE={ON,OFF}
+     
+     (interaction)
+             /CPROMPT='cprompt_string'
+             /DPROMPT='dprompt_string'
+             /ERRORBREAK={OFF,ON}
+             /MXERRS=max_errs
+             /MXWARNS=max_warnings
+             /PROMPT='prompt'
+             /VIEWLENGTH={MINIMUM,MEDIAN,MAXIMUM,n_lines}
+             /VIEWWIDTH=n_characters
+     
+     (program execution)
+             /MEXPAND={ON,OFF}
+             /MITERATE=max_iterations
+             /MNEST=max_nest
+             /MPRINT={ON,OFF}
+             /MXLOOPS=max_loops
+             /SEED={RANDOM,seed_value}
+             /UNDEFINED={WARN,NOWARN}
+     
+     (data output)
+             /CC{A,B,C,D,E}={'npre,pre,suf,nsuf','npre.pre.suf.nsuf'}
+             /DECIMAL={DOT,COMMA}
+             /FORMAT=fmt_spec
+     
+     (output routing)
+             /ECHO={ON,OFF}
+             /ERRORS={ON,OFF,TERMINAL,LISTING,BOTH,NONE}
+             /INCLUDE={ON,OFF}
+             /MESSAGES={ON,OFF,TERMINAL,LISTING,BOTH,NONE}
+             /PRINTBACK={ON,OFF}
+             /RESULTS={ON,OFF,TERMINAL,LISTING,BOTH,NONE}
+     
+     (output activation)
+             /LISTING={ON,OFF}
+             /PRINTER={ON,OFF}
+             /SCREEN={ON,OFF}
+     
+     (output driver options)
+             /HEADERS={NO,YES,BLANK}
+             /LENGTH={NONE,length_in_lines}
+             /LISTING=filename
+             /MORE={ON,OFF}
+             /PAGER={OFF,"pager_name"}
+             /WIDTH={NARROW,WIDTH,n_characters}
+     
+     (logging)
+             /JOURNAL={ON,OFF} [filename]
+             /LOG={ON,OFF} [filename]
+     
+     (system files)
+             /COMPRESSION={ON,OFF}
+             /SCOMPRESSION={ON,OFF}
+     
+     (security)
+             /SAFER=ON
+     
+     (obsolete settings accepted for compatibility, but ignored)
+             /AUTOMENU={ON,OFF}
+             /BEEP={ON,OFF}
+             /BLOCK='c'
+             /BOXSTRING={'xxx','xxxxxxxxxxx'}
+             /CASE={UPPER,UPLOW}
+             /COLOR=...
+             /CPI=cpi_value
+             /DISK={ON,OFF}
+             /EJECT={ON,OFF}
+             /HELPWINDOWS={ON,OFF}
+             /HIGHRES={ON,OFF}
+             /HISTOGRAM='c'
+             /LOWRES={AUTO,ON,OFF}
+             /LPI=lpi_value
+             /MENUS={STANDARD,EXTENDED}
+             /MXMEMORY=max_memory
+             /PTRANSLATE={ON,OFF}
+             /RCOLORS=...
+             /RUNREVIEW={AUTO,MANUAL}
+             /SCRIPTTAB='c'
+             /TB1={'xxx','xxxxxxxxxxx'}
+             /TBFONTS='string'
+             /WORKDEV=drive_letter
+             /WORKSPACE=workspace_size
+             /XSORT={YES,NO}
+
+   The SET command allows the user to adjust several parameters
+relating to PSPP's execution.  Since there are many subcommands to this
+command, its subcommands will be examined in groups.
+
+   As a general comment, ON and YES are considered synonymous, and so
+are OFF and NO, when used as subcommand values.
+
+   The data input subcommands affect the way that data is read from data
+files.  The data input subcommands are
+
+BLANKS
+     This is the value assigned to an item data item that is empty or
+     contains only whitespace.  An argument of SYSMIS or '.' will cause
+     the system-missing value to be assigned to null items.  This is the
+     default.  Any real value may be assigned.
+
+DECIMAL
+     The default DOT setting causes the decimal point character to be
+     `.'.  A setting of COMMA causes the decimal point character to be
+     `,'.
+
+FORMAT
+     Allows the default numeric input/output format to be specified.
+     The default is F8.2.  *Note Input/Output Formats::.
+
+   Program input subcommands affect the way that programs are parsed
+when they are typed interactively or run from a script.  They are
+
+ENDCMD
+     This is a single character indicating the end of a command.  The
+     default is `.'.  Don't change this.
+
+NULLINE
+     Whether a blank line is interpreted as ending the current command.
+     The default is ON.
+
+   Interaction subcommands affect the way that PSPP interacts with an
+online user.  The interaction subcommands are
+
+CPROMPT
+     The command continuation prompt.  The default is `    > '.
+
+DPROMPT
+     Prompt used when expecting data input within BEGIN DATA (*note
+     BEGIN DATA::).  The default is `data> '.
+
+ERRORBREAK
+     Whether an error causes PSPP to stop processing the current command
+     file after finishing the current command.  The default is OFF.
+
+MXERRS
+     The maximum number of errors before PSPP halts processing of the
+     current command file.  The default is 50.
+
+MXWARNS
+     The maximum number of warnings + errors before PSPP halts
+     processing the current command file.  The default is 100.
+
+PROMPT
+     The command prompt.  The default is `PSPP> '.
+
+VIEWLENGTH
+     The length of the screen in lines.  MINIMUM means 25 lines, MEDIAN
+     and MAXIMUM mean 43 lines.  Otherwise specify the number of lines.
+     Normally PSPP should auto-detect your screen size so this
+     shouldn't have to be used.
+
+VIEWWIDTH
+     The width of the screen in characters.  Normally 80 or 132.
+
+   Program execution subcommands control the way that PSPP commands
+execute.  The program execution subcommands are
+
+MEXPAND
+MITERATE
+MNEST
+MPRINT
+     Currently not used.
+
+MXLOOPS
+     The maximum number of iterations for an uncontrolled loop.
+
+SEED
+     The initial pseudo-random number seed.  Set to a real number or to
+     RANDOM, which will obtain an initial seed from the current time of
+     day.
+
+UNDEFINED
+     Currently not used.
+
+   Data output subcommands affect the format of output data.  These
+subcommands are
+
+CCA
+CCB
+CCC
+CCD
+CCE
+     Set up custom currency formats.  The argument is a string which
+     must contain exactly three commas or exactly three periods.  If
+     commas, then the grouping character for the currency format is
+     `,', and the decimal point character is `.'; if periods, then the
+     situation is reversed.
+
+     The commas or periods divide the string into four fields, which
+     are, in order, the negative prefix, prefix, suffix, and negative
+     suffix.  When a value is formatted using the custom currency
+     format, the prefix precedes the value formatted and the suffix
+     follows it.  In addition, if the value is negative, the negative
+     prefix precedes the prefix and the negative suffix follows the
+     suffix.
+
+DECIMAL
+     The default DOT setting causes the decimal point character to be
+     `.'.  A setting of COMMA causes the decimal point character to be
+     `,'.
+
+FORMAT
+     Allows the default numeric input/output format to be specified.
+     The default is F8.2.  *Note Input/Output Formats::.
+
+   Output routing subcommands affect where the output of transformations
+and procedures is sent.  These subcommands are
+
+ECHO
+     If turned on, commands are written to the listing file as they are
+     read from command files.  The default is OFF.
+
+ERRORS
+INCLUDE
+MESSAGES
+
+PRINTBACK
+
+RESULTS
+     Currently not used.
+
+   Output activation subcommands affect whether output devices of
+particular types are enabled.  These subcommands are
+
+LISTING
+     Enable or disable listing devices.
+
+PRINTER
+     Enable or disable printer devices.
+
+SCREEN
+     Enable or disable screen devices.
+
+   Output driver option subcommands affect output drivers' settings.
+These subcommands are
+
+HEADERS
+LENGTH
+LISTING
+MORE
+PAGER
+WIDTH
+     Currently not used.
+
+   Logging subcommands affect logging of commands executed to external
+files.  These subcommands are
+
+JOURNAL
+
+LOG
+     Not currently used.
+
+   System file subcommands affect the default format of system files
+produced by PSPP.  These subcommands are
+
+COMPRESSION
+     Not currently used.
+
+SCOMPRESSION
+     Whether system files created by SAVE or XSAVE are compressed by
+     default.  The default is ON.
+
+   Security subcommands affect the operations that commands are allowed
+to perform.  The security subcommands are
+
+SAFER
+     When set, this setting cannot ever be reset, for obvious security
+     reasons.  Setting this option disables the following operations:
+
+        * The ERASE command.
+
+        * The HOST command.
+
+        * Pipe filenames (filenames beginning or ending with `|').
+
+        *
+     Be aware that this setting does not guarantee safety (commands can
+     still overwrite files, for instance) but it is an improvement.
+
+\1f
+File: pspp.info,  Node: SUBTITLE,  Next: TITLE,  Prev: SET,  Up: Utilities
+
+SUBTITLE
+========
+
+     Two possible syntaxes:
+             SUBTITLE 'subtitle_string'.
+             SUBTITLE subtitle_string.
+
+   The SUBTITLE command is used to provide a subtitle to a particular
+PSPP run.  This subtitle appears at the top of each output page below
+the title, if titles are enabled on the output device.
+
+   Specify a subtitle as a string in quotes.  The alternate syntax that
+did not require quotes is now obsolete.  If it is used then the
+subtitle is converted to all uppercase.
+
+\1f
+File: pspp.info,  Node: TITLE,  Prev: SUBTITLE,  Up: Utilities
+
+TITLE
+=====
+
+     Two possible syntaxes:
+             TITLE 'title_string'.
+             TITLE title_string.
+
+   The TITLE command is used to provide a title to a particular PSPP
+run.  This title appears at the top of each output page, if titles are
+enabled on the output device.
+
+   Specify a title as a string in quotes.  The alternate syntax that did
+not require quotes is now obsolete.  If it is used then the title is
+converted to all uppercase.
+
+\1f
+File: pspp.info,  Node: Not Implemented,  Next: Data File Format,  Prev: Utilities,  Up: Top
+
+Not Implemented
+***************
+
+   This chapter lists parts of the PSPP language that are not yet
+implemented.
+
+   The following transformations and utilities are not yet implemented,
+but they will be supported in a later release.
+
+   * ADD FILES
+
+   * DEFINE
+
+   * FILE TYPE
+
+   * GET SAS
+
+   * GET TRANSLATE
+
+   * MCONVERT
+
+   * PRESERVE
+
+   * PROCEDURE OUTPUT
+
+   * RESTORE
+
+   * SAVE TRANSLATE
+
+   * SHOW
+
+   * UPDATE
+
+   The following transformations and utilities are not implemented.
+There are no plans to support them in future releases.  Contributions to
+implement them will still be accepted.
+
+   * EDIT
+
+   * GET DATABASE
+
+   * GET OSIRIS
+
+   * GET SCSS
+
+   * GSET
+
+   * HELP
+
+   * INFO
+
+   * INPUT MATRIX
+
+   * KEYED DATA LIST
+
+   * NUMBERED and UNNUMBERED
+
+   * OPTIONS
+
+   * REVIEW
+
+   * SAVE SCSS
+
+   * SPSS MANAGER
+
+   * STATISTICS
+
+\1f
+File: pspp.info,  Node: Data File Format,  Next: Portable File Format,  Prev: Not Implemented,  Up: Top
+
+Data File Format
+****************
+
+   PSPP necessarily uses the same format for system files as do the
+products with which it is compatible.  This chapter is a description of
+that format.
+
+   There are three data types used in system files: 32-bit integers,
+64-bit floating points, and 1-byte characters.  In this document these
+will simply be referred to as `int32', `flt64', and `char', the names
+that are used in the PSPP source code.  Every field of type `int32' or
+`flt64' is aligned on a 32-bit boundary.
+
+   The endianness of data in PSPP system files is not specified.  System
+files output on a computer of a particular endianness will have the
+endianness of that computer.  However, PSPP can read files of either
+endianness, regardless of its host computer's endianness.  PSPP
+translates endianness for both integer and floating point numbers.
+
+   Floating point formats are also not specified.  PSPP does not
+translate between floating point formats.  This is unlikely to be a
+problem as all modern computer architectures use IEEE 754 format for
+floating point representation.
+
+   The PSPP system-missing value is represented by the largest possible
+negative number in the floating point format; in C, this is most likely
+`-DBL_MAX'.  There are two other important values used in missing
+values: `HIGHEST' and `LOWEST'.  These are represented by the largest
+possible positive number (probably `DBL_MAX') and the second-largest
+negative number.  The latter must be determined in a system-dependent
+manner; in IEEE 754 format it is represented by value
+`0xffeffffffffffffe'.
+
+   System files are divided into records.  Each record begins with an
+`int32' giving a numeric record type.  Individual record types are
+described below:
+
+* Menu:
+
+* File Header Record::
+* Variable Record::
+* Value Label Record::
+* Value Label Variable Record::
+* Document Record::
+* Machine int32 Info Record::
+* Machine flt64 Info Record::
+* Miscellaneous Informational Records::
+* Dictionary Termination Record::
+* Data Record::
+
+\1f
+File: pspp.info,  Node: File Header Record,  Next: Variable Record,  Prev: Data File Format,  Up: Data File Format
+
+File Header Record
+==================
+
+   The file header is always the first record in the file.
+
+     struct sysfile_header
+       {
+         char                rec_type[4];
+         char                prod_name[60];
+         int32               layout_code;
+         int32               case_size;
+         int32               compressed;
+         int32               weight_index;
+         int32               ncases;
+         flt64               bias;
+         char                creation_date[9];
+         char                creation_time[8];
+         char                file_label[64];
+         char                padding[3];
+       };
+
+`char rec_type[4];'
+     Record type code.  Always set to `$FL2'.  This is the only record
+     for which the record type is not of type `int32'.
+
+`char prod_name[60];'
+     Product identification string.  This always begins with the
+     characters `@(#) SPSS DATA FILE'.  PSPP uses the remaining
+     characters to give its version and the operating system name; for
+     example, `GNU pspp 0.1.4 - sparc-sun-solaris2.5.2'.  The string is
+     truncated if it would be longer than 60 characters; otherwise it
+     is padded on the right with spaces.
+
+`int32 layout_code;'
+     Always set to 2.  PSPP reads this value in order to determine the
+     file's endianness.
+
+`int32 case_size;'
+     Number of data elements per case.  This is the number of variables,
+     except that long string variables add extra data elements (one for
+     every 8 characters after the first 8).
+
+`int32 compressed;'
+     Set to 1 if the data in the file is compressed, 0 otherwise.
+
+`int32 weight_index;'
+     If one of the variables in the data set is used as a weighting
+     variable, set to the index of that variable.  Otherwise, set to 0.
+
+`int32 ncases;'
+     Set to the number of cases in the file if it is known, or -1
+     otherwise.
+
+     In the general case it is not possible to determine the number of
+     cases that will be output to a system file at the time that the
+     header is written.  The way that this is dealt with is by writing
+     the entire system file, including the header, then seeking back to
+     the beginning of the file and writing just the `ncases' field.
+     For `files' in which this is not valid, the seek operation fails.
+     In this case, `ncases' remains -1.
+
+`flt64 bias;'
+     Compression bias.  Always set to 100.  The significance of this
+     value is that only numbers between `(1 - bias)' and `(251 - bias)'
+     can be compressed.
+
+`char creation_date[9];'
+     Set to the date of creation of the system file, in `dd mmm yy'
+     format, with the month as standard English abbreviations, using an
+     initial capital letter and following with lowercase.  If the date
+     is not available then this field is arbitrarily set to `01 Jan 70'.
+
+`char creation_time[8];'
+     Set to the time of creation of the system file, in `hh:mm:ss'
+     format and using 24-hour time.  If the time is not available then
+     this field is arbitrarily set to `00:00:00'.
+
+`char file_label[64];'
+     Set the the file label declared by the user, if any.  Padded on the
+     right with spaces.
+
+`char padding[3];'
+     Ignored padding bytes to make the structure a multiple of 32 bits
+     in length.  Set to zeros.
+
+\1f
+File: pspp.info,  Node: Variable Record,  Next: Value Label Record,  Prev: File Header Record,  Up: Data File Format
+
+Variable Record
+===============
+
+   Immediately following the header must come the variable records.
+There must be one variable record for every variable and every 8
+characters in a long string beyond the first 8; i.e., there must be
+exactly as many variable records as the value specified for `case_size'
+in the file header record.
+
+     struct sysfile_variable
+       {
+         int32               rec_type;
+         int32               type;
+         int32               has_var_label;
+         int32               n_missing_values;
+         int32               print;
+         int32               write;
+         char                name[8];
+     
+         /* The following two fields are present
+            only if has_var_label is 1. */
+         int32               label_len;
+         char                label[/* variable length */];
+     
+         /* The following field is present only
+            if n_missing_values is not 0. */
+         flt64               missing_values[/* variable length*/];
+       };
+
+`int32 rec_type;'
+     Record type code.  Always set to 2.
+
+`int32 type;'
+     Variable type code.  Set to 0 for a numeric variable.  For a short
+     string variable or the first part of a long string variable, this
+     is set to the width of the string.  For the second and subsequent
+     parts of a long string variable, set to -1, and the remaining
+     fields in the structure are ignored.
+
+`int32 has_var_label;'
+     If this variable has a variable label, set to 1; otherwise, set to
+     0.
+
+`int32 n_missing_values;'
+     If the variable has no missing values, set to 0.  If the variable
+     has one, two, or three discrete missing values, set to 1, 2, or 3,
+     respectively.  If the variable has a range for missing variables,
+     set to -2; if the variable has a range for missing variables plus
+     a single discrete value, set to -3.
+
+`int32 print;'
+     Print format for this variable.  See below.
+
+`int32 write;'
+     Write format for this variable.  See below.
+
+`char name[8];'
+     Variable name.  The variable name must begin with a capital letter
+     or the at-sign (`@').  Subsequent characters may also be
+     octothorpes (`#'), dollar signs (`$'), underscores (`_'), or full
+     stops (`.').  The variable name is padded on the right with spaces.
+
+`int32 label_len;'
+     This field is present only if `has_var_label' is set to 1.  It is
+     set to the length, in characters, of the variable label, which
+     must be a number between 0 and 120.
+
+`char label[/* variable length */];'
+     This field is present only if `has_var_label' is set to 1.  It has
+     length `label_len', rounded up to the nearest multiple of 32 bits.
+     The first `label_len' characters are the variable's variable label.
+
+`flt64 missing_values[/* variable length */];'
+     This field is present only if `n_missing_values' is not 0.  It has
+     the same number of elements as the absolute value of
+     `n_missing_values'.  For discrete missing values, each element
+     represents one missing value.  When a range is present, the first
+     element denotes the minimum value in the range, and the second
+     element denotes the maximum value in the range.  When a range plus
+     a value are present, the third element denotes the additional
+     discrete missing value.  HIGHEST and LOWEST are indicated as
+     described in the chapter introduction.
+
+   The `print' and `write' members of sysfile_variable are output
+formats coded into `int32' types.  The LSB (least-significant byte) of
+the `int32' represents the number of decimal places, and the next two
+bytes in order of increasing significance represent field width and
+format type, respectively.  The MSB (most-significant byte) is not used
+and should be set to zero.
+
+   Format types are defined as follows:
+0
+     Not used.
+
+1
+     `A'
+
+2
+     `AHEX'
+
+3
+     `COMMA'
+
+4
+     `DOLLAR'
+
+5
+     `F'
+
+6
+     `IB'
+
+7
+     `PIBHEX'
+
+8
+     `P'
+
+9
+     `PIB'
+
+10
+     `PK'
+
+11
+     `RB'
+
+12
+     `RBHEX'
+
+13
+     Not used.
+
+14
+     Not used.
+
+15
+     `Z'
+
+16
+     `N'
+
+17
+     `E'
+
+18
+     Not used.
+
+19
+     Not used.
+
+20
+     `DATE'
+
+21
+     `TIME'
+
+22
+     `DATETIME'
+
+23
+     `ADATE'
+
+24
+     `JDATE'
+
+25
+     `DTIME'
+
+26
+     `WKDAY'
+
+27
+     `MONTH'
+
+28
+     `MOYR'
+
+29
+     `QYR'
+
+30
+     `WKYR'
+
+31
+     `PCT'
+
+32
+     `DOT'
+
+33
+     `CCA'
+
+34
+     `CCB'
+
+35
+     `CCC'
+
+36
+     `CCD'
+
+37
+     `CCE'
+
+38
+     `EDATE'
+
+39
+     `SDATE'
+
+\1f
+File: pspp.info,  Node: Value Label Record,  Next: Value Label Variable Record,  Prev: Variable Record,  Up: Data File Format
+
+Value Label Record
+==================
+
+   Value label records must follow the variable records and must precede
+the header termination record.  Other than this, they may appear
+anywhere in the system file.  Every value label record must be
+immediately followed by a label variable record, described below.
+
+   Value label records begin with `rec_type', an `int32' value set to
+the record type of 3.  This is followed by `count', an `int32' value
+set to the number of value labels present in this record.
+
+   These two fields are followed by a series of `count' tuples.  Each
+tuple is divided into two fields, the value and the label.  The first of
+these, the value, is composed of a 64-bit value, which is either a
+`flt64' value or up to 8 characters (padded on the right to 8 bytes)
+denoting a short string value.  Whether the value is a `flt64' or a
+character string is not defined inside the value label record.
+
+   The second field in the tuple, the label, has variable length.  The
+first `char' is a count of the number of characters in the value label.
+The remainder of the field is the label itself.  The field is padded
+on the right to a multiple of 64 bits in length.
+
+\1f
+File: pspp.info,  Node: Value Label Variable Record,  Next: Document Record,  Prev: Value Label Record,  Up: Data File Format
+
+Value Label Variable Record
+===========================
+
+   Every value label variable record must be immediately preceded by a
+value label record, described above.
+
+     struct sysfile_value_label_variable
+       {
+          int32              rec_type;
+          int32              count;
+          int32              vars[/* variable length */];
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 4.
+
+`int32 count;'
+     Number of variables that the associated value labels from the value
+     label record are to be applied.
+
+`int32 vars[/* variable length];'
+     A list of variables to which to apply the value labels.  There are
+     `count' elements.
+
+\1f
+File: pspp.info,  Node: Document Record,  Next: Machine int32 Info Record,  Prev: Value Label Variable Record,  Up: Data File Format
+
+Document Record
+===============
+
+   There must be no more than one document record per system file.
+Document records must follow the variable records and precede the
+dictionary termination record.
+
+     struct sysfile_document
+       {
+         int32               rec_type;
+         int32               n_lines;
+         char                lines[/* variable length */][80];
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 6.
+
+`int32 n_lines;'
+     Number of lines of documents present.
+
+`char lines[/* variable length */][80];'
+     Document lines.  The number of elements is defined by `n_lines'.
+     Lines shorter than 80 characters are padded on the right with
+     spaces.
+
+\1f
+File: pspp.info,  Node: Machine int32 Info Record,  Next: Machine flt64 Info Record,  Prev: Document Record,  Up: Data File Format
+
+Machine `int32' Info Record
+===========================
+
+   There must be no more than one machine `int32' info record per
+system file.  Machine `int32' info records must follow the variable
+records and precede the dictionary termination record.
+
+     struct sysfile_machine_int32_info
+       {
+         /* Header. */
+         int32               rec_type;
+         int32               subtype;
+         int32               size;
+         int32               count;
+     
+         /* Data. */
+         int32               version_major;
+         int32               version_minor;
+         int32               version_revision;
+         int32               machine_code;
+         int32               floating_point_rep;
+         int32               compression_code;
+         int32               endianness;
+         int32               character_code;
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 7.
+
+`int32 subtype;'
+     Record subtype.  Always set to 3.
+
+`int32 size;'
+     Size of each piece of data in the data part, in bytes.  Always set
+     to 4.
+
+`int32 count;'
+     Number of pieces of data in the data part.  Always set to 8.
+
+`int32 version_major;'
+     PSPP major version number.  In version X.Y.Z, this is X.
+
+`int32 version_minor;'
+     PSPP minor version number.  In version X.Y.Z, this is Y.
+
+`int32 version_revision;'
+     PSPP version revision number.  In version X.Y.Z, this is Z.
+
+`int32 machine_code;'
+     Machine code.  PSPP always set this field to value to -1, but other
+     values may appear.
+
+`int32 floating_point_rep;'
+     Floating point representation code.  For IEEE 754 systems this is
+     1.  IBM 370 sets this to 2, and DEC VAX E to 3.
+
+`int32 compression_code;'
+     Compression code.  Always set to 1.
+
+`int32 endianness;'
+     Machine endianness.  1 indicates big-endian, 2 indicates
+     little-endian.
+
+`int32 character_code;'
+     Character code.  1 indicates EBCDIC, 2 indicates 7-bit ASCII, 3
+     indicates 8-bit ASCII, 4 indicates DEC Kanji.
+
+\1f
+File: pspp.info,  Node: Machine flt64 Info Record,  Next: Miscellaneous Informational Records,  Prev: Machine int32 Info Record,  Up: Data File Format
+
+Machine `flt64' Info Record
+===========================
+
+   There must be no more than one machine `flt64' info record per
+system file.  Machine `flt64' info records must follow the variable
+records and precede the dictionary termination record.
+
+     struct sysfile_machine_flt64_info
+       {
+         /* Header. */
+         int32               rec_type;
+         int32               subtype;
+         int32               size;
+         int32               count;
+     
+         /* Data. */
+         flt64               sysmis;
+         flt64               highest;
+         flt64               lowest;
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 3.
+
+`int32 subtype;'
+     Record subtype.  Always set to 4.
+
+`int32 size;'
+     Size of each piece of data in the data part, in bytes.  Always set
+     to 4.
+
+`int32 count;'
+     Number of pieces of data in the data part.  Always set to 3.
+
+`flt64 sysmis;'
+     The system missing value.
+
+`flt64 highest;'
+     The value used for HIGHEST in missing values.
+
+`flt64 lowest;'
+     The value used for LOWEST in missing values.
+
+\1f
+File: pspp.info,  Node: Miscellaneous Informational Records,  Next: Dictionary Termination Record,  Prev: Machine flt64 Info Record,  Up: Data File Format
+
+Miscellaneous Informational Records
+===================================
+
+   Miscellaneous informational records must follow the variable records
+and precede the dictionary termination record.
+
+   Miscellaneous informational records are ignored by PSPP when reading
+system files.  They are not written by PSPP when writing system files.
+
+     struct sysfile_misc_info
+       {
+         /* Header. */
+         int32               rec_type;
+         int32               subtype;
+         int32               size;
+         int32               count;
+     
+         /* Data. */
+         char                data[/* variable length */];
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 3.
+
+`int32 subtype;'
+     Record subtype.  May take any value.
+
+`int32 size;'
+     Size of each piece of data in the data part.  Should have the
+     value 4 or 8, for `int32' and `flt64', respectively.
+
+`int32 count;'
+     Number of pieces of data in the data part.
+
+`char data[/* variable length */];'
+     Arbitrary data.  There must be `size' times `count' bytes of data.
+
+\1f
+File: pspp.info,  Node: Dictionary Termination Record,  Next: Data Record,  Prev: Miscellaneous Informational Records,  Up: Data File Format
+
+Dictionary Termination Record
+=============================
+
+   The dictionary termination record must follow all other records,
+except for the actual cases, which it must precede.  There must be
+exactly one dictionary termination record in every system file.
+
+     struct sysfile_dict_term
+       {
+         int32               rec_type;
+         int32               filler;
+       };
+
+`int32 rec_type;'
+     Record type.  Always set to 999.
+
+`int32 filler;'
+     Ignored padding.  Should be set to 0.
+
+\1f
+File: pspp.info,  Node: Data Record,  Prev: Dictionary Termination Record,  Up: Data File Format
+
+Data Record
+===========
+
+   Data records must follow all other records in the data file.  There
+must be at least one data record in every system file.
+
+   The format of data records varies depending on whether the data is
+compressed.  Regardless, the data is arranged in a series of 8-byte
+elements.
+
+   When data is not compressed, Every case is composed of `case_size'
+of these 8-byte elements, where `case_size' comes from the file header
+record (*note File Header Record::).  Each element corresponds to the
+variable declared in the respective variable record (*note Variable
+Record::).  Numeric values are given in `flt64' format; string values
+are literal characters string, padded on the right when necessary.
+
+   Compressed data is arranged in the following manner: the first 8-byte
+element in the data section is divided into a series of 1-byte command
+codes.  These codes have meanings as described below:
+
+0
+     Ignored.  If the program writing the system file accumulates
+     compressed data in blocks of fixed length, 0 bytes can be used to
+     pad out extra bytes remaining at the end of a fixed-size block.
+
+1 through 251
+     These values indicate that the corresponding numeric variable has
+     the value `(CODE - BIAS)' for the case being read, where CODE is
+     the value of the compression code and BIAS is the variable
+     `compression_bias' from the file header.  For example, code 105
+     with bias 100.0 (the normal value) indicates a numeric variable of
+     value 5.
+
+252
+     End of file.  This code may or may not appear at the end of the
+     data stream.  PSPP always outputs this code but its use is not
+     required.
+
+253
+     This value indicates that the numeric or string value is not
+     compressible.  The value is stored in the 8-byte element following
+     the current block of command bytes.  If this value appears twice
+     in a block of command bytes, then it indicates the second element
+     following the command bytes, and so on.
+
+254
+     Used to indicate a string value that is all spaces.
+
+255
+     Used to indicate the system-missing value.
+
+   When the end of the first 8-byte element of command bytes is reached,
+any blocks of non-compressible values are skipped, and the next element
+of command bytes is read and interpreted, until the end of the file is
+reached.
+
diff --git a/doc/pspp.info-7 b/doc/pspp.info-7
new file mode 100644 (file)
index 0000000..aa1a861
--- /dev/null
@@ -0,0 +1,837 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: Portable File Format,  Next: q2c Input Format,  Prev: Data File Format,  Up: Top
+
+Portable File Format
+********************
+
+   These days, most computers use the same internal data formats for
+integer and floating-point data, if one ignores little differences like
+big- versus little-endian byte ordering.  However, occasionally it is
+necessary to exchange data between systems with incompatible data
+formats.  This is what portable files are designed to do.
+
+   *Please note:* Although all of the following information is correct,
+as far as the author has been able to ascertain, it is gleaned from
+examination of ASCII-formatted portable files only, so some of it may
+be incorrect in the general case.
+
+* Menu:
+
+* Portable File Characters::
+* Portable File Structure::
+* Portable File Header::
+* Version and Date Info Record::
+* Identification Records::
+* Variable Count Record::
+* Variable Records::
+* Value Label Records::
+* Portable File Data::
+
+\1f
+File: pspp.info,  Node: Portable File Characters,  Next: Portable File Structure,  Prev: Portable File Format,  Up: Portable File Format
+
+Portable File Characters
+========================
+
+   Portable files are arranged as a series of lines of exactly 80
+characters each.  Each line is terminated by a carriage-return,
+line-feed sequence (henceforth, "newline").  Newlines are not
+delimiters: they are only used to avoid line-length limitations existing
+on some operating systems.
+
+   The file must be terminated with a `Z' character.  In addition, if
+the final line in the file does not have exactly 80 characters, then it
+is padded on the right with `Z' characters.  (The file contents may be
+in any character set; the file contains a description of its own
+character set, as explained in the next section.  Therefore, the `Z'
+character is not necessarily an ASCII `Z'.)
+
+   For the rest of the description of the portable file format, newlines
+and the trailing `Z's will be ignored, as if they did not exist,
+because they are not an important part of understanding the file
+contents.
+
+\1f
+File: pspp.info,  Node: Portable File Structure,  Next: Portable File Header,  Prev: Portable File Characters,  Up: Portable File Format
+
+Portable File Structure
+=======================
+
+   Every portable file consists of the following records, in sequence:
+
+   * File header.
+
+   * Version and date info.
+
+   * Product identification.
+
+   * Subproduct identification (optional).
+
+   * Variable count.
+
+   * Variables.  Each variable record may optionally be followed by a
+     missing value record and a variable label record.
+
+   * Value labels (optional).
+
+   * Data.
+
+   Most records are identified by a single-character tag code.  The file
+header and version info record do not have a tag.
+
+   Other than these single-character codes, there are three types of
+fields in a portable file: floating-point, integer, and string.
+Floating-point fields have the following format:
+
+   * Zero or more leading spaces.
+
+   * Optional asterisk (`*'), which indicates a missing value.  The
+     asterisk must be followed by a single character, generally a period
+     (`.'), but it appears that other characters may also be possible.
+     This completes the specification of a missing value.
+
+   * Optional minus sign (`-') to indicate a negative number.
+
+   * A whole number, consisting of one or more base-30 digits: `0'
+     through `9' plus capital letters `A' through `T'.
+
+   * A fraction, consisting of a radix point (`.') followed by one or
+     more base-30 digits (optional).
+
+   * An exponent, consisting of a plus or minus sign (`+' or `-')
+     followed by one or more base-30 digits (optional).
+
+   * A forward slash (`/').
+
+   Integer fields take form identical to floating-point fields, but they
+may not contain a fraction.
+
+   String fields take the form of a integer field having value N,
+followed by exactly N characters, which are the string content.
+
+\1f
+File: pspp.info,  Node: Portable File Header,  Next: Version and Date Info Record,  Prev: Portable File Structure,  Up: Portable File Format
+
+Portable File Header
+====================
+
+   Every portable file begins with a 464-byte header, consisting of a
+200-byte collection of vanity splash strings, followed by a 256-byte
+character set translation table, followed by an 8-byte tag string.
+
+   The 200-byte segment is divided into five 40-byte sections, each of
+which represents the string `ASCII SPSS PORT FILE' in a different
+character set encoding.  (If the file is encoded in EBCDIC then the
+string is actually `EBCDIC SPSS PORT FILE', and so on.)  These strings
+are padded on the right with spaces in their own character set.
+
+   It appears that these strings exist only to inform those who might
+view the file on a screen, and that they are not parsed by SPSS
+products.  Thus, they can be safely ignored.  For those interested, the
+strings are supposed to be in the following character sets, in the
+specified order: EBCDIC, 7-bit ASCII, CDC 6-bit ASCII, 6-bit ASCII,
+Honeywell 6-bit ASCII.
+
+   The 256-byte segment describes a mapping from the character set used
+in the portable file to an arbitrary character set having characters at
+the following positions:
+
+0-60
+     Control characters.  Not important enough to describe in full here.
+
+61-63
+     Reserved.
+
+64-73
+     Digits `0' through `9'.
+
+74-99
+     Capital letters `A' through `Z'.
+
+100-125
+     Lowercase letters `a' through `z'.
+
+126
+     Space.
+
+127-130
+     Symbols `.<(+'
+
+131
+     Solid vertical pipe.
+
+132-142
+     Symbols `&[]!$*);^-/'
+
+143
+     Broken vertical pipe.
+
+144-150
+     Symbols `,%_>'?``:'
+
+151
+     British pound symbol.
+
+152-155
+     Symbols `@'="'.
+
+156
+     Less than or equal symbol.
+
+157
+     Empty box.
+
+158
+     Plus or minus.
+
+159
+     Filled box.
+
+160
+     Degree symbol.
+
+161
+     Dagger.
+
+162
+     Symbol `~'.
+
+163
+     En dash.
+
+164
+     Lower left corner box draw.
+
+165
+     Upper left corner box draw.
+
+166
+     Greater than or equal symbol.
+
+167-176
+     Superscript `0' through `9'.
+
+177
+     Lower right corner box draw.
+
+178
+     Upper right corner box draw.
+
+179
+     Not equal symbol.
+
+180
+     Em dash.
+
+181
+     Superscript `('.
+
+182
+     Superscript `)'.
+
+183
+     Horizontal dagger (?).
+
+184-186
+     Symbols `{}\'.
+
+187
+     Cents symbol.
+
+188
+     Centered dot, or bullet.
+
+189-255
+     Reserved.
+
+   Symbols that are not defined in a particular character set are set to
+the same value as symbol 64; i.e., to `0'.
+
+   The 8-byte tag string consists of the exact characters `SPSSPORT' in
+the portable file's character set, which can be used to verify that the
+file is indeed a portable file.
+
+\1f
+File: pspp.info,  Node: Version and Date Info Record,  Next: Identification Records,  Prev: Portable File Header,  Up: Portable File Format
+
+Version and Date Info Record
+============================
+
+   This record does not have a tag code.  It has the following
+structure:
+
+   * A single character identifying the file format version.  The
+     letter A represents version 0, and so on.
+
+   * An 8-character string field giving the file creation date in the
+     format YYYYMMDD.
+
+   * A 6-character string field giving the file creation time in the
+     format HHMMSS.
+
+\1f
+File: pspp.info,  Node: Identification Records,  Next: Variable Count Record,  Prev: Version and Date Info Record,  Up: Portable File Format
+
+Identification Records
+======================
+
+   The product identification record has tag code `1'.  It consists of
+a single string field giving the name of the product that wrote the
+portable file.
+
+   The subproduct identification record has tag code `3'.  It consists
+of a single string field giving additional information on the product
+that wrote the portable file.
+
+\1f
+File: pspp.info,  Node: Variable Count Record,  Next: Variable Records,  Prev: Identification Records,  Up: Portable File Format
+
+Variable Count Record
+=====================
+
+   The variable count record has tag code `4'.  It consists of two
+integer fields.  The first contains the number of variables in the file
+dictionary.  The purpose of the second is unknown; it contains the value
+161 in all portable files examined so far.
+
+\1f
+File: pspp.info,  Node: Variable Records,  Next: Value Label Records,  Prev: Variable Count Record,  Up: Portable File Format
+
+Variable Records
+================
+
+   Each variable record represents a single variable.  Variable records
+have tag code `7'.  They have the following structure:
+
+   * Width (integer).  This is 0 for a numeric variable, and a number
+     between 1 and 255 for a string variable.
+
+   * Name (string).  1-8 characters long.  Must be in all capitals.
+
+   * Print format.  This is a set of three integer fields:
+
+        - Format type (*note Variable Record::).
+
+        - Format width.  1-40.
+
+        - Number of decimal places.  1-40.
+
+   * Write format.  Same structure as the print format described above.
+
+   Each variable record can optionally be followed by a missing value
+record, which has tag code `8'.  A missing value record has one field,
+the missing value itself (a floating-point or string, as appropriate).
+Up to three of these missing value records can be used.
+
+   There is also a record for missing value ranges, which has tag code
+`B'.  It is followed by two fields representing the range, which are
+floating-point or string as appropriate.  If a missing value range is
+present, it may be followed by a single missing value record.
+
+   Tag codes `9' and `A' represent `LO THRU X' and `X THRU HI' ranges,
+respectively.  Each is followed by a single field representing X.  If
+one of the ranges is present, it may be followed by a single missing
+value record.
+
+   In addition, each variable record can optionally be followed by a
+variable label record, which has tag code `C'.  A variable label record
+has one field, the variable label itself (string).
+
+\1f
+File: pspp.info,  Node: Value Label Records,  Next: Portable File Data,  Prev: Variable Records,  Up: Portable File Format
+
+Value Label Records
+===================
+
+   Value label records have tag code `D'.  They have the following
+format:
+
+   * Variable count (integer).
+
+   * List of variables (strings).  The variable count specifies the
+     number in the list.  Variables are specified by their names.  All
+     variables must be of the same type (numeric or string).
+
+   * Label count (integer).
+
+   * List of (value, label) tuples.  The label count specifies the
+     number of tuples.  Each tuple consists of a value, which is
+     numeric or string as appropriate to the variables, followed by a
+     label (string).
+
+\1f
+File: pspp.info,  Node: Portable File Data,  Prev: Value Label Records,  Up: Portable File Format
+
+Portable File Data
+==================
+
+   The data record has tag code `F'.  There is only one tag for all the
+data; thus, all the data must follow the dictionary.  The data is
+terminated by the end-of-file marker `Z', which is not valid as the
+beginning of a data element.
+
+   Data elements are output in the same order as the variable records
+describing them.  String variables are output as string fields, and
+numeric variables are output as floating-point fields.
+
+\1f
+File: pspp.info,  Node: q2c Input Format,  Next: Bugs,  Prev: Portable File Format,  Up: Top
+
+`q2c' Input Format
+******************
+
+   PSPP statistical procedures have a bizarre and somewhat irregular
+syntax.  Despite this, a parser generator has been written that
+adequately addresses many of the possibilities and tries to provide
+hooks for the exceptional cases.  This parser generator is named `q2c'.
+
+* Menu:
+
+* Invoking q2c::                q2c command-line syntax.
+* q2c Input Structure::         High-level layout of the input file.
+* Grammar Rules::               Syntax of the grammar rules.
+
+\1f
+File: pspp.info,  Node: Invoking q2c,  Next: q2c Input Structure,  Prev: q2c Input Format,  Up: q2c Input Format
+
+Invoking q2c
+============
+
+     q2c INPUT.Q OUTPUT.C
+
+   `q2c' translates a `.q' file into a `.c' file.  It takes exactly two
+command-line arguments, which are the input file name and output file
+name, respectively.  `q2c' does not accept any command-line options.
+
+\1f
+File: pspp.info,  Node: q2c Input Structure,  Next: Grammar Rules,  Prev: Invoking q2c,  Up: q2c Input Format
+
+`q2c' Input Structure
+=====================
+
+   `q2c' input files are divided into two sections: the grammar rules
+and the supporting code.  The "grammar rules", which make up the first
+part of the input, are used to define the syntax of the statistical
+procedure to be parsed.  The "supporting code", following the grammar
+rules, are copied largely unchanged to the output file, except for
+certain escapes.
+
+   The most important lines in the grammar rules are used for defining
+procedure syntax.  These lines can be prefixed with a dollar sign
+(`$'), which prevents Emacs' CC-mode from munging them.  Besides this,
+a bang (`!') at the beginning of a line causes the line, minus the
+bang, to be written verbatim to the output file (useful for comments).
+As a third special case, any line that begins with the exact characters
+`/* *INDENT' is ignored and not written to the output.  This allows
+`.q' files to be processed through `indent' without being munged.
+
+   The syntax of the grammar rules themselves is given in the following
+sections.
+
+   The supporting code is passed into the output file largely unchanged.
+However, the following escapes are supported.  Each escape must appear
+on a line by itself.
+
+`/* (header) */'
+     Expands to a series of C `#include' directives which include the
+     headers that are required for the parser generated by `q2c'.
+
+`/* (decls SCOPE) */'
+     Expands to C variable and data type declarations for the variables
+     and `enum's input and output by the `q2c' parser.  SCOPE must be
+     either `local' or `global'.  `local' causes the declarations to be
+     output as function locals.  `global' causes them to be declared as
+     `static' module variables; thus, `global' is a bit of a misnomer.
+
+`/* (parser) */'
+     Expands to the entire parser.  Must be enclosed within a C
+     function.
+
+`/* (free) */'
+     Expands to a set of calls to the `free' function for variables
+     declared by the parser.  Only needs to be invoked if subcommands
+     of type `string' are used in the grammar rules.
+
+\1f
+File: pspp.info,  Node: Grammar Rules,  Prev: q2c Input Structure,  Up: q2c Input Format
+
+Grammar Rules
+=============
+
+   The grammar rules describe the format of the syntax that the parser
+generated by `q2c' will understand.  The way that the grammar rules are
+included in `q2c' input file are described above.
+
+   The grammar rules are divided into tokens of the following types:
+
+Identifier (`ID')
+     An identifier token is a sequence of letters, digits, and
+     underscores (`_').  Identifiers are _not_ case-sensitive.
+
+String (`STRING')
+     String tokens are initiated by a double-quote character (`"') and
+     consist of all the characters between that double quote and the
+     next double quote, which must be on the same line as the first.
+     Within a string, a backslash can be used as a "literal escape".
+     The only reasons to use a literal escape are to include a double
+     quote or a backslash within a string.
+
+Special character
+     Other characters, other than whitespace, constitute tokens in
+     themselves.
+
+   The syntax of the grammar rules is as follows:
+
+     grammar-rules ::= ID : subcommands .
+     subcommands ::= subcommand
+                 ::= subcommands ; subcommand
+
+   The syntax begins with an ID or STRING token that gives the name of
+the procedure to be parsed.  The rest of the syntax consists of
+subcommands separated by semicolons (`;') and terminated with a full
+stop (`.').
+
+     subcommand ::= sbc-options ID sbc-defn
+     sbc-options ::=
+                 ::= sbc-option
+                 ::= sbc-options sbc-options
+     sbc-option ::= *
+                ::= +
+     sbc-defn ::= opt-prefix = specifiers
+              ::= [ ID ] = array-sbc
+              ::= opt-prefix = sbc-special-form
+     opt-prefix ::=
+                ::= ( ID )
+
+   Each subcommand can be prefixed with one or more option characters.
+An asterisk (`*') is used to indicate the default subcommand; the
+keyword used for the default subcommand can be omitted in the PSPP
+syntax file.  A plus sign (`+') is used to indicate that a subcommand
+can appear more than once; if it is not present then that subcommand
+can appear no more than once.
+
+   The subcommand name appears after the option characters.
+
+   There are three forms of subcommands.  The first and most common form
+simply gives an equals sign (`=') and a list of specifiers, which can
+each be set to a single setting.  The second form declares an array,
+which is a set of flags that can be individually turned on by the user.
+There are also several special forms that do not take a list of
+specifiers.
+
+   Arrays require an additional `ID' argument.  This is used as a
+prefix, prepended to the variable names constructed from the
+specifiers.  The other forms also allow an optional prefix to be
+specified.
+
+     array-sbc ::= alternatives
+               ::= array-sbc , alternatives
+     alternatives ::= ID
+                  ::= alternatives | ID
+
+   An array subcommand is a set of Boolean values that can
+independently be turned on by the user, listed separated by commas
+(`,').  If an value has more than one name then these names are
+separated by pipes (`|').
+
+     specifiers ::= specifier
+                ::= specifiers , specifier
+     specifier ::= opt-id : settings
+     opt-id ::=
+            ::= ID
+
+   Ordinary subcommands (other than arrays and special forms) require a
+list of specifiers.  Each specifier has an optional name and a list of
+settings.  If the name is given then a correspondingly named variable
+will be used to store the user's choice of setting.  If no name is given
+then there is no way to tell which setting the user picked; in this case
+the settings should probably have values attached.
+
+     settings ::= setting
+              ::= settings / setting
+     setting ::= setting-options ID setting-value
+     setting-options ::=
+                     ::= *
+                     ::= !
+                     ::= * !
+
+   Individual settings are separated by forward slashes (`/').  Each
+setting can be as little as an `ID' token, but options and values can
+optionally be included.  The `*' option means that, for this setting,
+the `ID' can be omitted.  The `!' option means that this option is the
+default for its specifier.
+
+     setting-value ::=
+                   ::= ( setting-value-2 )
+                   ::= setting-value-2
+     setting-value-2 ::= setting-value-options setting-value-type : ID
+                         setting-value-restriction
+     setting-value-options ::=
+                           ::= *
+     setting-value-type ::= N
+                        ::= D
+     setting-value-restriction ::=
+                               ::= , STRING
+
+   Settings may have values.  If the value must be enclosed in
+parentheses, then enclose the value declaration in parentheses.
+Declare the setting type as `n' or `d' for integer or floating point
+type, respectively.  The given `ID' is used to construct a variable
+name.  If option `*' is given, then the value is optional; otherwise it
+must be specified whenever the corresponding setting is specified.  A
+"restriction" can also be specified which is a string giving a C
+expression limiting the valid range of the value.  The special escape
+`%s' should be used within the restriction to refer to the setting's
+value variable.
+
+     sbc-special-form ::= VAR
+                      ::= VARLIST varlist-options
+                      ::= INTEGER opt-list
+                      ::= DOUBLE opt-list
+                      ::= PINT
+                      ::= STRING (the literal word STRING) string-options
+                      ::= CUSTOM
+     varlist-options ::=
+                     ::= ( STRING )
+     opt-list ::=
+              ::= LIST
+     string-options ::=
+                    ::= ( STRING STRING )
+
+   The special forms are of the following types:
+
+`VAR'
+     A single variable name.
+
+`VARLIST'
+     A list of variables.  If given, the string can be used to provide
+     `PV_*' options to the call to `parse_variables'.
+
+`INTEGER'
+     A single integer value.
+
+`INTEGER LIST'
+     A list of integers separated by spaces or commas.
+
+`DOUBLE'
+     A single floating-point value.
+
+`DOUBLE LIST'
+     A list of floating-point values.
+
+`PINT'
+     A single positive integer value.
+
+`STRING'
+     A string value.  If the options are given then the first string is
+     an expression giving a restriction on the value of the string; the
+     second string is an error message to display when the restriction
+     is violated.
+
+`CUSTOM'
+     A custom function is used to parse this subcommand.  The function
+     must have prototype `int custom_NAME (void)'.  It should return 0
+     on failure (when it has already issued an appropriate diagnostic),
+     1 on success, or 2 if it fails and the calling function should
+     issue a syntax error on behalf of the custom handler.
+
+\1f
+File: pspp.info,  Node: Bugs,  Next: Function Index,  Prev: q2c Input Format,  Up: Top
+
+Bugs
+****
+
+     As of fvwm 0.99 there were exactly 39.342 unidentified bugs.
+     Identified bugs have mostly been fixed, though.  Since then 9.34
+     bugs have been fixed.  Assuming that there are at least 10
+     unidentified bugs for every identified one, that leaves us with
+     39.342 - 9.34 + 10 * 9.34 = 123.422 unidentified bugs.  If we
+     follow this to its logical conclusion we will have an infinite
+     number of unidentified bugs before the number of bugs can start to
+     diminish, at which point the program will be bug-free.  Since this
+     is a computer program infinity = 3.4028e+38 if you don't insist on
+     double-precision.  At the current rate of bug discovery we should
+     expect to achieve this point in 3.37e+27 years.  I guess I better
+     plan on passing this thing on to my children....
+
+     --Robert Nation, `fvwm manpage'.
+
+* Menu:
+
+* Known bugs::                  Pointers to other files.
+* Contacting the Author::       Where to send the bug reports.
+
+\1f
+File: pspp.info,  Node: Known bugs,  Next: Contacting the Author,  Prev: Bugs,  Up: Bugs
+
+Known bugs
+==========
+
+   This is the list of known bugs in PSPP.  In addition, *Note Not
+Implemented::, and *Note Functions Not Implemented::, for lists of bugs
+due to features not implemented.  For known bugs in individual language
+features, see the documentation for that feature.
+
+   * Nothing has yet been tested exhaustively. Be cautious using PSPP to
+     make important decisions.
+
+   * `make check' fails on some systems that don't like the syntax.  I'm
+     not sure why.  If someone could make an attempt to track this
+     down, it would be appreciated.
+
+   * PostScript driver bugs:
+
+        - Does not support driver arguments `max-fonts-simult' or
+          `optimize-text-size'.
+
+        - Minor problems with font-encodings.
+
+        - Fails to align fonts along their baselines.
+
+        - Does not support certain bizarre line intersections-should
+          never crop up in practice.
+
+        - Does not gracefully substitute for existing fonts whose
+          encodings are missing.
+
+        - Does not perform italic correction or left italic correction
+          on font changes.
+
+        - Encapsulated PostScript is unimplemented.
+
+   * ASCII driver bugs:
+
+          Does not support `infinite length' or `infinite width' paper.
+
+   See below for information on reporting bugs not listed here.
+
+\1f
+File: pspp.info,  Node: Contacting the Author,  Prev: Known bugs,  Up: Bugs
+
+Contacting the Author
+=====================
+
+   The author can be contacted at e-mail address <blp@gnu.org>.
+
+   PSPP bug reports should be sent to <bug-gnu-pspp@gnu.org>.
+
+\1f
+File: pspp.info,  Node: Function Index,  Next: Concept Index,  Prev: Bugs,  Up: Top
+
+Function Index
+**************
+
+* Menu:
+
+* ABS:                                   Miscellaneous Mathematics.
+* ACOS:                                  Trigonometry.
+* ANY:                                   Set Membership.
+* ARCOS:                                 Trigonometry.
+* ARSIN:                                 Trigonometry.
+* ARTAN:                                 Trigonometry.
+* ASIN:                                  Trigonometry.
+* ATAN:                                  Trigonometry.
+* CDF.xxx:                               Functions Not Implemented.
+* CDFNORM:                               Functions Not Implemented.
+* CFVAR:                                 Statistical Functions.
+* CONCAT:                                String Functions.
+* COS:                                   Trigonometry.
+* CTIME.DAYS:                            Time Extraction.
+* CTIME.HOURS:                           Time Extraction.
+* CTIME.MINUTES:                         Time Extraction.
+* CTIME.SECONDS:                         Time Extraction.
+* DATE.DMY:                              Date Construction.
+* DATE.MDY:                              Date Construction.
+* DATE.MOYR:                             Date Construction.
+* DATE.QYR:                              Date Construction.
+* DATE.WKYR:                             Date Construction.
+* DATE.YRDAY:                            Date Construction.
+* EXP:                                   Advanced Mathematics.
+* IDF.xxx:                               Functions Not Implemented.
+* INDEX:                                 String Functions.
+* LAG:                                   Miscellaneous Functions.
+* LENGTH:                                String Functions.
+* LG10:                                  Advanced Mathematics.
+* LN:                                    Advanced Mathematics.
+* LOWER:                                 String Functions.
+* LPAD:                                  String Functions.
+* LTRIM:                                 String Functions.
+* MAX:                                   Statistical Functions.
+* MEAN:                                  Statistical Functions.
+* MIN:                                   Statistical Functions.
+* MISSING:                               Missing Value Functions.
+* MOD:                                   Miscellaneous Mathematics.
+* MOD10:                                 Miscellaneous Mathematics.
+* NCDF.xxx:                              Functions Not Implemented.
+* NMISS:                                 Missing Value Functions.
+* NORMAL:                                Pseudo-Random Numbers.
+* NUMBER:                                String Functions.
+* NVALID:                                Missing Value Functions.
+* PROBIT:                                Functions Not Implemented.
+* RANGE:                                 Set Membership.
+* RINDEX:                                String Functions.
+* RND:                                   Miscellaneous Mathematics.
+* RPAD:                                  String Functions.
+* RTRIM:                                 String Functions.
+* RV.xxx:                                Functions Not Implemented.
+* SD:                                    Statistical Functions.
+* SIN:                                   Trigonometry.
+* SQRT:                                  Advanced Mathematics.
+* STRING:                                String Functions.
+* SUBSTR:                                String Functions.
+* SUM:                                   Statistical Functions.
+* SYSMIS:                                Missing Value Functions.
+* TAN:                                   Trigonometry.
+* TIME.DAYS:                             Time Construction.
+* TIME.HMS:                              Time Construction.
+* TRUNC:                                 Miscellaneous Mathematics.
+* UNIFORM:                               Pseudo-Random Numbers.
+* UPCASE:                                String Functions.
+* VALUE:                                 Missing Value Functions.
+* VAR:                                   Statistical Functions.
+* VARIANCE:                              Statistical Functions.
+* XDATE.DATE:                            Date Extraction.
+* XDATE.HOUR:                            Date Extraction.
+* XDATE.JDAY:                            Date Extraction.
+* XDATE.MDAY:                            Date Extraction.
+* XDATE.MINUTE:                          Date Extraction.
+* XDATE.MONTH:                           Date Extraction.
+* XDATE.QUARTER:                         Date Extraction.
+* XDATE.SECOND:                          Date Extraction.
+* XDATE.TDAY:                            Date Extraction.
+* XDATE.TIME:                            Date Extraction.
+* XDATE.WEEK:                            Date Extraction.
+* XDATE.WKDAY:                           Date Extraction.
+* XDATE.YEAR:                            Date Extraction.
+* YRMODA:                                Miscellaneous Functions.
+
diff --git a/doc/pspp.info-8 b/doc/pspp.info-8
new file mode 100644 (file)
index 0000000..624bd72
--- /dev/null
@@ -0,0 +1,528 @@
+This is pspp.info, produced by makeinfo version 4.0 from pspp.texi.
+
+START-INFO-DIR-ENTRY
+* PSPP: (pspp).             Statistical analysis package.
+END-INFO-DIR-ENTRY
+
+   PSPP, for statistical analysis of sampled data, by Ben Pfaff.
+
+   This file documents PSPP, a statistical package for analysis of
+sampled data that uses a command language compatible with SPSS.
+
+   Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+
+   This version of the PSPP documentation is consistent with version 2
+of "texinfo.tex".
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above condition for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+\1f
+File: pspp.info,  Node: Concept Index,  Next: Command Index,  Prev: Function Index,  Up: Top
+
+Concept Index
+*************
+
+* Menu:
+
+* ":                                     Tokens.
+* "is defined as":                       BNF.
+* $CASENUM:                              System Variables.
+* $DATE:                                 System Variables.
+* $JDATE:                                System Variables.
+* $LENGTH:                               System Variables.
+* $SYSMIS:                               System Variables.
+* $TIME:                                 System Variables.
+* $WIDTH:                                System Variables.
+* &:                                     Logical Operators.
+* ':                                     Tokens.
+* (:                                     Functions.
+* (  ):                                  Grouping Operators.
+* ):                                     Functions.
+* *:                                     Arithmetic Operators.
+* **:                                    Arithmetic Operators.
+* +:                                     Arithmetic Operators.
+* -:                                     Arithmetic Operators.
+* . <1>:                                 BNF.
+* .:                                     Tokens.
+* /:                                     Arithmetic Operators.
+* /pub/algorithms/c/julcal10:            Credits.
+* /usr/local/bin/:                       UNIX installation.
+* /usr/local/info/:                      UNIX installation.
+* /usr/local/share/pspp/:                UNIX installation.
+* 0:                                     Tokens.
+* ::=:                                   BNF.
+* <:                                     Relational Operators.
+* <=:                                    Relational Operators.
+* <>:                                    Relational Operators.
+* =:                                     Relational Operators.
+* >:                                     Relational Operators.
+* >=:                                    Relational Operators.
+* [  ]:                                  Commands.
+* `Cat's Cradle':                        Credits.
+* absolute value:                        Miscellaneous Mathematics.
+* active file:                           Files.
+* addition:                              Arithmetic Operators.
+* AND:                                   Logical Operators.
+* arccosine:                             Trigonometry.
+* arcsine:                               Trigonometry.
+* arctangent:                            Trigonometry.
+* arguments, invalid <1>:                Date Construction.
+* arguments, invalid:                    Time & Date.
+* arguments, minimum valid:              Statistical Functions.
+* arguments, of date construction functions: Date Construction.
+* arguments, of date extraction functions: Date Extraction.
+* arithmetic operators:                  Arithmetic Operators.
+* attributes of variables:               Attributes.
+* authors:                               Credits.
+* Backus-Naur Form:                      BNF.
+* BNF:                                   BNF.
+* Boolean <1>:                           Logical Operators.
+* Boolean:                               Booleans.
+* case conversion:                       String Functions.
+* case-sensitivity:                      Tokens.
+* characters, reserved:                  Tokens.
+* coefficient of variation:              Statistical Functions.
+* command file:                          Files.
+* command line, options:                 Invocation.
+* command syntax, description of:        BNF.
+* commands, names:                       Commands.
+* commands, ordering:                    Order of Commands.
+* commands, structure:                   Commands.
+* compiler, gcc:                         Installation.
+* compiler, recommended:                 Installation.
+* compiling:                             UNIX installation.
+* concatenation:                         String Functions.
+* conditionals:                          Conditionals and Looping.
+* config.h:                              UNIX installation.
+* configuration:                         Configuration.
+* configure, GNU:                        UNIX installation.
+* constructing dates:                    Date Construction.
+* constructing times:                    Time Construction.
+* control flow:                          Conditionals and Looping.
+* convention, TO:                        Sets of Variables.
+* cosine:                                Trigonometry.
+* Covington, Michael A.:                 Credits.
+* credits:                               Credits.
+* cross-case function:                   Miscellaneous Functions.
+* data:                                  Data Input and Output.
+* data file:                             Files.
+* data, embedding in syntax files:       DATA LIST.
+* Data, embedding in syntax files:       BEGIN DATA.
+* data, fixed-format, reading:           DATA LIST FIXED.
+* data, reading from a file:             DATA LIST.
+* date examination:                      Date Extraction.
+* date, Julian:                          Miscellaneous Functions.
+* dates:                                 Time & Date.
+* dates, concepts:                       Time & Date Concepts.
+* dates, constructing:                   Date Construction.
+* dates, day of the month:               Date Extraction.
+* dates, day of the week:                Date Extraction.
+* dates, day of the year:                Date Extraction.
+* dates, day-month-year:                 Date Construction.
+* dates, in days:                        Date Extraction.
+* dates, in hours:                       Date Extraction.
+* dates, in minutes:                     Date Extraction.
+* dates, in months:                      Date Extraction.
+* dates, in quarters:                    Date Extraction.
+* dates, in seconds:                     Date Extraction.
+* dates, in weekdays:                    Date Extraction.
+* dates, in weeks:                       Date Extraction.
+* dates, in years:                       Date Extraction.
+* dates, legal range of:                 Time & Date.
+* dates, mathematical properties of:     Time & Date Concepts.
+* dates, month-year:                     Date Construction.
+* dates, quarter-year:                   Date Construction.
+* dates, time of day:                    Date Extraction.
+* dates, week-year:                      Date Construction.
+* dates, year-day:                       Date Construction.
+* day of the month:                      Date Extraction.
+* day of the week:                       Date Extraction.
+* day of the year:                       Date Extraction.
+* day-month-year:                        Date Construction.
+* days <1>:                              Date Extraction.
+* days <2>:                              Time Extraction.
+* days:                                  Time Construction.
+* delimiters:                            Tokens.
+* description of command syntax:         BNF.
+* deviation, standard:                   Statistical Functions.
+* distribution:                          License.
+* division:                              Arithmetic Operators.
+* documentation, installing:             UNIX installation.
+* dot, terminal <1>:                     BNF.
+* dot, terminal <2>:                     Commands.
+* dot, terminal:                         Tokens.
+* dot, terminal, changing:               Tokens.
+* embedding data in syntax files:        DATA LIST.
+* Embedding data in syntax files:        BEGIN DATA.
+* embedding fixed-format data:           DATA LIST FIXED.
+* EQ:                                    Relational Operators.
+* equality, testing:                     Relational Operators.
+* examination, of times:                 Time Extraction.
+* exponentiation:                        Arithmetic Operators.
+* expression:                            BNF.
+* expressions, mathematical:             Expressions.
+* extraction, of dates:                  Date Extraction.
+* extraction, of time:                   Time Extraction.
+* false:                                 Logical Operators.
+* features, not implemented:             Functions Not Implemented.
+* file, active:                          Files.
+* file, command:                         Files.
+* file, data:                            Files.
+* file, output:                          Files.
+* file, syntax file:                     Files.
+* files, PSPP:                           Introduction.
+* fixed-format data, reading:            DATA LIST FIXED.
+* flow of control:                       Conditionals and Looping.
+* Free Software Foundation <1>:          License.
+* Free Software Foundation:              Introduction.
+* ftp.cdrom.com:                         Credits.
+* function, cross-case:                  Miscellaneous Functions.
+* functions:                             Functions.
+* functions, miscellaneous:              Miscellaneous Functions.
+* functions, missing-value:              Missing Value Functions.
+* functions, not implemented:            Functions Not Implemented.
+* functions, statistical:                Statistical Functions.
+* functions, string:                     String Functions.
+* functions, time & date:                Time & Date.
+* gcc:                                   Installation.
+* GE:                                    Relational Operators.
+* General Public License:                License.
+* Ghostscript:                           Introduction.
+* GNU C compiler:                        Installation.
+* GNU configure:                         UNIX installation.
+* GNU General Public License:            License.
+* GPL:                                   License.
+* graphics:                              Introduction.
+* greater than:                          Relational Operators.
+* greater than or equal to:              Relational Operators.
+* grouping operators:                    Grouping Operators.
+* GT:                                    Relational Operators.
+* hexstrings:                            Tokens.
+* hours <1>:                             Date Extraction.
+* hours:                                 Time Extraction.
+* hours-minutes-seconds:                 Time Construction.
+* identifiers:                           Tokens.
+* inequality, testing:                   Relational Operators.
+* input:                                 Data Input and Output.
+* installation <1>:                      UNIX installation.
+* installation:                          Installation.
+* installation, under UNIX:              UNIX installation.
+* integer:                               BNF.
+* integers:                              Tokens.
+* intersection, logical:                 Logical Operators.
+* introduction:                          Introduction.
+* invalid arguments:                     Time & Date.
+* inverse cosine:                        Trigonometry.
+* inverse sine:                          Trigonometry.
+* inverse tangent:                       Trigonometry.
+* inversion, logical:                    Logical Operators.
+* invocation:                            Invocation.
+* julcal.c:                              Credits.
+* julcal.h:                              Credits.
+* Julian date:                           Miscellaneous Functions.
+* keywords <1>:                          BNF.
+* keywords:                              Tokens.
+* keywords, reserved:                    Tokens.
+* Knuth:                                 Pseudo-Random Numbers.
+* labels, value:                         Attributes.
+* labels, variable:                      Attributes.
+* language, command structure:           Commands.
+* language, lexical analysis:            Tokens.
+* language, PSPP <1>:                    Language.
+* language, PSPP:                        Introduction.
+* language, tokens:                      Tokens.
+* LE:                                    Relational Operators.
+* less than:                             Relational Operators.
+* less than or equal to:                 Relational Operators.
+* lexemes:                               Tokens.
+* lexical analysis:                      Tokens.
+* license:                               License.
+* logarithms:                            Advanced Mathematics.
+* logical intersection:                  Logical Operators.
+* logical inversion:                     Logical Operators.
+* logical operators:                     Logical Operators.
+* logical union:                         Logical Operators.
+* loops:                                 Conditionals and Looping.
+* LT:                                    Relational Operators.
+* makefile:                              UNIX installation.
+* Makefile:                              UNIX installation.
+* mathematical expressions:              Expressions.
+* mathematics:                           Functions.
+* mathematics, advanced:                 Advanced Mathematics.
+* mathematics, applied to times & dates: Time & Date Concepts.
+* mathematics, miscellaneous:            Miscellaneous Mathematics.
+* maximum:                               Statistical Functions.
+* mean:                                  Statistical Functions.
+* membership, of set:                    Set Membership.
+* minimum:                               Statistical Functions.
+* minimum valid number of arguments:     Statistical Functions.
+* Minton, Claire:                        Credits.
+* minutes <1>:                           Date Extraction.
+* minutes:                               Time Extraction.
+* missing values <1>:                    Missing Value Functions.
+* missing values <2>:                    Attributes.
+* missing values:                        Missing Observations.
+* modulus:                               Miscellaneous Mathematics.
+* modulus, by 10:                        Miscellaneous Mathematics.
+* month-year:                            Date Construction.
+* months:                                Date Extraction.
+* multiplication:                        Arithmetic Operators.
+* names, of functions:                   Functions.
+* names, variable:                       Tokens.
+* NE:                                    Relational Operators.
+* negation:                              Arithmetic Operators.
+* nonterminals:                          BNF.
+* NOT:                                   Logical Operators.
+* not implemented:                       Functions Not Implemented.
+* number:                                BNF.
+* numbers:                               Tokens.
+* numbers, converting from strings:      String Functions.
+* numbers, converting to strings:        String Functions.
+* obligations, your:                     License.
+* operations, order of:                  Order of Operations.
+* operator precedence:                   Order of Operations.
+* operators <1>:                         Functions.
+* operators <2>:                         BNF.
+* operators:                             Tokens.
+* operators, arithmetic:                 Arithmetic Operators.
+* operators, grouping:                   Grouping Operators.
+* operators, logical:                    Logical Operators.
+* options, command-line:                 Invocation.
+* OR:                                    Logical Operators.
+* order of commands:                     Order of Commands.
+* order of operations:                   Order of Operations.
+* output:                                Data Input and Output.
+* output file:                           Files.
+* output, PSPP:                          Introduction.
+* padding strings:                       String Functions.
+* parentheses <1>:                       Functions.
+* parentheses:                           Grouping Operators.
+* period:                                Tokens.
+* Pfaff, Ben:                            Credits.
+* portability:                           Tokens.
+* PostScript:                            Introduction.
+* precedence, operator:                  Order of Operations.
+* pref.h:                                UNIX installation.
+* print format:                          Attributes.
+* productions:                           BNF.
+* pseudo-random numbers (see random numbers): Pseudo-Random Numbers.
+* PSPP language:                         Introduction.
+* PSPP, command structure:               Commands.
+* PSPP, configuring:                     Configuration.
+* PSPP, installing <1>:                  UNIX installation.
+* PSPP, installing:                      Installation.
+* PSPP, invoking:                        Invocation.
+* PSPP, language:                        Language.
+* punctuation:                           Tokens.
+* punctuators:                           BNF.
+* quarter-year:                          Date Construction.
+* quarters:                              Date Extraction.
+* quotations:                            Credits.
+* random numbers:                        Pseudo-Random Numbers.
+* random numbers, normally-distributed:  Pseudo-Random Numbers.
+* random numbers, uniformly-distributed: Pseudo-Random Numbers.
+* reading data from a file:              DATA LIST.
+* reading fixed-format data:             DATA LIST FIXED.
+* reals:                                 Tokens.
+* redistribution:                        License.
+* reserved keywords:                     Tokens.
+* rights, your:                          License.
+* rounding:                              Miscellaneous Mathematics.
+* searching strings:                     String Functions.
+* seconds <1>:                           Date Extraction.
+* seconds:                               Time Extraction.
+* self-tests, running:                   UNIX installation.
+* set membership:                        Set Membership.
+* sine:                                  Trigonometry.
+* square roots:                          Advanced Mathematics.
+* standard deviation:                    Statistical Functions.
+* start symbol:                          BNF.
+* statistics:                            Statistical Functions.
+* string:                                BNF.
+* string functions:                      String Functions.
+* strings:                               Tokens.
+* strings, case of:                      String Functions.
+* strings, concatenation of:             String Functions.
+* strings, converting from numbers:      String Functions.
+* strings, converting to numbers:        String Functions.
+* strings, finding length of:            String Functions.
+* strings, padding:                      String Functions.
+* strings, searching backwards:          String Functions.
+* strings, taking substrings of:         String Functions.
+* strings, trimming:                     String Functions.
+* subcommands:                           Commands.
+* substrings:                            String Functions.
+* subtraction:                           Arithmetic Operators.
+* sum:                                   Statistical Functions.
+* symbol, start:                         BNF.
+* syntax file:                           Files.
+* system variables:                      System Variables.
+* system-missing:                        Logical Operators.
+* tangent:                               Trigonometry.
+* terminal dot <1>:                      BNF.
+* terminal dot <2>:                      Commands.
+* terminal dot:                          Tokens.
+* terminal dot, changing:                Tokens.
+* terminals:                             BNF.
+* terminals and nonterminals, differences: BNF.
+* testing for equality:                  Relational Operators.
+* testing for inequality:                Relational Operators.
+* time:                                  Date Extraction.
+* time examination:                      Time Extraction.
+* time, concepts:                        Time & Date Concepts.
+* time, in days <1>:                     Date Extraction.
+* time, in days <2>:                     Time Extraction.
+* time, in days:                         Time Construction.
+* time, in hours <1>:                    Date Extraction.
+* time, in hours:                        Time Extraction.
+* time, in hours-minutes-seconds:        Time Construction.
+* time, in minutes <1>:                  Date Extraction.
+* time, in minutes:                      Time Extraction.
+* time, in seconds <1>:                  Date Extraction.
+* time, in seconds:                      Time Extraction.
+* time, instants of:                     Time & Date Concepts.
+* time, intervals:                       Time & Date Concepts.
+* time, lengths of:                      Time Extraction.
+* time, mathematical properties of:      Time & Date Concepts.
+* times:                                 Time & Date.
+* times, constructing:                   Time Construction.
+* times, in days:                        Date Extraction.
+* TO:                                    Sets of Variables.
+* TO convention:                         Sets of Variables.
+* tokens:                                Tokens.
+* trigonometry:                          Trigonometry.
+* true:                                  Logical Operators.
+* truncation:                            Miscellaneous Mathematics.
+* type of variables:                     Attributes.
+* union, logical:                        Logical Operators.
+* UNIX, installing PSPP under:           UNIX installation.
+* value labels:                          Attributes.
+* values, Boolean:                       Booleans.
+* values, missing <1>:                   Missing Value Functions.
+* values, missing <2>:                   Attributes.
+* values, missing:                       Missing Observations.
+* values, system-missing:                Logical Operators.
+* Van Zandt, James:                      Credits.
+* var-list:                              BNF.
+* var-name:                              BNF.
+* variable labels:                       Attributes.
+* variable names:                        Tokens.
+* variable names, ending with period:    Tokens.
+* variables:                             Variables.
+* variables, attributes of:              Attributes.
+* variables, system:                     System Variables.
+* variables, type:                       Attributes.
+* variables, width:                      Attributes.
+* variance:                              Statistical Functions.
+* variation, coefficient of:             Statistical Functions.
+* Vonnegut, Kurt, Jr.:                   Credits.
+* week:                                  Date Extraction.
+* week-year:                             Date Construction.
+* weekday:                               Date Extraction.
+* whitespace:                            Tokens.
+* whitespace, trimming:                  String Functions.
+* width of variables:                    Attributes.
+* write format:                          Attributes.
+* X':                                    Tokens.
+* year-day:                              Date Construction.
+* years:                                 Date Extraction.
+* your rights and obligations:           License.
+* |:                                     Logical Operators.
+* ~:                                     Logical Operators.
+* ~=:                                    Relational Operators.
+
+\1f
+File: pspp.info,  Node: Command Index,  Prev: Concept Index,  Up: Top
+
+Command Index
+*************
+
+* Menu:
+
+* *:                                     COMMENT.
+* @:                                     INCLUDE.
+* ADD VALUE LABELS:                      ADD VALUE LABELS.
+* AGGREGATE:                             AGGREGATE.
+* APPLY DICTIONARY:                      APPLY DICTIONARY.
+* AUTORECODE:                            AUTORECODE.
+* BEGIN DATA:                            BEGIN DATA.
+* BREAK:                                 BREAK.
+* CLEAR TRANSFORMATIONS:                 CLEAR TRANSFORMATIONS.
+* COMMENT:                               COMMENT.
+* DATA LIST:                             DATA LIST.
+* DATA LIST FIXED:                       DATA LIST FIXED.
+* DATA LIST FREE:                        DATA LIST FREE.
+* DATA LIST LIST:                        DATA LIST LIST.
+* DISPLAY:                               DISPLAY.
+* DISPLAY DOCUMENTS:                     DISPLAY DOCUMENTS.
+* DISPLAY FILE LABEL:                    DISPLAY FILE LABEL.
+* DISPLAY VECTORS:                       DISPLAY VECTORS.
+* DO IF:                                 DO IF.
+* DO REPEAT:                             DO REPEAT.
+* DOCUMENT:                              DOCUMENT.
+* DROP DOCUMENTS:                        DROP DOCUMENTS.
+* END CASE:                              END CASE.
+* END DATA:                              BEGIN DATA.
+* END FILE:                              END FILE.
+* EXECUTE:                               EXECUTE.
+* EXPORT:                                EXPORT.
+* FILE HANDLE:                           FILE HANDLE.
+* FILE LABEL:                            FILE LABEL.
+* FILTER:                                FILTER.
+* FLIP:                                  FLIP.
+* FORMATS:                               FORMATS.
+* GET:                                   GET.
+* IMPORT:                                IMPORT.
+* INCLUDE:                               INCLUDE.
+* INPUT PROGRAM:                         INPUT PROGRAM.
+* LEAVE:                                 LEAVE.
+* LIST:                                  LIST.
+* LOOP:                                  LOOP.
+* MATCH FILES:                           MATCH FILES.
+* MATRIX DATA:                           MATRIX DATA.
+* MISSING VALUES:                        MISSING VALUES.
+* MODIFY VARS:                           MODIFY VARS.
+* N OF CASES:                            N OF CASES.
+* NEW FILE:                              NEW FILE.
+* NUMERIC:                               NUMERIC.
+* PRINT:                                 PRINT.
+* PRINT EJECT:                           PRINT EJECT.
+* PRINT FORMATS:                         PRINT FORMATS.
+* PRINT SPACE:                           PRINT SPACE.
+* PROCESS IF:                            PROCESS IF.
+* QUIT:                                  QUIT.
+* RENAME VARIABLES:                      RENAME VARIABLES.
+* REPEATING DATA:                        REPEATING DATA.
+* REREAD:                                REREAD.
+* SAMPLE:                                SAMPLE.
+* SAVE:                                  SAVE.
+* SELECT IF:                             SELECT IF.
+* SET:                                   SET.
+* SORT CASES:                            SORT CASES.
+* SPLIT FILE:                            SPLIT FILE.
+* STRING:                                STRING.
+* SUBTITLE:                              SUBTITLE.
+* SYSFILE INFO:                          SYSFILE INFO.
+* TEMPORARY:                             TEMPORARY.
+* TITLE:                                 TITLE.
+* VALUE LABELS:                          VALUE LABELS.
+* VARIABLE LABELS:                       VARIABLE LABELS.
+* VECTOR:                                VECTOR.
+* WEIGHT:                                WEIGHT.
+* WRITE:                                 WRITE.
+* WRITE FORMATS:                         WRITE FORMATS.
+* XSAVE:                                 XSAVE.
+
+
index 4c03dfac5d9063910c9f4ca6d6bbc5bee04fe8d7..d4e7739444526b291edf12c01c47bf83b49ce45e 100644 (file)
@@ -34,7 +34,7 @@
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 1.1 $
+\deftexinfoversion$Revision: 1.2 $
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
diff --git a/install-sh b/install-sh
new file mode 100755 (executable)
index 0000000..89fc9b0
--- /dev/null
@@ -0,0 +1,238 @@
+#! /bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+tranformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -d) dir_arg=true
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+           shift
+           continue;;
+
+       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+           shift
+           continue;;
+
+       *)  if [ x"$src" = x ]
+           then
+               src=$1
+           else
+               # this colon is to work around a 386BSD /bin/sh bug
+               :
+               dst=$1
+           fi
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+       echo "install:  no input file specified"
+       exit 1
+else
+       true
+fi
+
+if [ x"$dir_arg" != x ]; then
+       dst=$src
+       src=""
+       
+       if [ -d $dst ]; then
+               instcmd=:
+       else
+               instcmd=mkdir
+       fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+       if [ -f $src -o -d $src ]
+       then
+               true
+       else
+               echo "install:  $src does not exist"
+               exit 1
+       fi
+       
+       if [ x"$dst" = x ]
+       then
+               echo "install:  no destination specified"
+               exit 1
+       else
+               true
+       fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+       if [ -d $dst ]
+       then
+               dst="$dst"/`basename $src`
+       else
+               true
+       fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='   
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+       pathcomp="${pathcomp}${1}"
+       shift
+
+       if [ ! -d "${pathcomp}" ] ;
+        then
+               $mkdirprog "${pathcomp}"
+       else
+               true
+       fi
+
+       pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+       $doit $instcmd $dst &&
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+       if [ x"$transformarg" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               dstfile=`basename $dst $transformbasename | 
+                       sed $transformarg`$transformbasename
+       fi
+
+# don't allow the sed command to completely eliminate the filename
+
+       if [ x"$dstfile" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               true
+       fi
+
+# Make a temp file name in the proper directory.
+
+       dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+       $doit $instcmd $src $dsttmp &&
+
+       trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+       $doit $rmcmd -f $dstdir/$dstfile &&
+       $doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0
diff --git a/lib/Makefile.in b/lib/Makefile.in
new file mode 100644 (file)
index 0000000..f884cc6
--- /dev/null
@@ -0,0 +1,308 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+SUBDIRS = julcal @GMP_SUBDIRS@ misc dcdflib
+DIST_SUBDIRS = julcal gmp misc dcdflib
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+         rev="$$subdir $$rev"; \
+         test "$$subdir" = "." && dot_seen=yes; \
+       done; \
+       test "$$dot_seen" = "no" && rev=". $$rev"; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       for subdir in $(DIST_SUBDIRS); do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           chmod 777 $(distdir)/$$subdir; \
+           (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+             || exit 1; \
+         fi; \
+       done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+               distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/dcdflib/Makefile.in b/lib/dcdflib/Makefile.in
new file mode 100644 (file)
index 0000000..1617604
--- /dev/null
@@ -0,0 +1,301 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+noinst_LIBRARIES = libdcdflib.a
+
+INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl
+
+
+libdcdflib_a_SOURCES = dcdflib.c ipmpar.c
+noinst_HEADERS = cdflib.h
+
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = COPYING
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libdcdflib_a_LIBADD = 
+libdcdflib_a_OBJECTS =  dcdflib.o ipmpar.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+HEADERS =  $(noinst_HEADERS)
+
+DIST_COMMON =  README COPYING ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libdcdflib_a_SOURCES)
+OBJECTS = $(libdcdflib_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/dcdflib/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libdcdflib.a: $(libdcdflib_a_OBJECTS) $(libdcdflib_a_DEPENDENCIES)
+       -rm -f libdcdflib.a
+       $(AR) cru libdcdflib.a $(libdcdflib_a_OBJECTS) $(libdcdflib_a_LIBADD)
+       $(RANLIB) libdcdflib.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/dcdflib
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+dcdflib.o: dcdflib.c cdflib.h
+ipmpar.o: ipmpar.c ../../config.h ../../pref.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/gmp/Makefile.in b/lib/gmp/Makefile.in
new file mode 100644 (file)
index 0000000..3586e75
--- /dev/null
@@ -0,0 +1,371 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+INCLUDES = -I$(srcdir) -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/intl
+
+SUBDIRS = mpn mpf
+
+noinst_LIBRARIES = libgmp.a
+libgmp_a_SOURCES = extract-dbl.c gmp-mparam.h longlong.h gmp-impl.h    gmp.h memory.c mp_clz_tab.c
+
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libgmp_a_LIBADD = 
+libgmp_a_OBJECTS =  extract-dbl.o memory.o mp_clz_tab.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  COPYING.LIB ChangeLog INSTALL Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libgmp_a_SOURCES)
+OBJECTS = $(libgmp_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libgmp.a: $(libgmp_a_OBJECTS) $(libgmp_a_DEPENDENCIES)
+       -rm -f libgmp.a
+       $(AR) cru libgmp.a $(libgmp_a_OBJECTS) $(libgmp_a_LIBADD)
+       $(RANLIB) libgmp.a
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+         rev="$$subdir $$rev"; \
+         test "$$subdir" = "." && dot_seen=yes; \
+       done; \
+       test "$$dot_seen" = "no" && rev=". $$rev"; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/gmp
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       for subdir in $(SUBDIRS); do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           chmod 777 $(distdir)/$$subdir; \
+           (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+             || exit 1; \
+         fi; \
+       done
+
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile install-data-recursive \
+uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/gmp/mpf/Makefile.in b/lib/gmp/mpf/Makefile.in
new file mode 100644 (file)
index 0000000..a2c1887
--- /dev/null
@@ -0,0 +1,293 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir) -I$(top_srcdir)/src      -I$(top_srcdir)/intl
+
+
+noinst_LIBRARIES = libmpf.a
+libmpf_a_SOURCES = clear.c get_str.c iset_d.c set_d.c set_dfl_prec.c
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libmpf_a_LIBADD = 
+libmpf_a_OBJECTS =  clear.o get_str.o iset_d.o set_d.o set_dfl_prec.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libmpf_a_SOURCES)
+OBJECTS = $(libmpf_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/mpf/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libmpf.a: $(libmpf_a_OBJECTS) $(libmpf_a_DEPENDENCIES)
+       -rm -f libmpf.a
+       $(AR) cru libmpf.a $(libmpf_a_OBJECTS) $(libmpf_a_LIBADD)
+       $(RANLIB) libmpf.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/gmp/mpf
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/gmp/mpn/Makefile.in b/lib/gmp/mpn/Makefile.in
new file mode 100644 (file)
index 0000000..b7b27c4
--- /dev/null
@@ -0,0 +1,295 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir) -I$(top_srcdir)/src      -I$(top_srcdir)/intl
+
+
+noinst_LIBRARIES = libmpn.a
+libmpn_a_SOURCES = add_n.c addmul_1.c cmp.c divrem.c get_str.c inlines.c lshift.c mp_bases.c mul.c mul_1.c mul_n.c sub_n.c submul_1.c
+
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libmpn_a_LIBADD = 
+libmpn_a_OBJECTS =  add_n.o addmul_1.o cmp.o divrem.o get_str.o \
+inlines.o lshift.o mp_bases.o mul.o mul_1.o mul_n.o sub_n.o submul_1.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libmpn_a_SOURCES)
+OBJECTS = $(libmpn_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/mpn/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libmpn.a: $(libmpn_a_OBJECTS) $(libmpn_a_DEPENDENCIES)
+       -rm -f libmpn.a
+       $(AR) cru libmpn.a $(libmpn_a_OBJECTS) $(libmpn_a_LIBADD)
+       $(RANLIB) libmpn.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/gmp/mpn
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/julcal/Makefile.in b/lib/julcal/Makefile.in
new file mode 100644 (file)
index 0000000..199e15a
--- /dev/null
@@ -0,0 +1,298 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+noinst_LIBRARIES = libjulcal.a
+
+INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl
+
+
+libjulcal_a_SOURCES = julcal.c
+noinst_HEADERS = julcal.h
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libjulcal_a_LIBADD = 
+libjulcal_a_OBJECTS =  julcal.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+HEADERS =  $(noinst_HEADERS)
+
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libjulcal_a_SOURCES)
+OBJECTS = $(libjulcal_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/julcal/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libjulcal.a: $(libjulcal_a_OBJECTS) $(libjulcal_a_DEPENDENCIES)
+       -rm -f libjulcal.a
+       $(AR) cru libjulcal.a $(libjulcal_a_OBJECTS) $(libjulcal_a_LIBADD)
+       $(RANLIB) libjulcal.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/julcal
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+julcal.o: julcal.c julcal.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/misc/Makefile.in b/lib/misc/Makefile.in
new file mode 100644 (file)
index 0000000..0ee91ab
--- /dev/null
@@ -0,0 +1,304 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+noinst_LIBRARIES = libmisc.a
+
+INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl
+
+
+libmisc_a_SOURCES = qsort.c getopt.c getopt1.c
+libmisc_a_LIBADD = @ALLOCA@ @LIBOBJS@
+libmisc_a_DEPENDENCIES = @ALLOCA@ @LIBOBJS@
+
+EXTRA_DIST = alloca.c getdelim.c getline.c memchr.c memcmp.c memcpy.c memmem.c memmove.c memset.c stpcpy.c strcasecmp.c strerror.c strncasecmp.c strpbrk.c strstr.c strtok_r.c strtol.c strtoul.c
+
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libmisc_a_OBJECTS =  qsort.o getopt.o getopt1.o
+AR = ar
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in alloca.c getdelim.c \
+getline.c memchr.c memcmp.c memmem.c memmove.c memset.c stpcpy.c \
+strcasecmp.c strerror.c strncasecmp.c strpbrk.c strtok_r.c strtol.c \
+strtoul.c
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libmisc_a_SOURCES)
+OBJECTS = $(libmisc_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/misc/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libmisc.a: $(libmisc_a_OBJECTS) $(libmisc_a_DEPENDENCIES)
+       -rm -f libmisc.a
+       $(AR) cru libmisc.a $(libmisc_a_OBJECTS) $(libmisc_a_LIBADD)
+       $(RANLIB) libmisc.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib/misc
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+getopt.o: getopt.c ../../config.h ../../pref.h
+getopt1.o: getopt1.c ../../config.h ../../pref.h
+qsort.o: qsort.c ../../config.h ../../pref.h ../../src/alloc.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/missing b/missing
new file mode 100755 (executable)
index 0000000..7789652
--- /dev/null
+++ b/missing
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+case "$1" in
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing - GNU libit 0.0"
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+  aclocal)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acinclude.m4' or \`configure.in'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`configure.in'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acconfig.h' or \`configure.in'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+          sed 's/\.am$/.in/' |
+          while read f; do touch "$f"; done
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.y)
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.c
+           fi
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.h
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f y.tab.h ]; then
+       echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+       echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.l)
+           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" lex.yy.c
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+       echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  makeinfo)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequirements for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755 (executable)
index 0000000..cc8783e
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Last modified: 1994-03-25
+# Public domain
+
+errstatus=0
+
+for file in ${1+"$@"} ; do 
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d in ${1+"$@"} ; do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp" 1>&2
+        mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
+     fi
+
+     if test ! -d "$pathcomp"; then
+       errstatus=$lasterr
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
new file mode 100644 (file)
index 0000000..6f4931f
--- /dev/null
@@ -0,0 +1,1491 @@
+/* Automatically generated by po2tbl.sed from pspp.pot.  */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+const struct _msg_ent _msg_tbl[] = {
+  {"", 1},
+  {"%s: option `%s' is ambiguous\n", 2},
+  {"%s: option `--%s' doesn't allow an argument\n", 3},
+  {"%s: option `%c%s' doesn't allow an argument\n", 4},
+  {"%s: option `%s' requires an argument\n", 5},
+  {"%s: unrecognized option `--%s'\n", 6},
+  {"%s: unrecognized option `%c%s'\n", 7},
+  {"%s: illegal option -- %c\n", 8},
+  {"%s: invalid option -- %c\n", 9},
+  {"%s: option requires an argument -- %c\n", 10},
+  {"OUTFILE specified multiple times.", 11},
+  {"while expecting COLUMNWISE", 12},
+  {"BREAK specified multiple times.", 13},
+  {"BREAK subcommand not specified.", 14},
+  {"expecting aggregation function", 15},
+  {"Unknown aggregation function %s.", 16},
+  {"expecting `('", 17},
+  {"Missing argument %d to %s.", 18},
+  {"Arguments to %s must be of same type as source variables.", 19},
+  {"expecting `)'", 20},
+  {"\
+Number of source variables (%d) does not match number of target variables \
+(%d).", 21},
+  {"\
+Variable name %s is not unique within the aggregate file dictionary, which \
+contains the aggregate variables and the break variables.", 22},
+  {"\
+A number being treated as a Boolean in an expression was found to have a \
+value other than 0 (false), 1 (true), or the system-missing value.  The \
+result was forced to 0.", 23},
+  {"\
+SYSMIS is not a valid index value for vector %s.  The result will be set to \
+SYSMIS.", 24},
+  {"\
+%g is not a valid index value for vector %s.  The result will be set to \
+SYSMIS.", 25},
+  {"\
+SYSMIS is not a valid index value for vector %s.  The result will be set to \
+the empty string.", 26},
+  {"\
+%g is not a valid index value for vector %s.  The result will be set to the \
+empty string.", 27},
+  {"evaluate_expression(): not implemented: %s\n", 28},
+  {"evaluate_expression(): not implemented: %d\n", 29},
+  {"\
+A string expression was supplied in a place where a Boolean expression was \
+expected.", 30},
+  {"\
+A numeric expression was expected in a place where one was not supplied.", 31},
+  {"A string expression was expected in a place where one was not supplied.", 32},
+  {"The OR operator cannot take string operands.", 33},
+  {"The AND operator cannot take string operands.", 34},
+  {"The NOT operator cannot take a string operand.", 35},
+  {"\
+Strings cannot be compared with numeric or Boolean values with the \
+relational operators = >= > <= < <>.", 36},
+  {"The `+' and `-' operators may only be used with numeric operands.", 37},
+  {"The `*' and `/' operators may only be used with numeric operands.", 38},
+  {"The unary minus (-) operator can only take a numeric operand.", 39},
+  {"Both operands to the ** operator must be numeric.", 40},
+  {"Use of $LENGTH is obsolete, returning default of 66.", 41},
+  {"Use of $WIDTH is obsolete, returning default of 131.", 42},
+  {"Unknown system variable %s.", 43},
+  {"expecting variable name", 44},
+  {"in expression", 45},
+  {"Argument 2 to LAG must be a small positive integer constant.", 46},
+  {"\
+Type mismatch in argument %d of %s, which was expected to be of %s type.  It \
+was actually of %s type. ", 47},
+  {"%s cannot take Boolean operands.", 48},
+  {"in function call", 49},
+  {"RANGE requires an odd number of arguments, but at least three.", 50},
+  {"%s requires at least two arguments.", 51},
+  {"%s.%d requires at least %d arguments.", 52},
+  {"\
+Argument %d to CONCAT is type %s.  All arguments to CONCAT must be strings.", 53},
+  {"\
+Argument %d to %s was expected to be of %s type.  It was actually of type %s.", 54},
+  {"numeric", 55},
+  {"string", 56},
+  {"%s is not a numeric format.", 57},
+  {"Too few arguments to function %s.", 58},
+  {"\
+Type mismatch in argument %d of %s, which was expected to be numeric.  It \
+was actually type %s.", 59},
+  {"Missing comma following argument %d of %s.", 60},
+  {"The index value after a vector name must be numeric.", 61},
+  {"`)' expected after a vector index value.", 62},
+  {"There is no function named %s.", 63},
+  {"Function %s may not be given a minimum number of arguments.", 64},
+  {"expecting `)' after %s function", 65},
+  {"error", 66},
+  {"Boolean", 67},
+  {"!!TERMINAL!!", 68},
+  {"!!SENTINEL!!", 69},
+  {"!!ERROR%d!!", 70},
+  {"postfix:", 71},
+  {"\
+While optimizing a constant expression, there was a bad value for the third \
+argument to INDEX.", 72},
+  {"\
+While optimizing a constant expression, there was a bad value for the third \
+argument to RINDEX.", 73},
+  {"Third argument to %cPAD() must be at least one character in length.", 74},
+  {"Second argument to %cTRIM() must be at least one character in length.", 75},
+  {"\
+When optimizing a constant expression, an integer that was being used as an \
+Boolean value was found to have a constant value other than 0, 1, or SYSMIS.", 76},
+  {"hash table:", 77},
+  {"Searching for `%s'...", 78},
+  {"Search unsuccessful!", 79},
+  {"Found `%s'.", 80},
+  {"Not opening pipe file `%s' because SAFER option set.", 81},
+  {"Variable %s is %s in target file, but %s in source file.", 82},
+  {"Cannot add value labels from source file to long string variable %s.", 83},
+  {"\
+Cannot apply missing values from source file to long string variable %s.", 84},
+  {"No matching variables found between the source and target files.", 85},
+  {"bad ordering of keys %d and %d\n", 86},
+  {"Heap contents:\n", 87},
+  {"data-file error: ", 88},
+  {"(column %d", 89},
+  {"(columns %d-%d", 90},
+  {", field type %s) ", 91},
+  {"Field contents followed by garbage.", 92},
+  {"Overflow in floating-point constant.", 93},
+  {"Underflow in floating-point constant.", 94},
+  {"Field does not form a valid floating-point constant.", 95},
+  {"All characters in field must be digits.", 96},
+  {"Unrecognized character in field.", 97},
+  {"Field must have even length.", 98},
+  {"Field must contain only hex digits.", 99},
+  {"\
+Quality of zoned decimal (Z) input format code is suspect.  Check your \
+results three times, report bugs to author.", 100},
+  {"Zoned decimal field contains fewer than 2 characters.", 101},
+  {"Bad sign byte in zoned decimal number.", 102},
+  {"Format error in zoned decimal number.", 103},
+  {"Error in syntax of zoned decimal number.", 104},
+  {"Unexpected end of field.", 105},
+  {"Digit expected in field.", 106},
+  {"Day (%ld) must be between 1 and 31.", 107},
+  {"Delimiter expected between fields in date.", 108},
+  {"Month (%ld) must be between 1 and 12.", 109},
+  {"Month (%s) must be between I and XII.", 110},
+  {"Month name (%s...) is too long.", 111},
+  {"Bad month name (%s).", 112},
+  {"Year (%ld) must be between 1582 and 19999.", 113},
+  {"Trailing garbage \"%s\" following date.", 114},
+  {"Julian day (%d) must be between 1 and 366.", 115},
+  {"Year (%d) must be between 1582 and 19999.", 116},
+  {"Quarter (%ld) must be between 1 and 4.", 117},
+  {"`Q' expected between quarter and year.", 118},
+  {"Week (%ld) must be between 1 and 53.", 119},
+  {"`WK' expected between week and year.", 120},
+  {"Delimiter expected between fields in time.", 121},
+  {"Hour (%ld) must be positive.", 122},
+  {"Minute (%ld) must be between 0 and 59.", 123},
+  {"Hour (%ld) must be between 0 and 23.", 124},
+  {"Day of the week expected in date value.", 125},
+  {"Date is not in valid range between 15 Oct 1582 and 31 Dec 19999.", 126},
+  {"Field too long (%d characters).  Truncated after character %d.", 127},
+  {"\
+DATA LIST may not use a different file from that specified on its \
+surrounding FILE TYPE.", 128},
+  {"The END subcommand may only be specified once.", 129},
+  {"Only one of FIXED, FREE, or LIST may be specified.", 130},
+  {"\
+The record number specified, %ld, is before the previous record, %d.  Data \
+fields must be listed in order of increasing record number.", 131},
+  {"\
+SPSS-like or FORTRAN-like format specification expected after variable names.", 132},
+  {"\
+Variables are specified on records that should not exist according to \
+RECORDS subcommand.", 133},
+  {"expecting end of command", 134},
+  {"Column positions for fields must be positive.", 135},
+  {"The ending column for a field must be greater than the starting column.", 136},
+  {"A format specifier on this line has extra characters on the end.", 137},
+  {"The value for number of decimal places must be at least 1.", 138},
+  {"Input format %s doesn't accept decimal places.", 139},
+  {"The %d columns %d-%d can't be evenly divided into %d fields.", 140},
+  {"%s is a duplicate variable name.", 141},
+  {"There is already a variable %s of a different type.", 142},
+  {"There is already a string variable %s of a different width.", 143},
+  {"\
+The number of format specifications exceeds the number of variable names \
+given.", 144},
+  {"\
+There aren't enough format specifications to match the number of variable \
+names given.", 145},
+  {"Variable", 146},
+  {"Record", 147},
+  {"Columns", 148},
+  {"Format", 149},
+  {"Reading %d record%s from file %s.", 150},
+  {"Reading %d record%s from the command file.", 151},
+  {"Occurrence data specifications.", 152},
+  {"Reading free-form data from file %s.", 153},
+  {"Reading free-form data from the command file.", 154},
+  {"Scope of string exceeds line.", 155},
+  {"Attempt to read past end of file.", 156},
+  {"abort in write_case()\n", 157},
+  {"Partial case of %d of %d records discarded.", 158},
+  {"Partial case discarded.  The first variable missing was %s.", 159},
+  {"\
+Missing value(s) for all variables from %s onward.  These will be filled \
+with the system-missing value or blanks, as appropriate.", 160},
+  {"\
+REPEATING DATA must use the same file as its corresponding DATA LIST or FILE \
+TYPE.", 161},
+  {"STARTS subcommand given multiple times.", 162},
+  {"STARTS beginning column (%d) exceeds STARTS ending column (%d).", 163},
+  {"OCCURS subcommand given multiple times.", 164},
+  {"LENGTH subcommand given multiple times.", 165},
+  {"CONTINUED subcommand given multiple times.", 166},
+  {"CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d).", 167},
+  {"ID subcommand given multiple times.", 168},
+  {"ID beginning column (%ld) must be positive.", 169},
+  {"ID ending column (%ld) must be positive.", 170},
+  {"ID ending column (%ld) cannot be less than ID beginning column (%d).", 171},
+  {"Missing required specification STARTS.", 172},
+  {"Missing required specification OCCURS.", 173},
+  {"ID specified without CONTINUED.", 174},
+  {"String variable not allowed here.", 175},
+  {"%s (%d) must be at least 1.", 176},
+  {"Variable or integer expected for %s.", 177},
+  {"Mismatched case ID (%s).  Expected value was %s.", 178},
+  {"\
+Variable %s startging in column %d extends beyond physical record length of \
+%d.", 179},
+  {"Invalid value %d for OCCURS.", 180},
+  {"Beginning column for STARTS (%d) must be at least 1.", 181},
+  {"Ending column for STARTS (%d) is less than beginning column (%d).", 182},
+  {"Invalid value %d for LENGTH.", 183},
+  {"Beginning column for CONTINUED (%d) must be at least 1.", 184},
+  {"Ending column for CONTINUED (%d) is less than beginning column (%d).", 185},
+  {"\
+Number of repetitions specified on OCCURS (%d) exceed number of repetitions \
+available in space on STARTS (%d), and CONTINUED not specified.", 186},
+  {"Unexpected end of file with %d repetitions remaining out of %d.", 187},
+  {"%s: Closing data-file handle %s.", 188},
+  {"<<Bug in dfm.c>>", 189},
+  {"%s: Opening data-file handle %s for reading.", 190},
+  {"BEGIN DATA expected.", 191},
+  {"An error occurred while opening \"%s\" for reading as a data file: %s.", 192},
+  {"%s: Opening data-file handle %s for writing.", 193},
+  {"Cannot open the inline file for writing.", 194},
+  {"An error occurred while opening \"%s\" for writing as a data file: %s.", 195},
+  {"\
+Unexpected end-of-file while reading data in BEGIN DATA.  This probably \
+indicates a missing or misformatted END DATA command.  END DATA must appear \
+by itself on a single line with exactly one space between words.", 196},
+  {"Error reading file %s: %s.", 197},
+  {"%s: Partial record at end of file.", 198},
+  {"Cannot read from file %s already opened for %s.", 199},
+  {"Attempt to read beyond end-of-file on file %s.", 200},
+  {"Cannot write to file %s already opened for %s.", 201},
+  {"Error writing file %s: %s.", 202},
+  {"\
+This command is not valid here since the current input program does not \
+access the inline file.", 203},
+  {"inline file: Opening for reading.", 204},
+  {"Skipping remaining inline data.", 205},
+  {"reading as a data file", 206},
+  {"writing as a data file", 207},
+  {"\
+File handle %s had already been defined to refer to file %s.  It is not \
+possible to redefine a file handle within a session.", 208},
+  {"The FILE HANDLE required subcommand NAME is not present.", 209},
+  {"\
+Fixed length records were specified on /RECFORM, but record length was not \
+specified on /LRECL.  80-character records will be assumed.", 210},
+  {"\
+Record length (%ld) must be at least one byte.  80-character records will be \
+assumed.", 211},
+  {"\
+/RECFORM SPANNED is not implemented, as the author doesn't know what it is \
+supposed to do.  Send the author a note.", 212},
+  {"\
+/MODE IMAGE is not implemented, as the author doesn't know what it is \
+supposed to do.  Send the author a note.", 213},
+  {"/MODE MULTIPUNCH is not implemented.  If you care, complain.", 214},
+  {"/MODE 360 is not implemented.  If you care, complain.", 215},
+  {"File handle `%s' has not been previously declared on FILE HANDLE.", 216},
+  {"<Inline File>", 217},
+  {"expecting a file name or handle", 218},
+  {"MIXED, GROUPED, or NESTED expected.", 219},
+  {"The CASE subcommand is not valid on FILE TYPE MIXED.", 220},
+  {"WARN or NOWARN expected after WILD.", 221},
+  {"The DUPLICATE subcommand is not valid on FILE TYPE MIXED.", 222},
+  {"DUPLICATE=CASE is only valid on FILE TYPE NESTED.", 223},
+  {"WARN%s expected after DUPLICATE.", 224},
+  {", NOWARN, or CASE", 225},
+  {" or NOWARN", 226},
+  {"The MISSING subcommand is not valid on FILE TYPE MIXED.", 227},
+  {"WARN or NOWARN after MISSING.", 228},
+  {"ORDERED is only valid on FILE TYPE GROUPED.", 229},
+  {"YES or NO expected after ORDERED.", 230},
+  {"while expecting a valid subcommand", 231},
+  {"The required RECORD subcommand was not present.", 232},
+  {"The required CASE subcommand was not present.", 233},
+  {"CASE and RECORD must specify different variable names.", 234},
+  {"Column value must be positive.", 235},
+  {"Ending column precedes beginning column.", 236},
+  {"Bad format specifier name.", 237},
+  {"\
+This command may only appear within a FILE TYPE/END FILE TYPE structure.", 238},
+  {"OTHER may appear only on the last RECORD TYPE command.", 239},
+  {"No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE.", 240},
+  {"\
+The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE \
+MIXED.", 241},
+  {"\
+No variable name may be specified for the CASE subcommand on RECORD TYPE.", 242},
+  {"\
+The CASE column specification on RECORD TYPE must give a format specifier \
+that is the same type as that of the CASE column specification given on FILE \
+TYPE.", 243},
+  {"WARN or NOWARN expected on DUPLICATE subcommand.", 244},
+  {"WARN or NOWARN expected on MISSING subcommand.", 245},
+  {"YES or NO expected on SPREAD subcommand.", 246},
+  {"No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE.", 247},
+  {"No commands between FILE TYPE and END FILE TYPE.", 248},
+  {"Unknown record type \"%.*s\".", 249},
+  {"Unknown record type %g.", 250},
+  {"X and T format specifiers not allowed here.", 251},
+  {"%s is not a valid data format.", 252},
+  {"Format %s may not be used as an input format.", 253},
+  {"\
+Input format %s specifies a bad width %d.  Format %s requires a width \
+between %d and %d.", 254},
+  {"\
+Input format %s specifies an odd width %d, but format %s requires an even \
+width between %d and %d.", 255},
+  {"\
+Input format %s specifies a bad number of implied decimal places %d.  Input \
+format %s allows up to 16 implied decimal places.", 256},
+  {"\
+Output format %s specifies a bad width %d.  Format %s requires a width \
+between %d and %d.", 257},
+  {"\
+Output format %s requires minimum width %d to allow %d decimal places.  Try \
+%s%d.%d instead of %s.", 258},
+  {"\
+Output format %s specifies an odd width %d, but output format %s requires an \
+even width between %d and %d.", 259},
+  {"\
+Output format %s specifies a bad number of implied decimal places %d.  \
+Output format %s allows a number of implied decimal places between 1 and 16.", 260},
+  {"Can't display a string variable of width %d with format specifier %s.", 261},
+  {"Format specifier expected.", 262},
+  {"Data format %s does not specify a width.", 263},
+  {"Data format %s is not valid.", 264},
+  {"`(' expected after variable list", 265},
+  {"Format %s may not be assigned to a %s variable.", 266},
+  {"`)' expected after output format.", 267},
+  {"Formats:\n", 268},
+  {"  Name      Print         Write\n", 269},
+  {"GET translation table from file to memory:\n", 270},
+  {"  %8s from %3d,%3d to %3d,%3d\n", 271},
+  {"All variables deleted from system file dictionary.", 272},
+  {"\
+Cannot rename %s as %s because there already exists a variable named %s.  To \
+rename variables with overlapping names, use a single RENAME subcommand such \
+as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\".", 273},
+  {"`=' expected after variable list.", 274},
+  {"\
+Number of variables on left side of `=' (%d) do not match number of \
+variables on right side (%d), in parenthesized group %d of RENAME subcommand.", 275},
+  {"Duplicate variables name %s.", 276},
+  {"\
+\n\
+Variables in dictionary:\n", 277},
+  {"The BY subcommand may be given once at most.", 278},
+  {"The active file may not be specified more than once.", 279},
+  {"Cannot specify the active file since no active file has been defined.", 280},
+  {"\
+IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE.", 281},
+  {"Multiple %s subcommands for a single FILE or TABLE.", 282},
+  {"Duplicate variable name %s while creating %s variable.", 283},
+  {"\
+RENAME, KEEP, and DROP subcommands may not occur before the first FILE or \
+TABLE.", 284},
+  {"The BY subcommand is required when a TABLE subcommand is given.", 285},
+  {"File %s lacks BY variable %s.", 286},
+  {"\
+Variable %s in file %s (%s) has different type or width from the same \
+variable in earlier file (%s).", 287},
+  {"expecting COMM or TAPE", 288},
+  {"IMPORT translation table from file to memory:\n", 289},
+  {"No matching INPUT PROGRAM command.", 290},
+  {"\
+No data-input or transformation commands specified between INPUT PROGRAM and \
+END INPUT PROGRAM.", 291},
+  {"\
+This command may only be executed between INPUT PROGRAM and END INPUT \
+PROGRAM.", 292},
+  {"COLUMN subcommand multiply specified.", 293},
+  {"expecting file handle name", 294},
+  {"\
+REREAD: Column numbers must be positive finite numbers.  Column set to 1.", 295},
+  {"VARIABLES subcommand multiply specified.", 296},
+  {"VARNAME_ cannot be explicitly specified on VARIABLES.", 297},
+  {"in FORMAT subcommand", 298},
+  {"SPLIT subcommand multiply specified.", 299},
+  {"in SPLIT subcommand", 300},
+  {"Split variable may not be named ROWTYPE_ or VARNAME_.", 301},
+  {"Split variable %s is already another type.", 302},
+  {"FACTORS subcommand multiply specified.", 303},
+  {"Factor variable %s is already another type.", 304},
+  {"CELLS subcommand multiply specified.", 305},
+  {"expecting positive integer", 306},
+  {"N subcommand multiply specified.", 307},
+  {"CONTENTS subcommand multiply specified.", 308},
+  {"Nested parentheses not allowed.", 309},
+  {"Mismatched right parenthesis (`(').", 310},
+  {"Empty parentheses not allowed.", 311},
+  {"in CONTENTS subcommand", 312},
+  {"Content multiply specified for %s.", 313},
+  {"Missing right parenthesis.", 314},
+  {"Missing VARIABLES subcommand.", 315},
+  {"\
+CONTENTS subcommand not specified: assuming file contains only CORR matrix.", 316},
+  {"\
+Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in \
+the data and factors are present.", 317},
+  {"Split file values must be present in the data when ROWTYPE_ is present.", 318},
+  {"No continuous variables specified.", 319},
+  {"End of line expected %s while reading %s.", 320},
+  {"expecting value for %s %s", 321},
+  {"Syntax error expecting SPLIT FILE value %s.", 322},
+  {"Expecting value %g for %s.", 323},
+  {"Syntax error expecting factor value %s.", 324},
+  {"Syntax error expecting value %g for %s %s.", 325},
+  {"Syntax error %s expecting SPLIT FILE value.", 326},
+  {"\
+Expected %d lines of data for %s content; actually saw %d lines.  No data \
+will be output for this content.", 327},
+  {"Multiply specified ROWTYPE_ %s.", 328},
+  {"Syntax error %s expecting ROWTYPE_ string.", 329},
+  {"Syntax error %s.", 330},
+  {"Duplicate specification for %s.", 331},
+  {"Too many rows of matrix data for %s.", 332},
+  {"Syntax error expecting value for %s %s.", 333},
+  {"portable file %s corrupt at offset %ld: ", 334},
+  {"%s: Closing portable file: %s.", 335},
+  {"Unexpected end of file.", 336},
+  {"Bad line end.", 337},
+  {"Cannot read file %s as portable file: already opened for %s.", 338},
+  {"%s: Opening portable-file handle %s for reading.", 339},
+  {"\
+An error occurred while opening \"%s\" for reading as a portable file: %s.", 340},
+  {"Data record expected.", 341},
+  {"Read portable-file dictionary successfully.", 342},
+  {"Error reading portable-file dictionary.", 343},
+  {"Missing numeric terminator.", 344},
+  {"Bad integer format.", 345},
+  {"Bad string length %d.", 346},
+  {"Bad date string length %d.", 347},
+  {"Bad character in date.", 348},
+  {"Bad time string length %d.", 349},
+  {"Bad character in time.", 350},
+  {"%s: Bad format specifier byte %d.", 351},
+  {"%s: Bad format specifier byte (%d).", 352},
+  {"%s variable %s has %s format specifier %s.", 353},
+  {"String", 354},
+  {"Numeric", 355},
+  {"Expected variable count record.", 356},
+  {"Invalid number of variables %d.", 357},
+  {"Unexpected flag value %d.", 358},
+  {"Expected variable record.", 359},
+  {"Invalid variable width %d.", 360},
+  {"position %d: Variable name has %u characters.", 361},
+  {"position %d: Variable name begins with invalid character.", 362},
+  {"position %d: Variable name begins with lowercase letter %c.", 363},
+  {"position %d: Variable name character %d is lowercase letter %c.", 364},
+  {"position %d: character `\\%03o' is not valid in a variable name.", 365},
+  {"Duplicate variable name %s.", 366},
+  {"Bad missing values for %s.", 367},
+  {"Weighting variable %s not present in dictionary.", 368},
+  {"Unknown variable %s while parsing value labels.", 369},
+  {"\
+Cannot assign value labels to %s and %s, which have different variable types \
+or widths.", 370},
+  {"Duplicate label for value %g for variable %s.", 371},
+  {"Duplicate label for value `%.*s' for variable %s.", 372},
+  {"End of file midway through case.", 373},
+  {"reading as a portable file", 374},
+  {"Cannot write file %s as portable file: already opened for %s.", 375},
+  {"%s: Opening portable-file handle %s for writing.", 376},
+  {"\
+An error occurred while opening \"%s\" for writing as a portable file: %s.", 377},
+  {"Wrote portable-file header successfully.", 378},
+  {"Error writing portable-file header.", 379},
+  {"%s: Writing portable file: %s.", 380},
+  {"writing as a portable file", 381},
+  {"corrupt system file: ", 382},
+  {"%s: Closing system file: %s.", 383},
+  {"Cannot read file %s as system file: already opened for %s.", 384},
+  {"%s: Opening system-file handle %s for reading.", 385},
+  {"\
+An error occurred while opening \"%s\" for reading as a system file: %s.", 386},
+  {"\
+%s: Weighting variable may not be a continuation of a long string variable.", 387},
+  {"%s: Weighting variable may not be a string variable.", 388},
+  {"\
+%s: Orphaned variable index record (type 4).  Type 4 records must always \
+immediately follow type 3 records.", 389},
+  {"%s: Unrecognized record type 7, subtype %d encountered in system file.", 390},
+  {"%s: Unrecognized record type %d.", 391},
+  {"Read system-file dictionary successfully.", 392},
+  {"Error reading system-file header.", 393},
+  {"\
+%s: Bad size (%d) or count (%d) field on record type 7, subtype 3.\tExpected \
+size %d, count 8.", 394},
+  {"\
+%s: Floating-point representation in system file is not IEEE-754.  PSPP \
+cannot convert between floating-point formats.", 395},
+  {"\
+%s: File-indicated endianness (%s) does not match endianness intuited from \
+file header (%s).", 396},
+  {"big-endian", 397},
+  {"little-endian", 398},
+  {"unknown", 399},
+  {"%s: File-indicated character representation code (%s) is not ASCII.", 400},
+  {"DEC Kanji", 401},
+  {"Unknown", 402},
+  {"\
+%s: Bad size (%d) or count (%d) field on record type 7, subtype 4.\tExpected \
+size %d, count 8.", 403},
+  {"\
+%s: File-indicated value is different from internal value for at least one \
+of the three system values.  SYSMIS: indicated %g, expected %g; HIGHEST: %g, \
+%g; LOWEST: %g, %g.", 404},
+  {"\
+%s: Bad magic.  Proper system files begin with the four characters `$FL2'. \
+This file will not be read.", 405},
+  {"\
+%s: File layout code has unexpected value %d.  Value should be 2, in \
+big-endian or little-endian format.", 406},
+  {"%s: Number of elements per case (%d) is not between 1 and %d.", 407},
+  {"\
+%s: Index of weighting variable (%d) is not between 0 and number of elements \
+per case (%d).", 408},
+  {"%s: Number of cases in file (%ld) is not between -1 and %d.", 409},
+  {"%s: Compression bias (%g) is not the usual value of 100.", 410},
+  {"%s: position %d: Bad record type (%d); the expected value was 2.", 411},
+  {"\
+%s: position %d: String variable does not have proper number of continuation \
+records.", 412},
+  {"%s: position %d: Superfluous long string continuation record.", 413},
+  {"%s: position %d: Bad variable type code %d.", 414},
+  {"%s: position %d: Variable label indicator field is not 0 or 1.", 415},
+  {"\
+%s: position %d: Missing value indicator field is not -3, -2, 0, 1, 2, or 3.", 416},
+  {"%s: position %d: Variable name begins with invalid character.", 417},
+  {"%s: position %d: Variable name begins with lowercase letter %c.", 418},
+  {"\
+%s: position %d: Variable name begins with octothorpe (`#').  Scratch \
+variables should not appear in system files.", 419},
+  {"%s: position %d: Variable name character %d is lowercase letter %c.", 420},
+  {"\
+%s: position %d: character `\\%03o' (%c) is not valid in a variable name.", 421},
+  {"%s: Variable %s indicates variable label of invalid length %d.", 422},
+  {"%s: Long string variable %s may not have missing values.", 423},
+  {"\
+%s: String variable %s may not have missing values specified as a range.", 424},
+  {"%s: Long string continuation records omitted at end of dictionary.", 425},
+  {"\
+%s: System file header indicates %d variable positions but %d were read from \
+file.", 426},
+  {"%s: Duplicate variable name `%s' within system file.", 427},
+  {"%s: %s variable %s has %s format specifier %s.", 428},
+  {"\
+%s: Variable index record (type 4) does not immediately follow value label \
+record (type 3) as it ought.", 429},
+  {"\
+%s: Number of variables associated with a value label (%d) is not between 1 \
+and the number of variables (%d).", 430},
+  {"\
+%s: Variable index associated with value label (%d) is not between 1 and the \
+number of values (%d).", 431},
+  {"\
+%s: Variable index associated with value label (%d) refers to a continuation \
+of a string variable, not to an actual variable.", 432},
+  {"%s: Value labels are not allowed on long string variables (%s).", 433},
+  {"\
+%s: Variables associated with value label are not all of identical type.  \
+Variable %s has %s type, but variable %s has %s type.", 434},
+  {"%s: File contains duplicate label for value %g for variable %s.", 435},
+  {"%s: File contains duplicate label for value `%.*s' for variable %s.", 436},
+  {"%s: Reading system file: %s.", 437},
+  {"%s: Unexpected end of file.", 438},
+  {"%s: System file contains multiple type 6 (document) records.", 439},
+  {"%s: Number of document lines (%ld) must be greater than 0.", 440},
+  {"dictionary:\n", 441},
+  {"num", 442},
+  {"str", 443},
+  {"left", 444},
+  {"right", 445},
+  {"none", 446},
+  {"one", 447},
+  {"two", 448},
+  {"three", 449},
+  {"range", 450},
+  {"low", 451},
+  {"high", 452},
+  {"range+1", 453},
+  {"low+1", 454},
+  {"high+1", 455},
+  {"%s: Error reading file: %s.", 456},
+  {"%s: Compressed data is corrupted.  Data ends partway through a case.", 457},
+  {"%s: Partial record at end of system file.", 458},
+  {"reading as a system file", 459},
+  {"Cannot write file %s as system file: already opened for %s.", 460},
+  {"%s: Opening system-file handle %s for writing.", 461},
+  {"\
+An error occurred while opening \"%s\" for writing as a system file: %s.", 462},
+  {"Wrote system-file header successfully.", 463},
+  {"Error writing system-file header.", 464},
+  {"%s: Writing system file: %s.", 465},
+  {"writing as a system file", 466},
+  {"File:", 467},
+  {"Label:", 468},
+  {"No label.", 469},
+  {"Created:", 470},
+  {"Endian:", 471},
+  {"Big.", 472},
+  {"Little.", 473},
+  {"<internal error>", 474},
+  {"Variables:", 475},
+  {"Cases:", 476},
+  {"Type:", 477},
+  {"System File.", 478},
+  {"Weight:", 479},
+  {"Not weighted.", 480},
+  {"Mode:", 481},
+  {"Compression %s.", 482},
+  {"on", 483},
+  {"off", 484},
+  {"Description", 485},
+  {"Position", 486},
+  {"The active file does not have a file label.", 487},
+  {"File label:", 488},
+  {"No variables to display.", 489},
+  {"Macros not supported.", 490},
+  {"The active file dictionary does not contain any documents.", 491},
+  {"Documents in the active file:", 492},
+  {"Label", 493},
+  {"Format: %s", 494},
+  {"Print Format: %s", 495},
+  {"Write Format: %s", 496},
+  {"Missing Values: ", 497},
+  {"Value", 498},
+  {"No vectors defined.", 499},
+  {"Vector", 500},
+  {"%s not allowed inside FILE TYPE/END FILE TYPE.", 501},
+  {"%s not allowed inside FILE TYPE GROUPED/END FILE TYPE.", 502},
+  {"RECORD TYPE must be the first command inside a FILE TYPE structure.", 503},
+  {"This line does not begin with a valid command name.", 504},
+  {"%s is not yet implemented.", 505},
+  {"\
+%s is not allowed (1) before a command to specify the input program, such as \
+DATA LIST, (2) between FILE TYPE and END FILE TYPE, (3) between INPUT \
+PROGRAM and END INPUT PROGRAM.", 506},
+  {"%s is not allowed within an input program.", 507},
+  {"%s is only allowed within an input program.", 508},
+  {"%s command beginning\n", 509},
+  {"\
+%s command completed\n\
+\n", 510},
+  {"The identifier(s) specified do not form a valid command name:", 511},
+  {"The identifier(s) specified do not form a complete command name:", 512},
+  {"\
+This command is not accepted in a syntax file.  Instead, use FINISH to \
+terminate a syntax file.", 513},
+  {"\
+This command is not executed in interactive mode.  Instead, PSPP drops down \
+to the command prompt.  Use EXIT if you really want to quit.", 514},
+  {"The sentinel may not be the empty string.", 515},
+  {"This command not allowed when the SAFER option is set.", 516},
+  {"Error removing `%s': %s.", 517},
+  {"Couldn't fork: %s.", 518},
+  {"Error executing command: %s.", 519},
+  {"No operating system support for this command.", 520},
+  {"This command is not valid in a syntax file.", 521},
+  {"Can't find `%s' in include file search path.", 522},
+  {"%s: Opening as syntax file.", 523},
+  {"Opening `%s': %s.", 524},
+  {"Reading `%s': %s.", 525},
+  {"Closing `%s': %s.", 526},
+  {"%s does not form a valid number.", 527},
+  {"Bad character in input: `%c'.", 528},
+  {"Bad character in input: `\\%o'.", 529},
+  {"Syntax error at end of file.", 530},
+  {"Syntax error %s at `%s'.", 531},
+  {"Syntax error at `%s'.", 532},
+  {"expecting `%s'", 533},
+  {"expecting %s", 534},
+  {"expecting string", 535},
+  {"expecting integer", 536},
+  {"expecting number", 537},
+  {"expecting identifier", 538},
+  {"The rest of this command has been discarded.", 539},
+  {"<ERROR>", 540},
+  {"binary", 541},
+  {"octal", 542},
+  {"hex", 543},
+  {"String of %s digits has %d characters, which is not a multiple of %d.", 544},
+  {"`%c' is not a valid %s digit.", 545},
+  {"Unterminated string constant.", 546},
+  {"String exceeds 255 characters in length (%d characters).", 547},
+  {"\
+Sorry, literal strings may not contain null characters.  Replacing with \
+spaces.", 548},
+  {"-f not yet implemented\n", 549},
+  {"-n not yet implemented\n", 550},
+  {"-p not yet implemented\n", 551},
+  {"\
+\n\
+Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.\n\
+This is free software; see the source for copying conditions.  There is NO\n\
+WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
+\n\
+Written by Ben Pfaff <blp@gnu.org>.", 552},
+  {"\
+PSPP, a program for statistical analysis of sample data.\n\
+\n\
+Usage: %s [OPTION]... FILE...\n\
+\n\
+If a long option shows an argument as mandatory, then it is mandatory\n\
+for the equivalent short option also.  Similarly for optional arguments.\n\
+\n\
+Configuration:\n\
+  -B, --config-dir=DIR      set configuration directory to DIR\n\
+  -o, --device=DEVICE       select output driver DEVICE and disable \
+defaults\n\
+  -d, --define=VAR[=VALUE]  set environment variable VAR to VALUE, or empty\n\
+  -u, --undef=VAR           undefine environment variable VAR\n\
+\n\
+Input and output:\n\
+  -f, --out-file=FILE       send output to FILE (overwritten)\n\
+  -p, --pipe                read script from stdin, send output to stdout\n\
+  -I-, --no-include         clear include path\n\
+  -I, --include=DIR         append DIR to include path\n\
+  -c, --command=COMMAND     execute COMMAND before .pspp/rc at startup\n\
+\n\
+Language modifiers:\n\
+  -i, --interactive         interpret scripts in interactive mode\n\
+  -n, --edit                just check syntax; don't actually run the code\n\
+  -r, --no-statrc           disable execution of .pspp/rc at startup\n\
+  -s, --safer               don't allow some unsafe operations\n\
+\n\
+Informative output:\n\
+  -h, --help                print this help, then exit\n\
+  -l, --list                print a list of known driver classes, then exit\n\
+  -V, --version             show PSPP version, then exit\n\
+  -v, --verbose             increments verbosity level\n\
+\n\
+Non-option arguments:\n\
+ FILE1 FILE2                run FILE1, clear the dictionary, run FILE2\n\
+ FILE1 + FILE2              run FILE1 then FILE2 without clearing \
+dictionary\n\
+ KEY=VALUE                  overrides macros in output initialization file\n\
+\n", 553},
+  {"\
+\n\
+Report bugs to <bug-gnu-pspp@gnu.org>.\n", 554},
+  {"Terminating NOW due to a fatal error!", 555},
+  {"Terminating execution of syntax file due to error.", 556},
+  {"Errors (%d) exceeds limit (%d).", 557},
+  {"Warnings (%d) exceed limit (%d).", 558},
+  {"fatal", 559},
+  {"warning", 560},
+  {"note", 561},
+  {"installation error", 562},
+  {"\
+\n\
+\t*********************\n\
+\t* INDUCING SEGFAULT *\n\
+\t*********************\n", 563},
+  {"\
+Your machine does not appear to be either big- or little-endian.  At the \
+moment, PSPP only supports machines of these standard endiannesses.  If you \
+want to hack in others, contact the author.", 564},
+  {"data> ", 565},
+  {"Specify a terminal type with `setenv TERM <yourtype>'.", 566},
+  {"Could not access the termcap data base.", 567},
+  {"Terminal type `%s' is not defined.", 568},
+  {"Assuming screen of size 79x25.", 569},
+  {"Jan", 570},
+  {"Feb", 571},
+  {"Mar", 572},
+  {"Apr", 573},
+  {"May", 574},
+  {"Jun", 575},
+  {"Jul", 576},
+  {"Aug", 577},
+  {"Sep", 578},
+  {"Oct", 579},
+  {"Nov", 580},
+  {"Dec", 581},
+  {"Error initializing output drivers.", 582},
+  {"This command not executed.", 583},
+  {"\
+Skipping the rest of this command.  Part of this command may have been \
+executed.", 584},
+  {"\
+Skipping the rest of this command.  This command was fully executed up to \
+this point.", 585},
+  {"\
+Trailing garbage was encountered following this command.  The command was \
+fully executed to this point.", 586},
+  {"ASCII driver initializing as `%s'...", 587},
+  {"\
+ascii driver: Area of page excluding margins and headers must be at least 59 \
+characters wide by 15 lines long.  Page as configured is only %d characters \
+by %d lines.", 588},
+  {"%s: Initialization complete.", 589},
+  {"%s: Beginning closing...", 590},
+  {"%s: Finished closing.", 591},
+  {"\
+Bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d \
+decimal, with INDEX expressed in base 4.", 592},
+  {"Duplicate value for key `%s'.", 593},
+  {"Unknown configuration parameter `%s' for ascii device driver.", 594},
+  {"\
+Unknown character set `%s'.  Valid character sets are `ascii' and `latin1'.", 595},
+  {"\
+Unknown overstrike style `%s'.  Valid overstrike styles are `single' and \
+`line'.", 596},
+  {"\
+Unknown carriage return style `%s'.  Valid carriage return styles are `cr' \
+and `bs'.", 597},
+  {"Positive integer required as value for `%s'.", 598},
+  {"Zero or positive integer required as value for `%s'.", 599},
+  {"Boolean value expected for %s.", 600},
+  {"ASCII output driver: %s: %s", 601},
+  {"ascii_line_horz: bad hline (%d,%d),%d out of (%d,%d)\n", 602},
+  {"ascii_line_vert: bad vline %d,(%d,%d) out of (%d,%d)\n", 603},
+  {"ascii_line_intersection: bad intsct (%d,%d) out of (%d,%d)\n", 604},
+  {"%s: horiz=%d, vert=%d\n", 605},
+  {"Writing `%s': %s", 606},
+  {"%s - Page %d", 607},
+  {"\
+The N output format cannot be used to output a negative number or the \
+system-missing value.", 608},
+  {"\
+Quality of zoned decimal (Z) output format code is suspect.  Check your \
+results, report bugs to author.", 609},
+  {"The system-missing value cannot be output as a zoned decimal number.", 610},
+  {"Number %g too big to fit in field with format Z%d.%d.", 611},
+  {"Time value %g too large in magnitude to convert to alphanumeric time.", 612},
+  {"Weekday index %d does not lie between 1 and 7.", 613},
+  {"Month index %d does not lie between 1 and 12.", 614},
+  {"\
+Year %d cannot be represented in four digits for output formatting purposes.", 615},
+  {"%s: Opening Groff font file...", 616},
+  {"Missing font name.", 617},
+  {"Missing encoding filename.", 618},
+  {"Bad spacewidth value.", 619},
+  {"Bad slant value.", 620},
+  {"Unknown ligature `%s'.", 621},
+  {"Unexpected end of line reading character set.", 622},
+  {"Can't use ditto mark for first character.", 623},
+  {"Can't ditto into an unnamed character.", 624},
+  {"Missing metrics for character `%s'.", 625},
+  {"Missing type for character `%s'.", 626},
+  {"Missing code for character `%s'.", 627},
+  {"Malformed kernpair.", 628},
+  {"Unexpected end of line reading kernpairs.", 629},
+  {"Bad kern value.", 630},
+  {"Font read successfully with internal name %s.", 631},
+  {"Error reading font.", 632},
+  {"installation error: Groff font error: ", 633},
+  {"Bad character \\%3o.", 634},
+  {"Groff font error: Cannot find \"%s\".", 635},
+  {"%s: Opening Groff description file...", 636},
+  {"Multiple `sizes' declarations.", 637},
+  {"Unexpected end of file.  Missing 0 terminator to `sizes' command?", 638},
+  {"Bad argument to `sizes'.", 639},
+  {"Bad range in argument to `sizes'.", 640},
+  {"Family name expected.", 641},
+  {"This command already specified.", 642},
+  {"%s: Device characteristic already defined.", 643},
+  {"%s: Invalid numeric format.", 644},
+  {"Missing `res', `unitwidth', and/or `sizes' line(s).", 645},
+  {"Description file read successfully.", 646},
+  {"Error reading description file.", 647},
+  {"<<fallback>>", 648},
+  {"HTML driver initializing as `%s'...", 649},
+  {"Unknown configuration parameter `%s' for HTML device driver.", 650},
+  {"\
+Cannot find HTML prologue.  The use of `-vv' on the command line is \
+suggested as a debugging aid.", 651},
+  {"%s: %s: Opening HTML prologue...", 652},
+  {"nobody", 653},
+  {"nowhere", 654},
+  {"%s: HTML prologue read successfully.", 655},
+  {"%s: Error reading HTML prologue.", 656},
+  {"HTML output driver: %s: %s", 657},
+  {"Cannot open first page on HTML device %s.", 658},
+  {"Unknown output driver `%s'.", 659},
+  {"Output driver `%s' referenced but never defined.", 660},
+  {"Cannot find output initialization file.  Use `-vv' to view search path.", 661},
+  {"%s: Opening device description file...", 662},
+  {"Opening %s: %s.", 663},
+  {"Reading %s: %s.", 664},
+  {"Syntax error.", 665},
+  {"Closing %s: %s.", 666},
+  {"No output drivers are active.", 667},
+  {"Device definition file read successfully.", 668},
+  {"Error reading device definition file.", 669},
+  {"\
+Driver classes:\n\
+\t", 670},
+  {"Syntax error in string constant.", 671},
+  {"Syntax error in options.", 672},
+  {"Syntax error in options (`=' expected).", 673},
+  {"Syntax error in options (value expected after `=').", 674},
+  {"Driver name expected.", 675},
+  {"Class name expected.", 676},
+  {"Unknown output driver class `%s'.", 677},
+  {"Can't initialize output driver class `%s'.", 678},
+  {"Can't initialize output driver `%s' of class `%s'.", 679},
+  {"Unknown device type `%s'.", 680},
+  {"Can't complete initialization of output driver `%s' of class `%s'.", 681},
+  {"Can't deinitialize output driver class `%s'.", 682},
+  {"Trying to find keyword `%s'...\n", 683},
+  {"Unit \"%s\" is unknown in dimension \"%s\".", 684},
+  {"Bad dimension \"%s\".", 685},
+  {"`x' expected in paper size `%s'.", 686},
+  {"Trailing garbage `%s' on paper size `%s'.", 687},
+  {"Paper size name must not be empty.", 688},
+  {"Cannot find `papersize' configuration file.", 689},
+  {"%s: Opening paper size definition file...", 690},
+  {"Syntax error in paper size definition.", 691},
+  {"Paper size definition file read successfully.", 692},
+  {"Error reading paper size definition file.", 693},
+  {"Error closing page on %s device of %s class.", 694},
+  {"Error opening page on %s device of %s class.", 695},
+  {"PostScript driver initializing as `%s'...", 696},
+  {"\
+PostScript driver: The defined page is not long enough to hold margins and \
+headers, plus least 15 lines of the default fonts.  In fact, there's only \
+room for %d lines of each font at the default size of %d.%03d points.", 697},
+  {"Unknown configuration parameter `%s' for PostScript device driver.", 698},
+  {"\
+Unknown orientation `%s'.  Valid orientations are `portrait' and `landscape'.", 699},
+  {"\
+Unknown value for `data'.  Valid values are `clean7bit', `clean8bit', and \
+`binary'.", 700},
+  {"Unknown value for `line-ends'.  Valid values are `lf' and `crlf'.", 701},
+  {"Unknown value for `line-style'.  Valid values are `thick' and `double'.", 702},
+  {"\
+Default font size must be at least 1 point (value of 1000 for key `%s').", 703},
+  {"Value for `%s' must be a dimension of positive length (i.e., `1in').", 704},
+  {"Nonnegative integer required as value for `%s'.", 705},
+  {"%s: %s: Opening PostScript font encoding...", 706},
+  {"\
+PostScript driver: Cannot open encoding file `%s': %s.  Substituting \
+ISOLatin1Encoding for missing encoding.", 707},
+  {"PostScript driver: Invalid numeric format.", 708},
+  {"\
+PostScript driver: Codes must be between 0 and 255.  (%d is not allowed.)", 709},
+  {"PostScript driver: Error closing encoding file `%s'.", 710},
+  {"%s: PostScript font encoding read successfully.", 711},
+  {"%s: %s: Opening PostScript encoding list file.", 712},
+  {"%s: PostScript encoding list file read successfully.", 713},
+  {"<<default encoding>>", 714},
+  {"\
+Cannot find PostScript prologue.  The use of `-vv' on the command line is \
+suggested as a debugging aid.", 715},
+  {"%s: %s: Opening PostScript prologue...", 716},
+  {"%s: PostScript prologue read successfully.", 717},
+  {"%s: Error reading PostScript prologue.", 718},
+  {"PostScript output driver: %s: %s", 719},
+  {"PostScript driver: Cannot find encoding `%s' for PostScript font `%s'.", 720},
+  {"bad vline: x=%d+%d=%d y=(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n", 721},
+  {"bad hline: x=(%d+%d=%d,%d+%d=%d) y=%d+%d=%d in table size (%d,%d)\n", 722},
+  {"\
+bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n", 723},
+  {"There is no DO IF to match with this ELSE IF.", 724},
+  {"The ELSE command must follow all ELSE IF commands in a DO IF structure.", 725},
+  {"End of command expected.", 726},
+  {"There is no DO IF to match with this ELSE.", 727},
+  {"\
+There may be at most one ELSE clause in each DO IF structure.  It must be \
+the last clause.", 728},
+  {"There is no DO IF to match with this END IF.", 729},
+  {"DO IF %d: true\n", 730},
+  {"DO IF %d: false\n", 731},
+  {"DO IF %d: missing\n", 732},
+  {"\
+Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE.", 733},
+  {"Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS.", 734},
+  {"expecting BY", 735},
+  {"VARIABLES must be specified before TABLES.", 736},
+  {"Maximum value (%ld) less than minimum value (%ld).", 737},
+  {"Summary.", 738},
+  {"Cases", 739},
+  {"Valid", 740},
+  {"Missing", 741},
+  {"Total", 742},
+  {"N", 743},
+  {"Percent", 744},
+  {"count", 745},
+  {"row %", 746},
+  {"column %", 747},
+  {"total %", 748},
+  {"expected", 749},
+  {"residual", 750},
+  {"std. resid.", 751},
+  {"adj. resid.", 752},
+  {"Statistic", 753},
+  {"df", 754},
+  {"Asymp. Sig. (2-sided)", 755},
+  {"Exact. Sig. (2-sided)", 756},
+  {"Exact. Sig. (1-sided)", 757},
+  {"Category", 758},
+  {"Asymp. Std. Error", 759},
+  {"Approx. T", 760},
+  {"Approx. Sig.", 761},
+  {" 95%% Confidence Interval", 762},
+  {"Lower", 763},
+  {"Upper", 764},
+  {"Type", 765},
+  {"Pearson Chi-Square", 766},
+  {"Likelihood Ratio", 767},
+  {"Fisher's Exact Test", 768},
+  {"Continuity Correction", 769},
+  {"Linear-by-Linear Association", 770},
+  {"N of Valid Cases", 771},
+  {"Nominal by Nominal", 772},
+  {"Ordinal by Ordinal", 773},
+  {"Interval by Interval", 774},
+  {"Measure of Agreement", 775},
+  {"Phi", 776},
+  {"Cramer's V", 777},
+  {"Contingency Coefficient", 778},
+  {"Kendall's tau-b", 779},
+  {"Kendall's tau-c", 780},
+  {"Gamma", 781},
+  {"Spearman Correlation", 782},
+  {"Pearson's R", 783},
+  {"Kappa", 784},
+  {"Odds Ratio for %s (%g / %g)", 785},
+  {"Odds Ratio for %s (%.*s / %.*s)", 786},
+  {"For cohort %s = %g", 787},
+  {"For cohort %s = %.*s", 788},
+  {"Nominal by Interval", 789},
+  {"Lambda", 790},
+  {"Goodman and Kruskal tau", 791},
+  {"Uncertainty Coefficient", 792},
+  {"Somers' d", 793},
+  {"Eta", 794},
+  {"Symmetric", 795},
+  {"%s Dependent", 796},
+  {"Mean", 797},
+  {"mean", 798},
+  {"S.E. Mean", 799},
+  {"S E Mean", 800},
+  {"SE", 801},
+  {"standard error of mean", 802},
+  {"Std Dev", 803},
+  {"SD", 804},
+  {"standard deviation", 805},
+  {"Variance", 806},
+  {"Var", 807},
+  {"variance", 808},
+  {"Kurtosis", 809},
+  {"Kurt", 810},
+  {"kurtosis", 811},
+  {"S.E. Kurt", 812},
+  {"S E Kurt", 813},
+  {"SEKurt", 814},
+  {"standard error of kurtosis", 815},
+  {"Skewness", 816},
+  {"Skew", 817},
+  {"skewness", 818},
+  {"S.E. Skew", 819},
+  {"S E Skew", 820},
+  {"SESkew", 821},
+  {"standard error of skewness", 822},
+  {"Range", 823},
+  {"Rng", 824},
+  {"Minimum", 825},
+  {"Min", 826},
+  {"minimum", 827},
+  {"Maximum", 828},
+  {"Max", 829},
+  {"maximum", 830},
+  {"Sum", 831},
+  {"sum", 832},
+  {"No variables specified.", 833},
+  {"OPTIONS may not be used with SAVE, FORMAT, or MISSING.", 834},
+  {"It's not possible to sort on `%s' without displaying `%s'.", 835},
+  {"\
+At least one case in the data file had a weight value that was \
+system-missing, zero, or negative.  These case(s) were ignored.", 836},
+  {"\
+Names for z-score variables must be given for individual variables, not for \
+groups of variables.", 837},
+  {"Name for z-score variable expected.", 838},
+  {"\
+Z-score variable name `%s' is a duplicate variable name with a current \
+variable.", 839},
+  {"Z-score variable name `%s' is used multiple times.", 840},
+  {"`)' expected after z-score variable name.", 841},
+  {"\
+Ran out of generic names for Z-score variables.  There are only 126 generic \
+names: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09.", 842},
+  {"Mapping of variables to corresponding Z-scores.", 843},
+  {"Source", 844},
+  {"Target", 845},
+  {"Z-score of ", 846},
+  {"Valid N", 847},
+  {"Missing N", 848},
+  {"Valid cases = %g; cases with missing value(s) = %g.", 849},
+  {"Median", 850},
+  {"Mode", 851},
+  {"\
+At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be \
+assumed.  Argument values will be given precedence increasing along the \
+order given.", 852},
+  {"\
+MAX must be greater than or equal to MIN, if both are specified.  However, \
+MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored.", 853},
+  {"\
+Upper limit of integer mode value range must be greater than lower limit.", 854},
+  {"Variable %s specified multiple times on VARIABLES subcommand.", 855},
+  {"Integer mode specified, but %s is not a numeric variable.", 856},
+  {"`)' expected after GROUPED interval list.", 857},
+  {"Variables %s specified on GROUPED but not on VARIABLES.", 858},
+  {"Variables %s specified multiple times on GROUPED subcommand.", 859},
+  {"Percentile list expected after PERCENTILES.", 860},
+  {"Percentiles must be greater than 0 and less than 100.", 861},
+  {"Cum", 862},
+  {"Frequency", 863},
+  {"Value Label", 864},
+  {"Freq", 865},
+  {"Pct", 866},
+  {"No valid data for variable %s; statistics not displayed.", 867},
+  {"only %g case%s for variable %s, statistics not computed", 868},
+  {"\
+The variable %s has %d modes.  The lowest of these is the one given in the \
+table.", 869},
+  {"Percentage", 870},
+  {"low-res graphs not implemented", 871},
+  {"\
+Could not make histogram for %s for specified minimum %g and maximum %g; \
+please discard graph.", 872},
+  {"Percentile    Value     Percentile    Value     Percentile    Value", 873},
+  {"this form of percentiles not supported", 874},
+  {"Difference between %g and %g is too small for grouping interval %g.", 875},
+  {"\
+The first case (%ld) specified precedes the last case (%ld) specified.  The \
+values will be swapped.", 876},
+  {"\
+The first case (%ld) to list is less than 1.  The value is being reset to 1.", 877},
+  {"\
+The last case (%ld) to list is less than 1.  The value is being reset to 1.", 878},
+  {"The step value %ld is less than 1.  The value is being reset to 1.", 879},
+  {"`/FORMAT WEIGHT' specified, but weighting is not on.", 880},
+  {"Line", 881},
+  {"Missing required subcommand TABLES.", 882},
+  {"TABLES or CROSSBREAK subcommand may not appear more than once.", 883},
+  {"\
+Variable %s specified on TABLES or CROSSBREAK, but not specified on \
+VARIABLES.", 884},
+  {"LOWEST and HIGHEST may not be used for independent variables (%s).", 885},
+  {"\
+Independent variables (%s) may not have noninteger endpoints in their ranges.", 886},
+  {"Variable %s is multiply specified on TABLES or CROSSBREAK.", 887},
+  {"VARIABLES must precede TABLES.", 888},
+  {"Upper value (%g) is less than lower value (%g) on VARIABLES subcommand.", 889},
+  {"expecting variable name in GROUPS subcommand", 890},
+  {"Long string variable %s is not valid here.", 891},
+  {"\
+When applying GROUPS to a string variable, at least one value must be \
+specified.", 892},
+  {"\
+PAIRED was specified but the number of variables preceding WITH (%d) did not \
+match the number following (%d).", 893},
+  {"At least two variables must be specified on PAIRS.", 894},
+  {"Destination cannot be a string variable.", 895},
+  {"\
+%g THRU %g is not a valid range.  The number following THRU must be at least \
+as big as the number preceding THRU.", 896},
+  {"Vartree:\n", 897},
+  {"clearing variable %d:%s %s\n", 898},
+  {"in default dictionary", 899},
+  {"in auxiliary dictionary", 900},
+  {"%s is not declared as a variable.", 901},
+  {"%s is not a variable name.", 902},
+  {"%s TO %s is not valid syntax since %s precedes %s in the dictionary.", 903},
+  {"\
+When using the TO keyword to specify several variables, both variables must \
+be from the same variable dictionaries, of either ordinary, scratch, or \
+system variables.  %s and %s are from different dictionaries.", 904},
+  {"Scratch variables (such as %s) are not allowed here.", 905},
+  {"\
+%s is not a numeric variable.  It will not be included in the variable list.", 906},
+  {"\
+%s is not a string variable.  It will not be included in the variable list.", 907},
+  {"\
+%s and %s are not the same type.  All variables in this variable list must \
+be of the same type.  %s will be omitted from list.", 908},
+  {"Variable %s appears twice in variable list.", 909},
+  {"incorrect use of TO convention", 910},
+  {"Scratch variables not allowed here.", 911},
+  {"Prefixes don't match in use of TO convention.", 912},
+  {"Bad bounds in use of TO convention.", 913},
+  {"\
+Workspace overflow predicted.  Max workspace is currently set to %d KB (%d \
+cases at %d bytes each).  Paging active file to disk.", 914},
+  {"!ERROR!", 915},
+  {"<NOVAR>", 916},
+  {"\
+An error occurred attempting to create a temporary file for use as the \
+active file: %s.", 917},
+  {"\
+An error occurred while attempting to read from a temporary file created for \
+the active file: %s.", 918},
+  {"\
+An error occurred while attempting to write to a temporary file used as the \
+active file: %s.", 919},
+  {"\
+An error occurred while attempting to rewind a temporary file used as the \
+active file: %s.", 920},
+  {"Virtual memory exhausted.  Paging active file to disk.", 921},
+  {"\
+Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Paging \
+active file to disk.", 922},
+  {"\
+An error occurred while attempting to write to a temporary file created as \
+the active file, while paging to disk: %s.", 923},
+  {"transform: ", 924},
+  {"Target variable %s duplicates existing variable %s.", 925},
+  {"Duplicate variable name %s among target variables.", 926},
+  {"\
+When executing COMPUTE: SYSMIS is not a valid value as an index into vector \
+%s.", 927},
+  {"\
+When executing COMPUTE: %g is not a valid value as an index into vector %s.", 928},
+  {"There is no vector named %s.", 929},
+  {"Extra characters after expression.", 930},
+  {"Could not create acceptable variant for variable %s.", 931},
+  {"Cannot create more than 99999 variable names.", 932},
+  {"Error reading FLIP source file: %s.", 933},
+  {"Could not create temporary file for FLIP.", 934},
+  {"Error writing FLIP file: %s.", 935},
+  {"Error creating FLIP source file.", 936},
+  {"Error rewinding FLIP file: %s.", 937},
+  {"Error reading FLIP file: %s.", 938},
+  {"Error seeking FLIP source file: %s.", 939},
+  {"Error writing FLIP source file: %s.", 940},
+  {"Error rewind FLIP source file: %s.", 941},
+  {"expecting a valid subcommand", 942},
+  {"%g is not a valid column location.", 943},
+  {"Column location expected following `%d-'.", 944},
+  {"\
+%d-%ld is not a valid column range.  The second column must be greater than \
+or equal to the first.", 945},
+  {"\
+%s is not of the same type as %s.  To specify variables of different types \
+in the same variable list, use a FORTRAN-like format specifier.", 946},
+  {"\
+The ending column for a field must not be less than the starting column.", 947},
+  {"%s variables cannot be displayed with format %s.", 948},
+  {"Display format %s may not be used with a %s variable.", 949},
+  {"Writing %3d records to file %s.", 950},
+  {"Writing %3d records to the listing file.", 951},
+  {"A file name or handle was expected in the OUTFILE subcommand.", 952},
+  {"\
+The expression on PRINT SPACE evaluated to %d.  It's not possible to PRINT \
+SPACE a negative number of lines.", 953},
+  {"\
+%d variable(s) cannot be recoded into %d variable(s).  Specify the same \
+number of variables as input and output variables.", 954},
+  {"\
+There is no string variable named %s.  (All string variables specified on \
+INTO must already exist.  Use the STRING command to create a string \
+variable.)", 955},
+  {"\
+Type mismatch between input and output variables.  Output variable %s is not \
+a string variable, but all the input variables are string variables.", 956},
+  {"Type mismatch after INTO: %s is not a numeric variable.", 957},
+  {"\
+INTO must be used when the input values are numeric and output values are \
+string.", 958},
+  {"\
+INTO must be used when the input values are string and output values are \
+numeric.", 959},
+  {"\
+Inconsistent output types.  The output values must be all numeric or all \
+string.", 960},
+  {"following LO THRU", 961},
+  {"in source value", 962},
+  {"\
+Keyword CONVERT may only be used with string input values and numeric output \
+values.", 963},
+  {"!!END!!", 964},
+  {"!!ERROR!!", 965},
+  {"The filter variable must be numeric.", 966},
+  {"The filter variable may not be scratch.", 967},
+  {"Only last instance of this command is in effect.", 968},
+  {"`A' or `D' expected inside parentheses.", 969},
+  {"`)' expected.", 970},
+  {"%s: Cannot create temporary directory: %s.", 971},
+  {"%s: Error removing directory for temporary files: %s.", 972},
+  {"\
+Out of memory.  Could not allocate room for minimum of %d cases of %d bytes \
+each.  (PSPP workspace is currently restricted to a maximum of %d KB.)", 973},
+  {"allocated %d cases == %d bytes\n", 974},
+  {"%s: Error writing temporary file: %s.", 975},
+  {"SORT: Closing handle %d.", 976},
+  {"%s: Error closing temporary file: %s.", 977},
+  {"SORT: %s: Opening for writing as run %d.", 978},
+  {"%s: Error opening temporary file for reading: %s.", 979},
+  {"%s: Error creating temporary file: %s.", 980},
+  {"%s: Error removing temporary file: %s.", 981},
+  {"merging runs", 982},
+  {" into run %d(%d)\n", 983},
+  {"Out of memory expanding Huffman priority queue.", 984},
+  {"%s: Error creating temporary file for merge: %s.", 985},
+  {"%s: Error reading temporary file in merge: %s.", 986},
+  {"%s: Unexpected end of temporary file in merge.", 987},
+  {"%s: Error writing temporary file in merge: %s.", 988},
+  {"%s: Error closing temporary file in merge: %s.", 989},
+  {"%s: Error removing temporary file in merge: %s.", 990},
+  {"%s: Cannot open sort result file: %s.", 991},
+  {"%s: Error reading sort result file: %s.", 992},
+  {"%s: Unexpected end of sort result file: %s.", 993},
+  {"%s: Error closing sort result file: %s.", 994},
+  {"%s: Error removing sort result file: %s.", 995},
+  {"Unrecognized filename format.", 996},
+  {"The index variable may not be a string variable.", 997},
+  {"There is no LOOP command that corresponds to this END LOOP.", 998},
+  {"\
+This command may only appear enclosed in a LOOP/END LOOP control structure.", 999},
+  {"BREAK not enclosed in DO IF structure.", 1000},
+  {"%s without %s.", 1001},
+  {"Identifier %s is given twice.", 1002},
+  {"\
+There must be the same number of substitutions for each dummy variable \
+specified.  Since there were %d substitutions for %s, there must be %d for \
+%s as well, but %d were specified.", 1003},
+  {"No commands in scope.", 1004},
+  {"String expected.", 1005},
+  {"No matching DO REPEAT.", 1006},
+  {"`)' expected after value specification.", 1007},
+  {"`(' expected after variable name%s.", 1008},
+  {"Long string value specified.", 1009},
+  {"Short strings must be of equal width.", 1010},
+  {"Range %g THRU %g is not valid because %g is greater than %g.", 1011},
+  {"Number or range expected.", 1012},
+  {"At most one range can exist in the missing values for any one variable.", 1013},
+  {"At most one individual value can be missing along with one range.", 1014},
+  {"String is not of proper length.", 1015},
+  {"Missing value:", 1016},
+  {"(long string variable)", 1017},
+  {"(no missing values)\n", 1018},
+  {"(!!!INTERNAL ERROR--%d!!!)\n", 1019},
+  {"REORDER subcommand may be given at most once.", 1020},
+  {"Cannot specify ALL after specifying a set of variables.", 1021},
+  {"`(' expected on REORDER subcommand.", 1022},
+  {"`)' expected following variable names on REORDER subcommand.", 1023},
+  {"RENAME subcommand may be given at most once.", 1024},
+  {"`(' expected on RENAME subcommand.", 1025},
+  {"\
+`=' expected between lists of new and old variable names on RENAME \
+subcommand.", 1026},
+  {"\
+Differing number of variables in old name list (%d) and in new name list \
+(%d).", 1027},
+  {"`)' expected after variable lists on RENAME subcommand.", 1028},
+  {"\
+KEEP subcommand may be given at most once.  It may notbe given in \
+conjunction with the DROP subcommand.", 1029},
+  {"\
+DROP subcommand may be given at most once.  It may notbe given in \
+conjunction with the KEEP subcommand.", 1030},
+  {"Unrecognized subcommand name `%s'.", 1031},
+  {"Subcommand name expected.", 1032},
+  {"`/' or `.' expected.", 1033},
+  {"Duplicate variable name `%s' after renaming.", 1034},
+  {"Format type %s may not be used with a numeric variable.", 1035},
+  {"There is already a variable named %s.", 1036},
+  {"Format type %s may not be used with a string variable.", 1037},
+  {"`(' expected.", 1038},
+  {"`=' expected between lists of new and old variable names.", 1039},
+  {"`)' expected after variable names.", 1040},
+  {"The sampling factor must be between 0 and 1 exclusive.", 1041},
+  {"Cannot sample %d observations from a population of %d.", 1042},
+  {"BLOCK is obsolete.", 1043},
+  {"BOXSTRING is obsolete.", 1044},
+  {"Active file compression is not yet implemented (and probably won't be).", 1045},
+  {"CPI must be greater than 0.", 1046},
+  {"HISTOGRAM is obsolete.", 1047},
+  {"LPI must be greater than 0.", 1048},
+  {"\
+CASE is not implemented and probably won't be.  If you care, complain about \
+it.", 1049},
+  {"Value for MITERATE (%ld) must be greater than 0.", 1050},
+  {"Value for MNEST (%ld) must be greater than 0.", 1051},
+  {"MXERRS must be at least 1.", 1052},
+  {"MXLOOPS must be at least 1.", 1053},
+  {"MXMEMORY is obsolete.", 1054},
+  {"SCRIPTTAB is obsolete.", 1055},
+  {"TBFONTS not implemented.", 1056},
+  {"TB1 not implemented.", 1057},
+  {"WORKSPACE is obsolete.", 1058},
+  {"AUTOMENU is obsolete.", 1059},
+  {"BEEP is obsolete.", 1060},
+  {"EJECT is obsolete.", 1061},
+  {"HELPWINDOWS is obsolete.", 1062},
+  {"MENUS is obsolete.", 1063},
+  {"PTRANSLATE is obsolete.", 1064},
+  {"XSORT is obsolete.", 1065},
+  {"\
+CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of \
+16.", 1066},
+  {"\
+CC%c: Custom currency string `%s' does not contain exactly three periods or \
+commas (not both).", 1067},
+  {"LENGTH must be at least 1.", 1068},
+  {"Missing identifier in RESULTS subcommand.", 1069},
+  {"Unrecognized identifier in RESULTS subcommand.", 1070},
+  {"WIDTH must be at least 1.", 1071},
+  {"\
+FORMAT requires numeric output format as an argument.  Specified format %s \
+is of type string.", 1072},
+  {"Text color must be in range 0-15.", 1073},
+  {"Background color must be in range 0-7.", 1074},
+  {"Border color must be in range 0-7.", 1075},
+  {"RCOLOR is obsolete.", 1076},
+  {"Lower window color must be between 0 and 6.", 1077},
+  {"Upper window color must be between 0 and 6.", 1078},
+  {"Frame color must be between 0 and 6.", 1079},
+  {"VIEWLENGTH not implemented.", 1080},
+  {"WORKDEV is obsolete.", 1081},
+  {"Drive letter expected in WORKDEV subcommand.", 1082},
+  {"This command is not valid inside DO IF or LOOP.", 1083},
+  {"\
+This command may only appear once between procedures and procedure-like \
+commands.", 1084},
+  {"%s before: %s\n", 1085},
+  {"<none>", 1086},
+  {"%s: `.' expected after string.", 1087},
+  {"%s after: %s\n", 1088},
+  {"Document entered %s %02d:%02d:%02d by %s (%s):", 1089},
+  {"\
+It is not possible to assign value labels to long string variables such as \
+%s.", 1090},
+  {"String expected for value.", 1091},
+  {"Number expected for value.", 1092},
+  {"Value label `%g' is not integer.", 1093},
+  {"Truncating value label to 60 characters.", 1094},
+  {"Value labels:", 1095},
+  {"    (no value labels)\n", 1096},
+  {"String expected for variable label.", 1097},
+  {"Truncating variable label to 120 characters.", 1098},
+  {"Variable labels:\n", 1099},
+  {"(no variable label)", 1100},
+  {"Vector name %s is given twice.", 1101},
+  {"There is already a vector with name %s.", 1102},
+  {"\
+A slash must be used to separate each vector specification when using the \
+long form.  Commands such as VECTOR A,B=Q1 TO Q20 are not supported.", 1103},
+  {"Vectors must have at least one element.", 1104},
+  {"%s%d is too long for a variable name.", 1105},
+  {"\
+The syntax for this command does not match the expected syntax for either \
+the long form or the short form of VECTOR.", 1106},
+  {"The weighting variable must be numeric.", 1107},
+  {"The weighting variable may not be scratch.", 1108},
+  {"bad weighting variable, canceling\n", 1109},
+};
+
+int _msg_tbl_length = 1109;
diff --git a/po/stamp-cat-id b/po/stamp-cat-id
new file mode 100644 (file)
index 0000000..9788f70
--- /dev/null
@@ -0,0 +1 @@
+timestamp
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644 (file)
index 0000000..9d0f4f2
--- /dev/null
@@ -0,0 +1,586 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# PSPP
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+bin_PROGRAMS = pspp
+
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/lib     -I$(top_srcdir)/intl
+
+
+DISTCLEANFILES = foo $(q_sources_c)
+MAINTAINERCLEANFILES = Makefile.in
+EXTRA_DIST = $(q_sources_q) q2c.c
+ETAGS_ARGS = -l c $(q_sources_c)
+SUFFIXES = .q
+
+q_sources_c = correlations.c crosstabs.c descript.c file-handle.c      frequencies.c list.c means.c set.c t-test.c
+
+
+q_sources_q = correlations.q crosstabs.q descript.q file-handle.q      frequencies.q list.q means.q set.q t-test.q
+
+
+pspp_SOURCES = aggregate.c alloc.c alloc.h apply-dict.c approx.h       ascii.c autorecode.c avl.c avl.h bitvector.h cases.c cases.h cmdline.c  command.c command.def command.h compute.c correlations.c count.c        crosstabs.c data-in.c data-in.h data-list.c data-out.c debug-print.h    descript.c dfm.c dfm.h do-if.c do-ifP.h error.c error.h expr-evl.c      expr-opt.c expr-prs.c expr.h exprP.h file-handle.c file-handle.h        file-type.c filename.c filename.h flip.c font.h format.c format.def     format.h formats.c frequencies.c frequencies.g get.c getline.c          getline.h glob.c groff-font.c hash.c hash.h heap.c heap.h html.c        htmlP.h include.c inpt-pgm.c inpt-pgm.h lexer.c lexer.h list.c log.h    loop.c magic.c magic.h main.c main.h matrix-data.c matrix.c matrix.h    means.c mis-val.c misc.c misc.h modify-vars.c numeric.c output.c        output.h pfm-read.c pfm-write.c pfm.h pool.c pool.h postscript.c        print.c random.c random.h recode.c rename-vars.c repeat.c sample.c      sel-if.c set.c settings.h sfm-read.c sfm-write.c sfm.h sfmP.h som.c     som.h sort.c sort.h split-file.c stat.h stats.c stats.h str.c str.h     sysfile-info.c tab.c tab.h temporary.c title.c t-test.c val-labs.c      var-labs.c var.h vars-atr.c vars-prs.c vector.c vector.h version.c      version.h vfm.c vfm.h vfmP.h weight.c
+
+
+GMP_LIBS = ../lib/gmp/mpf/libmpf.a                             ../lib/gmp/mpn/libmpn.a                         ../lib/gmp/libgmp.a
+
+
+LDADD = ../lib/julcal/libjulcal.a                      ../lib/misc/libmisc.a                           ../lib/dcdflib/libdcdflib.a                     @GMP_LIBS@ @INTLLIBS@
+
+# q2c
+
+LOCAL_CC = @LOCAL_CC@
+LOCAL_COMPILE = $(LOCAL_CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+LOCAL_LINK = $(LOCAL_CC) $(LDFLAGS) -o $@
+
+CLEANFILES = q2c
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+PROGRAMS =  $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+pspp_OBJECTS =  aggregate.o alloc.o apply-dict.o ascii.o autorecode.o \
+avl.o cases.o cmdline.o command.o compute.o correlations.o count.o \
+crosstabs.o data-in.o data-list.o data-out.o descript.o dfm.o do-if.o \
+error.o expr-evl.o expr-opt.o expr-prs.o file-handle.o file-type.o \
+filename.o flip.o format.o formats.o frequencies.o get.o getline.o \
+glob.o groff-font.o hash.o heap.o html.o include.o inpt-pgm.o lexer.o \
+list.o loop.o magic.o main.o matrix-data.o matrix.o means.o mis-val.o \
+misc.o modify-vars.o numeric.o output.o pfm-read.o pfm-write.o pool.o \
+postscript.o print.o random.o recode.o rename-vars.o repeat.o sample.o \
+sel-if.o set.o sfm-read.o sfm-write.o som.o sort.o split-file.o stats.o \
+str.o sysfile-info.o tab.o temporary.o title.o t-test.o val-labs.o \
+var-labs.o vars-atr.o vars-prs.o vector.o version.o vfm.o weight.o
+pspp_LDADD = $(LDADD)
+pspp_DEPENDENCIES =  ../lib/julcal/libjulcal.a ../lib/misc/libmisc.a \
+../lib/dcdflib/libdcdflib.a
+pspp_LDFLAGS = 
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(pspp_SOURCES)
+OBJECTS = $(pspp_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .q .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       @list='$(bin_PROGRAMS)'; for p in $$list; do \
+         if test -f $$p; then \
+           echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+            $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+         else :; fi; \
+       done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       list='$(bin_PROGRAMS)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+pspp: $(pspp_OBJECTS) $(pspp_DEPENDENCIES)
+       @rm -f pspp
+       $(LINK) $(pspp_LDFLAGS) $(pspp_OBJECTS) $(pspp_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+aggregate.o: aggregate.c ../config.h ../pref.h alloc.h approx.h \
+       command.h error.h file-handle.h lexer.h misc.h settings.h sfm.h \
+       sort.h stats.h str.h var.h format.h format.def vfm.h cases.h \
+       vfmP.h debug-print.h
+alloc.o: alloc.c ../config.h ../pref.h str.h
+apply-dict.o: apply-dict.c ../config.h ../pref.h avl.h command.h error.h \
+       file-handle.h lexer.h sfm.h str.h var.h format.h format.def \
+       debug-print.h
+ascii.o: ascii.c ../config.h ../pref.h alloc.h error.h filename.h main.h \
+       misc.h output.h str.h pool.h version.h
+autorecode.o: autorecode.c ../config.h ../pref.h alloc.h command.h \
+       error.h hash.h lexer.h pool.h str.h var.h format.h format.def \
+       vfm.h cases.h debug-print.h
+avl.o: avl.c ../config.h ../pref.h pool.h avl.h
+cases.o: cases.c ../config.h ../pref.h alloc.h cases.h var.h format.h \
+       format.def vfm.h debug-print.h
+cmdline.o: cmdline.c ../config.h ../pref.h alloc.h error.h filename.h \
+       getline.h main.h output.h str.h settings.h var.h format.h \
+       format.def version.h
+command.o: command.c ../config.h ../pref.h alloc.h command.h error.h \
+       getline.h lexer.h main.h settings.h som.h str.h tab.h var.h \
+       format.h format.def vfm.h cases.h debug-print.h command.def
+compute.o: compute.c ../config.h ../pref.h alloc.h approx.h cases.h \
+       command.h error.h expr.h lexer.h str.h var.h format.h \
+       format.def vector.h debug-print.h
+correlations.o: correlations.c ../config.h ../pref.h alloc.h \
+       file-handle.h error.h command.h lexer.h var.h format.h \
+       format.def str.h debug-print.h
+count.o: count.c ../config.h ../pref.h alloc.h approx.h command.h \
+       error.h lexer.h str.h var.h format.h format.def debug-print.h
+crosstabs.o: crosstabs.c ../config.h ../pref.h alloc.h avl.h hash.h \
+       pool.h ../lib/dcdflib/cdflib.h command.h lexer.h error.h \
+       magic.h misc.h stats.h output.h str.h tab.h var.h format.h \
+       format.def vfm.h cases.h debug-print.h
+data-in.o: data-in.c ../config.h ../pref.h data-in.h format.h format.def \
+       error.h getline.h ../lib/julcal/julcal.h lexer.h magic.h misc.h \
+       settings.h str.h var.h debug-print.h
+data-list.o: data-list.c ../config.h ../pref.h alloc.h command.h \
+       data-in.h format.h format.def debug-print.h dfm.h error.h \
+       file-handle.h lexer.h misc.h settings.h str.h tab.h var.h vfm.h \
+       cases.h
+data-out.o: data-out.c ../config.h ../pref.h approx.h error.h format.h \
+       format.def ../lib/julcal/julcal.h magic.h misc.h settings.h \
+       str.h var.h debug-print.h
+descript.o: descript.c ../config.h ../pref.h alloc.h bitvector.h \
+       command.h lexer.h error.h approx.h magic.h stats.h som.h tab.h \
+       str.h var.h format.h format.def vfm.h cases.h
+dfm.o: dfm.c ../config.h ../pref.h alloc.h command.h error.h \
+       file-handle.h filename.h getline.h lexer.h misc.h str.h vfm.h \
+       cases.h debug-print.h
+do-if.o: do-if.c ../config.h ../pref.h alloc.h command.h error.h expr.h \
+       lexer.h str.h var.h format.h format.def debug-print.h do-ifP.h
+error.o: error.c ../config.h ../pref.h alloc.h command.h error.h \
+       getline.h main.h output.h str.h settings.h var.h format.h \
+       format.def
+expr-evl.o: expr-evl.c ../config.h ../pref.h approx.h data-in.h format.h \
+       format.def error.h expr.h exprP.h debug-print.h \
+       ../lib/julcal/julcal.h magic.h random.h stats.h str.h var.h \
+       vector.h vfm.h cases.h vfmP.h
+expr-opt.o: expr-opt.c ../config.h ../pref.h alloc.h approx.h data-in.h \
+       format.h format.def error.h expr.h exprP.h debug-print.h \
+       ../lib/julcal/julcal.h misc.h stats.h str.h var.h
+expr-prs.o: expr-prs.c ../config.h ../pref.h alloc.h error.h expr.h \
+       exprP.h debug-print.h lexer.h misc.h str.h var.h format.h \
+       format.def vector.h vfm.h cases.h
+file-handle.o: file-handle.c ../config.h ../pref.h alloc.h avl.h \
+       filename.h file-handle.h error.h command.h lexer.h getline.h \
+       magic.h var.h format.h format.def str.h debug-print.h
+file-type.o: file-type.c ../config.h ../pref.h alloc.h approx.h \
+       command.h data-in.h format.h format.def dfm.h file-handle.h \
+       error.h lexer.h str.h var.h vfm.h cases.h
+filename.o: filename.c ../config.h ../pref.h alloc.h error.h filename.h \
+       settings.h str.h version.h debug-print.h stat.h
+flip.o: flip.c ../config.h ../pref.h alloc.h command.h error.h lexer.h \
+       misc.h str.h var.h format.h format.def vfm.h cases.h
+format.o: format.c ../config.h ../pref.h error.h format.h format.def \
+       lexer.h misc.h str.h
+formats.o: formats.c ../config.h ../pref.h command.h error.h lexer.h \
+       misc.h str.h var.h format.h format.def debug-print.h
+frequencies.o: frequencies.c ../config.h ../pref.h alloc.h avl.h \
+       bitvector.h hash.h pool.h command.h lexer.h error.h approx.h \
+       magic.h misc.h stats.h output.h str.h som.h tab.h var.h \
+       format.h format.def vfm.h cases.h debug-print.h frequencies.g
+get.o: get.c ../config.h ../pref.h alloc.h avl.h command.h error.h \
+       file-handle.h lexer.h misc.h pfm.h settings.h sfm.h str.h var.h \
+       format.h format.def vfm.h cases.h vfmP.h debug-print.h
+getline.o: getline.c ../config.h ../pref.h alloc.h error.h filename.h \
+       getline.h lexer.h settings.h str.h tab.h var.h format.h \
+       format.def version.h
+glob.o: glob.c ../config.h ../pref.h alloc.h avl.h command.h do-ifP.h \
+       var.h format.h format.def error.h expr.h filename.h getline.h \
+       ../lib/julcal/julcal.h lexer.h main.h settings.h str.h \
+       version.h vfm.h cases.h
+groff-font.o: groff-font.c ../config.h ../pref.h alloc.h error.h \
+       filename.h font.h hash.h pool.h str.h version.h
+hash.o: hash.c ../config.h ../pref.h alloc.h hash.h
+heap.o: heap.c ../config.h ../pref.h heap.h
+html.o: html.c ../config.h ../pref.h alloc.h error.h filename.h \
+       getline.h htmlP.h output.h str.h som.h tab.h version.h
+include.o: include.c ../config.h ../pref.h alloc.h command.h error.h \
+       getline.h lexer.h str.h
+inpt-pgm.o: inpt-pgm.c ../config.h ../pref.h alloc.h command.h dfm.h \
+       error.h expr.h file-handle.h inpt-pgm.h lexer.h misc.h str.h \
+       var.h format.h format.def vfm.h cases.h debug-print.h
+lexer.o: lexer.c ../config.h ../pref.h alloc.h command.h error.h \
+       getline.h lexer.h magic.h settings.h str.h
+list.o: list.c ../config.h ../pref.h alloc.h command.h lexer.h error.h \
+       magic.h misc.h htmlP.h filename.h output.h str.h som.h var.h \
+       format.h format.def vfm.h cases.h debug-print.h
+loop.o: loop.c ../config.h ../pref.h alloc.h approx.h command.h do-ifP.h \
+       var.h format.h format.def error.h expr.h lexer.h settings.h \
+       str.h debug-print.h
+magic.o: magic.c ../config.h ../pref.h magic.h
+main.o: main.c ../config.h ../pref.h command.h error.h getline.h lexer.h \
+       output.h str.h debug-print.h
+matrix-data.o: matrix-data.c ../config.h ../pref.h alloc.h command.h \
+       data-in.h format.h format.def dfm.h error.h file-handle.h \
+       lexer.h misc.h pool.h str.h var.h vfm.h cases.h debug-print.h
+matrix.o: matrix.c ../config.h ../pref.h alloc.h matrix.h settings.h
+means.o: means.c ../config.h ../pref.h alloc.h avl.h command.h lexer.h \
+       error.h magic.h var.h format.h format.def str.h debug-print.h
+mis-val.o: mis-val.c ../config.h ../pref.h command.h error.h lexer.h \
+       magic.h str.h var.h format.h format.def debug-print.h
+misc.o: misc.c ../config.h ../pref.h misc.h
+modify-vars.o: modify-vars.c ../config.h ../pref.h alloc.h avl.h \
+       bitvector.h command.h error.h lexer.h misc.h str.h var.h \
+       format.h format.def vfm.h cases.h
+numeric.o: numeric.c ../config.h ../pref.h cases.h command.h error.h \
+       lexer.h str.h var.h format.h format.def debug-print.h
+output.o: output.c ../config.h ../pref.h alloc.h approx.h error.h \
+       filename.h lexer.h misc.h output.h str.h settings.h
+pfm-read.o: pfm-read.c ../config.h ../pref.h alloc.h avl.h file-handle.h \
+       error.h format.h format.def getline.h magic.h misc.h pfm.h \
+       str.h var.h debug-print.h
+pfm-write.o: pfm-write.c ../config.h ../pref.h alloc.h avl.h error.h \
+       file-handle.h ../lib/gmp/gmp.h magic.h pfm.h str.h var.h \
+       format.h format.def version.h debug-print.h
+pool.o: pool.c ../config.h ../pref.h alloc.h pool.h
+postscript.o: postscript.c ../config.h ../pref.h alloc.h bitvector.h \
+       error.h filename.h font.h getline.h hash.h main.h misc.h \
+       output.h str.h version.h
+print.o: print.c ../config.h ../pref.h alloc.h command.h dfm.h error.h \
+       expr.h file-handle.h lexer.h misc.h som.h tab.h str.h var.h \
+       format.h format.def debug-print.h
+random.o: random.c ../config.h ../pref.h magic.h random.h settings.h
+recode.o: recode.c ../config.h ../pref.h alloc.h approx.h cases.h \
+       command.h error.h lexer.h magic.h str.h var.h format.h \
+       format.def debug-print.h
+rename-vars.o: rename-vars.c ../config.h ../pref.h alloc.h avl.h \
+       command.h error.h lexer.h str.h var.h format.h format.def
+repeat.o: repeat.c ../config.h ../pref.h alloc.h cases.h command.h \
+       error.h getline.h lexer.h misc.h settings.h str.h var.h \
+       format.h format.def debug-print.h
+sample.o: sample.c ../config.h ../pref.h alloc.h command.h error.h \
+       lexer.h random.h str.h var.h format.h format.def debug-print.h
+sel-if.o: sel-if.c ../config.h ../pref.h alloc.h command.h error.h \
+       expr.h lexer.h str.h var.h format.h format.def
+set.o: set.c ../config.h ../pref.h alloc.h command.h lexer.h error.h \
+       magic.h log.h output.h str.h var.h format.h format.def \
+       settings.h
+sfm-read.o: sfm-read.c ../config.h ../pref.h alloc.h avl.h error.h \
+       file-handle.h format.h format.def getline.h magic.h misc.h \
+       sfm.h sfmP.h str.h var.h debug-print.h
+sfm-write.o: sfm-write.c ../config.h ../pref.h alloc.h approx.h avl.h \
+       error.h file-handle.h getline.h magic.h misc.h sfm.h sfmP.h \
+       str.h var.h format.h format.def version.h debug-print.h
+som.o: som.c ../config.h ../pref.h output.h str.h som.h debug-print.h
+sort.o: sort.c ../config.h ../pref.h alloc.h approx.h command.h error.h \
+       expr.h heap.h lexer.h misc.h sort.h str.h var.h format.h \
+       format.def vfm.h cases.h vfmP.h debug-print.h
+split-file.o: split-file.c ../config.h ../pref.h alloc.h command.h \
+       error.h lexer.h str.h var.h format.h format.def
+stats.o: stats.c ../config.h ../pref.h stats.h
+str.o: str.c ../config.h ../pref.h alloc.h error.h pool.h str.h
+sysfile-info.o: sysfile-info.c ../config.h ../pref.h alloc.h avl.h \
+       command.h error.h file-handle.h lexer.h misc.h output.h str.h \
+       sfm.h som.h tab.h var.h format.h format.def vector.h
+t-test.o: t-test.c ../config.h ../pref.h alloc.h str.h \
+       ../lib/dcdflib/cdflib.h command.h lexer.h error.h magic.h var.h \
+       format.h format.def vfm.h cases.h debug-print.h
+tab.o: tab.c ../config.h ../pref.h alloc.h command.h format.h format.def \
+       magic.h misc.h output.h str.h pool.h som.h tab.h var.h \
+       debug-print.h
+temporary.o: temporary.c ../config.h ../pref.h alloc.h avl.h command.h \
+       do-ifP.h var.h format.h format.def error.h lexer.h str.h \
+       debug-print.h
+title.o: title.c ../config.h ../pref.h alloc.h command.h error.h lexer.h \
+       main.h output.h str.h var.h format.h format.def version.h vfm.h \
+       cases.h debug-print.h
+val-labs.o: val-labs.c ../config.h ../pref.h alloc.h avl.h command.h \
+       error.h lexer.h str.h var.h format.h format.def debug-print.h
+var-labs.o: var-labs.c ../config.h ../pref.h alloc.h command.h error.h \
+       lexer.h str.h var.h format.h format.def debug-print.h
+vars-atr.o: vars-atr.c ../config.h ../pref.h alloc.h approx.h avl.h \
+       command.h do-ifP.h var.h format.h format.def expr.h \
+       file-handle.h error.h inpt-pgm.h misc.h str.h vector.h vfm.h \
+       cases.h debug-print.h
+vars-prs.o: vars-prs.c ../config.h ../pref.h alloc.h avl.h bitvector.h \
+       error.h lexer.h misc.h str.h var.h format.h format.def
+vector.o: vector.c ../config.h ../pref.h alloc.h cases.h command.h \
+       error.h lexer.h misc.h str.h var.h format.h format.def vector.h
+version.o: version.c ../config.h ../pref.h
+vfm.o: vfm.c ../config.h ../pref.h alloc.h approx.h do-ifP.h var.h \
+       format.h format.def error.h expr.h misc.h random.h som.h str.h \
+       tab.h vector.h vfm.h cases.h vfmP.h debug-print.h
+weight.o: weight.c ../config.h ../pref.h command.h error.h lexer.h str.h \
+       var.h format.h format.def
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+       $(mkinstalldirs)  $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-binPROGRAMS clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-binPROGRAMS distclean-compile distclean-tags \
+               distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-binPROGRAMS \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+$(q_sources_c): q2c
+.q.c:
+       ./q2c $< $@
+
+version.c:
+       echo "#include <config.h>" > version.c
+       echo "const char bare_version[] = \"@VERSION@\";" >> version.c
+       echo "const char version[] = GNU_PACKAGE \" @VERSION@\";" >> version.c
+       echo "const char stat_version[] = GNU_PACKAGE \" @VERSION@ \
+(`date`).\";" >> version.c
+       echo "const char host_system[] = \"$(host_triplet)\";" >> version.c
+       echo "const char build_system[] = \"$(build_triplet)\";" >> version.c
+       echo "const char default_config_path[] =\
+\"~/.pspp:$(pkgsysconfdir)\";" >> version.c
+       echo "const char include_path[] =\
+\"./:~/.pspp/include:$(pkgdatadir)\";" >> version.c
+       echo "const char groff_font_path[] = \"~/.pspp/font:\" \\" >> version.c
+       echo "  \"$(pkgdatadir)/font:\" \\" >> version.c
+       echo "  \"/usr/local/lib/groff/font:\" \\" >> version.c
+       echo "  \"/usr/lib/groff/font:\" \\" >> version.c
+       echo "  \"/usr/local/share/groff/font:\" \\" >> version.c
+       echo "  \"/usr/share/groff/font\";" >> version.c
+       echo "const char locale_dir[] = \"$(datadir)/locale\";" >> version.c
+\f
+
+q2c.o: q2c.c
+       $(LOCAL_COMPILE) $< -o q2c.o
+q2c: q2c.o
+       $(LOCAL_LINK) q2c.o ../lib/misc/libmisc.a -o q2c
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644 (file)
index 0000000..91dc6eb
--- /dev/null
@@ -0,0 +1,338 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMP_LIBS = @GMP_LIBS@
+GMP_SUBDIRS = @GMP_SUBDIRS@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LN_S = @LN_S@
+LOCAL_CC = @LOCAL_CC@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+TESTS = syntax
+
+noinst_PROGRAMS = gengarbage
+
+noinst_DATA = sort.data
+
+EXTRA_DIST = aggregate.stat autorecod.stat beg-data.stat bignum.data   bignum.stat compute.stat count.stat crosstabs.stat data-fmts.stat       data-list.data data-list.stat descript.stat do-if.stat do-repeat.stat   expr.stat file-lab.stat filter.stat flip.stat gengarbage.c              inpt-pgm.stat lag.stat list.data list.stat loop.stat mtch-file.stat     means.stat mdfy-vars.stat print.stat pcs-if.stat recode.stat            repeating.stat reread.data reread.stat sample.stat sort.stat            splt-file.stat sys-info.stat t-test.stat tabs.stat temporary.stat       time-date.stat vector.stat weighting.data weighting.stat syntax
+
+
+DISTCLEANFILES = *.save sort.data pspp.* foo* msgs *.actual
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+PROGRAMS =  $(noinst_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+gengarbage_SOURCES = gengarbage.c
+gengarbage_OBJECTS =  gengarbage.o
+gengarbage_LDADD = $(LDADD)
+gengarbage_DEPENDENCIES = 
+gengarbage_LDFLAGS = 
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DATA =  $(noinst_DATA)
+
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = gengarbage.c
+OBJECTS = gengarbage.o
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+       -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.c.o:
+       $(COMPILE) -c $<
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+gengarbage: $(gengarbage_OBJECTS) $(gengarbage_DEPENDENCIES)
+       @rm -f gengarbage
+       $(LINK) $(gengarbage_LDFLAGS) $(gengarbage_OBJECTS) $(gengarbage_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+gengarbage.o: gengarbage.c
+
+check-TESTS: $(TESTS)
+       @failed=0; all=0; \
+       srcdir=$(srcdir); export srcdir; \
+       for tst in $(TESTS); do \
+         if test -f $$tst; then dir=.; \
+         else dir="$(srcdir)"; fi; \
+         if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
+           all=`expr $$all + 1`; \
+           echo "PASS: $$tst"; \
+         elif test $$? -ne 77; then \
+           all=`expr $$all + 1`; \
+           failed=`expr $$failed + 1`; \
+           echo "FAIL: $$tst"; \
+         fi; \
+       done; \
+       if test "$$failed" -eq 0; then \
+         banner="All $$all tests passed"; \
+       else \
+         banner="$$failed of $$all tests failed"; \
+       fi; \
+       dashes=`echo "$$banner" | sed s/./=/g`; \
+       echo "$$dashes"; \
+       echo "$$banner"; \
+       echo "$$dashes"; \
+       test "$$failed" -eq 0
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-noinstPROGRAMS mostlyclean-compile \
+               mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstPROGRAMS clean-compile clean-tags clean-generic \
+               mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstPROGRAMS distclean-compile distclean-tags \
+               distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-tags \
+               maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir check-TESTS info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+bench:
+       make BENCHMARK=1 check
+sort.data: gengarbage
+       ./gengarbage | head -1000 > $@
+
+dist-hook:
+       cp -rp $(srcdir)/expect $(distdir)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT: