From: John Darrington Date: Wed, 10 Dec 2003 23:56:04 +0000 (+0000) Subject: checkin of 0.3.0 X-Git-Tag: sav-api~2723 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=7a5bba906d08c2d3c06a9f6f5ef20bfce75f5dd6 checkin of 0.3.0 --- diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000000..90f100395b --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,226 @@ +Notes on the GNU Translation Project +************************************ + + GNU is going international! The GNU Translation Project is a way to +get maintainers, translators, and users all together, so that GNU will +gradually become able to speak many languages. A few packages already +provide translations for their messages. + + If you found this `ABOUT-NLS' file inside a GNU distribution, you +may assume that the distributed package does use GNU `gettext' +internally, itself available at your nearest GNU archive site. But you +do *not* need to install GNU `gettext' prior to configuring, installing +or using this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work at translations should contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +One advise in advance +===================== + + If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in +the operating system where this package is being installed. So far, no +prior implementation provides as many useful features (such as locale +alias or message inheritance). It is also not possible to offer this +additional functionality on top of a `catgets' implementation. Future +versions of GNU `gettext' will very likely convey even more +functionality. So it might be a good idea to change to GNU `gettext' +as soon as possible. + +INSTALL Matters +=============== + + Some GNU packages are "localizable" when properly installed; the +programs they contain can be made to speak your own native language. +Most such packages use GNU `gettext'. Other packages have their own +ways to internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system provides +usable `catgets' (if using this is selected by the installer) or +`gettext' functions. If neither is available, the GNU `gettext' own +library will be used. This library is wholly contained within this +package, usually in the `intl/' subdirectory, so prior installation of +the GNU `gettext' package is *not* required. Installers may use +special options at configuration time for changing the default +behaviour. The commands: + + ./configure --with-included-gettext + ./configure --with-catgets + ./configure --disable-nls + +will respectively bypass any pre-existing `catgets' or `gettext' to use +the internationalizing routines provided within this package, enable +the use of the `catgets' functions (if found on the locale system), or +else, *totally* disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might be not what is desirable. You +should use the more recent version of the GNU `gettext' library. I.e. +if the file `intl/VERSION' shows that the library which comes with this +package is more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + By default the configuration process will not test for the `catgets' +function and therefore they will not be used. The reasons are already +given above: the emulation on top of `catgets' cannot provide all the +extensions provided by the GNU `gettext' library. If you nevertheless +want to use the `catgets' functions use + + ./configure --with-catgets + +to enable the test for `catgets' (this causes no harm if `catgets' is +not available on your system). If you really select this option we +would like to hear about the reasons because we cannot think of any +good one ourself. + + Internationalized packages have usually many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +Using This Package +================== + + As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +ISO 639 `LL' two-letter code prior to using the programs in the +package. For example, let's suppose that you speak German. At the +shell prompt, merely execute `setenv LANG de' (in `csh'), +`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This +can be done from your `.login' or `.profile' file, once and for all. + + An operating system might already offer message localization for +many of its programs, while other programs (whether GNU or not) have +been installed locally with the full capabilities of GNU `gettext'. +Just using `gettext' extended syntax for `LANG' would break proper +localization of already available operating system programs. In this +case, users should set both `LANGUAGE' and `LANG' variables in their +environment, as programs using GNU `gettext' give preference to +`LANGUAGE'. For example, some Swedish users would rather read +translations in German than English for when Swedish is not available. +This is easily accomplished by setting `LANGUAGE' to `sv:de' while +leaving `LANG' to `sv'. + +Translating Teams +================= + + For the GNU Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list, courtesy of Linux +International. You may reach your translation team at the address +`LL@li.org', replacing LL by the two-letter ISO 639 code for your +language. Language codes are *not* the same as the country codes given +in ISO 3166. The following translation teams exist, as of February +1997: + + Arabic `ar', Chinese `zh', Czech `cs', Danish `da', Dutch `nl', + English `en', Esperanto `eo', Finnish `fi', French `fr', German + `de', Greek `el', Hebrew `he', Hungarian `hu', Irish `ga', Italian + `it', Indonesian `id', Japanese `ja', Korean `ko', Latin `la', + Norwegian `no', Persian `fa', Polish `pl', Portuguese `pt', + Russian `ru', Slovenian `sl', Spanish `es', Swedish `sv', Telugu + `te', Turkish `tr' and Ukrainian `uk'. + +For example, you may reach the Chinese translation team by writing to +`zh@li.org'. + + If you'd like to volunteer to *work* at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is *not* the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +*actively* in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `gnu-translation@gnu.org' to reach +the GNU coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology used in GNU. Proven linguistic skill are praised more +than programming skill, here. For the time being, please avoid +subscribing to the English team unless explicitly invited to do so. + +Available Packages +================== + + Languages are not equally supported in all GNU packages. The +following matrix shows the current state of GNU internationalization, +as of February 1997. The matrix shows, in regard of each package, for +which languages PO files have been submitted to translation +coordination. + + Ready PO files cs de en es fi fr ja ko nl no pl pt sl sv + .-------------------------------------------. + bash | [] [] [] | 3 + bison | [] [] [] | 3 + clisp | [] [] [] | 3 + cpio | [] [] [] [] [] | 5 + diffutils | [] [] [] [] | 4 + enscript | [] [] [] [] [] | 5 + fileutils | [] [] [] [] [] [] [] [] | 8 + findutils | [] [] [] [] [] [] [] | 7 + flex | [] [] [] | 3 + gcal | [] [] [] | 3 + gettext | [] [] [] [] [] [] [] [] [] [] | 11 + grep | [] [] [] [] [] [] [] [] | 8 + hello | [] [] [] [] [] [] [] [] [] [] | 10 + id-utils | [] [] | 2 + indent | [] [] | 2 + libc | [] [] [] [] [] [] [] | 7 + m4 | [] [] [] [] [] | 5 + make | [] [] [] [] [] [] | 6 + music | [] | 1 + ptx | [] [] [] [] [] [] [] [] | 8 + recode | [] [] [] [] [] [] [] [] | 8 + sh-utils | [] [] [] [] [] | 5 + sharutils | [] [] [] [] [] | 5 + tar | [] [] [] [] [] [] [] [] [] | 9 + texinfo | | 0 + textutils | [] [] [] [] [] [] | 6 + wdiff | [] [] [] [] [] [] [] [] | 8 + `-------------------------------------------' + 14 languages cs de en es fi fr ja ko nl no pl pt sl sv + 27 packages 1 22 1 14 1 25 1 10 20 7 14 7 7 15 145 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +GNU distribution. + + If February 1997 seems to be old, you may fetch a more recent copy +of this `ABOUT-NLS' file on most GNU archive sites. + diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000000..0f2265926d --- /dev/null +++ b/Makefile.in @@ -0,0 +1,436 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +AUTOMAKE_OPTIONS = gnits 1.4 + +SUBDIRS = doc intl po lib src config tests + +pkgdocdir = $(prefix)/doc/@PACKAGE@ +pkgdoc_DATA = NEWS README TODO +noinst_DATA = AUTHORS THANKS + +DISTCLEANFILES = pref.h + +EXTRA_DIST = NEWS ONEWS TODO pref.h.orig reconfigure configure + +MAINTAINERCLEANFILES = Makefile.in configure aclocal.m4 config.h.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +DATA = $(noinst_DATA) $(pkgdoc_DATA) + +DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ +INSTALL Makefile.am Makefile.in NEWS THANKS TODO acconfig.h \ +acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \ +configure.in install-sh missing mkinstalldirs + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in acinclude.m4 + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @if test ! -f $@; then \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ + else :; fi +stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +install-pkgdocDATA: $(pkgdoc_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + @list='$(pkgdoc_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdocdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdocdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdocdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdocdir)/$$p; \ + fi; fi; \ + done + +uninstall-pkgdocDATA: + @$(NORMAL_UNINSTALL) + list='$(pkgdoc_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(pkgdocdir)/$$p; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \ + echo "NEWS not updated; not releasing" 1>&2; \ + exit 1; \ + fi + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: install-pkgdocDATA +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: uninstall-pkgdocDATA +uninstall: uninstall-recursive +all-am: Makefile $(DATA) config.h +all-redirect: all-recursive-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-hdr clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-hdr distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +uninstall-pkgdocDATA install-pkgdocDATA install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +dist-hook: + cp -rp $(top_srcdir)/sysdeps $(distdir) + cp -rp $(top_srcdir)/examples $(distdir) + +# A `private installation' in my terms is just having the appropriate +# configuration files in ~/.pspp instead of a global configuration +# location. So I let those files be installed automatically. + +private-install: + $(MAKE) private-install -C config +private-uninstall: + $(MAKE) private-uninstall -C config + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000000..a5dd34926c --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,671 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl --------------------------------------------------------- ## +dnl The following definitions are from gettext-0.10.27. ## +dnl --------------------------------------------------------- ## + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 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 ], [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 , 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 . +# Ulrich Drepper , 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 ], [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 + #include + 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 + 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 ], [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>>, <<[^ ]>>, <<>>), <<>>, +<>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +<>; 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 +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT($am_cv_prog_cc_stdc) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + + +# serial 1 + +AC_DEFUN(AM_C_PROTOTYPES, +[AC_REQUIRE([AM_PROG_CC_STDC]) +AC_REQUIRE([AC_PROG_CPP]) +AC_MSG_CHECKING([for function prototypes]) +if test "$am_cv_prog_cc_stdc" != no; then + AC_MSG_RESULT(yes) + AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes]) + U= ANSI2KNR= +else + AC_MSG_RESULT(no) + U=_ ANSI2KNR=./ansi2knr + # Ensure some checks needed by ansi2knr itself. + AC_HEADER_STDC + AC_CHECK_HEADERS(string.h) +fi +AC_SUBST(U)dnl +AC_SUBST(ANSI2KNR)dnl +]) + diff --git a/config.guess b/config.guess new file mode 100755 index 0000000000..19066fbacc --- /dev/null +++ b/config.guess @@ -0,0 +1,539 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# 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 + + 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 + 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 </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' /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 < + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3"); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-unknown-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +rm -f dummy.c dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +#echo '(Unable to guess system type)' 1>&2 + +exit 1 diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000000..1e0b02b041 --- /dev/null +++ b/config.h.in @@ -0,0 +1,339 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ +/* Special definitions, to process by autoheader. + Copyright (C) 1997-9, 2000 Free Software Foundation. */ + +/* Definitions for byte order, according to significance of bytes, from low + addresses to high addresses. The value is what you get by putting '4' + in the most significant byte, '3' in the second most significant byte, + '2' in the second least significant byte, and '1' in the least + significant byte. These definitions never need to be modified. */ +#define BIG 4321 /* 68k */ +#define LITTLE 1234 /* i[3456]86 */ +#define UNKNOWN 0000 /* Endianness must be determined at runtime. */ + +/* Definitions for floating-point representation. */ +#define FPREP_IEEE754 754 /* The usual IEEE-754 format. */ +#define FPREP_UNKNOWN 666 /* Triggers an error at compile time. */ + +/* We want prototypes for all the GNU extensions. */ +#define _GNU_SOURCE 1 + +/* Name of the distribution. */ +#define PACKAGE "PSPP" + +/* Version of the distribution. */ +#undef VERSION + +/* The concatenation of the strings "GNU ", and PACKAGE. */ +#define GNU_PACKAGE "GNU PSPP" + +/* Define to 1 if ANSI function prototypes are usable. */ +#undef PROTOTYPES + + + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define if you have 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 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 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 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 and . */ +#undef TIME_WITH_SYS_TIME + +/* Define if your 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 header file. */ +#undef HAVE_ARGZ_H + +/* Define if you have the header file. */ +#undef HAVE_FENV_H + +/* Define if you have the header file. */ +#undef HAVE_FPU_CONTROL_H + +/* Define if you have the header file. */ +#undef HAVE_IEEEFP_H + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the header file. */ +#undef HAVE_NL_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_READLINE_HISTORY_H + +/* Define if you have the header file. */ +#undef HAVE_READLINE_READLINE_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have the header file. */ +#undef HAVE_TERMCAP_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the 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 + +/* Local Variables: */ +/* mode:c */ +/* End: */ diff --git a/config.sub b/config.sub new file mode 100755 index 0000000000..b1ee668c90 --- /dev/null +++ b/config.sub @@ -0,0 +1,866 @@ +#! /bin/sh +# Configuration validation subroutine script, version 1.1. +# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +if [ x$1 = x ] +then + echo Configuration name missing. 1>&2 + echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 + echo "or $0 ALIAS" 1>&2 + echo where ALIAS is a recognized configuration type. 1>&2 + exit 1 +fi + +# First pass through any local machine types. +case $1 in + *local*) + echo $1 + exit 0 + ;; + *) + ;; +esac + +# Separate what the user gave into CPU-COMPANY and OS (if any). +basic_machine=`echo $1 | sed 's/-[^-]*$//'` +if [ $basic_machine != $1 ] +then os=`echo $1 | sed 's/.*-/-/'` +else os=; fi + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp ) + os= + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ + | arme[lb] | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ + | powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \ + | pdp11 | mips64el | mips64orion | mips64orionel \ + | sparc) + basic_machine=$basic_machine-unknown + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ + | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ + | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ + | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-cbm + ;; + amigados) + basic_machine=m68k-cbm + os=-amigados + ;; + amigaunix | amix) + basic_machine=m68k-cbm + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + os=-mvs + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[3456]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv32 + ;; + i[3456]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv4 + ;; + i[3456]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv + ;; + i[3456]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-solaris2 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + np1) + basic_machine=np1-gould + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | p6) + # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium + basic_machine=i586-intel + ;; + pentium-* | p5-* | p6-*) + # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + k5) + # We don't have specific support for AMD's K5 yet, so just call it a Pentium + basic_machine=i586-amd + ;; + nexen) + # We don't have specific support for Nexgen yet, so just call it a Pentium + basic_machine=i586-nexgen + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + mips) + basic_machine=mips-mips + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sparc) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -unixware* | svr4*) + os=-sysv4 + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \ + | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \ + | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* ) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -ctix* | -uts*) + os=-sysv + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -xenix) + os=-xenix + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-semi) + os=-aout + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-ibm) + os=-aix + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigados + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -lynxos*) + vendor=lynx + ;; + -aix*) + vendor=ibm + ;; + -hpux*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxworks*) + vendor=wrs + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os diff --git a/config/Makefile.in b/config/Makefile.in new file mode 100644 index 0000000000..37c5ef3d10 --- /dev/null +++ b/config/Makefile.in @@ -0,0 +1,238 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +pkgsysconfdir = $(sysconfdir)/$(PACKAGE) +pkgsysconf_DATA = devices html-prologue papersize ps-prologue +EXTRA_DIST = devices html-prologue papersize ps-prologue + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +DATA = $(pkgsysconf_DATA) + +DIST_COMMON = ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps config/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +install-pkgsysconfDATA: $(pkgsysconf_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pkgsysconfdir) + @list='$(pkgsysconf_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p; \ + fi; fi; \ + done + +uninstall-pkgsysconfDATA: + @$(NORMAL_UNINSTALL) + list='$(pkgsysconf_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(pkgsysconfdir)/$$p; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = config + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: install-pkgsysconfDATA +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-pkgsysconfDATA +uninstall: uninstall-am +all-am: Makefile $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(pkgsysconfdir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: uninstall-pkgsysconfDATA install-pkgsysconfDATA tags distdir \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# A `private installation' in my terms is just having the appropriate +# configuration files in ~/.pspp instead of a global configuration +# location. So I let those files be installed automatically. + +private-install: + $(mkinstalldirs) $$HOME/.pspp + cd $(srcdir); cp $(pkgsysconf_DATA) $$HOME/.pspp +private-uninstall: + -cd $$HOME/.pspp; rm -f $(pkgsysconf_DATA) + -rmdir $$HOME/.pspp + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/configure b/configure new file mode 100755 index 0000000000..1b14d04895 --- /dev/null +++ b/configure @@ -0,0 +1,6079 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --disable-nls do not use Native Language Support" +ac_help="$ac_help + --with-included-gettext use the GNU gettext library included here" +ac_help="$ac_help + --with-catgets use catgets functions if available" +ac_help="$ac_help + --with-checker compile with Checker (for debugging)" +ac_help="$ac_help + --enable-debugging turn on debugging options" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=src/q2c.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + + + + +CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE=1" +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:543: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:573: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:624: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:656: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 667 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:698: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:703: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&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 <&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 < +#include +#include +#include +/* 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 <> confdefs.h <&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 < 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 < +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 < +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 < +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 < +#include +#include +#include +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 +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 +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 < +#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 <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 <&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 <&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 < +#if STDC_HEADERS +#include +#include +#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 < +#if STDC_HEADERS +#include +#include +#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 < +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 < +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# 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 <&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 < +/* 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 <&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 < 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 <&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 +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 <&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 < +/* 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 <&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 < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# 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 +# 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 +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 <&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 < +/* 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 <&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 < +/* 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 <&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 < +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 +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 < +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 <&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 <&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 < +/* 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 <&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 <&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 <&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 <&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 < +/* 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 +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 <&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 <&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 <&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 <&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 <&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 +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 <&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 <&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 <&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 +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 <&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 <&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 <&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 +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 <&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 +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 <&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 < +#include + +#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 < +#include +#include +#include +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 +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 +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 < +#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 < +#include +#include +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 < +#include +#include +#include +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 +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 +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 < +#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 +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 <&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 <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 <&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 <&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 < +#if STDC_HEADERS +#include +#include +#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 < +#include +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 < +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 <&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 < +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 <&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 < +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 <&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 < +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 <&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 < +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 <&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 < +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 <&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 < +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 <> 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 < + #include +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 < + #include +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 <&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 < + 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 < + #include + 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 <&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 < +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 < +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 < +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# 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 <&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 < +/* 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 <&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 < 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 <&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 <&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 < +/* 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 < +/* 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 < +/* 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 <&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 < +/* 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 <&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 </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 < 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 <> $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 <> $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 <> $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 <> $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 <> $CONFIG_STATUS <<\EOF +test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h +sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + + # Copy pref.h from pref.h.orig if prudent + if test ! -f pref.h; then + echo "creating pref.h" + cp $ac_given_srcdir/pref.h.orig pref.h + elif test "`ls -t pref.h.orig pref.h 2>/dev/null | sed 1q`" = pref.h.orig; then + echo "replacing pref.h with newer pref.h.orig" + cp $ac_given_srcdir/pref.h.orig pref.h + else + echo "pref.h exists" + fi + if test -f pref.h; then touch pref.h; fi + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + + diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000000..726b6def1d --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,333 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +info_TEXINFOS = pspp.texi + +# FIXME: remove this when the manual is fixed to eliminate dangling +# references. +MAKEINFO = makeinfo --no-validate + +EXTRA_DIST = pspp.man + +MAINTAINERCLEANFILES = Makefile.in README.html +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +TEXI2DVI = texi2dvi +INFO_DEPS = pspp.info +DVIS = pspp.dvi +TEXINFOS = pspp.texi +DIST_COMMON = ChangeLog Makefile.am Makefile.in mdate-sh texinfo.tex + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +.SUFFIXES: .dvi .info .ps .texi .texinfo .txi +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +pspp.info: pspp.texi +pspp.dvi: pspp.texi + + +DVIPS = dvips + +.texi.info: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texi.dvi: + TEXINPUTS=.:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texi: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texinfo.info: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texinfo: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texinfo.dvi: + TEXINPUTS=.:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi.info: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.txi.dvi: + TEXINPUTS=.:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` +.dvi.ps: + $(DVIPS) $< -o $@ + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(infodir) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + d=$(srcdir); \ + for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$d/$$ifile; then \ + echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ + else : ; fi; \ + done; \ + done + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ + install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ + done; \ + else : ; fi + +uninstall-info: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + ii=yes; \ + else ii=; fi; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + test -z "$ii" \ + || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ + done + @$(NORMAL_UNINSTALL) + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ + done + +dist-info: $(INFO_DEPS) + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + d=$(srcdir); \ + for file in `cd $$d && eval echo $$base*`; do \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done; \ + done + +mostlyclean-aminfo: + -rm -f pspp.aux pspp.cp pspp.cps pspp.dvi pspp.fn pspp.fns pspp.ky \ + pspp.kys pspp.ps pspp.log pspp.pg pspp.toc pspp.tp pspp.tps \ + pspp.vr pspp.vrs pspp.op pspp.tr pspp.cv pspp.cn + +clean-aminfo: + +distclean-aminfo: + +maintainer-clean-aminfo: + cd $(srcdir) && for i in $(INFO_DEPS); do \ + rm -f $$i; \ + if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ + rm -f $$i-[0-9]*; \ + fi; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = doc + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info +info-am: $(INFO_DEPS) +info: info-am +dvi-am: $(DVIS) +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: install-info-am +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-info +uninstall: uninstall-am +all-am: Makefile $(INFO_DEPS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(infodir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-aminfo mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-aminfo clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-aminfo distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: install-info-am uninstall-info mostlyclean-aminfo \ +distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/pspp.info b/doc/pspp.info new file mode 100644 index 0000000000..b1e813b6e7 --- /dev/null +++ b/doc/pspp.info @@ -0,0 +1,247 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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 + +Tag Table: +(Indirect) +Node: Top1191 +Node: Introduction2975 +Node: License4202 +Node: Credits5652 +Node: Installation6504 +Node: UNIX installation7595 +Node: Configuration9720 +Node: File locations10913 +Node: Configuration techniques14494 +Node: Configuration files15443 +Node: Environment variables16957 +Node: Variable values17588 +Node: Environment substitutions19106 +Node: Predefined variables20144 +Node: Output devices20893 +Node: Driver categories22308 +Node: Macro definitions24244 +Node: Device definitions25679 +Node: Dimensions28054 +Ref: Dimensions-Footnote-129517 +Node: papersize29540 +Node: Distinguishing line types31052 +Node: Tokenizing lines31851 +Node: PostScript driver class33597 +Node: PS output options34813 +Node: PS page options37192 +Node: PS file options38204 +Node: PS font options41737 +Node: PS line options42360 +Node: Prologue43529 +Node: Encodings47205 +Node: ASCII driver class49410 +Node: ASCII output options50013 +Node: ASCII page options51806 +Node: ASCII font options53357 +Node: HTML driver class58657 +Node: HTML Prologue59694 +Node: Miscellaneous configuring61621 +Node: Improving output quality63534 +Node: Invocation65617 +Node: Non-option Arguments66672 +Node: Configuration Options68322 +Node: Input and output options69241 +Node: Language control options70501 +Node: Informational options71877 +Node: Language73477 +Node: Tokens74400 +Node: Commands80633 +Node: Types of Commands83917 +Node: Order of Commands85434 +Node: Missing Observations87793 +Node: Variables89188 +Node: Attributes89902 +Node: System Variables92120 +Node: Sets of Variables93146 +Node: Input/Output Formats95263 +Node: Scratch Variables106891 +Node: Files108078 +Node: BNF109433 +Node: Expressions111644 +Node: Booleans112916 +Node: Missing Values in Expressions113832 +Node: Grouping Operators114569 +Node: Arithmetic Operators114981 +Node: Logical Operators115723 +Node: Relational Operators116563 +Node: Functions117930 +Node: Advanced Mathematics119366 +Node: Miscellaneous Mathematics120127 +Node: Trigonometry121183 +Node: Missing Value Functions122579 +Node: Pseudo-Random Numbers125204 +Node: Set Membership126476 +Node: Statistical Functions127636 +Node: String Functions130182 +Node: Time & Date136184 +Node: Time & Date Concepts137443 +Node: Time Construction139526 +Node: Time Extraction140156 +Node: Date Construction141066 +Node: Date Extraction142742 +Node: Miscellaneous Functions146129 +Node: Functions Not Implemented148012 +Node: Order of Operations148355 +Node: Data Input and Output148969 +Node: BEGIN DATA150490 +Node: CLEAR TRANSFORMATIONS151122 +Node: DATA LIST151500 +Node: DATA LIST FIXED152386 +Node: DATA LIST FIXED Examples157285 +Node: DATA LIST FREE159317 +Node: DATA LIST LIST161026 +Node: END CASE161663 +Node: END FILE161890 +Node: FILE HANDLE162132 +Node: INPUT PROGRAM163522 +Node: LIST168376 +Node: MATRIX DATA170091 +Node: NEW FILE173924 +Node: PRINT174114 +Node: PRINT EJECT176701 +Node: PRINT SPACE177350 +Node: REREAD178019 +Node: REPEATING DATA179113 +Node: WRITE182611 +Node: System and Portable Files183505 +Node: APPLY DICTIONARY184287 +Node: EXPORT186332 +Node: GET187024 +Node: IMPORT188917 +Node: MATCH FILES189764 +Node: SAVE192073 +Node: SYSFILE INFO194124 +Node: XSAVE194590 +Node: Variable Attributes195218 +Node: ADD VALUE LABELS196471 +Node: DISPLAY196874 +Node: DISPLAY VECTORS198123 +Node: FORMATS198377 +Node: LEAVE199071 +Node: MISSING VALUES200345 +Node: MODIFY VARS201560 +Node: NUMERIC203332 +Node: PRINT FORMATS203988 +Node: RENAME VARIABLES204422 +Node: VALUE LABELS205141 +Node: STRING205820 +Node: VARIABLE LABELS206353 +Node: VECTOR206867 +Node: WRITE FORMATS208139 +Node: Data Manipulation208547 +Node: AGGREGATE209414 +Node: AUTORECODE214340 +Node: COMPUTE215392 +Node: COUNT216046 +Node: FLIP218994 +Node: IF220528 +Node: RECODE221770 +Node: SORT CASES224679 +Node: Data Selection225838 +Node: FILTER226682 +Node: N OF CASES227626 +Node: PROCESS IF229219 +Node: SAMPLE230310 +Node: SELECT IF232006 +Node: SPLIT FILE232772 +Node: TEMPORARY233608 +Node: WEIGHT234577 +Node: Conditionals and Looping235550 +Node: BREAK236073 +Node: DO IF236378 +Node: DO REPEAT237165 +Node: LOOP239150 +Node: Statistics241172 +Node: DESCRIPTIVES241547 +Node: FREQUENCIES244849 +Node: CROSSTABS249271 +Node: Utilities254556 +Node: COMMENT255739 +Node: DOCUMENT256190 +Node: DISPLAY DOCUMENTS256866 +Node: DISPLAY FILE LABEL257198 +Node: DROP DOCUMENTS257480 +Node: EXECUTE257885 +Node: FILE LABEL258116 +Node: INCLUDE258550 +Node: QUIT258971 +Node: SET259280 +Node: SUBTITLE267859 +Node: TITLE268438 +Node: Not Implemented268956 +Node: Data File Format269902 +Node: File Header Record272026 +Node: Variable Record275432 +Node: Value Label Record279986 +Node: Value Label Variable Record281293 +Node: Document Record282093 +Node: Machine int32 Info Record282924 +Node: Machine flt64 Info Record285067 +Node: Miscellaneous Informational Records286313 +Node: Dictionary Termination Record287542 +Node: Data Record288190 +Node: Portable File Format290618 +Node: Portable File Characters291596 +Node: Portable File Structure292686 +Node: Portable File Header294552 +Node: Version and Date Info Record297260 +Node: Identification Records297834 +Node: Variable Count Record298352 +Node: Variable Records298785 +Node: Value Label Records300482 +Node: Portable File Data301211 +Node: q2c Input Format301781 +Node: Invoking q2c302387 +Node: q2c Input Structure302769 +Node: Grammar Rules304931 +Node: Bugs311772 +Node: Known bugs312859 +Node: Contacting the Author314271 +Node: Function Index314523 +Node: Concept Index319595 +Node: Command Index342766 + +End Tag Table diff --git a/doc/pspp.info-1 b/doc/pspp.info-1 new file mode 100644 index 0000000000..be3f0b185e --- /dev/null +++ b/doc/pspp.info-1 @@ -0,0 +1,1330 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + +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. + + +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'. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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 + + +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. + + +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. + + +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. + + +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. + + +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'. + + +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'. + + +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. + + +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'. + + +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'. + + +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 ()'. + +`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. + + +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. + + +File: pspp.info, Node: ASCII driver class, Next: HTML driver class, Prev: PostScript driver class, Up: Configuration + +The ASCII driver class +====================== + + The ASCII driver class produces output that can be displayed on a +terminal or output to printers. All of its options are highly +configurable. The ASCII driver has class name `ascii'. + + The ASCII driver is described in further detail below. + +* Menu: + +* ASCII output options:: Output file options. +* ASCII page options:: Page size, margins, more. +* ASCII font options:: Box character, bold & italics. + diff --git a/doc/pspp.info-2 b/doc/pspp.info-2 new file mode 100644 index 0000000000..2bb56f84bc --- /dev/null +++ b/doc/pspp.info-2 @@ -0,0 +1,1297 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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). + + +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'. + + +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'. + + +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. + + +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'. + + +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. + + +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. + + +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. + + +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 `#!'. + + +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::. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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::. + + +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. + + +File: pspp.info, Node: Sets of Variables, Next: Input/Output Formats, Prev: System Variables, Up: Variables + +Lists of variable names +----------------------- + + There are several ways to specify a set of variables: + + 1. (Most commonly.) List the variable names one after another, + optionally separating them by commas. + + 2. (This method cannot be used on commands that define the + dictionary, such as `DATA LIST'.) The syntax is the names of two + existed variables, separated by the reserved keyword `TO'. The + meaning is to include every variable in the dictionary between and + including the variables specified. For instance, if the + dictionary contains six variables with the names `ID', `X1', `X2', + `GOAL', `MET', and `NEXTGOAL', in that order, then `X2 TO MET' + would include variables `X2', `GOAL', and `MET'. + + 3. (This method can be used only on commands that define the + dictionary, such as `DATA LIST'.) It is used to define sequences + of variables that end in consecutive integers. The syntax is two + identifiers that end in numbers. This method is best illustrated + with examples: + + * The syntax `X1 TO X5' defines 5 variables: + + - X1 + + - X2 + + - X3 + + - X4 + + - X5 + + * The syntax `ITEM0008 TO ITEM0013' defines 6 variables: + + - ITEM0008 + + - ITEM0009 + + - ITEM0010 + + - ITEM0011 + + - ITEM0012 + + - ITEM0013 + + * Each of the syntaxes `QUES001 TO QUES9' and `QUES6 TO QUES3' + are invalid, although for different reasons, which should be + evident. + + Note that after a set of variables has been defined on `DATA LIST' + or another command with this method, the same set can be + referenced on later commands using the same syntax. + + 4. The above methods can be combined, either one after another or + delimited by commas. For instance, the combined syntax `A Q5 TO + Q8 X TO Z' is legal as long as each part `A', `Q5 TO Q8', `X TO Z' + is individually legal. + diff --git a/doc/pspp.info-3 b/doc/pspp.info-3 new file mode 100644 index 0000000000..cfa89201dd --- /dev/null +++ b/doc/pspp.info-3 @@ -0,0 +1,1257 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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 + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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.) + + +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. + + +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} + + +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. + + +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'.) + + +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'.) + + +File: pspp.info, Node: Date Construction, Next: Date Extraction, Prev: Time Extraction, Up: Time & Date + +Functions that Produce Dates +............................ + + These functions take numeric arguments and give numeric results in +the PSPP date format. Arguments taken by these functions are: + +DAY + Refers to a day of the month between 1 and 31. + +MONTH + Refers to a month of the year between 1 and 12. + +QUARTER + Refers to a quarter of the year between 1 and 4. The quarters of + the year begin on the first days of months 1, 4, 7, and 10. + +WEEK + Refers to a week of the year between 1 and 53. + +YDAY + Refers to a day of the year between 1 and 366. + +YEAR + Refers to a year between 1582 and 19999. + + If these functions' arguments are out-of-range, they are correctly +normalized before conversion to date format. Non-integers are rounded +toward zero. + + - Function: DATE.DMY (DAY, MONTH, YEAR) + - Function: DATE.MDY (MONTH, DAY, YEAR) + Results in a date value corresponding to the midnight before day + DAY of month MONTH of year YEAR. + + - Function: DATE.MOYR (MONTH, YEAR) + Results in a date value corresponding to the midnight before the + first day of month MONTH of year YEAR. + + - Function: DATE.QYR (QUARTER, YEAR) + Results in a date value corresponding to the midnight before the + first day of quarter QUARTER of year YEAR. + + - Function: DATE.WKYR (WEEK, YEAR) + Results in a date value corresponding to the midnight before the + first day of week WEEK of year YEAR. + + - Function: DATE.YRDAY (YEAR, YDAY) + Results in a date value corresponding to the midnight before day + YDAY of year YEAR. + diff --git a/doc/pspp.info-4 b/doc/pspp.info-4 new file mode 100644 index 0000000000..740c29a0de --- /dev/null +++ b/doc/pspp.info-4 @@ -0,0 +1,1366 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + +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' + + +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' + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + + +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. + + +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. + + +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::. + + +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::. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +File: pspp.info, Node: MATCH FILES, Next: SAVE, Prev: IMPORT, Up: System and Portable Files + +MATCH FILES +=========== + + MATCH FILES + /BY var_list + /{FILE,TABLE}={*,'filename'} + /DROP=var_list + /KEEP=var_list + /RENAME=(src_names=target_names)... + /IN=var_name + /FIRST=var_name + /LAST=var_name + /MAP + + The MATCH FILES command merges one or more system files, optionally +including the active file. Records with the same values for BY +variables are combined into a single record. Records with different +values are output in order. Thus, multiple sorted system files are +combined into a single sorted system file based on the value of the BY +variables. + + The BY subcommand specifies a list of variables that are used to +match records from each of the system files. Variables specified must +exist in all the files specified on FILE and TABLE. BY should usually +be specified. If TABLE is used then BY is required. + + Specify FILE with a system file as a file name string or file handle +(*note FILE HANDLE::). An asterisk (`*') may also be specified to +indicate the current active file. The files specified on FILE are +merged together based on the BY variables, or combined case-by-case if +BY is not specified. Normally at least two FILE subcommands should be +specified. + + Specify TABLE with a system file in order to use it as a "table +lookup file". Records in table lookup files are not used up after +they've been used once. This means that data in table lookup files can +correspond to any number of records in FILE files. Table lookup files +correspond to lookup tables in traditional relational database systems. +It is incorrect to have records with duplicate BY values in table lookup +files. + + Any number of FILE and TABLE subcommands may be specified. Each +instance of FILE or TABLE can be followed by DROP, KEEP, and/or RENAME +subcommands. These take the same form as the corresponding subcommands +of GET (*note GET::), and perform the same functions. + + Variables belonging to files that are not present for the current +case are set to the system-missing value for numeric variables or +spaces for string variables. + + IN, FIRST, LAST, and MAP are currently not used. + diff --git a/doc/pspp.info-5 b/doc/pspp.info-5 new file mode 100644 index 0000000000..e1621d8063 --- /dev/null +++ b/doc/pspp.info-5 @@ -0,0 +1,1412 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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::). + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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.) + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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 (`+'). + + +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. + + +File: pspp.info, Node: Statistics, Next: Utilities, Prev: Conditionals and Looping, Up: Top + +Statistics +********** + + This chapter documents the statistical procedures that PSPP supports +so far. + +* Menu: + +* DESCRIPTIVES:: Descriptive statistics. +* FREQUENCIES:: Frequency tables. +* CROSSTABS:: Crosstabulation tables. + diff --git a/doc/pspp.info-6 b/doc/pspp.info-6 new file mode 100644 index 0000000000..487a3b5e10 --- /dev/null +++ b/doc/pspp.info-6 @@ -0,0 +1,1652 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + +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. + + +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. + + +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! + + +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. + + +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::. + + +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::. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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 + + +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:: + + +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. + + +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' + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +File: pspp.info, Node: Data Record, Prev: Dictionary Termination Record, Up: Data File Format + +Data Record +=========== + + Data records must follow all other records in the data file. There +must be at least one data record in every system file. + + The format of data records varies depending on whether the data is +compressed. Regardless, the data is arranged in a series of 8-byte +elements. + + When data is not compressed, Every case is composed of `case_size' +of these 8-byte elements, where `case_size' comes from the file header +record (*note File Header Record::). Each element corresponds to the +variable declared in the respective variable record (*note Variable +Record::). Numeric values are given in `flt64' format; string values +are literal characters string, padded on the right when necessary. + + Compressed data is arranged in the following manner: the first 8-byte +element in the data section is divided into a series of 1-byte command +codes. These codes have meanings as described below: + +0 + Ignored. If the program writing the system file accumulates + compressed data in blocks of fixed length, 0 bytes can be used to + pad out extra bytes remaining at the end of a fixed-size block. + +1 through 251 + These values indicate that the corresponding numeric variable has + the value `(CODE - BIAS)' for the case being read, where CODE is + the value of the compression code and BIAS is the variable + `compression_bias' from the file header. For example, code 105 + with bias 100.0 (the normal value) indicates a numeric variable of + value 5. + +252 + End of file. This code may or may not appear at the end of the + data stream. PSPP always outputs this code but its use is not + required. + +253 + This value indicates that the numeric or string value is not + compressible. The value is stored in the 8-byte element following + the current block of command bytes. If this value appears twice + in a block of command bytes, then it indicates the second element + following the command bytes, and so on. + +254 + Used to indicate a string value that is all spaces. + +255 + Used to indicate the system-missing value. + + When the end of the first 8-byte element of command bytes is reached, +any blocks of non-compressible values are skipped, and the next element +of command bytes is read and interpreted, until the end of the file is +reached. + diff --git a/doc/pspp.info-7 b/doc/pspp.info-7 new file mode 100644 index 0000000000..aa1a861416 --- /dev/null +++ b/doc/pspp.info-7 @@ -0,0 +1,837 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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:: + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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). + + +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). + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +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. + + +File: pspp.info, Node: Contacting the Author, Prev: Known bugs, Up: Bugs + +Contacting the Author +===================== + + The author can be contacted at e-mail address . + + PSPP bug reports should be sent to . + + +File: pspp.info, Node: Function Index, Next: Concept Index, Prev: Bugs, Up: Top + +Function Index +************** + +* Menu: + +* ABS: Miscellaneous Mathematics. +* ACOS: Trigonometry. +* ANY: Set Membership. +* ARCOS: Trigonometry. +* ARSIN: Trigonometry. +* ARTAN: Trigonometry. +* ASIN: Trigonometry. +* ATAN: Trigonometry. +* CDF.xxx: Functions Not Implemented. +* CDFNORM: Functions Not Implemented. +* CFVAR: Statistical Functions. +* CONCAT: String Functions. +* COS: Trigonometry. +* CTIME.DAYS: Time Extraction. +* CTIME.HOURS: Time Extraction. +* CTIME.MINUTES: Time Extraction. +* CTIME.SECONDS: Time Extraction. +* DATE.DMY: Date Construction. +* DATE.MDY: Date Construction. +* DATE.MOYR: Date Construction. +* DATE.QYR: Date Construction. +* DATE.WKYR: Date Construction. +* DATE.YRDAY: Date Construction. +* EXP: Advanced Mathematics. +* IDF.xxx: Functions Not Implemented. +* INDEX: String Functions. +* LAG: Miscellaneous Functions. +* LENGTH: String Functions. +* LG10: Advanced Mathematics. +* LN: Advanced Mathematics. +* LOWER: String Functions. +* LPAD: String Functions. +* LTRIM: String Functions. +* MAX: Statistical Functions. +* MEAN: Statistical Functions. +* MIN: Statistical Functions. +* MISSING: Missing Value Functions. +* MOD: Miscellaneous Mathematics. +* MOD10: Miscellaneous Mathematics. +* NCDF.xxx: Functions Not Implemented. +* NMISS: Missing Value Functions. +* NORMAL: Pseudo-Random Numbers. +* NUMBER: String Functions. +* NVALID: Missing Value Functions. +* PROBIT: Functions Not Implemented. +* RANGE: Set Membership. +* RINDEX: String Functions. +* RND: Miscellaneous Mathematics. +* RPAD: String Functions. +* RTRIM: String Functions. +* RV.xxx: Functions Not Implemented. +* SD: Statistical Functions. +* SIN: Trigonometry. +* SQRT: Advanced Mathematics. +* STRING: String Functions. +* SUBSTR: String Functions. +* SUM: Statistical Functions. +* SYSMIS: Missing Value Functions. +* TAN: Trigonometry. +* TIME.DAYS: Time Construction. +* TIME.HMS: Time Construction. +* TRUNC: Miscellaneous Mathematics. +* UNIFORM: Pseudo-Random Numbers. +* UPCASE: String Functions. +* VALUE: Missing Value Functions. +* VAR: Statistical Functions. +* VARIANCE: Statistical Functions. +* XDATE.DATE: Date Extraction. +* XDATE.HOUR: Date Extraction. +* XDATE.JDAY: Date Extraction. +* XDATE.MDAY: Date Extraction. +* XDATE.MINUTE: Date Extraction. +* XDATE.MONTH: Date Extraction. +* XDATE.QUARTER: Date Extraction. +* XDATE.SECOND: Date Extraction. +* XDATE.TDAY: Date Extraction. +* XDATE.TIME: Date Extraction. +* XDATE.WEEK: Date Extraction. +* XDATE.WKDAY: Date Extraction. +* XDATE.YEAR: Date Extraction. +* YRMODA: Miscellaneous Functions. + diff --git a/doc/pspp.info-8 b/doc/pspp.info-8 new file mode 100644 index 0000000000..624bd72bd4 --- /dev/null +++ b/doc/pspp.info-8 @@ -0,0 +1,528 @@ +This is pspp.info, produced by makeinfo version 4.0 from pspp.texi. + +START-INFO-DIR-ENTRY +* PSPP: (pspp). Statistical analysis package. +END-INFO-DIR-ENTRY + + PSPP, for statistical analysis of sampled data, by Ben Pfaff. + + This file documents PSPP, a statistical package for analysis of +sampled data that uses a command language compatible with SPSS. + + Copyright (C) 1996-9, 2000 Free Software Foundation, Inc. + + This version of the PSPP documentation is consistent with version 2 +of "texinfo.tex". + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above condition for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +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. + + +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. + + diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 4c03dfac5d..d4e7739444 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -34,7 +34,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 1.1 $ +\deftexinfoversion$Revision: 1.2 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number diff --git a/install-sh b/install-sh new file mode 100755 index 0000000000..89fc9b098b --- /dev/null +++ b/install-sh @@ -0,0 +1,238 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/lib/Makefile.in b/lib/Makefile.in new file mode 100644 index 0000000000..f884cc6095 --- /dev/null +++ b/lib/Makefile.in @@ -0,0 +1,308 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +SUBDIRS = julcal @GMP_SUBDIRS@ misc dcdflib +DIST_SUBDIRS = julcal gmp misc dcdflib + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +DIST_COMMON = ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(DIST_SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/dcdflib/Makefile.in b/lib/dcdflib/Makefile.in new file mode 100644 index 0000000000..1617604d3a --- /dev/null +++ b/lib/dcdflib/Makefile.in @@ -0,0 +1,301 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +noinst_LIBRARIES = libdcdflib.a + +INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl + + +libdcdflib_a_SOURCES = dcdflib.c ipmpar.c +noinst_HEADERS = cdflib.h + +MAINTAINERCLEANFILES = Makefile.in + +EXTRA_DIST = COPYING +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libdcdflib_a_LIBADD = +libdcdflib_a_OBJECTS = dcdflib.o ipmpar.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libdcdflib_a_SOURCES) +OBJECTS = $(libdcdflib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/dcdflib/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libdcdflib.a: $(libdcdflib_a_OBJECTS) $(libdcdflib_a_DEPENDENCIES) + -rm -f libdcdflib.a + $(AR) cru libdcdflib.a $(libdcdflib_a_OBJECTS) $(libdcdflib_a_LIBADD) + $(RANLIB) libdcdflib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/dcdflib + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +dcdflib.o: dcdflib.c cdflib.h +ipmpar.o: ipmpar.c ../../config.h ../../pref.h + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/gmp/Makefile.in b/lib/gmp/Makefile.in new file mode 100644 index 0000000000..3586e75f1f --- /dev/null +++ b/lib/gmp/Makefile.in @@ -0,0 +1,371 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +INCLUDES = -I$(srcdir) -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/intl + +SUBDIRS = mpn mpf + +noinst_LIBRARIES = libgmp.a +libgmp_a_SOURCES = extract-dbl.c gmp-mparam.h longlong.h gmp-impl.h gmp.h memory.c mp_clz_tab.c + + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libgmp_a_LIBADD = +libgmp_a_OBJECTS = extract-dbl.o memory.o mp_clz_tab.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = COPYING.LIB ChangeLog INSTALL Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libgmp_a_SOURCES) +OBJECTS = $(libgmp_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libgmp.a: $(libgmp_a_OBJECTS) $(libgmp_a_DEPENDENCIES) + -rm -f libgmp.a + $(AR) cru libgmp.a $(libgmp_a_OBJECTS) $(libgmp_a_LIBADD) + $(RANLIB) libgmp.a + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/gmp + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done + +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/gmp/mpf/Makefile.in b/lib/gmp/mpf/Makefile.in new file mode 100644 index 0000000000..a2c1887ce3 --- /dev/null +++ b/lib/gmp/mpf/Makefile.in @@ -0,0 +1,293 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/intl + + +noinst_LIBRARIES = libmpf.a +libmpf_a_SOURCES = clear.c get_str.c iset_d.c set_d.c set_dfl_prec.c + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libmpf_a_LIBADD = +libmpf_a_OBJECTS = clear.o get_str.o iset_d.o set_d.o set_dfl_prec.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libmpf_a_SOURCES) +OBJECTS = $(libmpf_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/mpf/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libmpf.a: $(libmpf_a_OBJECTS) $(libmpf_a_DEPENDENCIES) + -rm -f libmpf.a + $(AR) cru libmpf.a $(libmpf_a_OBJECTS) $(libmpf_a_LIBADD) + $(RANLIB) libmpf.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/gmp/mpf + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/gmp/mpn/Makefile.in b/lib/gmp/mpn/Makefile.in new file mode 100644 index 0000000000..b7b27c4439 --- /dev/null +++ b/lib/gmp/mpn/Makefile.in @@ -0,0 +1,295 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/intl + + +noinst_LIBRARIES = libmpn.a +libmpn_a_SOURCES = add_n.c addmul_1.c cmp.c divrem.c get_str.c inlines.c lshift.c mp_bases.c mul.c mul_1.c mul_n.c sub_n.c submul_1.c + + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libmpn_a_LIBADD = +libmpn_a_OBJECTS = add_n.o addmul_1.o cmp.o divrem.o get_str.o \ +inlines.o lshift.o mp_bases.o mul.o mul_1.o mul_n.o sub_n.o submul_1.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libmpn_a_SOURCES) +OBJECTS = $(libmpn_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/gmp/mpn/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libmpn.a: $(libmpn_a_OBJECTS) $(libmpn_a_DEPENDENCIES) + -rm -f libmpn.a + $(AR) cru libmpn.a $(libmpn_a_OBJECTS) $(libmpn_a_LIBADD) + $(RANLIB) libmpn.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/gmp/mpn + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/julcal/Makefile.in b/lib/julcal/Makefile.in new file mode 100644 index 0000000000..199e15afce --- /dev/null +++ b/lib/julcal/Makefile.in @@ -0,0 +1,298 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +noinst_LIBRARIES = libjulcal.a + +INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl + + +libjulcal_a_SOURCES = julcal.c +noinst_HEADERS = julcal.h + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libjulcal_a_LIBADD = +libjulcal_a_OBJECTS = julcal.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = README ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libjulcal_a_SOURCES) +OBJECTS = $(libjulcal_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/julcal/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libjulcal.a: $(libjulcal_a_OBJECTS) $(libjulcal_a_DEPENDENCIES) + -rm -f libjulcal.a + $(AR) cru libjulcal.a $(libjulcal_a_OBJECTS) $(libjulcal_a_LIBADD) + $(RANLIB) libjulcal.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/julcal + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +julcal.o: julcal.c julcal.h + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/lib/misc/Makefile.in b/lib/misc/Makefile.in new file mode 100644 index 0000000000..0ee91abb2b --- /dev/null +++ b/lib/misc/Makefile.in @@ -0,0 +1,304 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +noinst_LIBRARIES = libmisc.a + +INCLUDES = -I$(srcdir) -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/intl + + +libmisc_a_SOURCES = qsort.c getopt.c getopt1.c +libmisc_a_LIBADD = @ALLOCA@ @LIBOBJS@ +libmisc_a_DEPENDENCIES = @ALLOCA@ @LIBOBJS@ + +EXTRA_DIST = alloca.c getdelim.c getline.c memchr.c memcmp.c memcpy.c memmem.c memmove.c memset.c stpcpy.c strcasecmp.c strerror.c strncasecmp.c strpbrk.c strstr.c strtok_r.c strtol.c strtoul.c + + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libmisc_a_OBJECTS = qsort.o getopt.o getopt1.o +AR = ar +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = ChangeLog Makefile.am Makefile.in alloca.c getdelim.c \ +getline.c memchr.c memcmp.c memmem.c memmove.c memset.c stpcpy.c \ +strcasecmp.c strerror.c strncasecmp.c strpbrk.c strtok_r.c strtol.c \ +strtoul.c + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(libmisc_a_SOURCES) +OBJECTS = $(libmisc_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/misc/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libmisc.a: $(libmisc_a_OBJECTS) $(libmisc_a_DEPENDENCIES) + -rm -f libmisc.a + $(AR) cru libmisc.a $(libmisc_a_OBJECTS) $(libmisc_a_LIBADD) + $(RANLIB) libmisc.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib/misc + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +getopt.o: getopt.c ../../config.h ../../pref.h +getopt1.o: getopt1.c ../../config.h ../../pref.h +qsort.o: qsort.c ../../config.h ../../pref.h ../../src/alloc.h + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/missing b/missing new file mode 100755 index 0000000000..7789652e87 --- /dev/null +++ b/missing @@ -0,0 +1,190 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Franc,ois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`configure.in'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`configure.in'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`configure.in'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/mkinstalldirs b/mkinstalldirs new file mode 100755 index 0000000000..cc8783edce --- /dev/null +++ b/mkinstalldirs @@ -0,0 +1,36 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Last modified: 1994-03-25 +# Public domain + +errstatus=0 + +for file in ${1+"$@"} ; do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d in ${1+"$@"} ; do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" 1>&2 + mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? + fi + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c new file mode 100644 index 0000000000..6f4931ff48 --- /dev/null +++ b/po/cat-id-tbl.c @@ -0,0 +1,1491 @@ +/* Automatically generated by po2tbl.sed from pspp.pot. */ + +#if HAVE_CONFIG_H +# include +#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}, + {"<>", 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}, + {"", 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}, + {"", 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}, + {"", 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 .", 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 .\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 '.", 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}, + {"<>", 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}, + {"<>", 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}, + {"", 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}, + {"", 1086}, + {"%s: `.' expected after string.", 1087}, + {"%s after: %s\n", 1088}, + {"Document entered %s %02d:%02d:%02d by %s (%s):", 1089}, + {"\ +It is not possible to assign value labels to long string variables such as \ +%s.", 1090}, + {"String expected for value.", 1091}, + {"Number expected for value.", 1092}, + {"Value label `%g' is not integer.", 1093}, + {"Truncating value label to 60 characters.", 1094}, + {"Value labels:", 1095}, + {" (no value labels)\n", 1096}, + {"String expected for variable label.", 1097}, + {"Truncating variable label to 120 characters.", 1098}, + {"Variable labels:\n", 1099}, + {"(no variable label)", 1100}, + {"Vector name %s is given twice.", 1101}, + {"There is already a vector with name %s.", 1102}, + {"\ +A slash must be used to separate each vector specification when using the \ +long form. Commands such as VECTOR A,B=Q1 TO Q20 are not supported.", 1103}, + {"Vectors must have at least one element.", 1104}, + {"%s%d is too long for a variable name.", 1105}, + {"\ +The syntax for this command does not match the expected syntax for either \ +the long form or the short form of VECTOR.", 1106}, + {"The weighting variable must be numeric.", 1107}, + {"The weighting variable may not be scratch.", 1108}, + {"bad weighting variable, canceling\n", 1109}, +}; + +int _msg_tbl_length = 1109; diff --git a/po/stamp-cat-id b/po/stamp-cat-id new file mode 100644 index 0000000000..9788f70238 --- /dev/null +++ b/po/stamp-cat-id @@ -0,0 +1 @@ +timestamp diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000000..9d0f4f2a35 --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,586 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# PSPP + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +bin_PROGRAMS = pspp + +INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/intl + + +DISTCLEANFILES = foo $(q_sources_c) +MAINTAINERCLEANFILES = Makefile.in +EXTRA_DIST = $(q_sources_q) q2c.c +ETAGS_ARGS = -l c $(q_sources_c) +SUFFIXES = .q + +q_sources_c = correlations.c crosstabs.c descript.c file-handle.c frequencies.c list.c means.c set.c t-test.c + + +q_sources_q = correlations.q crosstabs.q descript.q file-handle.q frequencies.q list.q means.q set.q t-test.q + + +pspp_SOURCES = aggregate.c alloc.c alloc.h apply-dict.c approx.h ascii.c autorecode.c avl.c avl.h bitvector.h cases.c cases.h cmdline.c command.c command.def command.h compute.c correlations.c count.c crosstabs.c data-in.c data-in.h data-list.c data-out.c debug-print.h descript.c dfm.c dfm.h do-if.c do-ifP.h error.c error.h expr-evl.c expr-opt.c expr-prs.c expr.h exprP.h file-handle.c file-handle.h file-type.c filename.c filename.h flip.c font.h format.c format.def format.h formats.c frequencies.c frequencies.g get.c getline.c getline.h glob.c groff-font.c hash.c hash.h heap.c heap.h html.c htmlP.h include.c inpt-pgm.c inpt-pgm.h lexer.c lexer.h list.c log.h loop.c magic.c magic.h main.c main.h matrix-data.c matrix.c matrix.h means.c mis-val.c misc.c misc.h modify-vars.c numeric.c output.c output.h pfm-read.c pfm-write.c pfm.h pool.c pool.h postscript.c print.c random.c random.h recode.c rename-vars.c repeat.c sample.c sel-if.c set.c settings.h sfm-read.c sfm-write.c sfm.h sfmP.h som.c som.h sort.c sort.h split-file.c stat.h stats.c stats.h str.c str.h sysfile-info.c tab.c tab.h temporary.c title.c t-test.c val-labs.c var-labs.c var.h vars-atr.c vars-prs.c vector.c vector.h version.c version.h vfm.c vfm.h vfmP.h weight.c + + +GMP_LIBS = ../lib/gmp/mpf/libmpf.a ../lib/gmp/mpn/libmpn.a ../lib/gmp/libgmp.a + + +LDADD = ../lib/julcal/libjulcal.a ../lib/misc/libmisc.a ../lib/dcdflib/libdcdflib.a @GMP_LIBS@ @INTLLIBS@ + +# q2c + +LOCAL_CC = @LOCAL_CC@ +LOCAL_COMPILE = $(LOCAL_CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LOCAL_LINK = $(LOCAL_CC) $(LDFLAGS) -o $@ + +CLEANFILES = q2c +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +pspp_OBJECTS = aggregate.o alloc.o apply-dict.o ascii.o autorecode.o \ +avl.o cases.o cmdline.o command.o compute.o correlations.o count.o \ +crosstabs.o data-in.o data-list.o data-out.o descript.o dfm.o do-if.o \ +error.o expr-evl.o expr-opt.o expr-prs.o file-handle.o file-type.o \ +filename.o flip.o format.o formats.o frequencies.o get.o getline.o \ +glob.o groff-font.o hash.o heap.o html.o include.o inpt-pgm.o lexer.o \ +list.o loop.o magic.o main.o matrix-data.o matrix.o means.o mis-val.o \ +misc.o modify-vars.o numeric.o output.o pfm-read.o pfm-write.o pool.o \ +postscript.o print.o random.o recode.o rename-vars.o repeat.o sample.o \ +sel-if.o set.o sfm-read.o sfm-write.o som.o sort.o split-file.o stats.o \ +str.o sysfile-info.o tab.o temporary.o title.o t-test.o val-labs.o \ +var-labs.o vars-atr.o vars-prs.o vector.o version.o vfm.o weight.o +pspp_LDADD = $(LDADD) +pspp_DEPENDENCIES = ../lib/julcal/libjulcal.a ../lib/misc/libmisc.a \ +../lib/dcdflib/libdcdflib.a +pspp_LDFLAGS = +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(pspp_SOURCES) +OBJECTS = $(pspp_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .q .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +pspp: $(pspp_OBJECTS) $(pspp_DEPENDENCIES) + @rm -f pspp + $(LINK) $(pspp_LDFLAGS) $(pspp_OBJECTS) $(pspp_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = src + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +aggregate.o: aggregate.c ../config.h ../pref.h alloc.h approx.h \ + command.h error.h file-handle.h lexer.h misc.h settings.h sfm.h \ + sort.h stats.h str.h var.h format.h format.def vfm.h cases.h \ + vfmP.h debug-print.h +alloc.o: alloc.c ../config.h ../pref.h str.h +apply-dict.o: apply-dict.c ../config.h ../pref.h avl.h command.h error.h \ + file-handle.h lexer.h sfm.h str.h var.h format.h format.def \ + debug-print.h +ascii.o: ascii.c ../config.h ../pref.h alloc.h error.h filename.h main.h \ + misc.h output.h str.h pool.h version.h +autorecode.o: autorecode.c ../config.h ../pref.h alloc.h command.h \ + error.h hash.h lexer.h pool.h str.h var.h format.h format.def \ + vfm.h cases.h debug-print.h +avl.o: avl.c ../config.h ../pref.h pool.h avl.h +cases.o: cases.c ../config.h ../pref.h alloc.h cases.h var.h format.h \ + format.def vfm.h debug-print.h +cmdline.o: cmdline.c ../config.h ../pref.h alloc.h error.h filename.h \ + getline.h main.h output.h str.h settings.h var.h format.h \ + format.def version.h +command.o: command.c ../config.h ../pref.h alloc.h command.h error.h \ + getline.h lexer.h main.h settings.h som.h str.h tab.h var.h \ + format.h format.def vfm.h cases.h debug-print.h command.def +compute.o: compute.c ../config.h ../pref.h alloc.h approx.h cases.h \ + command.h error.h expr.h lexer.h str.h var.h format.h \ + format.def vector.h debug-print.h +correlations.o: correlations.c ../config.h ../pref.h alloc.h \ + file-handle.h error.h command.h lexer.h var.h format.h \ + format.def str.h debug-print.h +count.o: count.c ../config.h ../pref.h alloc.h approx.h command.h \ + error.h lexer.h str.h var.h format.h format.def debug-print.h +crosstabs.o: crosstabs.c ../config.h ../pref.h alloc.h avl.h hash.h \ + pool.h ../lib/dcdflib/cdflib.h command.h lexer.h error.h \ + magic.h misc.h stats.h output.h str.h tab.h var.h format.h \ + format.def vfm.h cases.h debug-print.h +data-in.o: data-in.c ../config.h ../pref.h data-in.h format.h format.def \ + error.h getline.h ../lib/julcal/julcal.h lexer.h magic.h misc.h \ + settings.h str.h var.h debug-print.h +data-list.o: data-list.c ../config.h ../pref.h alloc.h command.h \ + data-in.h format.h format.def debug-print.h dfm.h error.h \ + file-handle.h lexer.h misc.h settings.h str.h tab.h var.h vfm.h \ + cases.h +data-out.o: data-out.c ../config.h ../pref.h approx.h error.h format.h \ + format.def ../lib/julcal/julcal.h magic.h misc.h settings.h \ + str.h var.h debug-print.h +descript.o: descript.c ../config.h ../pref.h alloc.h bitvector.h \ + command.h lexer.h error.h approx.h magic.h stats.h som.h tab.h \ + str.h var.h format.h format.def vfm.h cases.h +dfm.o: dfm.c ../config.h ../pref.h alloc.h command.h error.h \ + file-handle.h filename.h getline.h lexer.h misc.h str.h vfm.h \ + cases.h debug-print.h +do-if.o: do-if.c ../config.h ../pref.h alloc.h command.h error.h expr.h \ + lexer.h str.h var.h format.h format.def debug-print.h do-ifP.h +error.o: error.c ../config.h ../pref.h alloc.h command.h error.h \ + getline.h main.h output.h str.h settings.h var.h format.h \ + format.def +expr-evl.o: expr-evl.c ../config.h ../pref.h approx.h data-in.h format.h \ + format.def error.h expr.h exprP.h debug-print.h \ + ../lib/julcal/julcal.h magic.h random.h stats.h str.h var.h \ + vector.h vfm.h cases.h vfmP.h +expr-opt.o: expr-opt.c ../config.h ../pref.h alloc.h approx.h data-in.h \ + format.h format.def error.h expr.h exprP.h debug-print.h \ + ../lib/julcal/julcal.h misc.h stats.h str.h var.h +expr-prs.o: expr-prs.c ../config.h ../pref.h alloc.h error.h expr.h \ + exprP.h debug-print.h lexer.h misc.h str.h var.h format.h \ + format.def vector.h vfm.h cases.h +file-handle.o: file-handle.c ../config.h ../pref.h alloc.h avl.h \ + filename.h file-handle.h error.h command.h lexer.h getline.h \ + magic.h var.h format.h format.def str.h debug-print.h +file-type.o: file-type.c ../config.h ../pref.h alloc.h approx.h \ + command.h data-in.h format.h format.def dfm.h file-handle.h \ + error.h lexer.h str.h var.h vfm.h cases.h +filename.o: filename.c ../config.h ../pref.h alloc.h error.h filename.h \ + settings.h str.h version.h debug-print.h stat.h +flip.o: flip.c ../config.h ../pref.h alloc.h command.h error.h lexer.h \ + misc.h str.h var.h format.h format.def vfm.h cases.h +format.o: format.c ../config.h ../pref.h error.h format.h format.def \ + lexer.h misc.h str.h +formats.o: formats.c ../config.h ../pref.h command.h error.h lexer.h \ + misc.h str.h var.h format.h format.def debug-print.h +frequencies.o: frequencies.c ../config.h ../pref.h alloc.h avl.h \ + bitvector.h hash.h pool.h command.h lexer.h error.h approx.h \ + magic.h misc.h stats.h output.h str.h som.h tab.h var.h \ + format.h format.def vfm.h cases.h debug-print.h frequencies.g +get.o: get.c ../config.h ../pref.h alloc.h avl.h command.h error.h \ + file-handle.h lexer.h misc.h pfm.h settings.h sfm.h str.h var.h \ + format.h format.def vfm.h cases.h vfmP.h debug-print.h +getline.o: getline.c ../config.h ../pref.h alloc.h error.h filename.h \ + getline.h lexer.h settings.h str.h tab.h var.h format.h \ + format.def version.h +glob.o: glob.c ../config.h ../pref.h alloc.h avl.h command.h do-ifP.h \ + var.h format.h format.def error.h expr.h filename.h getline.h \ + ../lib/julcal/julcal.h lexer.h main.h settings.h str.h \ + version.h vfm.h cases.h +groff-font.o: groff-font.c ../config.h ../pref.h alloc.h error.h \ + filename.h font.h hash.h pool.h str.h version.h +hash.o: hash.c ../config.h ../pref.h alloc.h hash.h +heap.o: heap.c ../config.h ../pref.h heap.h +html.o: html.c ../config.h ../pref.h alloc.h error.h filename.h \ + getline.h htmlP.h output.h str.h som.h tab.h version.h +include.o: include.c ../config.h ../pref.h alloc.h command.h error.h \ + getline.h lexer.h str.h +inpt-pgm.o: inpt-pgm.c ../config.h ../pref.h alloc.h command.h dfm.h \ + error.h expr.h file-handle.h inpt-pgm.h lexer.h misc.h str.h \ + var.h format.h format.def vfm.h cases.h debug-print.h +lexer.o: lexer.c ../config.h ../pref.h alloc.h command.h error.h \ + getline.h lexer.h magic.h settings.h str.h +list.o: list.c ../config.h ../pref.h alloc.h command.h lexer.h error.h \ + magic.h misc.h htmlP.h filename.h output.h str.h som.h var.h \ + format.h format.def vfm.h cases.h debug-print.h +loop.o: loop.c ../config.h ../pref.h alloc.h approx.h command.h do-ifP.h \ + var.h format.h format.def error.h expr.h lexer.h settings.h \ + str.h debug-print.h +magic.o: magic.c ../config.h ../pref.h magic.h +main.o: main.c ../config.h ../pref.h command.h error.h getline.h lexer.h \ + output.h str.h debug-print.h +matrix-data.o: matrix-data.c ../config.h ../pref.h alloc.h command.h \ + data-in.h format.h format.def dfm.h error.h file-handle.h \ + lexer.h misc.h pool.h str.h var.h vfm.h cases.h debug-print.h +matrix.o: matrix.c ../config.h ../pref.h alloc.h matrix.h settings.h +means.o: means.c ../config.h ../pref.h alloc.h avl.h command.h lexer.h \ + error.h magic.h var.h format.h format.def str.h debug-print.h +mis-val.o: mis-val.c ../config.h ../pref.h command.h error.h lexer.h \ + magic.h str.h var.h format.h format.def debug-print.h +misc.o: misc.c ../config.h ../pref.h misc.h +modify-vars.o: modify-vars.c ../config.h ../pref.h alloc.h avl.h \ + bitvector.h command.h error.h lexer.h misc.h str.h var.h \ + format.h format.def vfm.h cases.h +numeric.o: numeric.c ../config.h ../pref.h cases.h command.h error.h \ + lexer.h str.h var.h format.h format.def debug-print.h +output.o: output.c ../config.h ../pref.h alloc.h approx.h error.h \ + filename.h lexer.h misc.h output.h str.h settings.h +pfm-read.o: pfm-read.c ../config.h ../pref.h alloc.h avl.h file-handle.h \ + error.h format.h format.def getline.h magic.h misc.h pfm.h \ + str.h var.h debug-print.h +pfm-write.o: pfm-write.c ../config.h ../pref.h alloc.h avl.h error.h \ + file-handle.h ../lib/gmp/gmp.h magic.h pfm.h str.h var.h \ + format.h format.def version.h debug-print.h +pool.o: pool.c ../config.h ../pref.h alloc.h pool.h +postscript.o: postscript.c ../config.h ../pref.h alloc.h bitvector.h \ + error.h filename.h font.h getline.h hash.h main.h misc.h \ + output.h str.h version.h +print.o: print.c ../config.h ../pref.h alloc.h command.h dfm.h error.h \ + expr.h file-handle.h lexer.h misc.h som.h tab.h str.h var.h \ + format.h format.def debug-print.h +random.o: random.c ../config.h ../pref.h magic.h random.h settings.h +recode.o: recode.c ../config.h ../pref.h alloc.h approx.h cases.h \ + command.h error.h lexer.h magic.h str.h var.h format.h \ + format.def debug-print.h +rename-vars.o: rename-vars.c ../config.h ../pref.h alloc.h avl.h \ + command.h error.h lexer.h str.h var.h format.h format.def +repeat.o: repeat.c ../config.h ../pref.h alloc.h cases.h command.h \ + error.h getline.h lexer.h misc.h settings.h str.h var.h \ + format.h format.def debug-print.h +sample.o: sample.c ../config.h ../pref.h alloc.h command.h error.h \ + lexer.h random.h str.h var.h format.h format.def debug-print.h +sel-if.o: sel-if.c ../config.h ../pref.h alloc.h command.h error.h \ + expr.h lexer.h str.h var.h format.h format.def +set.o: set.c ../config.h ../pref.h alloc.h command.h lexer.h error.h \ + magic.h log.h output.h str.h var.h format.h format.def \ + settings.h +sfm-read.o: sfm-read.c ../config.h ../pref.h alloc.h avl.h error.h \ + file-handle.h format.h format.def getline.h magic.h misc.h \ + sfm.h sfmP.h str.h var.h debug-print.h +sfm-write.o: sfm-write.c ../config.h ../pref.h alloc.h approx.h avl.h \ + error.h file-handle.h getline.h magic.h misc.h sfm.h sfmP.h \ + str.h var.h format.h format.def version.h debug-print.h +som.o: som.c ../config.h ../pref.h output.h str.h som.h debug-print.h +sort.o: sort.c ../config.h ../pref.h alloc.h approx.h command.h error.h \ + expr.h heap.h lexer.h misc.h sort.h str.h var.h format.h \ + format.def vfm.h cases.h vfmP.h debug-print.h +split-file.o: split-file.c ../config.h ../pref.h alloc.h command.h \ + error.h lexer.h str.h var.h format.h format.def +stats.o: stats.c ../config.h ../pref.h stats.h +str.o: str.c ../config.h ../pref.h alloc.h error.h pool.h str.h +sysfile-info.o: sysfile-info.c ../config.h ../pref.h alloc.h avl.h \ + command.h error.h file-handle.h lexer.h misc.h output.h str.h \ + sfm.h som.h tab.h var.h format.h format.def vector.h +t-test.o: t-test.c ../config.h ../pref.h alloc.h str.h \ + ../lib/dcdflib/cdflib.h command.h lexer.h error.h magic.h var.h \ + format.h format.def vfm.h cases.h debug-print.h +tab.o: tab.c ../config.h ../pref.h alloc.h command.h format.h format.def \ + magic.h misc.h output.h str.h pool.h som.h tab.h var.h \ + debug-print.h +temporary.o: temporary.c ../config.h ../pref.h alloc.h avl.h command.h \ + do-ifP.h var.h format.h format.def error.h lexer.h str.h \ + debug-print.h +title.o: title.c ../config.h ../pref.h alloc.h command.h error.h lexer.h \ + main.h output.h str.h var.h format.h format.def version.h vfm.h \ + cases.h debug-print.h +val-labs.o: val-labs.c ../config.h ../pref.h alloc.h avl.h command.h \ + error.h lexer.h str.h var.h format.h format.def debug-print.h +var-labs.o: var-labs.c ../config.h ../pref.h alloc.h command.h error.h \ + lexer.h str.h var.h format.h format.def debug-print.h +vars-atr.o: vars-atr.c ../config.h ../pref.h alloc.h approx.h avl.h \ + command.h do-ifP.h var.h format.h format.def expr.h \ + file-handle.h error.h inpt-pgm.h misc.h str.h vector.h vfm.h \ + cases.h debug-print.h +vars-prs.o: vars-prs.c ../config.h ../pref.h alloc.h avl.h bitvector.h \ + error.h lexer.h misc.h str.h var.h format.h format.def +vector.o: vector.c ../config.h ../pref.h alloc.h cases.h command.h \ + error.h lexer.h misc.h str.h var.h format.h format.def vector.h +version.o: version.c ../config.h ../pref.h +vfm.o: vfm.c ../config.h ../pref.h alloc.h approx.h do-ifP.h var.h \ + format.h format.def error.h expr.h misc.h random.h som.h str.h \ + tab.h vector.h vfm.h cases.h vfmP.h debug-print.h +weight.o: weight.c ../config.h ../pref.h command.h error.h lexer.h str.h \ + var.h format.h format.def + +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ + distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +$(q_sources_c): q2c +.q.c: + ./q2c $< $@ + +version.c: + echo "#include " > 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 + + +q2c.o: q2c.c + $(LOCAL_COMPILE) $< -o q2c.o +q2c: q2c.o + $(LOCAL_LINK) q2c.o ../lib/misc/libmisc.a -o q2c + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/Makefile.in b/tests/Makefile.in new file mode 100644 index 0000000000..91dc6eb7b0 --- /dev/null +++ b/tests/Makefile.in @@ -0,0 +1,338 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMP_LIBS = @GMP_LIBS@ +GMP_SUBDIRS = @GMP_SUBDIRS@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LN_S = @LN_S@ +LOCAL_CC = @LOCAL_CC@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +TESTS = syntax + +noinst_PROGRAMS = gengarbage + +noinst_DATA = sort.data + +EXTRA_DIST = aggregate.stat autorecod.stat beg-data.stat bignum.data bignum.stat compute.stat count.stat crosstabs.stat data-fmts.stat data-list.data data-list.stat descript.stat do-if.stat do-repeat.stat expr.stat file-lab.stat filter.stat flip.stat gengarbage.c inpt-pgm.stat lag.stat list.data list.stat loop.stat mtch-file.stat means.stat mdfy-vars.stat print.stat pcs-if.stat recode.stat repeating.stat reread.data reread.stat sample.stat sort.stat splt-file.stat sys-info.stat t-test.stat tabs.stat temporary.stat time-date.stat vector.stat weighting.data weighting.stat syntax + + +DISTCLEANFILES = *.save sort.data pspp.* foo* msgs *.actual + +MAINTAINERCLEANFILES = Makefile.in +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +gengarbage_SOURCES = gengarbage.c +gengarbage_OBJECTS = gengarbage.o +gengarbage_LDADD = $(LDADD) +gengarbage_DEPENDENCIES = +gengarbage_LDFLAGS = +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DATA = $(noinst_DATA) + +DIST_COMMON = ChangeLog Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = gengarbage.c +OBJECTS = gengarbage.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstPROGRAMS: + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) + +distclean-noinstPROGRAMS: + +maintainer-clean-noinstPROGRAMS: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +gengarbage: $(gengarbage_OBJECTS) $(gengarbage_DEPENDENCIES) + @rm -f gengarbage + $(LINK) $(gengarbage_LDFLAGS) $(gengarbage_OBJECTS) $(gengarbage_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = tests + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +gengarbage.o: gengarbage.c + +check-TESTS: $(TESTS) + @failed=0; all=0; \ + srcdir=$(srcdir); export srcdir; \ + for tst in $(TESTS); do \ + if test -f $$tst; then dir=.; \ + else dir="$(srcdir)"; fi; \ + if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \ + all=`expr $$all + 1`; \ + echo "PASS: $$tst"; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="$$failed of $$all tests failed"; \ + fi; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0 +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstPROGRAMS clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstPROGRAMS distclean-compile distclean-tags \ + distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ +clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir check-TESTS info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +bench: + make BENCHMARK=1 check +sort.data: gengarbage + ./gengarbage | head -1000 > $@ + +dist-hook: + cp -rp $(srcdir)/expect $(distdir) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: