--- /dev/null
+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.
+
--- /dev/null
+# 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:
--- /dev/null
+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
+])
+
--- /dev/null
+#! /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
--- /dev/null
+/* 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: */
--- /dev/null
+#! /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
--- /dev/null
+# 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:
--- /dev/null
+#! /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
+
+
--- /dev/null
+# 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:
--- /dev/null
+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
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
--- /dev/null
+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.
+
+
% 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
--- /dev/null
+#! /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
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+# 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:
--- /dev/null
+#! /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
--- /dev/null
+#! /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
--- /dev/null
+/* 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;
--- /dev/null
+# 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:
--- /dev/null
+# 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: