summaryrefslogtreecommitdiff
path: root/Build/source/texk/dtl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
committerKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
commit487ca4806cc046076293cf6cc5fbba0db282bac7 (patch)
tree847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/dtl
parenta3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff)
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dtl')
-rw-r--r--Build/source/texk/dtl/ChangeLog24
-rw-r--r--Build/source/texk/dtl/Makefile.in53
-rw-r--r--Build/source/texk/dtl/README143
-rw-r--r--Build/source/texk/dtl/c-auto.in129
-rwxr-xr-xBuild/source/texk/dtl/configure7421
-rw-r--r--Build/source/texk/dtl/configure.in14
-rw-r--r--Build/source/texk/dtl/depend.mak38
-rw-r--r--Build/source/texk/dtl/depend.mk4
-rw-r--r--Build/source/texk/dtl/dt2dv.c2868
-rw-r--r--Build/source/texk/dtl/dt2dv.man156
-rw-r--r--Build/source/texk/dtl/dtl.doc77
-rw-r--r--Build/source/texk/dtl/dtl.h177
-rw-r--r--Build/source/texk/dtl/dv2dt.c929
-rw-r--r--Build/source/texk/dtl/dv2dt.man715
-rw-r--r--Build/source/texk/dtl/dvi.doc154
-rw-r--r--Build/source/texk/dtl/edited.txt3854
-rw-r--r--Build/source/texk/dtl/example.tex232
-rw-r--r--Build/source/texk/dtl/hello.tex2
-rw-r--r--Build/source/texk/dtl/man2ps36
-rw-r--r--Build/source/texk/dtl/tripvdu.tex279
-rw-r--r--Build/source/texk/dtl/win32.mak114
21 files changed, 17419 insertions, 0 deletions
diff --git a/Build/source/texk/dtl/ChangeLog b/Build/source/texk/dtl/ChangeLog
new file mode 100644
index 00000000000..599436a579b
--- /dev/null
+++ b/Build/source/texk/dtl/ChangeLog
@@ -0,0 +1,24 @@
+1998-10-22 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * dv2dt.c (main): Switch stdout to binary, but only if it's not
+ the console device.
+ (top-level): Include config.h and kpathsea/c-fopen.h.
+
+ * dt2dv.c (dvi_stdout): Switch stdout to binary, but only if it's
+ not the console device.
+ (top-level): Include config.h and kpathsea/c-fopen.h.
+
+ * Makefile.in (DEFS): Use -DNO_DEBUG, since DTL doesn't use
+ Kpathsea.
+
+Wed Mar 25 14:13:38 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * Makefile.in: additions from Eli Zaretski for DOS compatibility;
+ bare-bones kpathsea usage
+
+Tue Jan 27 14:32:25 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * configure etc: new configure.in, c-auto.in, Makefile.in from
+ Olaf Weber
+
+
diff --git a/Build/source/texk/dtl/Makefile.in b/Build/source/texk/dtl/Makefile.in
new file mode 100644
index 00000000000..9c1db01a900
--- /dev/null
+++ b/Build/source/texk/dtl/Makefile.in
@@ -0,0 +1,53 @@
+# Makefile.in for dtl -- S Rahtz s.rahtz@elsevier.co.uk. Public domain.
+version = 1.0
+
+kpse_include ../make/paths.mk
+kpse_include ../make/common.mk
+kpse_include ../make/programs.mk
+
+prog_cflags = -DUNIX -DNeedFunctionPrototypes -DHAVE_CONFIG_H \
+ -I$(kpathsea_dir) -I$(kpathsea_srcdir)
+# We don't use Kpathsea, so don't overload fopen and stuff
+DEFS = -DNO_DEBUG
+
+objects=dv2dt.o dt2dv.o
+program = dv2dt dt2dv
+
+programs = $(program)
+
+default: $(programs)
+all: $(programs)
+
+dv2dt: dv2dt.o
+ $(kpathsea_link) dv2dt.o
+
+dt2dv: dt2dv.o
+ $(kpathsea_link) dt2dv.o
+
+install: install-exec install-data
+
+uninstall: uninstall-exec uninstall-data
+
+install-exec: all
+ $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir)
+ for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done
+uninstall-exec:
+ for p in $(programs); do rm -f $(bindir)/$$p; done
+
+install-data:
+ $(SHELL) $(top_srcdir)/../mkinstalldirs $(man1dir)
+ $(INSTALL_DATA) $(srcdir)/dv2dt.man $(man1dir)/dv2dt.1
+ $(INSTALL_DATA) $(srcdir)/dt2dv.man $(man1dir)/dt2dv.1
+
+uninstall-data:
+ rm -f $(man1dir)/dv2dt.1
+ rm -f $(man1dir)/dt2dv.1
+
+kpse_include ../make/dist.mk
+kpse_include ../make/config.mk
+
+info dvi check:
+
+kpse_include ../make/clean.mk
+kpse_include ../make/rdepend.mk
+kpse_include depend.mk
diff --git a/Build/source/texk/dtl/README b/Build/source/texk/dtl/README
new file mode 100644
index 00000000000..6fa1547b77f
--- /dev/null
+++ b/Build/source/texk/dtl/README
@@ -0,0 +1,143 @@
+README for DTL package - Thu 9 March 1995
+-----------------------------------------
+Author: Geoffrey Tobin <G.Tobin@ee.latrobe.edu.au>
+Version: 0.6.1
+CTAN Archive-path: dviware/dtl
+Brief Description:
+ DTL (DVI Text Language) files are equivalent to TeX's DVI files,
+ but are humanly readable, instead of binary. Two programs are
+ provided to translate between DVI and DTL: dv2dt, dt2dv.
+ dt2dv warns if byte addresses or string lengths recorded in a DTL
+ file are incorrect, then overrides them. This makes DTL files
+ editable. It also allows quoted apostrophes (\') and quoted quotes
+ (\\) in strings. The current DTL variety, sequences-6, separates
+ font paths into directory and font, which makes them freely editable.
+ In this release, DTL line numbers are correctly calculated, and three
+ memory leaks have been fixed.
+Keywords: dvi, TeX
+Includes:
+ Makefile README dt2dv.c dtl.h dv2dt.c
+ man2ps dtl.doc dvi.doc dt2dv.man dv2dt.man
+ hello.tex example.tex tripvdu.tex edited.txt
+
+Motivation:
+
+ When TeX has typeset a document, it writes its handiwork to a DVI
+file, for DVI processing software (such as viewers, printer drivers,
+dvidvi, and dvicopy) to read.
+
+The file dvi.doc lists the DVI file commands, with their opcodes
+(byte values), nominal command names, arguments, and meanings. For a
+detailed description of DVI file structure, see one of these:
+1. Donald E. Knuth's book _TeX: The Program_;
+2. The file tex.web, which contains source and documentation for TeX:
+ CTAN: systems/knuth/tex/tex.web
+3. The source for Knuth's dvitype program:
+ CTAN: systems/knuth/texware/dvitype.web
+4. Joachim Schrod's DVI drivers standard document, the relevant part
+ of which is at
+ CTAN: dviware/driv-standard/level-0
+
+Sometimes human beings are interested to see exactly what TeX has
+produced, for example when viewing or printing of the DVI file gives
+unexpected results. However, a DVI file is a compact binary
+representation, so we need software to display its contents.
+
+Binary file editors, when available, can show the DVI bytes, but not
+their meanings, except for the portions that represent embedded text.
+In particular, the command names are not shown, and the command
+boundaries are not respected.
+
+By contrast, Knuth's dvitype program is designed as an example of a
+DVI driver. However, dvitype is inconvenient for studying the DVI
+file alone, for the following reasons:
+1. Being a DVI driver, dvitype endeavors to read the TFM font metric
+files referenced in the DVI file. If a TFM file is absent, dvitype
+quits with an error message.
+2. When it starts, it prompts the user interactively for each of a
+series of options.
+3. Even the least verbose option gives masses of information that is
+not contained in the DVI file, coming instead from a combination of
+the data in the DVI file and TFM files.
+4. It does NOT show the DVI information in a way that accurately
+reflects the structure of the DVI file.
+5. Its output, if redirected to a file, produces a very large file.
+6. There is no automated procedure for converting the output of
+dvitype back to a DVI file, and doing it by hand is totally
+unreasonable.
+
+The first disadvantage is a killer if a TFM file is absent.
+Disadvantages two to four make dvitype very inconvenient for studying
+a DVI file. The fifth problem makes dvitype's output tedious,
+disk-hungry (so one deletes it almost immediately), and unsuitable for
+file transfer.
+
+The sixth disadvantage of dvitype is important to those people who are
+interested in editing DVI files. Since the DVI files refer explicitly
+to their own internal byte addresses, it's very easy to mess up a DVI
+file if one were to try to edit it directly, even apart from the problem
+of how to recognise a command.
+
+So an exact, concise, textual representation of a DVI file is needed,
+but dvitype does not produce one.
+
+Resolution:
+
+ Therefore, working from Joachim Schrod's description, I designed DTL
+and its conversion programs dv2dt (DVI -> DTL) and dt2dv (DTL -> DVI),
+which are provided as C sources:
+
+ dtl.h
+ dv2dt.c
+ dt2dv.c
+
+Although I was motivated by the TFM <-> PL conversion provided by
+Knuth's tftopl and pltotf programs, I deliberately designed DTL to be
+a much more concise and literal translation than the `property list'
+structure exemplified by PL. The result is that a DTL file is
+typically three times the size of its equivalent DVI file. The
+document dtl.doc lists the correspondence between the DTL command
+names and the (nominal) DVI command names.
+
+A clear advantage of an exact two-way conversion is that we can check
+(and prove) whether the converters worked truly on a given DVI file.
+The provided plain TeX files:
+ example.tex
+ tripvdu.tex
+can be used to test whether the compiled programs are behaving
+sensibly. Whereas example.tex is a simple document that uses a
+variety of plain TeX commands, tripvdu.tex provides a kind of
+`trip test' for DVI processor programs. Both documents are taken,
+with permission, from Andrew K. Trevorrow's dvitovdu (alias dvi2vdu)
+distribution (and are also part of the dvgt viewer distribution).
+
+The Makefile might have to be edited for your site, as it assumes
+gcc for your C compiler. Makefile compiles dv2dt and dt2dv, then
+runs tex on example.tex and tripvdu.tex, and also converts the
+resulting DVI files to DTL files, back to DVI files (with a change
+of name), then back again to DTL files, so that the results can be
+compared using a textual differencing program. (Many computer systems
+have such a program; on unix, as assumed by Makefile, this is named
+`diff'; ms-dos has one named `comp'.) This should produce a
+zero-length .dif file for each document, proving that the two DTL
+files are identical.
+
+A keen tester might also use a binary difference program on the DVI
+files, to check that they are identical, as they need to be. (On unix
+systems, the `diff' program suffices for that purpose.)
+
+Note:
+
+ In representing numeric quantities, I have mainly opted to use
+decimal notation, as this is how most of us are trained to think.
+However, for the checksums in the `fd' (font definition) commands, I
+chose octal notation, as this is used for checksums in Knuth's PL
+files, against which DVI files must be compared when a DVI driver
+loads a font.
+
+Caveat:
+
+The length of DTL commands is limited by the size of the line buffer
+in dt2dv.c.
+
+End of README
diff --git a/Build/source/texk/dtl/c-auto.in b/Build/source/texk/dtl/c-auto.in
new file mode 100644
index 00000000000..b14960d0267
--- /dev/null
+++ b/Build/source/texk/dtl/c-auto.in
@@ -0,0 +1,129 @@
+/* c-auto.in. Generated automatically from configure.in by autoheader. */
+/* acconfig.h -- used by autoheader when generating c-auto.in.
+
+ If you're thinking of editing acconfig.h to fix a configuration
+ problem, don't. Edit the c-auto.h file created by configure,
+ instead. Even better, fix configure to give the right answer. */
+
+/* kpathsea: the version string. */
+#define KPSEVERSION "REPLACE-WITH-KPSEVERSION"
+/* web2c: the version string. */
+#define WEB2CVERSION "REPLACE-WITH-WEB2CVERSION"
+
+/* kpathsea/configure.in tests for these functions with
+ kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know
+ about that macro. Since the shared library stuff is all preliminary
+ anyway, I decided not to change Autoheader, but rather to hack them
+ in here. */
+#undef HAVE_BASENAME
+#undef HAVE_PUTENV
+#undef HAVE_STRCASECMP
+#undef HAVE_STRTOL
+#undef HAVE_STRSTR
+
+
+/* Define if type char is unsigned and you are not using gcc. */
+#ifndef __CHAR_UNSIGNED__
+#undef __CHAR_UNSIGNED__
+#endif
+
+/* Define if the closedir function returns void instead of int. */
+#undef CLOSEDIR_VOID
+
+/* Define to empty if the keyword does not work. */
+#undef const
+
+/* Define if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define if your compiler understands prototypes. */
+#undef HAVE_PROTOTYPES
+
+/* Define if your putenv doesn't waste space when the same environment
+ variable is assigned more than once, with different (malloced)
+ values. This is true only on NetBSD/FreeBSD, as far as I know. See
+ xputenv.c. */
+#undef SMART_PUTENV
+
+/* Define if getcwd if implemented using fork or vfork. Let me know
+ if you have to add this by hand because configure failed to detect
+ it. */
+#undef GETCWD_FORKS
+
+/* Define if you are using GNU libc or otherwise have global variables
+ `program_invocation_name' and `program_invocation_short_name'. */
+#undef HAVE_PROGRAM_INVOCATION_NAME
+
+/* all: Define to enable running scripts when missing input files. */
+#define MAKE_TEX_MF_BY_DEFAULT 0
+#define MAKE_TEX_PK_BY_DEFAULT 0
+#define MAKE_TEX_TEX_BY_DEFAULT 0
+#define MAKE_TEX_TFM_BY_DEFAULT 0
+#define MAKE_OMEGA_OFM_BY_DEFAULT 0
+#define MAKE_OMEGA_OCP_BY_DEFAULT 0
+
+/* The number of bytes in a long. */
+#undef SIZEOF_LONG
+
+/* Define if you have the basename function. */
+#undef HAVE_BASENAME
+
+/* Define if you have the bcopy function. */
+#undef HAVE_BCOPY
+
+/* Define if you have the getcwd function. */
+#undef HAVE_GETCWD
+
+/* Define if you have the getwd function. */
+#undef HAVE_GETWD
+
+/* Define if you have the putenv function. */
+#undef HAVE_PUTENV
+
+/* Define if you have the strcasecmp function. */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strstr function. */
+#undef HAVE_STRSTR
+
+/* Define if you have the strtol function. */
+#undef HAVE_STRTOL
+
+/* Define if you have the <assert.h> header file. */
+#undef HAVE_ASSERT_H
+
+/* Define if you have the <dirent.h> header file. */
+#undef HAVE_DIRENT_H
+
+/* Define if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
+/* Define if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <ndir.h> header file. */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the <sys/dir.h> header file. */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/ndir.h> header file. */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
diff --git a/Build/source/texk/dtl/configure b/Build/source/texk/dtl/configure
new file mode 100755
index 00000000000..c00e96b4367
--- /dev/null
+++ b/Build/source/texk/dtl/configure
@@ -0,0 +1,7421 @@
+#! /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
+ --enable-shared[=PKGS] build shared libraries [default=yes]"
+ac_help="$ac_help
+ --enable-static[=PKGS] build static libraries [default=yes]"
+ac_help="$ac_help
+ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
+ac_help="$ac_help
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+ac_help="$ac_help
+ --disable-libtool-lock avoid locking (might break parallel builds)"
+ac_help="$ac_help
+ --with-pic try to use only PIC/non-PIC objects [default=use both]"
+ac_help="$ac_help
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer"
+ac_help="$ac_help
+ --without-mktexmf-default do not run mktexmf if MF source missing"
+ac_help="$ac_help
+ --without-mktexpk-default do not run mktexpk if PK font missing"
+ac_help="$ac_help
+ --without-mktextfm-default do not run mktextfm if TFM file missing"
+ac_help="$ac_help
+ --without-mkocp-default do not run mkocp if OCP file missing"
+ac_help="$ac_help
+ --without-mkofm-default do not run mkofm if OFM file missing"
+ac_help="$ac_help
+ --with-mktexfmt-default run mktexfmt if format file missing"
+ac_help="$ac_help
+ --with-mktextex-default run mktextex if TeX source missing"
+
+# 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.
+ac_config_files=
+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; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_envvar| sed 's/[_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: invalid variable name: $ac_envvar" 1>&2; exit 1; }
+ fi
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ 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=dv2dt.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
+
+
+
+
+
+
+
+# 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:732: 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=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $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:763: 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
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $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:815: 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=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $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:848: 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 859 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:864: \"$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:890: 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:895: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:923: 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
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ case $ac_dir in
+ /*|[A-z]:/*) ac_aux_dir=$ac_dir;;
+ *) ac_aux_dir=`pwd`/$ac_dir;;
+ esac
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ case $ac_dir in
+ /*|[A-z]:/*) ac_aux_dir=$ac_dir;;
+ *) ac_aux_dir=`pwd`/$ac_dir;;
+ esac
+ 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.
+
+# 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:991: 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=":"
+ # Hack for MSDOS and descendants.
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ 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 $ac_x $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}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:1046: 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
+# MS-DOS is a special case, because it sort of pretends that ln -s
+# works for executables.
+if test -z "$COMSPEC" && 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
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:1069: 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
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.
+
+# serial 46 AC_PROG_LIBTOOL
+
+
+
+
+
+# AC_LIBTOOL_HEADER_ASSERT
+# ------------------------
+# AC_LIBTOOL_HEADER_ASSERT
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+# _LT_AC_CHECK_DLFCN
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+ # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+# ---------------------------------
+# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+# _LT_AC_PROG_ECHO_BACKSLASH
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+# _LT_AC_TRY_DLOPEN_SELF
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+# AC_LIBTOOL_DLOPEN_SELF
+
+# _LT_AC_LTCONFIG_HACK
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+
+
+# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
+
+
+# AC_LIBTOOL_PICMODE - implement the --with-pic flag
+# Usage: AC_LIBTOOL_PICMODE[(MODE)]
+# Where MODE is either `yes' or `no'. If omitted, it defaults to
+# `both'.
+
+
+
+# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
+
+
+
+# AC_PATH_MAGIC - find a file program which can recognise a shared library
+
+
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+
+
+# AC_PROG_LD_GNU -
+
+
+# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+
+
+# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+
+
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+
+
+# AC_CHECK_LIBM - check for math library
+
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library and LTDLINCL to the include flags for
+# the libltdl header and adds --enable-ltdl-convenience to the
+# configure arguments. Note that LIBLTDL and LTDLINCL are not
+# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
+# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
+# with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library and LTDLINCL to the include flags for
+# the libltdl header and adds --enable-ltdl-install to the configure
+# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is
+# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
+# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed
+# with '${top_srcdir}/' (note the single quotes!). If your package is
+# not flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+
+
+# old names
+
+
+
+
+
+
+
+
+# This is just to silence aclocal about the macro not being used
+
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+
+
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:1291: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1296 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:1307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_cygwin=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1324: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1329 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_mingw32=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1353: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1368 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1385 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1402 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1408: \"$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
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_shared=yes
+fi
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_static=yes
+fi
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_fast_install=yes
+fi
+
+
+# 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:1508: 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 build system type""... $ac_c" 1>&6
+echo "configure:1529: 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
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
+echo "configure:1558: checking for ld used by GCC" >&5
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+echo "configure:1588: checking for GNU ld" >&5
+else
+ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+echo "configure:1591: checking for non-GNU ld" >&5
+fi
+if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$ac_t""$LD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
+echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
+echo "configure:1626: checking if the linker ($LD) is GNU ld" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ lt_cv_prog_gnu_ld=yes
+else
+ lt_cv_prog_gnu_ld=no
+fi
+fi
+
+echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
+echo "configure:1643: checking for $LD option to reload object files" >&5
+if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+
+echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+
+echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
+echo "configure:1655: checking for BSD-compatible nm" >&5
+if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/${ac_tool_prefix}nm
+ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ else
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+
+NM="$lt_cv_path_NM"
+echo "$ac_t""$NM" 1>&6
+
+echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6
+echo "configure:1693: checking for a sed that does not truncate output" >&5
+if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_executable_p="test -f"
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+
+ # Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=$TMPDIR/sed$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+}
+ _max=0
+ _count=0
+ # Add /usr/xpg4/bin/sed as it is typically found on Solaris
+ # along with /bin/sed that truncates output.
+ for _sed in $_sed_list /usr/xpg4/bin/sed; do
+ test ! -f ${_sed} && break
+ cat /dev/null > "$tmp/sed.in"
+ _count=0
+ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
+ # Check for GNU sed and select it if it is found.
+ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
+ lt_cv_path_SED=${_sed}
+ break
+ fi
+ while true; do
+ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
+ mv "$tmp/sed.tmp" "$tmp/sed.in"
+ cp "$tmp/sed.in" "$tmp/sed.nl"
+ echo >>"$tmp/sed.nl"
+ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
+ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
+ # 40000 chars as input seems more than enough
+ test $_count -gt 10 && break
+ _count=`expr $_count + 1`
+ if test $_count -gt $_max; then
+ _max=$_count
+ lt_cv_path_SED=$_sed
+ fi
+ done
+ done
+ rm -rf "$tmp"
+
+fi
+
+if test "X$SED" != "X"; then
+ lt_cv_path_SED=$SED
+else
+ SED=$lt_cv_path_SED
+fi
+echo "$ac_t""$SED" 1>&6
+
+echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6
+echo "configure:1777: checking how to recognise dependent libraries" >&5
+if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin* | mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ ;;
+
+freebsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20*|hpux11*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ irix5* | nonstopux*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*)
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv5uw[78]* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:1963: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:1969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1989: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+ ac_cv_exeext=.exe
+else
+ rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.$ac_ext
+ ac_cv_exeext=
+ if { (eval echo configure:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj) ;;
+ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ else
+ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ rm -f conftest*
+ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+if test $host != $build; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
+echo "configure:2030: checking command to parse $NM output" >&5
+if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris* | sysv5*)
+ symcode='[BDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $host_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if { (eval echo configure:2113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo configure:2116: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo configure:2167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+ global_symbol_to_c_name_address=
+else
+ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
+ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+fi
+if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
+then
+ echo "$ac_t""failed" 1>&6
+else
+ echo "$ac_t""ok" 1>&6
+fi
+
+for ac_hdr in dlfcn.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2216: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2221 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
+echo "configure:2262: checking for ${ac_tool_prefix}file" >&5
+if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$ac_t""$MAGIC_CMD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ echo $ac_n "checking for file""... $ac_c" 1>&6
+echo "configure:2324: checking for file" >&5
+if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$ac_t""$MAGIC_CMD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2395: 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=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+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
+
+
+if test -z "$ac_cv_prog_RANLIB"; then
+if test -n "$ac_tool_prefix"; then
+ # 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:2428: 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=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $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
+
+else
+ RANLIB=":"
+fi
+fi
+
+# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2464: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+ echo "$ac_t""$STRIP" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_STRIP"; then
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2497: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ if test -z "$COMSPEC"; then ac_x=-f; else ac_x=-x; fi
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test $ac_x $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP="strip"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+ echo "$ac_t""$STRIP" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+ STRIP=":"
+fi
+fi
+
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+ :
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 2547 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+echo "configure:2569: checking whether the C compiler needs -belf" >&5
+if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ 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 2582 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=no
+fi
+rm -f 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
+
+fi
+
+echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+need_locks="$enable_libtool_lock"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+if test x"$host" != x"$build"; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case $host_os in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="$2"
+
+## FIXME: this should be a separate macro
+##
+echo $ac_n "checking for objdir""... $ac_c" 1>&6
+echo "configure:2711: checking for objdir" >&5
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+echo "$ac_t""$objdir" 1>&6
+##
+## END FIXME
+
+
+## FIXME: this should be a separate macro
+##
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+ withval="$with_pic"
+ pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+test -z "$pic_mode" && pic_mode=default
+
+# We assume here that the value for lt_cv_prog_cc_pic will not be cached
+# in isolation, and that seeing it set (from the cache) indicates that
+# the associated values are set (in the cache) correctly too.
+echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
+echo "configure:2742: checking for $compiler option to produce PIC" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_shlib=
+ lt_cv_prog_cc_wl=
+ lt_cv_prog_cc_static=
+ lt_cv_prog_cc_no_builtin=
+ lt_cv_prog_cc_can_build_shared=$can_build_shared
+
+ if test "$GCC" = yes; then
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-static'
+
+ case $host_os in
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # not sure about C++ programs.
+ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_cv_prog_cc_pic='-fno-common'
+ ;;
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_cv_prog_cc_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for PIC flags for the system compiler.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ lt_cv_prog_cc_wl='-Wl,'
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
+ lt_cv_prog_cc_pic='+Z'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+
+ newsos6)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_cv_prog_cc_pic='-Kpic'
+ lt_cv_prog_cc_static='-dn'
+ lt_cv_prog_cc_shlib='-belf'
+ ;;
+
+ solaris*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ sunos4*)
+ lt_cv_prog_cc_pic='-PIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ uts4*)
+ lt_cv_prog_cc_pic='-pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_cv_prog_cc_pic='-Kconform_pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ fi
+ ;;
+
+ *)
+ lt_cv_prog_cc_can_build_shared=no
+ ;;
+ esac
+ fi
+
+fi
+
+if test -z "$lt_cv_prog_cc_pic"; then
+ echo "$ac_t""none" 1>&6
+else
+ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6
+
+ # Check to make sure the pic_flag actually works.
+ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6
+echo "configure:2890: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
+ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+ cat > conftest.$ac_ext <<EOF
+#line 2897 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ case $host_os in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
+ # they create non-PIC objects. So, if there were any warnings, we
+ # assume that PIC is not supported.
+ if test -s conftest.err; then
+ lt_cv_prog_cc_pic_works=no
+ else
+ lt_cv_prog_cc_pic_works=yes
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic_works=yes
+ ;;
+ esac
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_prog_cc_pic_works=no
+
+fi
+rm -f conftest*
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+
+ if test "X$lt_cv_prog_cc_pic_works" = Xno; then
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_can_build_shared=no
+ else
+ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+ fi
+
+ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6
+fi
+##
+## END FIXME
+
+# Check for any special shared library compilation flags.
+if test -n "$lt_cv_prog_cc_shlib"; then
+ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
+ else
+ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+## FIXME: this should be a separate macro
+##
+echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6
+echo "configure:2960: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_prog_cc_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+ cat > conftest.$ac_ext <<EOF
+#line 2968 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_prog_cc_static_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+
+
+# Belt *and* braces to stop my trousers falling down:
+test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6
+
+pic_flag="$lt_cv_prog_cc_pic"
+special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+wl="$lt_cv_prog_cc_wl"
+link_static_flag="$lt_cv_prog_cc_static"
+no_builtin_flag="$lt_cv_prog_cc_no_builtin"
+can_build_shared="$lt_cv_prog_cc_can_build_shared"
+##
+## END FIXME
+
+
+## FIXME: this should be a separate macro
+##
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
+echo "configure:3006: checking if $compiler supports -c -o file.$ac_objext" >&5
+if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+echo "int some_variable = 0;" > conftest.$ac_ext
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+compiler_c_o=no
+if { (eval echo configure:3025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ lt_cv_compiler_c_o=no
+ else
+ lt_cv_compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&5
+ lt_cv_compiler_c_o=no
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+fi
+
+compiler_c_o=$lt_cv_compiler_c_o
+echo "$ac_t""$compiler_c_o" 1>&6
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6
+echo "configure:3054: checking if $compiler supports -c -o file.lo" >&5
+ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ lt_cv_compiler_o_lo=no
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ save_objext="$ac_objext"
+ ac_objext=lo
+ cat > conftest.$ac_ext <<EOF
+#line 3065 "configure"
+#include "confdefs.h"
+
+int main() {
+int some_variable = 0;
+; return 0; }
+EOF
+if { (eval echo configure:3072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ lt_cv_compiler_o_lo=no
+ else
+ lt_cv_compiler_o_lo=yes
+ fi
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ ac_objext="$save_objext"
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+ compiler_o_lo=$lt_cv_compiler_o_lo
+ echo "$ac_t""$compiler_o_lo" 1>&6
+else
+ compiler_o_lo=no
+fi
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
+echo "configure:3107: checking if we can lock with hard links" >&5
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$ac_t""$hard_links" 1>&6
+ if test "$hard_links" = no; then
+ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+if test "$GCC" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6
+echo "configure:3130: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+ compiler_rtti_exceptions=no
+ cat > conftest.$ac_ext <<EOF
+#line 3136 "configure"
+#include "confdefs.h"
+
+int main() {
+int some_variable = 0;
+; return 0; }
+EOF
+if { (eval echo configure:3143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ compiler_rtti_exceptions=no
+ else
+ compiler_rtti_exceptions=yes
+ fi
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ CFLAGS="$save_CFLAGS"
+ echo "$ac_t""$compiler_rtti_exceptions" 1>&6
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+fi
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+# See if the linker supports building shared libraries.
+echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6
+echo "configure:3174: checking whether the linker ($LD) supports shared libraries" >&5
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+old_archive_from_expsyms_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_into_libs=no
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+link_all_deplibs=unknown
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+extract_expsyms_cmds=
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
+ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
+ test -f $output_objdir/impgen.exe || (cd $output_objdir && \
+ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+ else $CC -o impgen impgen.c ; fi)~
+ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
+
+ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+
+ # cygwin and mingw dlls have different entry points and sets of symbols
+ # to exclude.
+ # FIXME: what about values for MSVC?
+ dll_entry=__cygwin_dll_entry@12
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
+ case $host_os in
+ mingw*)
+ # mingw values
+ dll_entry=_DllMainCRTStartup@12
+ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
+ ;;
+ esac
+
+ # mingw and cygwin differ, and it's simplest to just exclude the union
+ # of the two symbol sets.
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one (in ltdll.c)
+ if test "x$lt_cv_need_dllmain" = "xyes"; then
+ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+ else
+ ltdll_obj=
+ ltdll_cmds=
+ fi
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left be newer dlltools.
+ export_symbols_cmds="$ltdll_cmds"'
+ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \$# in
+ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;;
+ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done;
+ fi~
+ '"$ltdll_cmds"'
+ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
+ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
+ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ hardcode_direct=yes
+ archive_cmds=''
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall can do strange things, so it is better to
+ # generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='${wl}-berok'
+ # This is a bit strange, but is similar to how AIX traditionally builds
+ # it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='-undefined suppress'
+ ;;
+ *) # Darwin 1.3 on
+ allow_undefined_flag='-flat_namespace -undefined suppress'
+ ;;
+ esac
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes. Also zsh mangles
+ # `"' quotes if we put them in here... so don't!
+ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
+ # We need to add '_' to the symbols in $export_symbols first
+ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ whole_archive_flag_spec='-all_load $convenience'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case $host_os in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ #Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ ;;
+
+ solaris*)
+ # gcc --version < 3.0 without binutils cannot create self contained
+ # shared libraries reliably, requiring libgcc.a to resolve some of
+ # the object symbols generated in some cases. Libraries that use
+ # assert need libgcc.a to resolve __eprintf, for example. Linking
+ # a copy of libgcc.a into every shared library to guarantee resolving
+ # such symbols causes other problems: According to Tim Van Holder
+ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
+ # (to the application) exception stack for one thing.
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ case `$CC --version 2>/dev/null` in
+ [12].*)
+ cat <<EOF 1>&2
+
+*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
+*** create self contained shared libraries on Solaris systems, without
+*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
+*** -no-undefined support, which will at least allow you to build shared
+*** libraries. However, you may find that when you link such libraries
+*** into an application without using GCC, you have to manually add
+*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
+*** upgrade to a newer version of GCC. Another option is to rebuild your
+*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
+
+EOF
+ no_undefined_flag=
+ ;;
+ esac
+ fi
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5uw7* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+echo "$ac_t""$ld_shlibs" 1>&6
+test "$ld_shlibs" = no && can_build_shared=no
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+# Check hardcoding attributes.
+echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
+echo "configure:3877: checking how to hardcode library paths into programs" >&5
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$ac_t""$hardcode_action" 1>&6
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+striplib=
+old_striplib=
+echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
+echo "configure:3909: checking whether stripping libraries is possible" >&5
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+##
+## END FIXME
+
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+## FIXME: this should be a separate macro
+##
+# PORTME Fill in your ld.so characteristics
+echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
+echo "configure:3927: checking dynamic linker characteristics" >&5
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can
+ # not hardcode correct soname into executable. Probably we can
+ # add versioning support to collect2, so additional links can
+ # be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}.so$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ hardcode_into_libs=yes
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$host_os in
+ yes,cygwin*)
+ library_names_spec='$libname.dll.a'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog .libs/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ ;;
+ yes,mingw*)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"`
+ ;;
+ yes,pw32*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
+ ;;
+ *)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
+ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU/FreeBSD ld.so'
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *) version_type=irix ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case "$host_os" in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ need_lib_prefix=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ hardcode_into_libs=yes
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$ac_t""$dynamic_linker" 1>&6
+test "$dynamic_linker" = no && can_build_shared=no
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+# Report the final consequences.
+echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6
+echo "configure:4355: checking if libtool supports shared libraries" >&5
+echo "$ac_t""$can_build_shared" 1>&6
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
+echo "configure:4363: checking whether to build shared libraries" >&5
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$ac_t""$enable_shared" 1>&6
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
+echo "configure:4390: checking whether to build static libraries" >&5
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$ac_t""$enable_static" 1>&6
+##
+## END FIXME
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ *)
+ echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "configure:4433: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4438 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load();
+
+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_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "configure:4479: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4487 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo configure:4498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "configure:4517: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4522 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+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_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "configure:4563: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | 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="-ldl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4571 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:4582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
+echo "configure:4601: checking for dlopen in -lsvld" >&5
+ac_lib_var=`echo svld'_'dlopen | 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="-lsvld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4609 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:4620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "configure:4639: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4647 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link();
+
+int main() {
+dld_link()
+; return 0; }
+EOF
+if { (eval echo configure:4658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+echo "configure:4714: checking whether a program can dlopen itself" >&5
+if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 4724 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo configure:4785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+echo "configure:4808: checking whether a statically linked program can dlopen itself" >&5
+if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 4818 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo configure:4879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+## FIXME: this should be a separate macro
+##
+if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
+echo "configure:4930: checking whether -lc should be explicitly linked in" >&5
+ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ $rm conftest*
+ echo 'static int dummy;' > conftest.$ac_ext
+
+ if { (eval echo configure:4937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_cv_prog_cc_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo configure:4950: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+fi
+
+ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6
+ ;;
+ esac
+fi
+need_lc=${lt_cv_archive_cmds_need_lc-yes}
+##
+## END FIXME
+
+## FIXME: this should be a separate macro
+##
+# The second clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ :
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+
+if test -f "$ltmain"; then
+ trap "$rm \"${ofile}T\"; exit 1" 1 2 15
+ $rm -f "${ofile}T"
+
+ echo creating $ofile
+
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS SED \
+ AR AR_FLAGS CC LD LN_S NM SHELL \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ global_symbol_to_c_name_address \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case $var in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ cat <<__EOF__ > "${ofile}T"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.
+
+# A sed that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="${SED} -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$need_lc
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# The default C compiler.
+CC=$lt_CC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_pic_flag
+pic_mode=$pic_mode
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$lt_compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "${ofile}T"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ cat <<'EOF' >> "${ofile}T"
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# /* O_BINARY isn't required (or even defined sometimes) under Unix */
+# #ifndef O_BINARY
+# #define O_BINARY 0
+# #endif
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (dll < 1)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
+
+ mv -f "${ofile}T" "$ofile" || \
+ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
+ chmod +x "$ofile"
+fi
+##
+## END FIXME
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
+echo "configure:5546: checking for $ac_hdr that defines DIR" >&5
+if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5551 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_hdr>
+int main() {
+DIR *dirp = 0;
+; return 0; }
+EOF
+if { (eval echo configure:5559: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ eval "ac_cv_header_dirent_$ac_safe=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_dirent_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ ac_header_dirent=$ac_hdr; break
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
+echo "configure:5584: checking for opendir in -ldir" >&5
+ac_lib_var=`echo dir'_'opendir | 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="-ldir $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5592 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir();
+
+int main() {
+opendir()
+; return 0; }
+EOF
+if { (eval echo configure:5603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -ldir"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
+echo "configure:5625: checking for opendir in -lx" >&5
+ac_lib_var=`echo x'_'opendir | 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="-lx $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5633 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir();
+
+int main() {
+opendir()
+; return 0; }
+EOF
+if { (eval echo configure:5644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -lx"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:5667: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5672 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 5697 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 5715 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5736 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:5747: \"$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 closedir returns void""... $ac_c" 1>&6
+echo "configure:5771: checking whether closedir returns void" >&5
+if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_closedir_void=yes
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5779 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_header_dirent>
+int closedir(); main() { exit(closedir(opendir(".")) != 0); }
+EOF
+if { (eval echo configure:5785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_func_closedir_void=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_func_closedir_void=yes
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_closedir_void" 1>&6
+if test $ac_cv_func_closedir_void = yes; then
+ cat >> confdefs.h <<\EOF
+#define CLOSEDIR_VOID 1
+EOF
+
+fi
+
+for ac_hdr in assert.h float.h limits.h memory.h pwd.h stdlib.h \
+ string.h strings.h sys/param.h unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:5812: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5817 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+for ac_func in putenv
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5852: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5857 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LTLIBOBJS="$LTLIBOBJS putenv.lo"
+fi
+done
+
+for ac_func in strcasecmp
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5908: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5913 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LTLIBOBJS="$LTLIBOBJS strcasecmp.lo"
+fi
+done
+
+for ac_func in strtol
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5964: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5969 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LTLIBOBJS="$LTLIBOBJS strtol.lo"
+fi
+done
+
+for ac_func in strstr
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6020: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6025 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LTLIBOBJS="$LTLIBOBJS strstr.lo"
+fi
+done
+
+
+
+for ac_func in bcmp bcopy bzero getcwd getwd index memcmp memcpy rindex strchr strrchr
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6078: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6083 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:6132: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6137 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this. */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this. */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this. */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in an arm
+ of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:6186: \"$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
+
+
+# Check whether struct stat provides high-res time.
+echo $ac_n "checking for st_mtim in struct stat""... $ac_c" 1>&6
+echo "configure:6209: checking for st_mtim in struct stat" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_st_mtim'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6214 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+int main() {
+struct stat s; s.st_mtim;
+; return 0; }
+EOF
+if { (eval echo configure:6222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_st_mtim=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_struct_st_mtim=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_st_mtim" 1>&6
+if test $ac_cv_struct_st_mtim = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ST_MTIM 1
+EOF
+
+fi
+
+
+# Check whether prototypes work.
+echo $ac_n "checking whether the compiler accepts prototypes""... $ac_c" 1>&6
+echo "configure:6245: checking whether the compiler accepts prototypes" >&5
+if eval "test \"`echo '$''{'kb_cv_c_prototypes'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6250 "configure"
+#include "confdefs.h"
+#include <stdarg.h>
+int main() {
+extern void foo(int i,...);
+; return 0; }
+EOF
+if { (eval echo configure:6257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ kb_cv_c_prototypes=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ kb_cv_c_prototypes=no
+fi
+rm -f conftest*
+fi
+echo "$ac_t""$kb_cv_c_prototypes" 1>&6
+if test "$kb_cv_c_prototypes" = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_PROTOTYPES 1
+EOF
+
+fi
+
+# This is a GNU libc invention.
+echo $ac_n "checking whether program_invocation_name is predefined""... $ac_c" 1>&6
+echo "configure:6278: checking whether program_invocation_name is predefined" >&5
+if eval "test \"`echo '$''{'kb_cv_var_program_inv_name'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6283 "configure"
+#include "confdefs.h"
+
+int main() {
+extern char *program_invocation_name; program_invocation_name = "love";
+; return 0; }
+EOF
+if { (eval echo configure:6290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ kb_cv_var_program_inv_name=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ kb_cv_var_program_inv_name=no
+fi
+rm -f conftest*
+fi
+echo "$ac_t""$kb_cv_var_program_inv_name" 1>&6
+if test "$kb_cv_var_program_inv_name" = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_PROGRAM_INVOCATION_NAME 1
+EOF
+
+fi
+
+# Some BSD putenv's, e.g., FreeBSD, do malloc/free's on the environment.
+# This test program is due to Mike Hibler <mike@cs.utah.edu>.
+# We don't actually need to run this if we don't have putenv, but it
+# doesn't hurt.
+echo $ac_n "checking whether putenv uses malloc""... $ac_c" 1>&6
+echo "configure:6314: checking whether putenv uses malloc" >&5
+if eval "test \"`echo '$''{'kb_cv_func_putenv_malloc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ kb_cv_func_putenv_malloc=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6322 "configure"
+#include "confdefs.h"
+
+#define VAR "YOW_VAR"
+#define STRING1 "GabbaGabbaHey"
+#define STRING2 "Yow!!" /* should be shorter than STRING1 */
+extern char *getenv (); /* in case char* and int don't mix gracefully */
+extern char *malloc (); /* ditto */
+main ()
+{
+ char *str1, *rstr1, *str2, *rstr2;
+ str1 = getenv (VAR);
+ if (str1)
+ exit (1);
+ str1 = malloc (strlen (VAR) + 1 + strlen (STRING1) + 1);
+ if (str1 == 0)
+ exit (2);
+ strcpy (str1, VAR);
+ strcat (str1, "=");
+ strcat (str1, STRING1);
+ if (putenv (str1) < 0)
+ exit (3);
+ rstr1 = getenv (VAR);
+ if (rstr1 == 0)
+ exit (4);
+ rstr1 -= strlen (VAR) + 1;
+ if (strncmp (rstr1, VAR, strlen (VAR)))
+ exit (5);
+ str2 = malloc (strlen (VAR) + 1 + strlen (STRING2) + 1);
+ if (str2 == 0 || str1 == str2)
+ exit (6);
+ strcpy (str2, VAR);
+ strcat (str2, "=");
+ strcat (str2, STRING2);
+ if (putenv (str2) < 0)
+ exit (7);
+ rstr2 = getenv (VAR);
+ if (rstr2 == 0)
+ exit (8);
+ rstr2 -= strlen (VAR) + 1;
+#if 0
+ printf ("rstr1=0x%x, rstr2=0x%x\n", rstr1, rstr2);
+ /*
+ * If string from first call was reused for the second call,
+ * you had better not do a free on the first string!
+ */
+ if (rstr1 == rstr2)
+ printf ("#define SMART_PUTENV\n");
+ else
+ printf ("#undef SMART_PUTENV\n");
+#endif
+ exit (rstr1 == rstr2 ? 0 : 1);
+}
+EOF
+if { (eval echo configure:6376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ kb_cv_func_putenv_malloc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ kb_cv_func_putenv_malloc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$kb_cv_func_putenv_malloc" 1>&6
+if test $kb_cv_func_putenv_malloc = yes; then
+ cat >> confdefs.h <<\EOF
+#define SMART_PUTENV 1
+EOF
+
+fi
+
+if test $ac_cv_func_getcwd = yes; then
+# We only need to run this if we have getcwd.
+echo $ac_n "checking whether getcwd uses fork or vfork""... $ac_c" 1>&6
+echo "configure:6400: checking whether getcwd uses fork or vfork" >&5
+if eval "test \"`echo '$''{'kb_cv_func_getcwd_forks'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ kb_cv_func_getcwd_forks=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6408 "configure"
+#include "confdefs.h"
+
+int fork() { exit(1); }
+int vfork() { exit(1); }
+extern char *getcwd();
+char path[100];
+int main() {
+getcwd(path,100);
+return 0;
+}
+EOF
+if { (eval echo configure:6420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ kb_cv_func_getcwd_forks=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ kb_cv_func_getcwd_forks=yes
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$kb_cv_func_getcwd_forks" 1>&6
+if test $kb_cv_func_getcwd_forks = yes; then
+ cat >> confdefs.h <<\EOF
+#define GETCWD_FORKS 1
+EOF
+
+fi
+fi
+
+# Common --with and --enable options.
+
+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
+echo "configure:6445: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
+ if test "x$USE_MAINTAINER_MODE" = xyes; then
+ MAINT=
+ else
+ MAINT='#M#'
+ fi
+
+
+
+echo $ac_n "checking for loader (symbol LD)""... $ac_c" 1>&6
+echo "configure:6464: checking for loader (symbol LD)" >&5
+if eval "test \"`echo '$''{'cf_cv_subst_LD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+test -z "$LD" && LD=ld
+cf_cv_subst_LD=$LD
+fi
+
+LD=${cf_cv_subst_LD}
+echo "$ac_t""$LD" 1>&6
+
+
+echo $ac_n "checking for archiver (symbol AR)""... $ac_c" 1>&6
+echo "configure:6478: checking for archiver (symbol AR)" >&5
+if eval "test \"`echo '$''{'cf_cv_subst_AR'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+test -z "$AR" && AR=ar
+cf_cv_subst_AR=$AR
+fi
+
+AR=${cf_cv_subst_AR}
+echo "$ac_t""$AR" 1>&6
+
+
+echo $ac_n "checking for archiver options (symbol ARFLAGS)""... $ac_c" 1>&6
+echo "configure:6492: checking for archiver options (symbol ARFLAGS)" >&5
+if eval "test \"`echo '$''{'cf_cv_subst_ARFLAGS'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+test -z "$ARFLAGS" && ARFLAGS=rc
+cf_cv_subst_ARFLAGS=$ARFLAGS
+fi
+
+ARFLAGS=${cf_cv_subst_ARFLAGS}
+echo "$ac_t""$ARFLAGS" 1>&6
+
+
+
+# Check whether --with-mktexmf-default or --without-mktexmf-default was given.
+if test "${with_mktexmf_default+set}" = set; then
+ withval="$with_mktexmf_default"
+ :
+else
+ with_mktexmf_default=yes
+fi
+
+# Check whether --with-mktexpk-default or --without-mktexpk-default was given.
+if test "${with_mktexpk_default+set}" = set; then
+ withval="$with_mktexpk_default"
+ :
+else
+ with_mktexpk_default=yes
+fi
+
+# Check whether --with-mktextfm-default or --without-mktextfm-default was given.
+if test "${with_mktextfm_default+set}" = set; then
+ withval="$with_mktextfm_default"
+ :
+else
+ with_mktextfm_default=yes
+fi
+
+# Check whether --with-mkocp-default or --without-mkocp-default was given.
+if test "${with_mkocp_default+set}" = set; then
+ withval="$with_mkocp_default"
+ :
+else
+ with_mkocp_default=yes
+fi
+
+# Check whether --with-mkofm-default or --without-mkofm-default was given.
+if test "${with_mkofm_default+set}" = set; then
+ withval="$with_mkofm_default"
+ :
+else
+ with_mkofm_default=yes
+fi
+
+# Check whether --with-mktexfmt-default or --without-mktexfmt-default was given.
+if test "${with_mktexfmt_default+set}" = set; then
+ withval="$with_mktexfmt_default"
+ :
+fi
+
+# Check whether --with-mktextex-default or --without-mktextex-default was given.
+if test "${with_mktextex_default+set}" = set; then
+ withval="$with_mktextex_default"
+ with_mktextex_default=yes
+else
+ with_mktextex_default=no
+fi
+
+
+echo $ac_n "checking where the main texmf tree is located""... $ac_c" 1>&6
+echo "configure:6562: checking where the main texmf tree is located" >&5
+texmfmain=
+if test -n "$TEXMFMAIN"; then
+ texmfmain="$TEXMFMAIN"
+ echo "$ac_t""$texmfmain (from TEXMFMAIN)" 1>&6
+
+elif test "x$datadir" != 'x${prefix}/share'; then
+ # datadir is explicitly defined, assume datadir/texmf.
+ eval p=\"$datadir\"
+ # Unconditionally set the directory, but...
+ texmfmain=`echo "$p/texmf" | sed 's,//*,/,g'`
+ # ... do complain if it wasn't found.
+ if test -d "$texmfmain"; then
+ echo "$ac_t"""$texmfmain"" 1>&6
+ else
+ echo "$ac_t""not found" 1>&6
+ echo "configure: warning: No texmf tree found at datadir/texmf ($texmfmain)" 1>&2
+ echo "configure: warning: proceeding anyway.
+ *****************************************************************
+ * Warning: The main texmf tree was not found. *
+ * If you do not have the files, you should be able to find them *
+ * at the same place you got these sources, or from one of the *
+ * CTAN hosts. Good luck. *
+ *****************************************************************
+" 1>&2
+ fi
+
+else
+ # Second case, datadir is default...
+ if test "x$prefix" = "xNONE"; then
+ p="$ac_default_prefix"
+ else
+ eval p=\"$prefix\"
+ fi
+ for e in share/texmf lib/texmf texmf; do
+ if test -d "$p/$e"; then
+ texmfmain='${prefix}'/"$e"
+ break
+ fi
+ done
+ if test -z "$texmfmain" && test "x$prefix" = "xNONE"; then
+ # Still no texmfmain found, no prefix set, perhaps kpsewhich is
+ # installed and can help us out.
+ texmfmain=`kpsewhich --expand-path='$TEXMFMAIN'` 2>/dev/null
+ fi
+ texmfmain=`echo "$texmfmain" | sed 's,//*,/,g'`
+ if test -n "$texmfmain"; then
+ echo "$ac_t"""$texmfmain"" 1>&6
+ else
+ eval texmfmain="$datadir/texmf"
+ echo "$ac_t""not found" 1>&6
+ echo "configure: warning: The main texmf tree was not found at $texmfmain.
+ *****************************************************************
+ * Warning: The main texmf tree was not found. *
+ * Use the --datadir option to specify its parent directory. *
+ * If you do not have the files, you should be able to them from *
+ * the same place you got these sources from, or from one of the *
+ * CTAN hosts. *
+ *****************************************************************
+ Winging it by pretending $texmfmain is correct." 1>&2
+ fi
+fi
+
+
+
+# Implementation of those options.
+if test "x$with_mktexmf_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_TEX_MF_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mktexpk_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_TEX_PK_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mktextex_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_TEX_TEX_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mktexfmt_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_TEX_FMT_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mktextfm_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_TEX_TFM_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mkocp_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_OMEGA_OCP_BY_DEFAULT 1
+EOF
+
+fi
+if test "x$with_mkofm_default" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define MAKE_OMEGA_OFM_BY_DEFAULT 1
+EOF
+
+fi
+
+# Is libm present. FIXME: do we need it at all?
+echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
+echo "configure:6673: checking for main in -lm" >&5
+ac_lib_var=`echo m'_'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="-lm $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 6681 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:6688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+ LIBS="-lm $LIBS"
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+# If you're cross-compiling, these macros set up the variables in
+# ../make/cross.mk: BUILDCC, BUILDCFLAGS, BUILDCCLD etc.
+if test "$cross_compiling" = yes; then
+ if test -z "${BUILDCC}"; then
+ BUILDCC='cc'
+ fi
+ echo "$ac_t""setting \$BUILDCC to ${BUILDCC}" 1>&6
+else
+ if test -n "${BUILDCC}"; then
+ echo "configure: warning: \$BUILDCC set but not cross-compiling." 1>&2
+ fi
+ BUILDCC='$(CC)'
+fi
+
+
+if test "$cross_compiling" = yes; then
+ if test -z "${BUILDCFLAGS}"; then
+ BUILDCFLAGS='$(BUILDXCFLAGS)'
+ fi
+ echo "$ac_t""setting \$BUILDCFLAGS to ${BUILDCFLAGS}" 1>&6
+else
+ if test -n "${BUILDCFLAGS}"; then
+ echo "configure: warning: \$BUILDCFLAGS set but not cross-compiling." 1>&2
+ fi
+ BUILDCFLAGS='$(CFLAGS)'
+fi
+
+
+if test "$cross_compiling" = yes; then
+ if test -z "${BUILDCPPFLAGS}"; then
+ BUILDCPPFLAGS='$(BUILDXCPPFLAGS)'
+ fi
+ echo "$ac_t""setting \$BUILDCPPFLAGS to ${BUILDCPPFLAGS}" 1>&6
+else
+ if test -n "${BUILDCPPFLAGS}"; then
+ echo "configure: warning: \$BUILDCPPFLAGS set but not cross-compiling." 1>&2
+ fi
+ BUILDCPPFLAGS='$(CPPFLAGS)'
+fi
+
+
+if test "$cross_compiling" = yes; then
+ if test -z "${BUILDLDFLAGS}"; then
+ BUILDLDFLAGS='$(BUILDXLDFLAGS)'
+ fi
+ echo "$ac_t""setting \$BUILDLDFLAGS to ${BUILDLDFLAGS}" 1>&6
+else
+ if test -n "${BUILDLDFLAGS}"; then
+ echo "configure: warning: \$BUILDLDFLAGS set but not cross-compiling." 1>&2
+ fi
+ BUILDLDFLAGS='$(LDFLAGS)'
+fi
+
+
+if test "$cross_compiling" = yes; then
+ if test -z "${BUILDCCLD}"; then
+ BUILDCCLD='$(BUILDCC)'
+ fi
+ echo "$ac_t""setting \$BUILDCCLD to ${BUILDCCLD}" 1>&6
+else
+ if test -n "${BUILDCCLD}"; then
+ echo "configure: warning: \$BUILDCCLD set but not cross-compiling." 1>&2
+ fi
+ BUILDCCLD='$(CCLD)'
+fi
+
+
+
+
+
+echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
+echo "configure:6787: checking whether char is unsigned" >&5
+if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$GCC" = yes; then
+ # GCC predefines this symbol on systems where it applies.
+cat > conftest.$ac_ext <<EOF
+#line 6794 "configure"
+#include "confdefs.h"
+#ifdef __CHAR_UNSIGNED__
+ yes
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "yes" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_c_char_unsigned=yes
+else
+ rm -rf conftest*
+ ac_cv_c_char_unsigned=no
+fi
+rm -f conftest*
+
+else
+if test "$cross_compiling" = yes; then
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6816 "configure"
+#include "confdefs.h"
+/* volatile prevents gcc2 from optimizing the test away on sparcs. */
+#if !defined(__STDC__) || __STDC__ != 1
+#define volatile
+#endif
+main() {
+ volatile char c = 255; exit(c < 0);
+}
+EOF
+if { (eval echo configure:6826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_char_unsigned=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_char_unsigned=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_char_unsigned" 1>&6
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+ cat >> confdefs.h <<\EOF
+#define __CHAR_UNSIGNED__ 1
+EOF
+
+fi
+
+echo $ac_n "checking size of long""... $ac_c" 1>&6
+echo "configure:6850: 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
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6858 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+ fprintf(f, "%d\n", sizeof(long));
+ exit(0);
+}
+EOF
+if { (eval echo configure:6869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_sizeof_long=`cat conftestval`
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_sizeof_long=0
+fi
+rm -fr conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_long" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+EOF
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+
+trap 'rm -fr `echo "$ac_config_files c-auto.h:c-auto.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@CC@%$CC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@LN_S@%$LN_S%g
+s%@SET_MAKE@%$SET_MAKE%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%@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%@OBJEXT@%$OBJEXT%g
+s%@EXEEXT@%$EXEEXT%g
+s%@ECHO@%$ECHO%g
+s%@RANLIB@%$RANLIB%g
+s%@STRIP@%$STRIP%g
+s%@CPP@%$CPP%g
+s%@LIBTOOL@%$LIBTOOL%g
+s%@LTLIBOBJS@%$LTLIBOBJS%g
+s%@MAINT@%$MAINT%g
+s%@LD@%$LD%g
+s%@AR@%$AR%g
+s%@ARFLAGS@%$ARFLAGS%g
+s%@texmfmain@%$texmfmain%g
+s%@BUILDCC@%$BUILDCC%g
+s%@BUILDCFLAGS@%$BUILDCFLAGS%g
+s%@BUILDCPPFLAGS@%$BUILDCPPFLAGS%g
+s%@BUILDLDFLAGS@%$BUILDLDFLAGS%g
+s%@BUILDCCLD@%$BUILDCCLD%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"$ac_config_files"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*|[A-z]:/*) # Absolute path.
+ 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
+ "") ;;
+ [/$]*|[A-z]:/*) 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
+
+ rm -f conftest.in
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%:% $ac_given_srcdir/%g" -e "s%^%$ac_given_srcdir/%"`
+ cat $ac_file_inputs > conftest.in
+ #
+ # Replace lines of the form ac_include foo with the contents of foo:
+ # first, from the ac_include lines construct a list of file names.
+ # From that list, we construct a second list of those files that exist.
+ # Then we construct lists of sed commands for including those files,
+ # and a sed command that removes the ac_include lines. We don't attempt
+ # to read non-existent files because some (buggy) versions of sed choke
+ # on this. Have to use sed because old (Ultrix, SunOS) awk does not support
+ # getline or system. (Anyway, configure scripts aren't supposed to use awk.)
+ # Can't use only one -e and commands {dr foo} because foo has to be last.
+ # Be careful, because the filename may contain /. Be careful with
+ # whitespace; we need to use echo.
+ #
+ file_substs=`sed -n '/^ac_include/s%ac_include[ ]*\(.*\)%\1%p' conftest.in`
+ # Create the sed command line ...
+ if test -n "$file_substs"; then
+ echo "configure: warning: ac_include is obsolete; instead use kpse_include" 1>&2
+ file_subst_cmd="sed -e 's/^ac_include/kpse_include/'"
+ else
+ file_subst_cmd='sed'
+ fi
+ kpse_substs=`sed -n '/^kpse_include/s%kpse_include[ ]*\(.*\)%\1%p' conftest.in`
+ for ac_inc in $file_substs $kpse_substs; do
+ if test -f "$ac_given_srcdir/$ac_inc"; then
+ ac_mung=`echo $ac_inc | sed 's,/,%,g'`
+ file_subst_cmd="$file_subst_cmd -e '/^kpse_include $ac_mung$/r $ac_given_srcdir/$ac_inc'"
+ fi
+ done
+ file_subst_cmd="$file_subst_cmd -e '/^kpse_include/d'"
+ # ... and fix the whitespace and escaped slashes.
+ file_subst_cmd=`echo "$file_subst_cmd" | sed -e 's,%,\\\/,g' \
+-e 's/kpse_include /kpse_include[ ]*/g'`
+ # I can't find any way to do variable substitution in the sed commands
+ # (so the user could have, e.g., $top_srcdir in their ac_include line).
+ (eval $file_subst_cmd conftest.in) \
+ | sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s* conftest.in
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ].*$%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS=" c-auto.h:c-auto.in"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%:% $ac_given_srcdir/%g" -e "s%^%$ac_given_srcdir/%"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+date >stamp-auto
+
+
+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
+
+if test "$no_recursion" != yes; then
+
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $ac_configure_args; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -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=*)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ for ac_config_dir in : $subdirs; do
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ echo configuring in $ac_config_dir
+
+ case "$srcdir" in
+ .) ;;
+ *)
+ if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+ else
+ { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $ac_config_dir
+
+ # A "../" for each directory in /$ac_config_dir.
+ ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+ case "$srcdir" in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ /*|[A-z]:/*) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f ./configure; then
+ ac_sub_configure=./configure
+ elif test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure=$ac_sub_srcdir/configure
+ elif test -f $ac_sub_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ case "$cache_file" in
+ /*|[A-z]:/*) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file="$ac_dots$cache_file" ;;
+ esac
+ case "$ac_given_INSTALL" in
+ "") ;;
+ [/$]*|[A-z]:/*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+ # The eval makes quoting arguments work.
+ if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+ then :
+ else
+ { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+ fi
+ fi
+
+ cd $ac_popdir
+ done
+fi
+
+date >stamp-auto
diff --git a/Build/source/texk/dtl/configure.in b/Build/source/texk/dtl/configure.in
new file mode 100644
index 00000000000..1fe68d75677
--- /dev/null
+++ b/Build/source/texk/dtl/configure.in
@@ -0,0 +1,14 @@
+dnl Public domain.
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT(dv2dt.c)
+sinclude(../kpathsea/common.ac)
+
+
+dnl These tests prevent reliable cross-compilation. Sigh.
+AC_C_CHAR_UNSIGNED
+AC_CHECK_SIZEOF(long)
+
+KPSE_CONFIG_FILES([Makefile])
+AC_OUTPUT
+dnl Update stamp-auto, since we just remade `c-auto.h'.
+date >stamp-auto
diff --git a/Build/source/texk/dtl/depend.mak b/Build/source/texk/dtl/depend.mak
new file mode 100644
index 00000000000..6d09baa0942
--- /dev/null
+++ b/Build/source/texk/dtl/depend.mak
@@ -0,0 +1,38 @@
+$(objdir)/dt2dv.obj: \
+ $(kpathseadir)/config.h \
+ $(kpathseadir)/c-auto.h \
+ $(kpathseadir)/c-std.h \
+ $(kpathseadir)/c-unistd.h \
+ $(kpathseadir)/systypes.h \
+ $(kpathseadir)/c-memstr.h \
+ $(kpathseadir)/c-errno.h \
+ $(kpathseadir)/c-minmax.h \
+ $(kpathseadir)/c-limits.h \
+ $(kpathseadir)/c-proto.h \
+ $(gnuw32dir)/win32lib.h \
+ $(kpathseadir)/debug.h \
+ $(kpathseadir)/types.h \
+ $(kpathseadir)/lib.h \
+ $(kpathseadir)/progname.h \
+ $(kpathseadir)/c-fopen.h \
+ dtl.h
+
+$(objdir)/dv2dt.obj: \
+ $(kpathseadir)/config.h \
+ $(kpathseadir)/c-auto.h \
+ $(kpathseadir)/c-std.h \
+ $(kpathseadir)/c-unistd.h \
+ $(kpathseadir)/systypes.h \
+ $(kpathseadir)/c-memstr.h \
+ $(kpathseadir)/c-errno.h \
+ $(kpathseadir)/c-minmax.h \
+ $(kpathseadir)/c-limits.h \
+ $(kpathseadir)/c-proto.h \
+ $(gnuw32dir)/win32lib.h \
+ $(kpathseadir)/debug.h \
+ $(kpathseadir)/types.h \
+ $(kpathseadir)/lib.h \
+ $(kpathseadir)/progname.h \
+ $(kpathseadir)/c-fopen.h \
+ dtl.h
+
diff --git a/Build/source/texk/dtl/depend.mk b/Build/source/texk/dtl/depend.mk
new file mode 100644
index 00000000000..1b1810ff294
--- /dev/null
+++ b/Build/source/texk/dtl/depend.mk
@@ -0,0 +1,4 @@
+dt2dv.o: dt2dv.c \
+ dtl.h
+dv2dt.o: dv2dt.c \
+ dtl.h
diff --git a/Build/source/texk/dtl/dt2dv.c b/Build/source/texk/dtl/dt2dv.c
new file mode 100644
index 00000000000..4d45ad4f709
--- /dev/null
+++ b/Build/source/texk/dtl/dt2dv.c
@@ -0,0 +1,2868 @@
+/* dt2dv - convert human-readable "DTL" file to DVI format
+ - this is intended to invert dv2dt version 0.6.0
+ - version 0.6.1 - 14:38 GMT +11 Thu 9 March 1995
+ - Geoffrey Tobin G.Tobin@ee.latrobe.edu.au
+ - fixes: Michal Tomczak-Jaegermann ntomczak@vm.ucs.ualberta.ca
+ Nelson H. F. Beebe beebe@math.utah.edu
+ - Reference: "The DVI Driver Standard, Level 0",
+ by The TUG DVI Driver Standards Committee.
+ Appendix A, "Device-Independent File Format".
+*/
+
+/* unix version; read from stdin, write to stdout, by default. */
+
+#include <ctype.h>
+#include <errno.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef KPATHSEA
+#include <kpathsea/c-fopen.h>
+#endif
+
+#include "dtl.h"
+
+/* by default, read and write regular files */
+int rd_stdin = 0;
+int wr_stdout = 0;
+
+/* maximum number of characters in a DTL input line */
+#define MAXLINE 1024
+
+/* input line */
+typedef struct
+{
+ COUNT num; /* current line number */
+ size_t max; /* capacity of buf */
+ S4 wrote; /* number of characters written into buf */
+ size_t read; /* position in buf of next character to read from buf */
+ char * buf; /* line buffer */
+} Line;
+
+char linebuf[MAXLINE+1];
+
+Line dtl_line = {0, 0, 0, MAXLINE, linebuf};
+
+/* a DTL token either is:
+ a quoted string (admitting an escape character),
+ or BCOM (if that is a nonempty string),
+ or ECOM (if that is a nonempty string),
+ or a string _not_ including ECOM_CHAR or space.
+*/
+
+/* maximum expected length of a DTL token */
+#define MAXTOKLEN 255
+typedef char Token[MAXTOKLEN+1];
+
+typedef unsigned char Byte;
+typedef char Boolean;
+
+#ifndef true
+#define true 1
+#endif
+#ifndef false
+#define false 0
+#endif
+
+/* command prefixes */
+typedef struct
+{
+ Byte first_code;
+ char * name;
+ Boolean has_suffix;
+ Byte first_suffix, last_suffix;
+} CmdPrefix;
+
+CmdPrefix cmd_prefixes [] =
+{
+ {0, SETCHAR, true, 0, 127},
+ {128, SET, true, 1, 4},
+ {132, SETRULE, false, 0, 0},
+ {133, PUT, true, 1, 4},
+ {137, PUTRULE, false, 0, 0},
+ {138, NOP, false, 0, 0},
+ {139, BOP, false, 0, 0},
+ {140, EOP, false, 0, 0},
+ {141, PUSH, false, 0, 0},
+ {142, POP, false, 0, 0},
+ {143, RIGHT, true, 1, 4},
+ {147, W, true, 0, 4},
+ {152, X, true, 0, 4},
+ {157, DOWN, true, 1, 4},
+ {161, Y, true, 0, 4},
+ {166, Z, true, 0, 4},
+ {171, FONTNUM, true, 0, 63},
+ {235, FONT, true, 1, 4},
+ {239, SPECIAL, true, 1, 4},
+ {243, FONTDEF, true, 1, 4},
+ {247, PRE, false, 0, 0},
+ {248, POST, false, 0, 0},
+ {249, POSTPOST, false, 0, 0},
+ {250, OPCODE, true, 250, 255}
+};
+/* cmd_prefixes[] */
+
+/* Number of DVI commands, including those officially undefined */
+#define NCMDS 256
+
+/* table of command name (string) pointers */
+typedef char * CmdTable [NCMDS];
+
+/* initially all command name pointers are NULL */
+CmdTable cmd_table;
+
+/* operation's opcode, name, number of args, string of arguments. */
+typedef struct
+{
+ int code;
+ char * name;
+ int nargs;
+ char * args;
+} op_info;
+
+/* name of table, first opcode, last opcode, pointer to opcode info. */
+typedef struct
+{
+ char * name;
+ int first;
+ int last;
+ op_info * list;
+} op_table;
+
+/* Table for opcodes 128 to 170 inclusive. */
+
+op_info op_info_128_170 [] =
+{
+ {128, SET1, 1, "1"},
+ {129, SET2, 1, "2"},
+ {130, SET3, 1, "3"},
+ {131, SET4, 1, "-4"},
+ {132, SETRULE, 2, "-4 -4"},
+ {133, PUT1, 1, "1"},
+ {134, PUT2, 1, "2"},
+ {135, PUT3, 1, "3"},
+ {136, PUT4, 1, "-4"},
+ {137, PUTRULE, 2, "-4 -4"},
+ {138, NOP, 0, ""},
+ /* bop: not counting last argument, a signed address: */
+ {139, BOP, 10, "-4 -4 -4 -4 -4 -4 -4 -4 -4 -4"},
+ {140, EOP, 0, ""},
+ {141, PUSH, 0, ""},
+ {142, POP, 0, ""},
+ {143, RIGHT1, 1, "-1"},
+ {144, RIGHT2, 1, "-2"},
+ {145, RIGHT3, 1, "-3"},
+ {146, RIGHT4, 1, "-4"},
+ {147, W0, 0, ""},
+ {148, W1, 1, "-1"},
+ {149, W2, 1, "-2"},
+ {150, W3, 1, "-3"},
+ {151, W4, 1, "-4"},
+ {152, X0, 0, ""},
+ {153, X1, 1, "-1"},
+ {154, X2, 1, "-2"},
+ {155, X3, 1, "-3"},
+ {156, X4, 1, "-4"},
+ {157, DOWN1, 1, "-1"},
+ {158, DOWN2, 1, "-2"},
+ {159, DOWN3, 1, "-3"},
+ {160, DOWN4, 1, "-4"},
+ {161, Y0, 0, ""},
+ {162, Y1, 1, "-1"},
+ {163, Y2, 1, "-2"},
+ {164, Y3, 1, "-3"},
+ {165, Y4, 1, "-4"},
+ {166, Z0, 0, ""},
+ {167, Z1, 1, "-1"},
+ {168, Z2, 1, "-2"},
+ {169, Z3, 1, "-3"},
+ {170, Z4, 1, "-4"}
+};
+/* op_info op_info_128_170 [] */
+
+op_table op_128_170 = {"op_128_170", 128, 170, op_info_128_170};
+
+/* Table for fnt1 to fnt4 (opcodes 235 to 238) inclusive. */
+
+op_info fnt_n [] =
+{
+ {235, FONT1, 1, "1"},
+ {236, FONT2, 1, "2"},
+ {237, FONT3, 1, "3"},
+ {238, FONT4, 1, "-4"}
+};
+/* op_info fnt_n [] */
+
+op_table fnt = {FONT, 235, 238, fnt_n};
+
+
+/* Function prototypes */
+
+Void mem_viol ARGS((int sig));
+Void give_help (VOID);
+int parse ARGS((char * s));
+Void process ARGS((char * s));
+
+Void no_op (VOID);
+Void dtl_stdin (VOID);
+Void dvi_stdout (VOID);
+
+int open_dtl ARGS((char * dtl_file, FILE ** pdtl));
+int open_dvi ARGS((char * dvi_file, FILE ** pdvi));
+
+int dt2dv ARGS((FILE * dtl, FILE * dvi));
+
+Void * gmalloc ARGS((long int size));
+
+Void dinfo (VOID);
+Void dexit ARGS((int n));
+
+int cons_cmds ARGS((int nprefixes, CmdPrefix * prefix, CmdTable cmds));
+Void free_cmds ARGS((CmdTable cmd_table));
+
+int get_line ARGS((FILE * fp, Line * line, int max));
+int read_line_char ARGS((FILE * fp, int * ch));
+int read_char ARGS((FILE * fp, int * ch));
+int unread_char (VOID);
+int read_string_char ARGS((FILE * fp, int * ch));
+
+COUNT read_variety ARGS((FILE * dtl));
+COUNT read_token ARGS((FILE * dtl, char * token));
+COUNT skip_space ARGS((FILE * fp, int * ch));
+COUNT read_misc ARGS((FILE * fp, Token token));
+COUNT read_mes ARGS((FILE * fp, char * token));
+
+int find_command ARGS((char * command, int * opcode));
+int xfer_args ARGS((FILE * dtl, FILE * dvi, int opcode));
+
+int set_seq ARGS((FILE * dtl, FILE * dvi));
+
+int check_byte ARGS((int byte));
+int put_byte ARGS((int onebyte, FILE * dvi));
+
+U4 xfer_hex ARGS((int n, FILE * dtl, FILE * dvi));
+U4 xfer_oct ARGS((int n, FILE * dtl, FILE * dvi));
+U4 xfer_unsigned ARGS((int n, FILE * dtl, FILE * dvi));
+S4 xfer_signed ARGS((int n, FILE * dtl, FILE * dvi));
+
+int check_bmes ARGS((FILE * dtl));
+int check_emes ARGS((FILE * dtl));
+
+Void init_Lstring ARGS((Lstring * lsp, long int n));
+Void de_init_Lstring ARGS((Lstring * lsp));
+Lstring * alloc_Lstring ARGS((long int n));
+Void free_Lstring ARGS((Lstring * lstr));
+Void ls_putb ARGS((int ch, Lstring * lstr));
+
+S4 get_Lstring ARGS((FILE * dtl, Lstring * lstr));
+Void put_Lstring ARGS((const Lstring * lstr, FILE * dvi));
+U4 xfer_len_string ARGS((int n, FILE * dtl, FILE * dvi));
+
+U4 get_unsigned ARGS((FILE * dtl));
+S4 get_signed ARGS((FILE * dtl));
+
+int put_unsigned ARGS((int n, U4 unum, FILE * dvi));
+int put_signed ARGS((int n, S4 snum, FILE * dvi));
+
+S4 xfer_bop_address ARGS((FILE * dtl, FILE * dvi));
+S4 xfer_postamble_address ARGS((FILE * dtl, FILE * dvi));
+
+int put_table ARGS((op_table table, int opcode, FILE * dtl, FILE * dvi));
+
+U4 special ARGS((FILE * dtl, FILE * dvi, int n));
+int fontdef ARGS((FILE * dtl, FILE * dvi, int n));
+
+U4 preamble ARGS((FILE * dtl, FILE * dvi));
+int postamble ARGS((FILE * dtl, FILE * dvi));
+int post_post ARGS((FILE * dtl, FILE * dvi));
+
+
+typedef struct
+{
+ char * keyword; /* command line option keyword */
+ int * p_var; /* pointer to option variable */
+ char * desc; /* description of keyword and value */
+ Void (* p_fn) (VOID); /* pointer to function called when option is set */
+} Options;
+
+Options opts[] =
+{
+ {"-debug", &debug, "detailed debugging", no_op},
+ {"-group", &group, "each DTL command is in parentheses", no_op},
+ {"-si", &rd_stdin, "read all DTL commands from standard input", dtl_stdin},
+ {"-so", &wr_stdout, "write all DVI commands to standard output", dvi_stdout},
+ {NULL, NULL, NULL, NULL}
+};
+/* opts[] */
+
+char * progname = ""; /* intended for name of this program */
+int nfile = 0; /* number of filename arguments on the command line */
+
+#define PRINT_PROGNAME fprintf (stderr, "%s ", progname)
+
+/* Harbison & Steele (1991) warn that some C implementations */
+/* of free() do not treat NULL pointers correctly. */
+#define gfree(p) {if (p) free (p);}
+
+
+FILE * dtl_fp = NULL;
+FILE * dvi_fp = NULL;
+
+char * dtl_filename = "";
+char * dvi_filename = "";
+
+
+int
+main
+#ifdef STDC
+ (int argc, char * argv[])
+#else
+ (argc, argv)
+ int argc;
+ char * argv[];
+#endif
+{
+#ifndef WIN32
+ Void (*handler) ARGS((int)); /* Previous signal handler */
+#endif
+ int i;
+
+ progname = argv[0]; /* name of this program */
+
+ /* memory violation signal handler */
+ /* Not supported under Win32 */
+#ifndef WIN32
+ handler = (Void (*) ARGS((int))) signal (SIGSEGV, mem_viol);
+#endif
+
+#ifndef __DATE__
+#define __DATE__ ""
+#endif
+
+#ifndef __TIME__
+#define __TIME__ ""
+#endif
+
+#if STDC
+#define C_LEVEL ""
+#else /* NOT STDC */
+#define C_LEVEL "non-"
+#endif /* NOT STDC */
+
+ /* message about program and compiler */
+ /* NB: LTU EE's Sun/OS library is BSD, even though gcc 2.2.2 is ANSI */
+
+ fprintf (stderr, "\n");
+ fprintf (stderr,
+ "Program \"%s\" version %s compiled %s %s in %sstandard C.\n",
+ progname, VERSION, __DATE__, __TIME__, C_LEVEL);
+
+ /* interpret command line arguments */
+
+ nfile = 0;
+ dtl_fp = dvi_fp = NULL;
+ dtl_filename = dvi_filename = "";
+
+ for (i=1; i < argc; i++)
+ {
+ /* parse options, followed by any explicit filenames */
+ parse (argv[i]);
+ }
+
+ if (nfile != 2) /* not exactly two files specified, so give help */
+ give_help();
+ else
+ /* the real works */
+ dt2dv (dtl_fp, dvi_fp);
+
+ return 0; /* OK */
+}
+/* end main */
+
+#ifndef WIN32
+Void
+mem_viol
+#ifdef STDC
+ (int sig)
+#else
+ (sig)
+ int sig;
+#endif
+{
+ Void (* handler) ARGS((int));
+ handler = (Void (*) ARGS((int))) signal (SIGSEGV, mem_viol);
+ if (sig != SIGSEGV)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(mem_viol) : called with wrong signal!\n");
+ }
+ PRINT_PROGNAME;
+ fprintf (stderr, "(mem_viol) : RUNTIME MEMORY ERROR : memory violation, ");
+ fprintf (stderr, "dtl line >= ");
+ fprintf (stderr, WF, dtl_line.num);
+ fprintf (stderr, "\n");
+ dexit (1);
+}
+/* mem_viol */
+#endif
+
+Void
+give_help (VOID)
+{
+ int i;
+ char * keyword;
+ fprintf (stderr, "usage: ");
+ PRINT_PROGNAME;
+ fprintf (stderr, "[options] dtl_file dvi_file");
+ fprintf (stderr, "\n");
+ for (i=0; (keyword = opts[i].keyword) != NULL; i++)
+ {
+ fprintf (stderr, " ");
+ fprintf (stderr, "[%s]", keyword);
+ fprintf (stderr, " ");
+ fprintf (stderr, "%s", opts[i].desc);
+ fprintf (stderr, "\n");
+ }
+ fprintf (stderr, "Messages, like this one, go to stderr.\n");
+}
+/* give_help */
+
+
+Void no_op (VOID)
+/* do nothing */
+{
+}
+
+Void dtl_stdin (VOID)
+{
+ extern FILE * dtl_fp;
+ extern int nfile;
+
+ dtl_fp = stdin;
+ dtl_filename = "Standard Input";
+ ++ nfile;
+}
+
+Void dvi_stdout (VOID)
+{
+ extern FILE * dvi_fp;
+ extern int nfile;
+
+ /* ! Perilous to monitors! */
+ dvi_fp = stdout;
+ dvi_filename = "Standard Output";
+ ++ nfile;
+ if (!isatty(fileno(dvi_fp)))
+ SET_BINARY(fileno(dvi_fp));
+}
+
+
+int
+parse
+#ifdef STDC
+ (char * s)
+#else
+ (s)
+ char * s;
+#endif
+/* parse one command-line argument, `s' */
+{
+ int i;
+ char * keyword;
+ for (i=0; (keyword = opts[i].keyword) != NULL; i++)
+ {
+ if (strncmp (s, keyword, strlen (keyword)) == 0)
+ {
+ Void (*pfn) (VOID);
+ (*(opts[i].p_var)) = 1; /* turn option on */
+ if ((pfn = opts[i].p_fn) != NULL)
+ (*pfn) (); /* call option function */
+ return i;
+ }
+ }
+ /* reached here, so not an option: assume it's a filename */
+ process (s);
+ return i;
+}
+/* parse */
+
+
+int
+open_dtl
+#ifdef STDC
+ (char * dtl_file, FILE ** pdtl)
+#else
+ (dtl_file, pdtl)
+ char * dtl_file;
+ FILE ** pdtl;
+#endif
+/* I: dtl_file; I: pdtl; O: *pdtl. */
+{
+ extern char * dtl_filename;
+
+ dtl_filename = dtl_file;
+
+ if (dtl_filename == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dtl) : INTERNAL ERROR : dtl file's name is NULL.\n");
+ dexit (1);
+ }
+
+ if (pdtl == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dtl) : INTERNAL ERROR : address of dtl variable is NULL.\n");
+ dexit (1);
+ }
+
+ *pdtl = fopen (dtl_file, "r");
+
+ if (*pdtl == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dtl) : DTL FILE ERROR : Cannot open \"%s\" for text reading.\n",
+ dtl_file);
+ dexit (1);
+ }
+
+ return 1; /* OK */
+}
+/* open_dtl */
+
+
+int
+open_dvi
+#ifdef STDC
+ (char * dvi_file, FILE ** pdvi)
+#else
+ (dvi_file, pdvi)
+ char * dvi_file;
+ FILE ** pdvi;
+#endif
+/* I: dvi_file; I: pdvi; O: *pdvi. */
+{
+ extern char * dvi_filename;
+
+ dvi_filename = dvi_file;
+
+ if (dvi_filename == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dvi) : INTERNAL ERROR : dvi file's name is NULL.\n");
+ dexit (1);
+ }
+
+ if (pdvi == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dvi) : INTERNAL ERROR : address of dvi variable is NULL.\n");
+ dexit (1);
+ }
+
+ *pdvi = fopen (dvi_file, "wb");
+
+ if (*pdvi == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(open_dvi) : DVI FILE ERROR : Cannot open \"%s\" for binary writing.\n",
+ dvi_file);
+ dexit (1);
+ }
+
+ return 1; /* OK */
+}
+/* open_dvi */
+
+
+Void
+process
+#ifdef STDC
+ (char * s)
+#else
+ (s)
+ char * s;
+#endif
+{
+ extern FILE * dtl_fp, * dvi_fp;
+ extern int nfile;
+ if (dtl_fp == NULL) /* first filename assumed to be DTL input */
+ {
+ open_dtl (s, &dtl_fp);
+ }
+ else if (dvi_fp == NULL) /* second filename assumed to be DVI output */
+ {
+ open_dvi (s, &dvi_fp);
+ }
+ else
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(process) : at most two filenames allowed.\n");
+ exit (1);
+ }
+ ++ nfile;
+}
+/* process */
+
+
+COUNT dtl_read = 0; /* bytes read from dtl file */
+COUNT dvi_written = 0; /* bytes written to dvi file */
+word_t last_bop_address = -1; /* byte address of last bop; first bop uses -1 */
+word_t postamble_address = -1; /* byte address of postamble */
+COUNT ncom = 0; /* commands successfully read and interpreted from dtl file */
+COUNT com_read = 0; /* bytes read in current (command and arguments), */
+ /* since and including the opening BCOM_CHAR, if any */
+
+
+int
+put_byte
+#ifdef STDC
+ (int byte, FILE * dvi)
+#else
+ (byte, dvi)
+ int byte;
+ FILE * dvi;
+#endif
+/* write byte into dvi file */
+{
+ check_byte (byte);
+/* if (fprintf (dvi, "%c", byte) != 1) */
+ if (fprintf (dvi, "%c", byte) < 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_byte) : DVI FILE ERROR (%s) : cannot write to dvi file.\n",
+ dtl_filename);
+ dexit (1);
+ }
+ ++ dvi_written;
+ return 1; /* OK */
+}
+/* put_byte */
+
+
+int
+dt2dv
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+{
+ int nprefixes = 0; /* number of prefixes in cmd_prefixes[] list. */
+ static Token dtl_cmd = ""; /* DTL command name */
+ COUNT nread = 0; /* number of bytes read by a function from dtl file. */
+
+ nprefixes = sizeof (cmd_prefixes) / sizeof (CmdPrefix);
+
+ /* Construct array of all NCMDS == 256 DTL commands */
+
+ (Void) cons_cmds (nprefixes, cmd_prefixes, cmd_table);
+
+ /* DTL commands have the form "[ ]*command arg ... arg[ ]*", */
+ /* possibly enclosed in a BCOM, ECOM pair, */
+ /* and are separated by optional whitespace, typically newlines. */
+ /* That is, each command and its arguments are parenthesised, */
+ /* with optional spaces after the BCOM and before the ECOM, if any. */
+
+ /* dt2dv is now at the very start of the DTL file */
+
+ dtl_line.num = 0;
+ dtl_read = 0;
+
+ /* The very first thing should be the "variety" signature */
+
+ nread = read_variety (dtl);
+
+ /* while not end of dtl file or reading error, */
+ /* read, interpret, and write commands */
+
+ while (!feof (dtl))
+ {
+ int opcode;
+
+ com_read = 0;
+
+ if (group)
+ {
+ /* BCOM check */
+ static Token token = ""; /* DTL token */
+ nread = read_token (dtl, token);
+ /* test for end of input, or reading error */
+ if (strlen (token) == 0)
+ {
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dt2dv) : end of input, or reading error.\n");
+ }
+ break;
+ }
+ /* test whether this command begins correctly */
+ else if (strcmp (token, BCOM) != 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dt2dv) : DTL FILE ERROR (%s) : ", dtl_filename);
+ fprintf (stderr, "command must begin with \"%s\", ", BCOM);
+ fprintf (stderr, "not `%c' (char %d).\n", token[0], token[0]);
+ dexit (1);
+ }
+ /* end BCOM check */
+ }
+
+ /* read the command name */
+ nread = read_token (dtl, dtl_cmd);
+ /* test for end of input, or reading error */
+ if (strlen (dtl_cmd) == 0)
+ {
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(dt2dv) : end of input, or reading error.\n");
+ }
+ break;
+ }
+ else
+ {
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dt2dv) : command ");
+ fprintf (stderr, WF, ncom);
+ fprintf (stderr, " = \"%s\".\n", dtl_cmd);
+ }
+
+ /* find opcode for this command */
+ if (find_command (dtl_cmd, &opcode) == 1)
+ {
+ /* write the opcode, if we can */
+ put_byte (opcode, dvi);
+
+ /* treat the arguments, if any */
+ xfer_args (dtl, dvi, opcode);
+ }
+ else if (dtl_cmd[0] == BSEQ_CHAR)
+ {
+ /* sequence of font characters for SETCHAR */
+ set_seq (dtl, dvi);
+ }
+ else
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(dt2dv) : DTL FILE ERROR (%s) : unknown command \"%s\".\n",
+ dtl_filename, dtl_cmd);
+ dexit (1);
+ }
+ }
+
+ if (group)
+ {
+ /* seek ECOM after command's last argument and optional whitespace */
+ static Token token = ""; /* DTL token */
+ nread = read_token (dtl, token);
+ /* test for end of input, or reading error */
+ if (strlen (token) == 0)
+ {
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(dt2dv) : end of input, or reading error.\n");
+ }
+ break;
+ }
+ if (strcmp (token, ECOM) != 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dt2dv) : DTL FILE ERROR (%s) : ", dtl_filename);
+ fprintf (stderr, "ECOM (\"%s\") expected, not `%c' (char %d).\n",
+ ECOM, token[0], token[0]);
+ dexit (1);
+ }
+ /* end ECOM check */
+ }
+
+ ++ ncom; /* one more command successfully read and interpreted */
+ }
+ /* end while */
+
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dt2dv) :\n");
+ fprintf (stderr, "Read (from file \"%s\") ", dtl_filename);
+ fprintf (stderr, WF, dtl_read);
+ fprintf (stderr, " DTL bytes (");
+ fprintf (stderr, UF4, dtl_line.num);
+ fprintf (stderr, " lines);\n");
+ fprintf (stderr, "wrote (to file \"%s\") ", dvi_filename);
+ fprintf (stderr, WF, dvi_written);
+ fprintf (stderr, " DVI bytes;\n");
+ fprintf (stderr, "completely interpreted ");
+ fprintf (stderr, WF, ncom);
+ fprintf (stderr, " DVI command%s.\n", (ncom == 1 ? "" : "s"));
+ fprintf (stderr, "\n");
+
+ (Void) free_cmds (cmd_table);
+
+ return 1; /* OK */
+}
+/* dt2dv */
+
+
+Void *
+gmalloc
+#ifdef STDC
+ (long int size)
+#else
+ (size)
+ long int size;
+#endif
+{
+ Void * p = NULL;
+ if (size < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(gmalloc) : INTERNAL ERROR : ");
+ fprintf (stderr,
+ "unreasonable request to malloc %ld bytes\n",
+ size);
+ dexit (1);
+ }
+ p = (Void *) malloc ((size_t) size);
+ if (p == NULL)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(gmalloc) : MEMORY ALLOCATION ERROR : ");
+ fprintf (stderr,
+ "operating system failed to malloc %ld bytes\n",
+ size);
+ dexit (1);
+ }
+ return (p);
+}
+/* gmalloc */
+
+
+Void
+dinfo (VOID)
+{
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dinfo) : ");
+ fprintf (stderr, "Current DTL input line ");
+ fprintf (stderr, UF4, dtl_line.num);
+ fprintf (stderr, " :\n");
+ fprintf (stderr, "\"%s\"\n", dtl_line.buf);
+ fprintf (stderr, "Read ");
+ fprintf (stderr, WF, dtl_read);
+ fprintf (stderr, " DTL bytes (");
+ fprintf (stderr, WF, com_read);
+ fprintf (stderr, " in current command), wrote ");
+ fprintf (stderr, WF, dvi_written);
+ fprintf (stderr, " DVI bytes.\n");
+ fprintf (stderr, "Successfully interpreted ");
+ fprintf (stderr, WF, ncom);
+ fprintf (stderr, " DVI command%s.\n", (ncom == 1 ? "" : "s"));
+}
+/* dinfo */
+
+
+Void
+dexit
+#ifdef STDC
+ (int n)
+#else
+ (n)
+ int n;
+#endif
+{
+ dinfo();
+ PRINT_PROGNAME;
+ fprintf (stderr, "(dexit) : exiting with status %d.\n", n);
+ exit (n);
+}
+/* dexit */
+
+
+int
+cons_cmds
+#ifdef STDC
+ (int nprefixes, CmdPrefix * prefix, CmdTable cmds)
+#else
+ (nprefixes, prefix, cmds)
+ int nprefixes;
+ CmdPrefix * prefix;
+ CmdTable cmds;
+#endif
+{
+ int code; /* first opcode for a given command prefix */
+ int opcode; /* command's opcode */
+ int nsuffixes; /* number of commands with a given prefix */
+ int isuffix; /**** integer suffix, of at most three digits ****/
+ String suffix; /* suffix string generated from integer suffix */
+ size_t plen = 0; /* prefix length */
+ size_t slen; /* suffix length */
+ size_t clen; /* whole command name length */
+ int i, j; /* loop indices */
+
+ for (i=0; i < nprefixes; prefix++, i++)
+ {
+ code = prefix->first_code;
+ if (code < 0 || code > 255)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(cons_cmds) : INTERNAL ERROR : ");
+ fprintf (stderr,
+ "prefix listed internally with code = %d, must be 0 to 255\n",
+ code);
+ dexit (1);
+ }
+ if (prefix->has_suffix)
+ {
+ plen = strlen (prefix->name);
+ /**** Suffixes in DTL are Integers, in Sequence */
+ if (prefix->last_suffix < prefix->first_suffix)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(cons_cmds) : INTERNAL ERROR : ");
+ fprintf (stderr,
+ "prefix's last suffix %d < first suffix (%d)\n",
+ prefix->last_suffix, prefix->first_suffix);
+ dexit (1);
+ }
+ nsuffixes = prefix->last_suffix - prefix->first_suffix + 1;
+ opcode = prefix->first_code;
+ for (j=0; j < nsuffixes; j++, opcode++)
+ {
+ isuffix = prefix->first_suffix + j;
+ if (0 <= code && code <= 127) /* SETCHAR */
+ {
+ /* SETCHAR's suffix is written in uppercase hexadecimal */
+ sprintf (suffix, "%02X", isuffix);
+ }
+ else /* 128 <= code && code <= 255 */ /* other DTL commands */
+ {
+ /* other commands' suffices are written in decimal */
+ sprintf (suffix, "%d", isuffix);
+ }
+ slen = strlen (suffix);
+ clen = plen + slen;
+ cmds[opcode] = (char *) gmalloc (clen+1);
+ strcpy (cmds[opcode], prefix->name);
+ strcat (cmds[opcode], suffix);
+ }
+ }
+ else /* command name = prefix */
+ {
+ plen = strlen (prefix->name);
+ clen = plen;
+ opcode = prefix->first_code;
+ cmds[opcode] = (char *) gmalloc (clen+1);
+ strcpy (cmds[opcode], prefix->name);
+ }
+ }
+
+ return 1; /* OK */
+}
+/* cons_cmds */
+
+
+Void
+free_cmds
+#ifdef STDC
+ (CmdTable cmd_table)
+#else
+ (cmd_table)
+ CmdTable cmd_table;
+#endif
+{
+ int i;
+ for (i=0; i < NCMDS; i++)
+ gfree (cmd_table[i]);
+}
+/* free_cmds */
+
+
+int
+get_line
+#ifdef STDC
+ (FILE * fp, Line * line, int max)
+#else
+ (fp, line, max)
+ FILE * fp;
+ Line * line;
+ int max;
+#endif
+/* read a (Line *) line from fp, return length */
+/* adapted from K&R (second, alias ANSI C, edition, 1988), page 165 */
+{
+ if (fgets (line->buf, max, fp) == NULL)
+ return 0;
+ else
+ {
+ ++ line->num;
+ line->wrote = strlen (line->buf);
+ line->read = 0;
+ return 1;
+ }
+}
+/* get_line */
+
+
+int
+read_line_char
+#ifdef STDC
+ (FILE * fp, int * ch)
+#else
+ (fp, ch)
+ FILE * fp;
+ int * ch;
+#endif
+/* read one character from dtl_line if possible, */
+/* otherwise read another dtl_line from fp */
+/* return 1 if a character is read, 0 if at end of fp file */
+{
+ extern Line dtl_line;
+ if (dtl_line.wrote == 0 || dtl_line.read >= dtl_line.wrote)
+ {
+ int line_status;
+ /* refill line buffer */
+ line_status = get_line (fp, &dtl_line, MAXLINE);
+ if (line_status == 0)
+ {
+ /* at end of DTL file */
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_line_char) : end of DTL file\n");
+ dinfo();
+ }
+ return 0;
+ }
+ else
+ {
+ /* new DTL line was read */
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_line_char) : new DTL input line:\n");
+ fprintf (stderr, "\"%s\"\n", dtl_line.buf);
+ }
+ }
+ }
+ *ch = dtl_line.buf [dtl_line.read ++];
+ ++ dtl_read;
+ ++ com_read; /* count another DTL command character */
+ return 1;
+}
+/* read_line_char */
+
+
+int
+read_char
+#ifdef STDC
+ (FILE * fp, int * ch)
+#else
+ (fp, ch)
+ FILE * fp;
+ int * ch;
+#endif
+/* Read next character, if any, from file fp. */
+/* Write it into *ch. */
+/* If no character is read, then *ch value < 0. */
+/* Return 1 if OK, 0 if EOF or error. */
+{
+ int status = 1;
+ int c; /* in case ch points awry, we still have something in c. */
+
+ c = EOF;
+ if (read_line_char (fp, &c) == 0)
+ {
+ /* end of fp file, or error reading it */
+ status = 0;
+ }
+ else
+ {
+ if (c > 255)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(read_char) : character %d not in range 0 to 255\n",
+ c);
+ dinfo();
+ status = 0;
+ }
+ else if ( ! isprint (c) && ! isspace (c))
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(read_char) : character %d %s.\n",
+ c,
+ "not printable and not white space");
+ dinfo();
+ status = 0;
+ }
+ }
+ *ch = c;
+
+ return status;
+}
+/* read_char */
+
+
+COUNT
+read_variety
+#ifdef STDC
+ (FILE * dtl)
+#else
+ (dtl)
+ FILE * dtl;
+#endif
+/* read and check DTL variety signature */
+/* return number of DTL bytes written */
+/* DTL variety is _NEVER_ grouped by BCOM and ECOM. */
+/* Uniformity here enables the program easily to modify its behavior. */
+{
+ COUNT vread = 0; /* number of DTL bytes read by read_variety */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ static Token token = "";
+
+ /* read the DTL VARIETY keyword */
+ nread = read_token (dtl, token);
+ vread += nread;
+ /* test whether signature begins correctly */
+ if (strcmp (token, "variety") != 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_variety) : DTL FILE ERROR (%s) : ", dtl_filename);
+ fprintf (stderr, "DTL signature must begin with \"%s\", not \"%s\".\n",
+ "variety", token);
+ dexit (1);
+ }
+
+ /* read the DTL variety */
+ nread = read_token (dtl, token);
+ vread += nread;
+ /* test whether variety is correct */
+ if (strcmp (token, VARIETY) != 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_variety) : DTL FILE ERROR (%s) : ", dtl_filename);
+ fprintf (stderr, "DTL variety must be \"%s\", not \"%s\".\n",
+ VARIETY, token);
+ dexit (1);
+ }
+
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_variety) : DTL variety %s is OK.\n", VARIETY);
+
+ return vread; /* OK */
+}
+/* read_variety */
+
+
+COUNT
+skip_space
+#ifdef STDC
+ (FILE * fp, int * ch)
+#else
+ (fp, ch)
+ FILE * fp;
+ int * ch;
+#endif
+/* Skip whitespace characters in file fp. */
+/* Write in *ch the last character read from fp, */
+/* or < 0 if fp could not be read. */
+/* Return number of characters read from fp. */
+{
+ int c; /* character read (if any) */
+ COUNT count; /* number (0 or more) of whitespace characters read */
+ int nchar; /* number (0 or 1) of characters read by read_char */
+
+ /* loop ends at: end of fp file, or reading error, or not a white space */
+ for (count=0; ((nchar = read_char (fp, &c)) == 1 && isspace (c)); ++count)
+ {
+ /* otherwise, more white spaces to skip */
+ if (debug)
+ {
+ /* report when each DTL end of line is reached */
+ if (c == '\n')
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(skip_space) : ");
+ fprintf (stderr, "end of DTL line (at least) ");
+ fprintf (stderr, WF, dtl_line.num);
+ fprintf (stderr, "\n");
+ }
+ }
+ }
+
+ if (nchar == 0)
+ {
+ c = -1;
+ }
+
+ *ch = c; /* c will be < 0 if read_char could not read fp */
+ return (count + nchar);
+}
+/* skip_space */
+
+
+COUNT
+read_token
+#ifdef STDC
+ (FILE * dtl, char * token)
+#else
+ (dtl, token)
+ FILE * dtl;
+ char * token;
+#endif
+/* read next token from dtl file. */
+/* return number of DTL bytes read. */
+/* A token is one of:
+ a string from BMES_CHAR to the next unescaped EMES_CHAR, inclusive;
+ BCOM or ECOM, unless these are empty strings;
+ BSEQ or ESEQ;
+ any other sequence of non-whitespace characters.
+*/
+{
+ COUNT nread; /* number of DTL bytes read by read_token */
+ int ch; /* most recent character read */
+
+ nread = 0;
+
+ /* obtain first non-space character */
+ /* add to nread the number of characters read from dtl by skip_space */
+ nread += skip_space (dtl, &ch);
+
+ if (ch < 0)
+ {
+ /* end of dtl file */
+ /* write an empty token */
+ strcpy (token, "");
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_token) : end of dtl file.\n");
+ }
+ }
+ else if (group && ch == BCOM_CHAR)
+ {
+ strcpy (token, BCOM);
+ }
+ else if (group && ch == ECOM_CHAR)
+ {
+ strcpy (token, ECOM);
+ }
+ else
+ {
+ token[0] = ch;
+ token[1] = '\0';
+ if (ch == BMES_CHAR) /* string token; read until unescaped EMES_CHAR */
+ {
+ nread += read_mes (dtl, token+1);
+ }
+ else if (ch == BSEQ_CHAR || ch == ESEQ_CHAR)
+ {
+ /* token is complete */
+ }
+ else /* any other string not containing (ECOM_CHAR or) whitespace */
+ {
+ nread += read_misc (dtl, token+1);
+ }
+ }
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(read_token) : token = \"%s\"\n", token);
+ }
+
+ return (nread); /* number of bytes read from dtl file */
+}
+/* read_token */
+
+
+#define CHAR_OK 1
+#define CHAR_FAIL 0
+#define CHAR_EOS (-1)
+
+int
+read_string_char
+#ifdef STDC
+ (FILE * fp, int * ch)
+#else
+ (fp, ch)
+ FILE * fp;
+ int * ch;
+#endif
+{
+ int status = CHAR_OK; /* OK so far */
+ int c;
+
+ if (read_char (fp, &c) == 0)
+ status = CHAR_FAIL; /* fail */
+
+ if (c == EMES_CHAR) /* end-of-string char */
+ {
+ status = CHAR_EOS; /* end of string */
+ }
+ else if (c == ESC_CHAR) /* escape character */
+ {
+ /* accept the next character literally, even ESC_CHAR and EMES_CHAR */
+ if (read_char (fp, &c) == 0)
+ status = CHAR_FAIL; /* fail */
+ }
+
+ *ch = c;
+ return status;
+}
+/* read_string_char */
+
+
+COUNT
+read_misc
+#ifdef STDC
+ (FILE * fp, Token token)
+#else
+ (fp, token)
+ FILE * fp;
+ Token token;
+#endif
+{
+ int c;
+ int count;
+ /* loop ends at: end of fp file, or reading error, or a space */
+ for (count=0; count <= MAXTOKLEN; ++count)
+ {
+ if (read_char (fp, &c) == 0 || isspace (c))
+ break;
+ if (group && c == ECOM_CHAR)
+ {
+ (Void) unread_char ();
+ break;
+ }
+
+ token[count] = c;
+ }
+ token[count] = '\0';
+ return count;
+}
+/* read_misc */
+
+
+COUNT
+read_mes
+#ifdef STDC
+ (FILE * fp, char * token)
+#else
+ (fp, token)
+ FILE * fp;
+ char * token;
+#endif
+/* called **AFTER** a BMES_CHAR has been read */
+/* read file fp for characters up to next unescaped EMES_CHAR */
+/* this is called a "string token" */
+/* write string, including EMES_CHAR, into token[] */
+/* return number of characters read from fp */
+{
+ COUNT dtl_count; /* number of DTL characters read by read_mes from fp */
+ int more; /* flag more == 0 to terminate loop */
+ int escape; /* flag escape == 1 if previous character was ESC_CHAR */
+ int ch; /* current DTL character */
+
+ escape = 0;
+ more = 1;
+ dtl_count = 0;
+ while (more)
+ {
+ if (read_char (fp, &ch) == 0)
+ {
+ /* end of fp file, or reading error */
+ more = 0;
+ }
+ else /* error checking passed */
+ {
+ ++ dtl_count;
+ if (ch == EMES_CHAR && escape == 0) /* end of string */
+ {
+ /* include final EMES_CHAR */
+ * token ++ = ch;
+ more = 0;
+ }
+ else if (ch == ESC_CHAR && escape == 0)
+ {
+ /* next character is not end of string */
+ escape = 1;
+ }
+ else
+ {
+ /* store any other character, */
+ /* including escaped EMES_CHAR and ESC_CHAR*/
+ * token ++ = ch;
+ escape = 0;
+ }
+ }
+ }
+ * token = '\0';
+ return dtl_count;
+}
+/* read_mes */
+
+
+int
+unread_char (VOID)
+/* wind input back, to allow rereading of one character */
+/* return 1 if this works, 0 on error */
+{
+ extern Line dtl_line;
+ int status;
+ if (dtl_line.read > 0)
+ {
+ -- dtl_line.read; /* back up one character in dtl_line */
+ -- dtl_read; /* correct the count of DTL characters */
+ -- com_read; /* count another DTL command character */
+ status = 1; /* OK */
+ }
+ else /* current DTL line is empty */
+ {
+ status = 0; /* error */
+ }
+ return status;
+}
+/* unread_char */
+
+
+int
+find_command
+#ifdef STDC
+ (char * command, int * opcode)
+#else
+ (command, opcode)
+ char * command;
+ int * opcode;
+#endif
+{
+ int found;
+ int i;
+
+ found = 0;
+ for (i=0; i < NCMDS; i++)
+ {
+ if ((cmd_table[i] != 0) && (strcmp (command, cmd_table[i]) == 0))
+ {
+ found = 1;
+ break;
+ }
+ }
+
+ *opcode = i;
+
+ return found;
+}
+/* find_command */
+
+
+int
+check_byte
+#ifdef STDC
+ (int byte)
+#else
+ (byte)
+ int byte;
+#endif
+{
+ if (byte < 0 || byte > 255)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(check_byte) : INTERNAL ERROR : ");
+ fprintf (stderr, "byte %d not in the range of 0 to 255.\n", byte);
+ dexit (1);
+ }
+ return 1; /* OK */
+}
+/* check_byte */
+
+
+int
+xfer_args
+#ifdef STDC
+ (FILE * dtl, FILE * dvi, int opcode)
+#else
+ (dtl, dvi, opcode)
+ FILE * dtl;
+ FILE * dvi;
+ int opcode;
+#endif
+{
+ int n;
+
+ if (opcode >= 0 && opcode <= 127)
+ ; /* SETCHAR uses no data */
+ else if (opcode >= 128 && opcode <= 170)
+ {
+ word_t this_bop_address = last_bop_address;
+
+ if (opcode == 139) /* BOP */
+ {
+ this_bop_address = dvi_written - 1;
+ }
+ put_table (op_128_170, opcode, dtl, dvi);
+ if (opcode == 139) /* BOP */
+ {
+ xfer_bop_address (dtl, dvi);
+ last_bop_address = this_bop_address;
+ }
+ }
+ else if (opcode >= 171 && opcode <= 234)
+ ; /* FONTNUM uses no data */
+ else if (opcode >= 235 && opcode <= 238)
+ put_table (fnt, opcode, dtl, dvi);
+ else if (opcode >= 239 && opcode <= 242)
+ {
+ n = opcode - 238;
+ special (dtl, dvi, n);
+ }
+ else if (opcode >= 243 && opcode <= 246)
+ {
+ n = opcode - 242;
+ fontdef (dtl, dvi, n);
+ }
+ else if (opcode == 247)
+ preamble (dtl, dvi);
+ else if (opcode == 248)
+ postamble (dtl, dvi);
+ else if (opcode == 249)
+ post_post (dtl, dvi);
+ else if (opcode >= 250 && opcode <= 255)
+ ; /* these, undefined, opcodes use no data */
+ else
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(xfer_args) : opcode %d not handled.\n",
+ opcode);
+ }
+
+ return 1; /* OK */
+}
+/* xfer_args */
+
+
+int
+set_seq
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* Called _after_ a BSEQ_CHAR command */
+/* Read bytes from dtl file, */
+/* writing corresponding SETCHAR or SET1 commands to DVI file, */
+/* _until_ unescaped ESEQ_CHAR is found */
+/* Return 1 if OK, 0 on error */
+/**** dt2dv assumes 8 bit characters, ****/
+/**** but some day one might change that. ****/
+{
+ int status = 1; /* status = 1 if OK, 0 if error */
+ int more; /* sequence of font characters continuing? */
+ int escape = 0; /* flag set if previous character was an escape */
+ int ch; /* character read from DTL file */
+ more = 1;
+ while (more)
+ {
+ /* ignore read_char status, to allow unprintable characters */
+ (Void) read_char (dtl, &ch);
+ /* but check for end of dtl file, or serious file reading error */
+ if (ch < 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(set_seq) : ");
+ fprintf (stderr, "end of dtl file, ");
+ fprintf (stderr, "or serious dtl file reading error\n");
+ dinfo();
+ more = 0;
+ status = 0; /* bad news */
+ }
+ else /* read dtl file, okay */
+ {
+ if (ch == ESC_CHAR && escape == 0) /* escape next character */
+ {
+ escape = 1;
+ }
+ else
+ {
+ if (ch == ESEQ_CHAR && escape == 0) /* end of sequence */
+ {
+ more = 0;
+ }
+ else if (ch <= 127) /* can use SETCHAR */
+ {
+ put_byte (ch, dvi);
+ }
+ else if (ch <= 255) /* can use SET1 */
+ {
+ put_byte (128, dvi); /* SET1 opcode */
+ put_unsigned (1, (U4) ch, dvi);
+ }
+ else
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(set_seq) : ");
+ fprintf (stderr,
+ "ERROR : DTL character %d is not in range 0 to 255\n",
+ ch);
+ dexit (1);
+ more = 0;
+ status = 0; /* Error, because dt2dv assumes 8 bit characters */
+ }
+ escape = 0; /* current ch is not an escape character */
+ }
+ }
+ }
+ return status;
+}
+/* set_seq */
+
+
+U4
+xfer_hex
+#ifdef STDC
+ (int n, FILE * dtl, FILE * dvi)
+#else
+ (n, dtl, dvi)
+ int n;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate unsigned n-byte hexadecimal number from dtl to dvi file. */
+/* return value of hexadecimal number */
+{
+ U4 unum = 0; /* at most this space needed */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of arguments converted by sscanf */
+ static Token token = ""; /* DTL token */
+
+ if (n < 1 || n > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(xfer_hex) : INTERNAL ERROR : asked for %d bytes. Must be 1 to 4.\n",
+ n);
+ dexit (1);
+ }
+
+ nread = read_token (dtl, token);
+
+ nconv = sscanf (token, XF4, &unum);
+
+ if (nconv < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_hex) : DTL FILE ERROR (%s) : %s \"%s\".\n",
+ dtl_filename, "hexadecimal number expected, not", token);
+ dexit (1);
+ }
+
+ put_unsigned (n, unum, dvi);
+
+ return unum;
+}
+/* xfer_hex */
+
+
+U4
+xfer_oct
+#ifdef STDC
+ (int n, FILE * dtl, FILE * dvi)
+#else
+ (n, dtl, dvi)
+ int n;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate unsigned n-byte octal number from dtl to dvi file. */
+/* return value of octal number */
+{
+ U4 unum = 0; /* at most this space needed */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of arguments converted by sscanf */
+ static Token token = ""; /* DTL token */
+
+ if (n < 1 || n > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(xfer_oct) : INTERNAL ERROR : asked for %d bytes. Must be 1 to 4.\n",
+ n);
+ dexit (1);
+ }
+
+ nread = read_token (dtl, token);
+
+ nconv = sscanf (token, OF4, &unum);
+
+ if (nconv < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_oct) : DTL FILE ERROR (%s) : %s \"%s\".\n",
+ dtl_filename, "octal number expected, not", token);
+ dexit (1);
+ }
+
+ put_unsigned (n, unum, dvi);
+
+ return unum;
+}
+/* xfer_oct */
+
+
+U4
+xfer_unsigned
+#ifdef STDC
+ (int n, FILE * dtl, FILE * dvi)
+#else
+ (n, dtl, dvi)
+ int n;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate unsigned n-byte number from dtl to dvi file. */
+/* return value of unsigned number */
+{
+ U4 unum = 0; /* at most this space needed */
+
+ unum = get_unsigned (dtl);
+ put_unsigned (n, unum, dvi);
+
+ return unum;
+}
+/* xfer_unsigned */
+
+
+S4
+xfer_signed
+#ifdef STDC
+ (int n, FILE * dtl, FILE * dvi)
+#else
+ (n, dtl, dvi)
+ int n;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate signed n-byte number from dtl to dvi file. */
+/* return value of signed number */
+{
+ S4 snum = 0;
+
+ snum = get_signed (dtl);
+ put_signed (n, snum, dvi);
+
+ return snum;
+}
+/* xfer_signed */
+
+
+U4
+get_unsigned
+#ifdef STDC
+ (FILE * dtl)
+#else
+ (dtl)
+ FILE * dtl;
+#endif
+/* read unsigned number from dtl file. */
+/* return value of unsigned number */
+{
+ U4 unum = 0; /* at most this space needed */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of arguments converted by sscanf */
+ static Token token = ""; /* DTL token */
+
+ nread = read_token (dtl, token);
+
+ nconv = sscanf (token, UF4, &unum);
+
+ if (nconv < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_unsigned) : DTL FILE ERROR (%s) : %s \"%s\".\n",
+ dtl_filename, "unsigned number expected, not", token);
+ dexit (1);
+ }
+
+ return unum;
+}
+/* get_unsigned */
+
+
+S4
+get_signed
+#ifdef STDC
+ (FILE * dtl)
+#else
+ (dtl)
+ FILE * dtl;
+#endif
+/* read signed number from dtl file. */
+/* return value of signed number */
+{
+ S4 snum = 0;
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of sscanf arguments converted and assigned */
+ static Token token = "";
+
+ nread = read_token (dtl, token);
+
+ nconv = sscanf (token, SF4, &snum);
+
+ if (nconv < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_signed) : DTL FILE ERROR (%s) : %s \"%s\".\n",
+ dtl_filename, "signed number expected, not", token);
+ dexit (1);
+ }
+
+ return snum;
+}
+/* get_signed */
+
+
+int
+put_unsigned
+#ifdef STDC
+ (int n, U4 unum, FILE * dvi)
+#else
+ (n, unum, dvi)
+ int n;
+ U4 unum;
+ FILE * dvi;
+#endif
+/* put unsigned in-byte integer to dvi file */
+/* DVI format uses Big-endian storage of numbers: */
+/* most significant byte is first. */
+/* return number of bytes written. */
+{
+ Byte ubyte[4]; /* at most 4 bytes needed in DVI format */
+ int i;
+
+ if (n < 1 || n > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_unsigned) : INTERNAL ERROR : asked for %d bytes. Must be 1 to 4.\n",
+ n);
+ dexit (1);
+ }
+
+ /* Big-endian storage. */
+ for (i = 0; i < n; i++)
+ {
+ ubyte[i] = (Byte) (unum % 256);
+ unum /= 256;
+ }
+ /* Reverse order for big-endian representation. */
+ for (i = n-1; i >= 0; i--)
+ {
+ put_byte ((int) ubyte[i], dvi);
+ }
+
+ return n;
+}
+/* put_unsigned */
+
+
+int
+put_signed
+#ifdef STDC
+ (int n, S4 snum, FILE * dvi)
+#else
+ (n, snum, dvi)
+ int n;
+ S4 snum;
+ FILE * dvi;
+#endif
+/* put signed in-byte integer to dvi file */
+/* DVI format uses 2's complement Big-endian storage of signed numbers: */
+/* most significant byte is first. */
+/* return number of bytes written. */
+{
+ /* Will this deal properly with the sign? */
+
+ if (n < 1 || n > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_signed) : INTERNAL ERROR : asked for %d bytes. Must be 1 to 4.\n",
+ n);
+ dexit (1);
+ }
+
+ /* How do we ensure 2's complement representation? */
+ /* Here's a trick that I hope is portable, given ANSI C. */
+ /* See K&R (2nd edition), Appendix A6.2 "Integral Conversions". */
+
+ /* Convert snum to U4 data type */
+ put_unsigned (n, (U4) snum, dvi);
+
+ return n;
+}
+/* put_signed */
+
+
+int
+check_bmes
+#ifdef STDC
+ (FILE * dtl)
+#else
+ (dtl)
+ FILE * dtl;
+#endif
+/* check that a BMES_CHAR is the next non-whitespace character in dtl */
+{
+ int ch; /* next non-whitespace character in dtl */
+
+ /* `(Void)' because we ignore the number of spaces skipped */
+ (Void) skip_space (dtl, &ch);
+
+ if (ch < 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(check_bmes) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "end of dtl file, or reading error\n");
+ dexit (1);
+ }
+
+ if (ch != BMES_CHAR)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(check_bmes) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "BMES_CHAR (`%c') %s, not `%c' (char %d).\n",
+ BMES_CHAR, "expected before string", ch, ch);
+ dexit (1);
+ }
+
+ return 1; /* OK */
+}
+/* check_bmes */
+
+
+int
+check_emes
+#ifdef STDC
+ (FILE * dtl)
+#else
+ (dtl)
+ FILE * dtl;
+#endif
+/* check that an EMES_CHAR is the next character in dtl */
+{
+ int ch; /* dtl character */
+
+ if (read_char (dtl, &ch) == 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(check_emes) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "end of dtl file, or reading error\n");
+ dexit (1);
+ }
+
+ if (ch != EMES_CHAR)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(check_emes) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "EMES_CHAR (`%c') %s, not `%c' (char %d).\n",
+ EMES_CHAR, "expected to follow string", ch, ch);
+ dexit (1);
+ }
+
+ return 1; /* OK */
+}
+/* check_emes */
+
+
+/* Size typically used in this program for Lstring variables */
+#define LSIZE 1024
+
+
+Void
+init_Lstring
+#ifdef STDC
+ (Lstring * lsp, long int n)
+#else
+ (lsp, n)
+ Lstring * lsp;
+ long int n;
+#endif
+{
+ lsp->l = 0;
+ lsp->m = n;
+ lsp->s = (char *) gmalloc (n);
+}
+/* init_Lstring */
+
+
+Void
+de_init_Lstring
+#ifdef STDC
+ (Lstring * lsp)
+#else
+ (lsp)
+ Lstring * lsp;
+#endif
+{
+ lsp->l = 0;
+ lsp->m = 0;
+ free (lsp->s);
+ lsp->s = NULL; /* to be sure */
+}
+/* de_init_Lstring */
+
+
+Lstring *
+alloc_Lstring
+#ifdef STDC
+ (long int n)
+#else
+ (n)
+ long int n;
+#endif
+{
+ Lstring * lsp;
+ lsp = (Lstring *) gmalloc (sizeof (Lstring));
+ init_Lstring (lsp, n);
+ return (lsp);
+}
+/* alloc_Lstring */
+
+
+Void
+free_Lstring
+#ifdef STDC
+ (Lstring * lstr)
+#else
+ (lstr)
+ Lstring * lstr;
+#endif
+{
+ free (lstr->s);
+ free (lstr);
+}
+/* free_Lstring */
+
+
+Void
+ls_putb
+#ifdef STDC
+ (int ch, Lstring * lstr)
+#else
+ (ch, lstr)
+ int ch;
+ Lstring * lstr;
+#endif
+/* write byte ch into Lstring *lstr */
+{
+ if (lstr->l >= lstr->m)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(ls_putb) : ERROR : No more room in Lstring.\n");
+ dexit (1);
+ }
+ else
+ {
+ lstr->s [(lstr->l)++] = ch;
+ }
+}
+/* ls_putb */
+
+
+long int
+get_Lstring
+#ifdef STDC
+ (FILE * dtl, Lstring * lstr)
+#else
+ (dtl, lstr)
+ FILE * dtl;
+ Lstring * lstr;
+#endif
+/* get a string from dtl file, store as an Lstring in *lstr. */
+/* lstr must already be allocated and initialised. */
+/* return length of Lstring *lstr */
+{
+ U4 nch;
+ int char_status = CHAR_OK; /* OK so far */
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_Lstring) : entering get_Lstring.\n");
+ }
+
+ check_bmes (dtl);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(get_Lstring) : string is: \"");
+ }
+
+ for (nch=0; ; nch++)
+ {
+ int ch;
+
+ char_status = read_string_char (dtl, &ch);
+
+ if (char_status == CHAR_FAIL)
+ {
+ /* end of dtl file, or reading error */
+ fprintf (stderr, "\n");
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_Lstring) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "cannot read string[");
+ fprintf (stderr, UF4, nch);
+ fprintf (stderr, "] from dtl file.\n");
+ dexit (1);
+ }
+
+ if (debug)
+ {
+ fprintf (stderr, "%c", ch);
+ }
+
+ if (char_status == CHAR_EOS)
+ {
+ if (ch != EMES_CHAR)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_Lstring) : INTERNAL ERROR : ");
+ fprintf (stderr, "char_status = CHAR_FAIL,\n");
+ fprintf (stderr,
+ "but ch = %c (char %d) is not EMES_CHAR = %c (char %d)\n",
+ ch, ch, EMES_CHAR, EMES_CHAR);
+ dexit (1);
+ }
+ (Void) unread_char ();
+ break; /* end of string */
+ }
+ else if (char_status == CHAR_OK)
+ {
+ ls_putb (ch, lstr);
+ }
+ else
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_Lstring) : INTERNAL ERROR : ");
+ fprintf (stderr, "char_status = %d is unfamiliar!\n", char_status);
+ dexit (1);
+ }
+ }
+ /* end for */
+
+ if (debug)
+ {
+ fprintf (stderr, "\".\n");
+ }
+
+ check_emes (dtl);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(get_Lstring) : leaving get_Lstring.\n");
+ }
+
+ return (lstr->l);
+}
+/* get_Lstring */
+
+
+Void
+put_Lstring
+#ifdef STDC
+ (const Lstring * lstr, FILE * dvi)
+#else
+ (str, dvi)
+ Lstring lstr;
+ FILE * dvi;
+#endif
+{
+ size_t fwret;
+ fwret = fwrite ((lstr->s), sizeof (char), (size_t) (lstr->l), dvi);
+
+ dvi_written += fwret;
+
+ if (fwret < lstr->l)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_Lstring) : DVI File ERROR : not all bytes written ");
+ fprintf (stderr, "(%ld of %ld).\n",
+ (long int) fwret, (long int) (lstr->l));
+ dexit (1);
+ }
+}
+/* put_Lstring */
+
+
+U4
+xfer_len_string
+#ifdef STDC
+ (int n, FILE * dtl, FILE * dvi)
+#else
+ (n, dtl, dvi)
+ int n;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* transfer (length and) quoted string from dtl to dvi file, */
+/* return number of bytes written to dvi file. */
+{
+ U4 k, k2;
+ Lstring lstr;
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_len_string) : entering xfer_len_string.\n");
+ }
+
+ init_Lstring (&lstr, LSIZE);
+
+ /* k[n] : length of special string */
+
+ k = get_unsigned (dtl);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_len_string) : string's nominal length k = ");
+ fprintf (stderr, UF4, k);
+ fprintf (stderr, " characters.\n");
+ }
+
+ k2 = get_Lstring (dtl, &lstr);
+
+ if (k2 != k)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_len_string) : WARNING : string length (");
+ fprintf (stderr, UF4, k);
+ fprintf (stderr, ") in DTL file is wrong\n");
+ fprintf (stderr, "Writing correct value (");
+ fprintf (stderr, UF4, k2);
+ fprintf (stderr, ") to DVI file\n");
+ }
+
+ put_unsigned (n, k2, dvi);
+
+ put_Lstring (&lstr, dvi);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_len_string) : leaving xfer_len_string.\n");
+ }
+
+ de_init_Lstring (&lstr);
+
+ return (n + k2);
+}
+/* xfer_len_string */
+
+
+S4
+xfer_bop_address
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate signed 4-byte bop address from dtl to dvi file. */
+/* return value of bop address written to DVI file */
+{
+ S4 snum = 0; /* at most this space needed for byte address */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of arguments converted by sscanf */
+ static Token token = ""; /* DTL token */
+
+ nread += read_token (dtl, token);
+
+ nconv = sscanf (token, SF4, &snum);
+
+ if (nconv != 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_bop_address) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "signed number expected, not \"%s\".\n", token);
+ dexit (1);
+ }
+
+ if (snum != last_bop_address)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_bop_address) : WARNING : byte address (");
+ fprintf (stderr, WF, snum);
+ fprintf (stderr, ")\n");
+ fprintf (stderr, "for previous bop in DTL file is wrong\n");
+ fprintf (stderr, "Writing correct value (");
+ fprintf (stderr, WF, last_bop_address);
+ fprintf (stderr, ") to DVI file\n");
+ }
+
+ put_signed (4, last_bop_address, dvi);
+
+ return last_bop_address;
+}
+/* xfer_bop_address */
+
+
+S4
+xfer_postamble_address
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* translate signed 4-byte postamble address from dtl to dvi file. */
+/* return value of postamble address written to DVI file */
+{
+ S4 snum = 0; /* at most this space needed for byte address */
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ int nconv = 0; /* number of arguments converted by sscanf */
+ static Token token = ""; /* DTL token */
+
+ nread += read_token (dtl, token);
+
+ nconv = sscanf (token, SF4, &snum);
+
+ if (nconv != 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_postamble_address) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "signed number expected, not \"%s\".\n", token);
+ dexit (1);
+ }
+
+ if (snum != postamble_address)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(xfer_postamble_address) : WARNING : byte address (");
+ fprintf (stderr, WF, snum);
+ fprintf (stderr, ")\n");
+ fprintf (stderr, "for postamble in DTL file is wrong\n");
+ fprintf (stderr, "Writing correct value (");
+ fprintf (stderr, WF, postamble_address);
+ fprintf (stderr, ") to DVI file\n");
+ }
+
+ put_signed (4, postamble_address, dvi);
+
+ return postamble_address;
+}
+/* xfer_postamble_address */
+
+
+int
+put_table
+#ifdef STDC
+ (op_table table, int opcode, FILE * dtl, FILE * dvi)
+#else
+ (table, opcode, dtl, dvi)
+ op_table table;
+ int opcode;
+ FILE * dtl;
+ FILE * dvi;
+#endif
+{
+ /* table: {char * name; int first, last; op_info * list; }; */
+ /* op_info: {int code; char * name; int nargs; char * args; }; */
+
+ op_info op; /* entry in table */
+ int i;
+ int pos; /* current position in string being scanned */
+ static String args = "";
+
+ /* Defensive programming. */
+ if (opcode < table.first || opcode > table.last)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_table) : DTL FILE (OR INTERNAL) ERROR : opcode %d ", opcode);
+ fprintf (stderr, "is outside table %s [ %d to %d ] !\n",
+ table.name, table.first, table.last);
+ dexit (1);
+ }
+
+ op = table.list [ opcode - table.first ];
+
+ /* More defensive programming. */
+ if (opcode != op.code)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_table) : INTERNAL ERROR : opcode %d for command \"%s\"",
+ opcode, op.name);
+ fprintf (stderr, " faulty in table \"%s\".\n", table.name);
+ dexit (1);
+ }
+
+ /* process all the arguments, according to size and sign */
+
+ strncpy (args, op.args, MAXSTRLEN);
+
+ pos = 0;
+ for (i=0; i < op.nargs; i++)
+ {
+ int argtype = 0;
+ int nscan = 0; /* number of bytes read by sscanf */
+ int nconv = 0; /* number of sscanf arguments converted & assigned */
+
+ /* sscanf() does NOT advance over its input: */
+ /* C strings lack internal state information, which C files have. */
+ /* On Sun/OS, sscanf calls ungetc on the string it reads, */
+ /* which therefore has to be writable. */
+
+ nconv = sscanf (args + pos, "%d%n", &argtype, &nscan);
+
+ if (nconv < 1 || nscan < 1)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr,
+ "(put_table) : INTERNAL ERROR : internal read of table %s failed!\n",
+ table.name);
+ dexit (1);
+ }
+
+ pos += nscan;
+
+ if (argtype < 0)
+ xfer_signed (-argtype, dtl, dvi);
+ else
+ xfer_unsigned (argtype, dtl, dvi);
+ }
+ /* end for */
+
+ return 1; /* OK */
+}
+/* put_table */
+
+
+/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
+
+
+U4
+special
+#ifdef STDC
+ (FILE * dtl, FILE * dvi, int n)
+#else
+ (dtl, dvi, n)
+ FILE * dtl;
+ FILE * dvi;
+ int n;
+#endif
+/* read special (1 <= n <= 4 byte) data from dtl, and write in dvi */
+/* return number of bytes written */
+{
+ U4 nk;
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(special) : entering special.\n");
+ }
+
+ if (n < 1 || n > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(special) : DTL FILE ERROR (%s) : special %d, ",
+ dtl_filename, n);
+ fprintf (stderr, "range is 1 to 4.\n");
+ dexit (1);
+ }
+
+ /* k[n] : length of special string */
+ /* x[k] : special string */
+ /* nk = n + k */
+ nk = xfer_len_string (n, dtl, dvi);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(special) : leaving special.\n");
+ }
+
+ return (nk);
+}
+/* special */
+
+
+int
+fontdef
+#ifdef STDC
+ (FILE * dtl, FILE * dvi, int suffix)
+#else
+ (dtl, dvi, suffix)
+ FILE * dtl;
+ FILE * dvi;
+ int suffix;
+#endif
+/* read fontdef fnt_def1 .. fnt_def4 from dtl, and write in dvi */
+/* suffix is the fontdef suffix : 1 to 4 */
+/* return number of bytes written */
+{
+ U4 a, l, a2, l2;
+ U4 k;
+ Lstring lstr1, lstr2;
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : entering fontdef.\n");
+ }
+
+ if (suffix < 1 || suffix > 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "font def %d, but range is 1 to 4.\n", suffix);
+ dexit (1);
+ }
+
+ init_Lstring (&lstr1, LSIZE);
+ init_Lstring (&lstr2, LSIZE);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : about to read font number.\n");
+ }
+
+ /* k[suffix] : font number */
+ if (suffix == 4)
+ k = xfer_signed (suffix, dtl, dvi);
+ else
+ k = xfer_unsigned (suffix, dtl, dvi);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : font ");
+ fprintf (stderr, UF4, k);
+ fprintf (stderr, ".\n");
+ }
+
+#ifdef HEX_CHECKSUM
+ /* c[4] : (hexadecimal) checksum : I (gt) would prefer this */
+ xfer_hex (4, dtl, dvi);
+#else /* NOT HEX_CHECKSUM */
+ /* c[4] : checksum (octal, for comparison with tftopl's .pl file) */
+ xfer_oct (4, dtl, dvi);
+#endif
+
+ /* s[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* d[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* If DTL file's edited, a and l may be wrong. */
+
+ /* a[1] : length of font `area' (directory) portion of pathname string */
+ a = get_unsigned (dtl);
+
+ /* l[1] : length of font portion of pathname string */
+ l = get_unsigned (dtl);
+
+ /* n[a+l] : font pathname string <= area + font */
+
+ a2 = get_Lstring (dtl, &lstr1);
+
+ if (a2 != a)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : WARNING : font area string's length (");
+ fprintf (stderr, UF4, a);
+ fprintf (stderr, ") in DTL file is wrong\n");
+ fprintf (stderr, "Writing correct value (");
+ fprintf (stderr, UF4, a2);
+ fprintf (stderr, ") to DVI file\n");
+ }
+
+ put_unsigned (1, a2, dvi);
+
+ l2 = get_Lstring (dtl, &lstr2);
+
+ if (l2 != l)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : WARNING : font string's length (");
+ fprintf (stderr, UF4, l);
+ fprintf (stderr, ") in DTL file is wrong\n");
+ fprintf (stderr, "Writing correct value (");
+ fprintf (stderr, UF4, l2);
+ fprintf (stderr, ") to DVI file\n");
+ }
+
+ put_unsigned (1, l2, dvi);
+
+ put_Lstring (&lstr1, dvi);
+ put_Lstring (&lstr2, dvi);
+
+ de_init_Lstring (&lstr2);
+ de_init_Lstring (&lstr1);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(fontdef) : leaving fontdef.\n");
+ }
+
+ return (suffix + 4*4 + 2*1 + a2 + l2);
+}
+/* fontdef */
+
+
+U4
+preamble
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* read preamble from dtl, and write in dvi */
+/* return number of bytes written */
+{
+ U4 k1;
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(preamble) : entering preamble.\n");
+ }
+
+ /* i[1] */
+ xfer_unsigned (1, dtl, dvi);
+
+ /* num[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* den[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* mag[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* k[1] : length of comment */
+ /* x[k] : comment string */
+ /* k1 = 1 + k */
+ k1 = xfer_len_string (1, dtl, dvi);
+
+ if (debug)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(preamble) : leaving preamble.\n");
+ }
+
+ return (1 + 3*4 + k1);
+}
+/* preamble */
+
+
+int
+postamble
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* read postamble from dtl, and write in dvi */
+/* return number of bytes written */
+{
+ postamble_address = dvi_written - 1;
+
+ /* p[4] : DVI address of previous bop command */
+ /* --- unsigned? --- or signed, as I assume? */
+ /* For, surely p should be -1 if the DVI file has NO bop? */
+ xfer_bop_address (dtl, dvi);
+
+ /* num[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* den[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* mag[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* l[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* u[4] */
+ xfer_unsigned (4, dtl, dvi);
+
+ /* s[2] */
+ xfer_unsigned (2, dtl, dvi);
+
+ /* t[2] */
+ xfer_unsigned (2, dtl, dvi);
+
+ return (6*4 + 2*2);
+}
+/* postamble */
+
+
+int
+post_post
+#ifdef STDC
+ (FILE * dtl, FILE * dvi)
+#else
+ (dtl, dvi)
+ FILE * dtl;
+ FILE * dvi;
+#endif
+/* read post_post from dtl, and write in dvi */
+/* return number of bytes written */
+{
+ /* hope I'm writing the "223" bytes in an 8-bit clean way */
+ int n223 = 0; /* number of "223" bytes in final padding */
+
+ /* q[4] : DVI address of post command */
+ /* --- unsigned? --- or signed, as I assume? */
+ /* what happens if there is NO postamble command? */
+ /* shouldn't q be -1 then? */
+
+ xfer_postamble_address (dtl, dvi);
+
+ /* i[1] : DVI identification byte = 2 */
+ xfer_unsigned (1, dtl, dvi);
+
+ for (n223 = 0; true; n223++)
+ {
+ COUNT nread = 0; /* number of DTL bytes read by read_token */
+ static Token token;
+
+ strcpy (token, "");
+
+ nread = read_token (dtl, token);
+
+ /* check whether end of dtl file */
+ if (nread == 0)
+ {
+ if (group)
+ {
+ /* dtl file shouldn't end before an ECOM */
+ PRINT_PROGNAME;
+ fprintf (stderr, "(post_post) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "premature end of DTL file!\n");
+ fprintf (stderr,
+ "%d complete iterations of \"padding byte\" loop;\n", n223);
+ fprintf (stderr, "troublesome token = \"%s\"\n", token);
+ dexit (1);
+ }
+ /* leave the "223" loop */
+ break;
+ }
+ else if (strcmp (token, "223") == 0)
+ {
+ /* token is a "223" padding byte */
+ /* loop again */
+ }
+ else
+ {
+ /* read a non-empty token that wasn't "223" */
+ (Void) unread_char ();
+ if (group)
+ {
+ if (strcmp (token, ECOM) == 0)
+ {
+ /* end of DTL's post_post command */
+ }
+ else
+ {
+ /* error : expected end of post_post */
+ PRINT_PROGNAME;
+ fprintf (stderr, "(post_post) : DTL FILE ERROR (%s) : ",
+ dtl_filename);
+ fprintf (stderr, "token \"%s\" should be ECOM (\"%s\")\n",
+ token, ECOM);
+ dexit (1);
+ }
+ }
+ /* leave the "223" loop */
+ break;
+ }
+ }
+ /* end for */
+
+ if (n223 < 4)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(post_post) : DTL FILE ERROR (%s) : \n",
+ dtl_filename);
+ fprintf (stderr, "fewer than four `223' padding bytes.\n");
+ fprintf (stderr, "Will write at least four `223' padding bytes.\n");
+ }
+
+ /* check whether the DVI file size is a multiple of 4 bytes */
+ if ((dvi_written + n223) % 4 != 0)
+ {
+ PRINT_PROGNAME;
+ fprintf (stderr, "(post_post) : WARNING : \n");
+ fprintf (stderr, "DVI size ");
+ fprintf (stderr, WF, dvi_written);
+ fprintf (stderr, " (bytes) wouldn't be a multiple of 4 !\n");
+ fprintf (stderr,
+ "Will write (at least four) `223' padding bytes until it is.\n");
+ }
+
+ /* final padding of DVI file by "223" bytes to a multiple of 4 bytes, */
+ /* with at least 4 bytes */
+
+ for (n223 = 0; (n223 < 4) || (dvi_written % 4 != 0); n223++)
+ {
+ /* add a "223" padding byte */
+ put_byte (223, dvi);
+ }
+
+ return (4 + 1 + n223);
+}
+/* post_post */
+
+
+/* end of dt2dv.c */
diff --git a/Build/source/texk/dtl/dt2dv.man b/Build/source/texk/dtl/dt2dv.man
new file mode 100644
index 00000000000..d3b4726d2b7
--- /dev/null
+++ b/Build/source/texk/dtl/dt2dv.man
@@ -0,0 +1,156 @@
+.\" ====================================================================
+.\" @Troff-man-file{
+.\" author = "Nelson H. F. Beebe and Geoffrey R. D. Tobin",
+.\" version = "0.6.0",
+.\" date = "08 March 1995",
+.\" time = "19:57:00 GMT +11",
+.\" filename = "dt2dv.man",
+.\" address = "Center for Scientific Computing
+.\" Department of Mathematics
+.\" University of Utah
+.\" Salt Lake City, UT 84112
+.\" USA",
+.\" telephone = "+1 801 581 5254",
+.\" FAX = "+1 801 581 4148",
+.\" checksum = "03708 156 634 4989",
+.\" email = "beebe@math.utah.edu (Internet)",
+.\" codetable = "ISO/ASCII",
+.\" keywords = "DVI, TeX",
+.\" supported = "no",
+.\" docstring = "This file contains the UNIX manual pages
+.\" for the dt2dv utility, a program for
+.\" converting a DTL text representation of a TeX
+.\" DVI file, usually produced by the companion
+.\" dv2dt utility, back to a binary DVI file.
+.\"
+.\" The checksum field above contains a CRC-16
+.\" checksum as the first value, followed by the
+.\" equivalent of the standard UNIX wc (word
+.\" count) utility output of lines, words, and
+.\" characters. This is produced by Robert
+.\" Solovay's checksum utility.",
+.\" }
+.\" ====================================================================
+.if t .ds Te T\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X
+.if n .ds Te TeX
+.TH DT2DV 1 "08 March 1995" "Version 0.6.0"
+.\"======================================================================
+.SH NAME
+dt2dv \- convert a DTL text representation of a TeX DVI file to a binary DVI file
+.\"======================================================================
+.SH SYNOPSIS
+.B dt2dv
+.RB [ \-debug ]
+.RB [ \-group ]
+.RB [ \-si ]
+.RB [ \-so ]
+.I [input-DTL-file]
+.I [output-DVI-file]
+.PP
+In the absence of the
+.B \-si
+and
+.B \-so
+options,
+both file arguments are
+.IR required
+in the order
+.B input-DTL-file output-DVI-file .
+But also see the OPTIONS section below.
+No default file extensions are supplied.
+.\"======================================================================
+.SH DESCRIPTION
+.B dt2dv
+converts a text representation of a \*(Te\& DVI
+file, usually produced by the companion
+.BR dv2dt (1)
+utility, back to a binary DVI file. DTL
+.RI ( "DVI Text Language" )
+files can be edited, with care, and then restored
+to DVI form for processing by any \*(Te\& DVI
+driver program. In DTL files, font directory names
+and font names are preceded by a length field,
+which must be updated if the names are modified.
+.PP
+.BR dvitype (1)
+can also display a textual representation of DVI
+files, but in some implementations at least, it
+cannot be used in batch mode, and its output is
+not well-suited for conversion back to a DVI file.
+.PP
+The format of \*(Te\& DVI files is fully described
+in
+Donald E. Knuth,
+.IR "\*(Te\&: The Program" ,
+Addison-Wesley (1986), ISBN 0-201-13437-3, as well
+as in the
+.BR dvitype (1)
+literate program source code. Brief descriptions
+of the DTL and DVI formats are given in
+.BR dv2dt (1).
+.\"======================================================================
+.SH OPTIONS
+.\"-----------------------------------------------
+.TP \w'\-debug'u+3n
+.B \-debug
+Turn on detailed debugging output.
+.\"-----------------------------------------------
+.TP
+.B \-group
+Expect each DTL command to be in parentheses.
+.\"-----------------------------------------------
+.TP
+.B \-si
+Read all DTL commands from standard input.
+.\"-----------------------------------------------
+.TP
+.B \-so
+Write all DVI commands to standard output.
+.\"======================================================================
+.SH "SEE ALSO"
+.BR dv2dt (1),
+.BR dvitype (1),
+.BR tex (1).
+.\"======================================================================
+.SH FILES
+.TP \w'\fI*.dvi\fP'u+3n
+.I *.dvi
+binary \*(Te\& DVI file.
+.TP
+.I *.dtl
+text representation of a \*(Te\& DVI file in
+.I "DVI Text Language"
+format.
+.\"======================================================================
+.SH AUTHOR
+.B dt2dv
+and
+.BR dv2dt (1)
+were written by
+.RS
+.nf
+Geoffrey Tobin
+Department of Electronic Engineering
+La Trobe University
+Bundoora, Victoria 3083
+Australia
+Tel: +61 3 479 3736
+FAX: +61 3 479 3025
+Email: <G.Tobin@ee.latrobe.edu.au>
+.fi
+.RE
+.PP
+These manual pages were written primarily by
+.RS
+.nf
+Nelson H. F. Beebe, Ph.D.
+Center for Scientific Computing
+Department of Mathematics
+University of Utah
+Salt Lake City, UT 84112
+Tel: +1 801 581 5254
+FAX: +1 801 581 4148
+Email: <beebe@math.utah.edu>
+.fi
+.RE
+.\"==============================[The End]==============================
diff --git a/Build/source/texk/dtl/dtl.doc b/Build/source/texk/dtl/dtl.doc
new file mode 100644
index 00000000000..b170e0f2dbf
--- /dev/null
+++ b/Build/source/texk/dtl/dtl.doc
@@ -0,0 +1,77 @@
+``dtl.doc''
+Wed 8 March 1995
+Geoffrey Tobin
+
+Correspondence between DTL and DVI files.
+-----------------------------------------
+
+DTL variety sequences-6, version 0.6.0
+--------------------------------------
+
+Note: `DTL' stands for `Device-Independent Text Language', and is an
+ASCII text representation of a DVI file.
+
+References for DVI file structure:
+----------------------------------
+
+In this distribution:
+
+ dvi.doc
+
+In the TeX archives:
+
+ CTAN: dviware/driv-standard/level-0/dvistd0.tex
+
+ "The DVI Driver Standard, Level 0",
+ by The TUG DVI Driver Standards Committee (now defunct)
+ chaired by Joachim Schrod.
+ Appendix A, "Device-Independent File Format",
+ section A.2, "Summary of DVI commands".
+
+DTL Commands
+------------
+
+ variety <variety-name> Specifies name of DTL file type.
+
+Naturally, `variety' has no DVI equivalent.
+
+The other DTL commands correspond one-to-one with DVI commands, but I
+have used briefer names (except for `special') than those used in the
+DVI standards document.
+
+ DTL : DVI
+
+ (text) : series of set_char commands, for printable ASCII text
+ \( : literal ASCII left parenthesis in (text)
+ \) : literal ASCII right parenthesis in (text)
+ \\ : literal ASCII backslash in (text)
+ \" : literal ASCII double quote in (text)
+ \XY : set_char for character with hexadecimal code XY,
+ not in parentheses, but by itself for readability
+ s1, s2, s2, s3 : set, with (1,2,3,4)-byte charcodes
+ sr : set_rule
+ p1, p2, p2, p3 : put, with (1,2,3,4)-byte charcodes
+ pr : put_rule
+ nop : nop (do nothing)
+ bop : bop (beginning of page)
+ eop : eop (end of page)
+ [ : push
+ ] : pop
+ r1, r2, r3, r4 : right, with (1,2,3,4)-byte argument
+ w0, w1, w2, w3, w4 : as in DVI
+ x0, x1, x2, x3, x4 : as in DVI
+ d1, d2, d3, d4 : down, with (1,2,3,4)-byte argument
+ y0, y1, y2, y3, y4 : as in DVI
+ z0, z1, z2, z3, z4 : as in DVI
+ fn : fnt_num (set current font to font number in 0 to 63)
+ f1, f2, f3, f4 : fnt (set current font to (1,2,3,4)-byte font number)
+ special : xxx (special commands with (1,2,3,4)-byte string length)
+ fd : fnt_def (assign a number to a named font)
+ pre : preamble
+ post : post (begin postamble)
+ post_post : post_post (end postamble)
+ opcode : undefined DVI command (250 to 255)
+
+---------------
+EOF ``dtl.doc''
+---------------
diff --git a/Build/source/texk/dtl/dtl.h b/Build/source/texk/dtl/dtl.h
new file mode 100644
index 00000000000..8a596e307df
--- /dev/null
+++ b/Build/source/texk/dtl/dtl.h
@@ -0,0 +1,177 @@
+/* dtl.h
+ - header for dv2dt.c and dt2dv.c, conversion programs
+ for human-readable "DTL" <-> DVI.
+ - (ANSI C) version 0.6.0 - 18:31 GMT +11 Wed 8 March 1995
+ - author: Geoffrey Tobin G.Tobin@ee.latrobe.edu.au
+ - patch: Michal Tomczak-Jaegermann ntomczak@vm.ucs.ualberta.ca
+ - Reference: "The DVI Driver Standard, Level 0",
+ by The TUG DVI Driver Standards Committee.
+ Appendix A, "Device-Independent File Format".
+*/
+
+/* variety of DTL produced */
+#define VARIETY "sequences-6"
+
+/* version of DTL programs */
+#define VERSION "0.6.0"
+
+/* Test for ANSI/ISO Standard C */
+#if (defined(__cplusplus) || defined(__STDC__) || defined(c_plusplus))
+#define STDC 1
+#else
+#define STDC 0
+#endif
+
+/* Version (Traditional or ANSI) of C affects prototype and type definitions */
+#if STDC
+#define ARGS(parenthesized_list) parenthesized_list
+#else /* NOT STDC */
+#define ARGS(parenthesized_list) ()
+#endif /* NOT STDC */
+
+#if defined(FILE_BEGIN)
+#undef FILE_BEGIN
+#endif
+#if STDC
+#define Void void
+#define VOID void
+#define FILE_BEGIN SEEK_SET
+#else /* NOT STDC */
+#define Void int
+#define VOID
+#define FILE_BEGIN 0
+#endif /* NOT STDC */
+
+/* types to store 4 byte signed and unsigned integers */
+typedef long S4;
+typedef unsigned long U4;
+/* scanf and printf formats to read or write those */
+#define SF4 "%ld"
+#define UF4 "%lu"
+/* 4 byte hexadecimal */
+/* #define XF4 "%04lx" */
+#define XF4 "%lx"
+/* 4 byte octal */
+#define OF4 "%lo"
+
+/* type for byte count for DVI file */
+/* COUNT must be large enough to hold a U4 (unsigned 4 byte) value */
+typedef U4 COUNT;
+
+/* size of a TeX and DVI word is 32 bits; in some systems a `long int' is needed */
+typedef long int word_t;
+/* format for a DVI word */
+#define WF "%ld"
+
+/* string of 8-bit characters for machine: keyboard, screen, memory */
+
+#define MAXSTRLEN 256
+typedef char String[MAXSTRLEN+1];
+
+/* string s of length l and maximum length m */
+typedef struct {int l; int m; char * s;} Lstring;
+
+int debug = 0; /* normally, debugging is off */
+
+/* Is each DTL command parenthesised by a BCOM and an ECOM? */
+
+int group = 0; /* by default, no grouping */
+
+/* signals of beginning and end of a command and its arguments */
+/* these apply only if group is nonzero */
+
+# define BCOM "{"
+# define ECOM "}"
+
+# define BCOM_CHAR '{'
+# define ECOM_CHAR '}'
+
+/* beginning and end of a message string */
+
+#define BMES "'"
+#define EMES BMES
+
+#define BMES_CHAR '\''
+#define EMES_CHAR BMES_CHAR
+
+/* beginning and end of sequence of font characters */
+
+#define BSEQ "("
+#define ESEQ ")"
+
+#define BSEQ_CHAR '('
+#define ESEQ_CHAR ')'
+
+/* escape and quote characters */
+
+#define ESC_CHAR '\\'
+#define QUOTE_CHAR '\"'
+
+/* command names in DTL */
+
+#define SETCHAR "\\"
+#define SET "s"
+#define SET1 "s1"
+#define SET2 "s2"
+#define SET3 "s3"
+#define SET4 "s4"
+#define SETRULE "sr"
+#define PUT "p"
+#define PUT1 "p1"
+#define PUT2 "p2"
+#define PUT3 "p3"
+#define PUT4 "p4"
+#define PUTRULE "pr"
+#define NOP "nop"
+#define BOP "bop"
+#define EOP "eop"
+#define PUSH "["
+#define POP "]"
+#define RIGHT "r"
+#define RIGHT1 "r1"
+#define RIGHT2 "r2"
+#define RIGHT3 "r3"
+#define RIGHT4 "r4"
+#define W "w"
+#define W0 "w0"
+#define W1 "w1"
+#define W2 "w2"
+#define W3 "w3"
+#define W4 "w4"
+#define X "x"
+#define X0 "x0"
+#define X1 "x1"
+#define X2 "x2"
+#define X3 "x3"
+#define X4 "x4"
+#define DOWN "d"
+#define DOWN1 "d1"
+#define DOWN2 "d2"
+#define DOWN3 "d3"
+#define DOWN4 "d4"
+#define Y "y"
+#define Y0 "y0"
+#define Y1 "y1"
+#define Y2 "y2"
+#define Y3 "y3"
+#define Y4 "y4"
+#define Z "z"
+#define Z0 "z0"
+#define Z1 "z1"
+#define Z2 "z2"
+#define Z3 "z3"
+#define Z4 "z4"
+#define FONT "f"
+#define FONT1 "f1"
+#define FONT2 "f2"
+#define FONT3 "f3"
+#define FONT4 "f4"
+#define FONTDEF "fd"
+#define FONTNUM "fn"
+#define SPECIAL "special"
+#define PRE "pre"
+#define POST "post"
+#define POSTPOST "post_post"
+#define OPCODE "opcode"
+
+/* end dtl.h */
diff --git a/Build/source/texk/dtl/dv2dt.c b/Build/source/texk/dtl/dv2dt.c
new file mode 100644
index 00000000000..98b783a3239
--- /dev/null
+++ b/Build/source/texk/dtl/dv2dt.c
@@ -0,0 +1,929 @@
+/* dv2dt - convert DVI file to human-readable "DTL" format.
+ - (ANSI C) version 0.6.0 - 17:54 GMT +11 Wed 8 March 1995
+ - author: Geoffrey Tobin ecsgrt@luxor.latrobe.edu.au
+ - patch: Michal Tomczak-Jaegermann ntomczak@vm.ucs.ualberta.ca
+ - Reference: "The DVI Driver Standard, Level 0",
+ by The TUG DVI Driver Standards Committee.
+ Appendix A, "Device-Independent File Format".
+*/
+
+/* unix version; read from stdin, write to stdout, by default. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef KPATHSEA
+#include <kpathsea/c-fopen.h>
+#endif
+
+#include "dtl.h"
+
+#define PRINT_BCOM if (group) fprintf (dtl, "%s", BCOM)
+#define PRINT_ECOM if (group) fprintf (dtl, "%s", ECOM)
+
+/*
+ operation's:
+ opcode,
+ name,
+ number of args,
+ string of arguments.
+*/
+struct op_info_st {int code; char * name; int nargs; char * args; };
+
+typedef struct op_info_st op_info;
+
+/*
+ table's:
+ name,
+ first opcode,
+ last opcode,
+ pointer to opcode info.
+*/
+struct op_table_st {char * name; int first; int last; op_info * list; };
+
+typedef struct op_table_st op_table;
+
+/* Table for opcodes 128 to 170 inclusive. */
+
+op_info op_info_128_170 [] =
+{
+ {128, "s1", 1, "1"},
+ {129, "s2", 1, "2"},
+ {130, "s3", 1, "3"},
+ {131, "s4", 1, "-4"},
+ {132, "sr", 2, "-4 -4"},
+ {133, "p1", 1, "1"},
+ {134, "p2", 1, "2"},
+ {135, "p3", 1, "3"},
+ {136, "p4", 1, "-4"},
+ {137, "pr", 2, "-4 -4"},
+ {138, "nop", 0, ""},
+ {139, "bop", 11, "-4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4"},
+ {140, "eop", 0, ""},
+ {141, "[", 0, ""},
+ {142, "]", 0, ""},
+ {143, "r1", 1, "-1"},
+ {144, "r2", 1, "-2"},
+ {145, "r3", 1, "-3"},
+ {146, "r4", 1, "-4"},
+ {147, "w0", 0, ""},
+ {148, "w1", 1, "-1"},
+ {149, "w2", 1, "-2"},
+ {150, "w3", 1, "-3"},
+ {151, "w4", 1, "-4"},
+ {152, "x0", 0, ""},
+ {153, "x1", 1, "-1"},
+ {154, "x2", 1, "-2"},
+ {155, "x3", 1, "-3"},
+ {156, "x4", 1, "-4"},
+ {157, "d1", 1, "-1"},
+ {158, "d2", 1, "-2"},
+ {159, "d3", 1, "-3"},
+ {160, "d4", 1, "-4"},
+ {161, "y0", 0, ""},
+ {162, "y1", 1, "-1"},
+ {163, "y2", 1, "-2"},
+ {164, "y3", 1, "-3"},
+ {165, "y4", 1, "-4"},
+ {166, "z0", 0, ""},
+ {167, "z1", 1, "-1"},
+ {168, "z2", 1, "-2"},
+ {169, "z3", 1, "-3"},
+ {170, "z4", 1, "-4"}
+}; /* op_info op_info_128_170 [] */
+
+op_table op_128_170 = {"op_128_170", 128, 170, op_info_128_170};
+
+/* Table for font with 1 to 4 bytes (opcodes 235 to 238) inclusive. */
+
+op_info fnt_n [] =
+{
+ {235, "f1", 1, "1"},
+ {236, "f2", 1, "2"},
+ {237, "f3", 1, "3"},
+ {238, "f4", 1, "-4"}
+}; /* op_info fnt_n [] */
+
+op_table fnt = {"f", 235, 238, fnt_n};
+
+
+/* function prototypes */
+
+int open_dvi ARGS((char * dvi_file, FILE ** dvi));
+int open_dtl ARGS((char * dtl_file, FILE ** dtl));
+int dv2dt ARGS((FILE * dvi, FILE * dtl));
+
+COUNT wunsigned ARGS((int n, FILE * dvi, FILE * dtl));
+COUNT wsigned ARGS((int n, FILE * dvi, FILE * dtl));
+S4 rsigned ARGS((int n, FILE * dvi));
+U4 runsigned ARGS((int n, FILE * dvi));
+
+COUNT wtable ARGS((op_table table, int opcode, FILE * dvi, FILE * dtl));
+
+COUNT setseq ARGS((int opcode, FILE * dvi, FILE * dtl));
+Void setpchar ARGS((int charcode, FILE * dtl));
+Void xferstring ARGS((int k, FILE * dvi, FILE * dtl));
+
+COUNT special ARGS((FILE * dvi, FILE * dtl, int n));
+COUNT fontdef ARGS((FILE * dvi, FILE * dtl, int n));
+COUNT preamble ARGS((FILE * dvi, FILE * dtl));
+COUNT postamble ARGS((FILE * dvi, FILE * dtl));
+COUNT postpost ARGS((FILE * dvi, FILE * dtl));
+
+
+String program; /* name of dv2dt program */
+
+int
+main
+#ifdef STDC
+ (int argc, char * argv[])
+#else
+ (argc, argv)
+ int argc;
+ char * argv[];
+#endif
+{
+ FILE * dvi = stdin;
+ FILE * dtl = stdout;
+
+ /* Watch out: C's standard library's string functions are dicey */
+ strncpy (program, argv[0], MAXSTRLEN);
+
+ if (argc > 1)
+ open_dvi (argv[1], &dvi);
+ else if (!isatty(fileno(dvi)))
+ SET_BINARY(fileno(dvi));
+
+ if (argc > 2)
+ open_dtl (argv[2], &dtl);
+
+ dv2dt (dvi, dtl);
+
+ return 0; /* OK */
+}
+/* end main */
+
+int
+open_dvi
+#ifdef STDC
+ (char * dvi_file, FILE ** pdvi)
+#else
+ (dvi_file, pdvi)
+ char * dvi_file;
+ FILE ** pdvi;
+#endif
+/* I: dvi_file; I: pdvi; O: *pdvi. */
+{
+ if (pdvi == NULL)
+ {
+ fprintf (stderr, "%s: address of dvi variable is NULL.\n", program);
+ exit (1);
+ }
+
+ *pdvi = fopen (dvi_file, "rb");
+
+ if (*pdvi == NULL)
+ {
+ fprintf (stderr, "%s: Cannot open \"%s\" for binary reading.\n",
+ program, dvi_file);
+ exit (1);
+ }
+
+ return 1; /* OK */
+}
+/* open_dvi */
+
+int
+open_dtl
+#ifdef STDC
+ (char * dtl_file, FILE ** pdtl)
+#else
+ (dtl_file, pdtl)
+ char * dtl_file;
+ FILE ** pdtl;
+#endif
+/* I: dtl_file; I: pdtl; O: *pdtl. */
+{
+ if (pdtl == NULL)
+ {
+ fprintf (stderr, "%s: address of dtl variable is NULL.\n", program);
+ exit (1);
+ }
+
+ *pdtl = fopen (dtl_file, "w");
+
+ if (*pdtl == NULL)
+ {
+ fprintf (stderr, "%s: Cannot open \"%s\" for text writing.\n",
+ program, dtl_file);
+ exit (1);
+ }
+
+ return 1; /* OK */
+}
+/* open_dtl */
+
+int
+dv2dt
+#ifdef STDC
+ (FILE * dvi, FILE * dtl)
+#else
+ (dvi, dtl)
+ FILE * dvi;
+ FILE * dtl;
+#endif
+{
+ int opcode;
+ COUNT count; /* intended to count bytes to DVI file; as yet unused. */
+
+ PRINT_BCOM;
+ fprintf (dtl, "variety ");
+/* fprintf (dtl, BMES); */
+ fprintf (dtl, VARIETY);
+/* fprintf (dtl, EMES); */
+ PRINT_ECOM;
+ fprintf (dtl, "\n");
+
+ /* start counting DVI bytes */
+ count = 0;
+ while ((opcode = fgetc (dvi)) != EOF)
+ {
+ PRINT_BCOM; /* start of command and parameters */
+ if (opcode < 0 || opcode > 255)
+ {
+ count += 1;
+ fprintf (stderr, "%s: Non-byte from \"fgetc()\"!\n", program);
+ exit (1);
+ }
+ else if (opcode <= 127)
+ {
+ /* setchar commands */
+ /* count += 1; */
+ /* fprintf (dtl, "%s%d", SETCHAR, opcode); */
+ count +=
+ setseq (opcode, dvi, dtl);
+ }
+ else if (opcode >= 128 && opcode <= 170)
+ {
+ count +=
+ wtable (op_128_170, opcode, dvi, dtl);
+ }
+ else if (opcode >= 171 && opcode <= 234)
+ {
+ count += 1;
+ fprintf (dtl, "%s%d", FONTNUM, opcode - 171);
+ }
+ else if (opcode >= 235 && opcode <= 238)
+ {
+ count +=
+ wtable (fnt, opcode, dvi, dtl);
+ }
+ else if (opcode >= 239 && opcode <= 242)
+ {
+ count +=
+ special (dvi, dtl, opcode - 238);
+ }
+ else if (opcode >= 243 && opcode <= 246)
+ {
+ count +=
+ fontdef (dvi, dtl, opcode - 242);
+ }
+ else if (opcode == 247)
+ {
+ count +=
+ preamble (dvi, dtl);
+ }
+ else if (opcode == 248)
+ {
+ count +=
+ postamble (dvi, dtl);
+ }
+ else if (opcode == 249)
+ {
+ count +=
+ postpost (dvi, dtl);
+ }
+ else if (opcode >= 250 && opcode <= 255)
+ {
+ count += 1;
+ fprintf (dtl, "opcode%d", opcode);
+ }
+ else
+ {
+ count += 1;
+ fprintf (stderr, "%s: unknown byte.\n", program);
+ exit (1);
+ }
+ PRINT_ECOM; /* end of command and parameters */
+ fprintf (dtl, "\n");
+ if (fflush (dtl) == EOF)
+ {
+ fprintf (stderr, "%s: fflush on dtl file gave write error!\n", program);
+ exit (1);
+ }
+ } /* end while */
+
+ return 1; /* OK */
+}
+/* dv2dt */
+
+
+COUNT
+wunsigned
+#ifdef STDC
+ (int n, FILE * dvi, FILE * dtl)
+#else
+ (n, dvi, dtl)
+ int n;
+ FILE * dvi;
+ FILE * dtl;
+#endif
+{
+ U4 unum;
+
+ fprintf (dtl, " ");
+ unum = runsigned (n, dvi);
+ fprintf (dtl, UF4, unum);
+ return n;
+}
+/* end wunsigned */
+
+COUNT
+wsigned
+#ifdef STDC
+ (int n, FILE * dvi, FILE * dtl)
+#else
+ (n, dvi, dtl)
+ int n;
+ FILE * dvi;
+ FILE * dtl;
+#endif
+{
+ S4 snum;
+
+ fprintf (dtl, " ");
+ snum = rsigned (n, dvi);
+ fprintf (dtl, SF4, snum);
+ return n;
+}
+/* end wsigned */
+
+U4
+runsigned
+#ifdef STDC
+ (int n, FILE * dvi)
+#else
+ (n, dvi)
+ int n;
+ FILE * dvi;
+#endif
+/* read 1 <= n <= 4 bytes for an unsigned integer from dvi file */
+/* DVI format uses Big-endian storage of numbers. */
+{
+ U4 integer;
+ int ibyte = 0;
+ int i;
+
+ if (n < 1 || n > 4)
+ {
+ fprintf (stderr,
+ "%s: runsigned() asked for %d bytes. Must be 1 to 4.\n", program, n);
+ exit (1);
+ }
+
+ /* Following calculation works iff storage is big-endian. */
+ integer = 0;
+ for (i = 0; i < n; i++)
+ {
+ integer *= 256;
+ ibyte = fgetc (dvi);
+ integer += ibyte;
+ }
+
+ return integer;
+}
+/* end runsigned */
+
+S4
+rsigned
+#ifdef STDC
+ (int n, FILE * dvi)
+#else
+ (n, dvi)
+ int n;
+ FILE * dvi;
+#endif
+/* read 1 <= n <= 4 bytes for a signed integer from dvi file */
+/* DVI format uses Big-endian storage of numbers. */
+{
+ S4 integer;
+ int ibyte = 0;
+ int i;
+
+ if (n < 1 || n > 4)
+ {
+ fprintf (stderr,
+ "%s: rsigned() asked for %d bytes. Must be 1 to 4.\n", program, n);
+ exit (1);
+ }
+
+ /* Following calculation works iff storage is big-endian. */
+ integer = 0;
+ for (i = 0; i < n; i++)
+ {
+ integer *= 256;
+ ibyte = fgetc (dvi);
+ /* Big-endian implies sign byte is first byte. */
+ if (i == 0 && ibyte >= 128)
+ {
+ ibyte -= 256;
+ }
+ integer += ibyte;
+ }
+
+ return integer;
+}
+/* end rsigned */
+
+COUNT
+wtable
+#ifdef STDC
+ (op_table table, int opcode, FILE * dvi, FILE * dtl)
+#else
+ (table, opcode, dvi, dtl)
+ op_table table;
+ int opcode;
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* write command with given opcode in given table */
+/* return number of DVI bytes in this command */
+{
+ op_info op; /* pointer into table of operations and arguments */
+ COUNT bcount = 0; /* number of bytes in arguments of this opcode */
+ String args; /* arguments string */
+ int i; /* count of arguments read from args */
+ int pos; /* position in args */
+
+ /* Defensive programming. */
+ if (opcode < table.first || opcode > table.last)
+ {
+ fprintf (stderr,
+ "%s: opcode %d is outside table %s [ %d to %d ] !\n",
+ program, opcode, table.name, table.first, table.last);
+ exit (1);
+ }
+
+ op = table.list [opcode - table.first];
+
+ /* Further defensive programming. */
+ if (op.code != opcode)
+ {
+ fprintf (stderr, "%s: internal table %s wrong!\n", program, table.name);
+ exit (1);
+ }
+
+ bcount = 1;
+ fprintf (dtl, "%s", op.name);
+
+ /* NB: sscanf does an ungetc, */
+ /* so args must be writable. */
+
+ strncpy (args, op.args, MAXSTRLEN);
+
+ pos = 0;
+ for (i = 0; i < op.nargs; i++)
+ {
+ int argtype; /* sign and number of bytes in current argument */
+ int nconv; /* number of successful conversions from args */
+ int nread; /* number of bytes read from args */
+
+ nconv = sscanf (args + pos, "%d%n", &argtype, &nread);
+
+ /* internal consistency checks */
+ if (nconv != 1 || nread <= 0)
+ {
+ fprintf (stderr,
+ "%s: internal read of table %s failed!\n", program, table.name);
+ exit (1);
+ }
+
+ pos += nread;
+
+ bcount += ( argtype < 0 ?
+ wsigned (-argtype, dvi, dtl) :
+ wunsigned (argtype, dvi, dtl) ) ;
+ } /* end for */
+
+ return bcount;
+
+}
+/* wtable */
+
+COUNT
+setseq
+#ifdef STDC
+ (int opcode, FILE * dvi, FILE * dtl)
+#else
+ (opcode, dvi, dtl)
+ int opcode;
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* write a sequence of setchar commands */
+/* return count of DVI bytes interpreted into DTL */
+{
+ int charcode = opcode; /* fortuitous */
+ int ccount = 0;
+
+ if (!isprint (charcode))
+ {
+ ccount = 1;
+ fprintf (dtl, "%s%02X", SETCHAR, opcode);
+ }
+ else
+ {
+ /* start of sequence of font characters */
+ fprintf (dtl, BSEQ);
+
+ /* first character */
+ ccount = 1;
+ setpchar (charcode, dtl);
+
+ /* subsequent characters */
+ while ((opcode = fgetc (dvi)) != EOF)
+ {
+ if (opcode < 0 || opcode > 127)
+ {
+ break; /* not a setchar command, so sequence has ended */
+ }
+ charcode = opcode; /* fortuitous */
+ if (!isprint (charcode)) /* not printable ascii */
+ {
+ break; /* end of font character sequence, as for other commands */
+ }
+ else /* printable ASCII */
+ {
+ ccount += 1;
+ setpchar (charcode, dtl);
+ }
+ } /* end for loop */
+
+ /* prepare to reread opcode of next DVI command */
+ if (ungetc (opcode, dvi) == EOF)
+ {
+ fprintf (stderr, "setseq: cannot push back a byte\n");
+ exit (1);
+ }
+
+ /* end of sequence of font characters */
+ fprintf (dtl, ESEQ);
+ }
+ return ccount;
+}
+/* setseq */
+
+Void
+setpchar
+#ifdef STDC
+ (int charcode, FILE * dtl)
+#else
+ (charcode, dtl)
+ int charcode;
+ FILE * dtl;
+#endif
+/* set printable character */
+{
+ switch (charcode)
+ {
+ case ESC_CHAR:
+ fprintf (dtl, "%c", ESC_CHAR);
+ fprintf (dtl, "%c", ESC_CHAR);
+ break;
+ case QUOTE_CHAR:
+ fprintf (dtl, "%c", ESC_CHAR);
+ fprintf (dtl, "%c", QUOTE_CHAR);
+ break;
+ case BSEQ_CHAR:
+ fprintf (dtl, "%c", ESC_CHAR);
+ fprintf (dtl, "%c", BSEQ_CHAR);
+ break;
+ case ESEQ_CHAR:
+ fprintf (dtl, "%c", ESC_CHAR);
+ fprintf (dtl, "%c", ESEQ_CHAR);
+ break;
+ default:
+ fprintf (dtl, "%c", charcode);
+ break;
+ }
+}
+/* setpchar */
+
+Void
+xferstring
+#ifdef STDC
+ (int k, FILE * dvi, FILE * dtl)
+#else
+ (k, dvi, dtl)
+ int k;
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* copy string of k characters from dvi file to dtl file */
+{
+ int i;
+ int ch;
+
+ fprintf (dtl, " ");
+ fprintf (dtl, "'");
+ for (i=0; i < k; i++)
+ {
+ ch = fgetc (dvi);
+ if (ch == ESC_CHAR || ch == EMES_CHAR)
+ {
+ fprintf (dtl, "%c", ESC_CHAR);
+ }
+ fprintf (dtl, "%c", ch);
+ }
+ fprintf (dtl, "'");
+}
+/* xferstring */
+
+COUNT
+special
+#ifdef STDC
+ (FILE * dvi, FILE * dtl, int n)
+#else
+ (dvi, dtl, n)
+ FILE * dvi;
+ FILE * dtl;
+ int n;
+#endif
+/* read special 1 .. 4 from dvi and write in dtl */
+/* return number of DVI bytes interpreted into DTL */
+{
+ U4 k;
+
+ if (n < 1 || n > 4)
+ {
+ fprintf (stderr, "%s: special %d, range is 1 to 4.\n", program, n);
+ exit (1);
+ }
+
+ fprintf (dtl, "%s%d", SPECIAL, n);
+
+ /* k[n] = length of special string */
+ fprintf (dtl, " ");
+ k = runsigned (n, dvi);
+ fprintf (dtl, UF4, k);
+
+ /* x[k] = special string */
+ xferstring (k, dvi, dtl);
+
+ return (1 + n + k);
+}
+/* end special */
+
+COUNT
+fontdef
+#ifdef STDC
+ (FILE * dvi, FILE * dtl, int n)
+#else
+ (dvi, dtl, n)
+ FILE * dvi;
+ FILE * dtl;
+ int n;
+#endif
+/* read fontdef 1 .. 4 from dvi and write in dtl */
+/* return number of DVI bytes interpreted into DTL */
+{
+ U4 ku, c, s, d, a, l;
+ S4 ks;
+
+ if (n < 1 || n > 4)
+ {
+ fprintf (stderr, "%s: font def %d, range is 1 to 4.\n", program, n);
+ exit (1);
+ }
+
+ fprintf (dtl, "%s%d", FONTDEF, n);
+
+ /* k[n] = font number */
+ fprintf (dtl, " ");
+ if (n == 4)
+ {
+ ks = rsigned (n, dvi);
+ fprintf (dtl, SF4, ks);
+ }
+ else
+ {
+ ku = runsigned (n, dvi);
+ fprintf (dtl, UF4, ku);
+ }
+
+ /* c[4] = checksum */
+ fprintf (dtl, " ");
+ c = runsigned (4, dvi);
+#ifdef HEX_CHECKSUM
+ fprintf (dtl, XF4, c);
+#else /* NOT HEX_CHECKSUM */
+ /* write in octal, to allow quick comparison with tftopl's output */
+ fprintf (dtl, OF4, c);
+#endif
+
+ /* s[4] = scale factor */
+ fprintf (dtl, " ");
+ s = runsigned (4, dvi);
+ fprintf (dtl, UF4, s);
+
+ /* d[4] = design size */
+ fprintf (dtl, " ");
+ d = runsigned (4, dvi);
+ fprintf (dtl, UF4, d);
+
+ /* a[1] = length of area (directory) name */
+ a = runsigned (1, dvi);
+ fprintf (dtl, " ");
+ fprintf (dtl, UF4, a);
+
+ /* l[1] = length of font name */
+ l = runsigned (1, dvi);
+ fprintf (dtl, " ");
+ fprintf (dtl, UF4, l);
+
+ /* n[a+l] = font pathname string => area (directory) + font */
+ xferstring (a, dvi, dtl);
+ xferstring (l, dvi, dtl);
+
+ return (1 + n + 4 + 4 + 4 + 1 + 1 + a + l);
+}
+/* end fontdef */
+
+COUNT
+preamble
+#ifdef STDC
+ (FILE * dvi, FILE * dtl)
+#else
+ (dvi, dtl)
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* read preamble from dvi and write in dtl */
+/* return number of DVI bytes interpreted into DTL */
+{
+ U4 id, num, den, mag, k;
+
+ fprintf (dtl, "pre");
+
+ /* i[1] = DVI format identification */
+ fprintf (dtl, " ");
+ id = runsigned (1, dvi);
+ fprintf (dtl, UF4, id);
+
+ /* num[4] = numerator of DVI unit */
+ fprintf (dtl, " ");
+ num = runsigned (4, dvi);
+ fprintf (dtl, UF4, num);
+
+ /* den[4] = denominator of DVI unit */
+ fprintf (dtl, " ");
+ den = runsigned (4, dvi);
+ fprintf (dtl, UF4, den);
+
+ /* mag[4] = 1000 x magnification */
+ fprintf (dtl, " ");
+ mag = runsigned (4, dvi);
+ fprintf (dtl, UF4, mag);
+
+ /* k[1] = length of comment */
+ fprintf (dtl, " ");
+ k = runsigned (1, dvi);
+ fprintf (dtl, UF4, k);
+
+ /* x[k] = comment string */
+ xferstring (k, dvi, dtl);
+
+ return (1 + 1 + 4 + 4 + 4 + 1 + k);
+}
+/* end preamble */
+
+COUNT
+postamble
+#ifdef STDC
+ (FILE * dvi, FILE * dtl)
+#else
+ (dvi, dtl)
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* read postamble from dvi and write in dtl */
+/* return number of bytes */
+{
+ U4 p, num, den, mag, l, u, s, t;
+
+ fprintf (dtl, "post");
+
+ /* p[4] = pointer to final bop */
+ fprintf (dtl, " ");
+ p = runsigned (4, dvi);
+ fprintf (dtl, UF4, p);
+
+ /* num[4] = numerator of DVI unit */
+ fprintf (dtl, " ");
+ num = runsigned (4, dvi);
+ fprintf (dtl, UF4, num);
+
+ /* den[4] = denominator of DVI unit */
+ fprintf (dtl, " ");
+ den = runsigned (4, dvi);
+ fprintf (dtl, UF4, den);
+
+ /* mag[4] = 1000 x magnification */
+ fprintf (dtl, " ");
+ mag = runsigned (4, dvi);
+ fprintf (dtl, UF4, mag);
+
+ /* l[4] = height + depth of tallest page */
+ fprintf (dtl, " ");
+ l = runsigned (4, dvi);
+ fprintf (dtl, UF4, l);
+
+ /* u[4] = width of widest page */
+ fprintf (dtl, " ");
+ u = runsigned (4, dvi);
+ fprintf (dtl, UF4, u);
+
+ /* s[2] = maximum stack depth */
+ fprintf (dtl, " ");
+ s = runsigned (2, dvi);
+ fprintf (dtl, UF4, s);
+
+ /* t[2] = total number of pages (bop commands) */
+ fprintf (dtl, " ");
+ t = runsigned (2, dvi);
+ fprintf (dtl, UF4, t);
+
+/* return (29); */
+ return (1 + 4 + 4 + 4 + 4 + 4 + 4 + 2 + 2);
+}
+/* end postamble */
+
+COUNT
+postpost
+#ifdef STDC
+ (FILE * dvi, FILE * dtl)
+#else
+ (dvi, dtl)
+ FILE * dvi;
+ FILE * dtl;
+#endif
+/* read post_post from dvi and write in dtl */
+/* return number of bytes */
+{
+ U4 q, id;
+ int b223; /* hope this is 8-bit clean */
+ int n223; /* number of "223" bytes in final padding */
+
+ fprintf (dtl, "post_post");
+
+ /* q[4] = pointer to post command */
+ fprintf (dtl, " ");
+ q = runsigned (4, dvi);
+ fprintf (dtl, UF4, q);
+
+ /* i[1] = DVI identification byte */
+ fprintf (dtl, " ");
+ id = runsigned (1, dvi);
+ fprintf (dtl, UF4, id);
+
+ /* final padding by "223" bytes */
+ /* hope this way of obtaining b223 is 8-bit clean */
+ for (n223 = 0; (b223 = fgetc (dvi)) == 223; n223++)
+ {
+ fprintf (dtl, " ");
+ fprintf (dtl, "%d", 223);
+ }
+ if (n223 < 4)
+ {
+ fprintf (stderr,
+ "%s: bad post_post: fewer than four \"223\" bytes.\n", program);
+ exit (1);
+ }
+ if (b223 != EOF)
+ {
+ fprintf (stderr,
+ "%s: bad post_post: doesn't end with a \"223\".\n", program);
+ exit (1);
+ }
+
+ return (1 + 4 + 1 + n223);
+}
+/* end postpost */
+
+/* end of "dv2dt.c" */
diff --git a/Build/source/texk/dtl/dv2dt.man b/Build/source/texk/dtl/dv2dt.man
new file mode 100644
index 00000000000..79f6368b80e
--- /dev/null
+++ b/Build/source/texk/dtl/dv2dt.man
@@ -0,0 +1,715 @@
+.\" ====================================================================
+.\" @Troff-man-file{
+.\" author = "Nelson H. F. Beebe and Geoffrey Tobin",
+.\" version = "0.6.0",
+.\" date = "08 March 1995",
+.\" time = "19:52:00 GMT +11",
+.\" filename = "dv2dt.man",
+.\" address = "Center for Scientific Computing
+.\" Department of Mathematics
+.\" University of Utah
+.\" Salt Lake City, UT 84112
+.\" USA",
+.\" telephone = "+1 801 581 5254",
+.\" FAX = "+1 801 581 4148",
+.\" checksum = "32328 715 2191 12898",
+.\" email = "beebe@math.utah.edu (Internet)",
+.\" codetable = "ISO/ASCII",
+.\" keywords = "DVI, TeX",
+.\" supported = "no",
+.\" docstring = "This file contains the UNIX manual pages
+.\" for the dv2dt utility, a program for
+.\" converting a binary TeX DVI file to an
+.\" editable text representation in DTL (DVI Text
+.\" Language). The companion dt2dv utility can
+.\" convert the output DTL file back to a binary
+.\" DVI file.
+.\"
+.\" The checksum field above contains a CRC-16
+.\" checksum as the first value, followed by the
+.\" equivalent of the standard UNIX wc (word
+.\" count) utility output of lines, words, and
+.\" characters. This is produced by Robert
+.\" Solovay's checksum utility.",
+.\" }
+.\" ====================================================================
+.if t .ds Te T\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X
+.if n .ds Te TeX
+.if t .ds Xe X\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'T
+.if n .ds Xe XeT
+.TH DV2DT 1 "08 March 1995" "Version 0.6.0"
+.\"======================================================================
+.SH NAME
+dv2dt \- convert a binary TeX DVI file to DTL text representation
+.\"======================================================================
+.SH SYNOPSIS
+.B dv2dt
+.I input-DVI-file
+.I output-DTL-file
+.PP
+If the filenames are omitted, then
+.I stdin
+and
+.I stdout
+are assumed.
+.\"======================================================================
+.SH DESCRIPTION
+.B dv2dt
+converts a binary \*(Te\& DVI file to an editable
+text file in DTL
+.RI ( "DVI Text Language" )
+format. The companion
+.BR dt2dv (1)
+utility can convert the DTL file back to a binary
+DVI file.
+.\"======================================================================
+.SH "DVI COMMAND DESCRIPTION"
+\*(Te\& DVI files contain a compact binary
+description of typeset pages, as a stream of
+operation code bytes, each immediately followed by
+zero or more parameter bytes. The format of DVI
+files is fully described in Donald E. Knuth,
+.IR "\*(Te\&: The Program" ,
+Addison-Wesley (1986), ISBN 0-201-13437-3, as well
+as in the
+.BR dvitype (1)
+literate program source code.
+.PP
+For convenience, we provide a summary of DVI
+commands here. In the following list, operation
+code bytes are given as unsigned decimal values,
+followed by their symbolic names (not present in
+the DVI file), and a short description. A
+designation like
+.I b[+n]
+means that the operation code byte is followed by
+a parameter
+.I b
+which uses
+.I n
+bytes, and is signed. Without the plus sign, the
+parameter is unsigned. Signed integer parameter
+values are always represented in two's complement
+arithmetic, which is the system followed by most
+computers manufactured today, including all
+personal computers and workstations.
+.if n .TP \w'\fI128_set1__c[1]\fP'u+3n
+.if t .TP \w'\fI243_fnt_def1__k[1]_c[4]_s[4]_d[4]_a[1]_l[1]_n[a+l]\fP'u+3n
+.I "0 set_char_0"
+Set character 0 from current font.
+.TP
+.I .\|.\|.
+.TP
+.I "127 set_char_127"
+Set character 127 from current font.
+.TP
+.I "128 set1 c[1]"
+Set 1-byte unsigned character (uchar) number
+.IR c .
+.TP
+.I "129 set2 c[2]"
+Set 2-byte uchar number
+.IR c .
+.TP
+.I "130 set3 c[3]"
+Set 3-byte uchar number
+.IR c .
+.TP
+.I "131 set4 c[+4]"
+Set 4-byte signed character (schar) number
+.IR c .
+.TP
+.I "132 set_rule a[+4] b[+4]"
+Set rule, height
+.IR a ,
+width
+.IR b .
+.TP
+.I "133 put1 c[1]"
+Put 1-byte uchar
+.IR c .
+.TP
+.I "134 put2 c[2]"
+Put 2-byte uchar
+.IR c .
+.TP
+.I "135 put3 c[3]"
+Put 3-byte uchar
+.IR c .
+.TP
+.I "136 put4 c[+4]"
+Put 4-byte schar
+.IR c .
+.TP
+.I "137 put_rule a[+4] b[+4]"
+Put rule, height
+.IR a ,
+width
+.IR b .
+.TP
+.I "138 nop"
+Do nothing.
+.TP
+.I "139 bop c0[+4] .\|.\|. c9[+4] p[+4]"
+Beginning of page. The parameters
+.I "c0 .\|.\|. c9"
+are the \*(Te\& page counters, the contents of
+\*(Te\& count registers
+.IR "\ecount0 .\|.\|. \ecount9" .
+The parameter
+.I p
+is the byte offset from the beginning of the DVI
+file of the previous
+.I bop
+operation code byte. The first such command in
+the file has
+.IR "p = \-1" .
+.TP
+.I "140 eop"
+End of page.
+.TP
+.I "141 push"
+Push
+.RI ( h,v,w,x,y,z )
+onto stack.
+.TP
+.I "142 pop"
+Pop
+.RI ( h,v,w,x,y,z )
+from stack.
+.TP
+.I "143 right1 b[+1]"
+Move right
+.I b
+units.
+.TP
+.I "144 right2 b[+2]"
+Move right
+.I b
+units.
+.TP
+.I "145 right3 b[+3]"
+Move right
+.I b
+units.
+.TP
+.I "146 right4 b[+4]"
+Move right
+.I b
+units.
+.TP
+.I "147 w0"
+Move right
+.I w
+units.
+.TP
+.I "148 w1 b[+1]"
+Move right
+.I b
+units, and set
+.IR "w = b" .
+.TP
+.I "149 w2 b[+2]"
+Move right
+.I b
+units, and set
+.IR "w = b" .
+.TP
+.I "150 w3 b[+3]"
+Move right
+.I b
+units, and set
+.IR "w = b" .
+.TP
+.I "151 w4 b[+4]"
+Move right
+.I b
+units, and set
+.IR "w = b" .
+.TP
+.I "152 x0"
+Move right
+.I x
+units.
+.TP
+.I "153 x1 b[+1]"
+Move right
+.I b
+units, and set
+.IR "x = b" .
+.TP
+.I "154 x2 b[+2]"
+Move right
+.I b
+units, and set
+.IR "x = b" .
+.TP
+.I "155 x3 b[+3]"
+Move right
+.I b
+units, and set
+.IR "x = b" .
+.TP
+.I "156 x4 b[+4]"
+Move right
+.I b
+units, and set
+.IR "x = b" .
+.TP
+.I "157 down1 a[+1]"
+Move down
+.I a
+units.
+.TP
+.I "158 down2 a[+2]"
+Move down
+.I a
+units.
+.TP
+.I "159 down3 a[+3]"
+Move down
+.I a
+units.
+.TP
+.I "160 down4 a[+4]"
+Move down
+.I a
+units.
+.TP
+.I "161 y0"
+Move right
+.I y
+units.
+.TP
+.I "162 y1 a[+1]"
+Move right
+.I a
+units, and set
+.IR "y = a" .
+.TP
+.I "163 y2 a[+2]"
+Move right
+.I a
+units, and set
+.IR "y = a" .
+.TP
+.I "164 y3 a[+3]"
+Move right
+.I a
+units, and set
+.IR "y = a" .
+.TP
+.I "165 y4 a[+4]"
+Move right
+.I a
+units, and set
+.IR "y = a" .
+.TP
+.I "166 z0"
+Move right
+.I z
+units.
+.TP
+.I "167 z1 a[+1]"
+Move right
+.I a
+units, and set
+.IR "z = a" .
+.TP
+.I "168 z2 a[+2]"
+Move right
+.I a
+units, and set
+.IR "z = a" .
+.TP
+.I "169 z3 a[+3]"
+Move right
+.I a
+units, and set
+.IR "z = a" .
+.TP
+.I "170 z4 a[+4]"
+Move right
+.I a
+units, and set
+.IR "z = a" .
+.TP
+.I "171 fnt_num_0"
+Set current font number
+.IR "(f) = 0" .
+.TP
+.I .\|.\|.
+.TP
+.I "234 fnt_num_63"
+Set
+.IR "f = 63" .
+.TP
+.I "235 fnt1 k[1]"
+Set
+.IR "f = k" .
+.TP
+.I "236 fnt2 k[2]"
+Set
+.IR "f = k" .
+.TP
+.I "237 fnt3 k[3]"
+Set
+.IR "f = k" .
+.TP
+.I "238 fnt4 k[+4]"
+Set
+.IR "f = k" .
+.TP
+.I "239 xxx1 k[1] x[k]"
+Special string
+.I x
+with
+.I k
+bytes.
+.TP
+.I "240 xxx2 k[2] x[k]"
+Special string
+.I x
+with
+.I k
+bytes.
+.TP
+.I "241 xxx3 k[3] x[k]"
+Special string
+.I x
+with
+.I k
+bytes.
+.TP
+.I "242 xxx4 k[4] x[k]"
+Special string
+.I x
+with (unsigned)
+.I k
+bytes.
+.TP
+.I "243 fnt_def1 k[1] c[4] s[4] d[4] a[1] l[1] n[a+l]"
+Define font
+.IR k .
+The parameters are:
+.RS
+.TP \w'\fIm\fP'u+3n
+.I c
+Checksum for TFM file.
+.TP
+.I s
+Scale factor, in DVI units.
+.TP
+.I d
+Design size, in DVI units.
+.TP
+.I a
+Length of the ``area'' or directory.
+.TP
+.I l
+Length of the font name.
+.TP
+.I n
+Area and font name string(s).
+.RE
+.TP
+.I "244 fnt_def2 k[2] c[4] s[4] d[4] a[1] l[1] n[a+l]"
+Define font
+.IR k .
+.TP
+.I "245 fnt_def3 k[3] c[4] s[4] d[4] a[1] l[1] n[a+l]"
+Define font
+.IR k .
+.TP
+.I "246 fnt_def4 k[+4] c[4] s[4] d[4] a[1] l[1] n[a+l]"
+Define font
+.IR k .
+.TP
+.I "247 pre i[1] num[4] den[4] mag[4] k[1] x[k]"
+Begin preamble. The parameters are:
+.RS
+.TP \w'\fInum\fP'u+3n
+.I i
+DVI format. Standard \*(Te\& has
+.IR "ID = 2" ,
+and \*(Te\&-\*(Xe\& has
+.IR "ID = 3" .
+.TP
+.I num
+Numerator of 100 nm / DVI unit.
+.TP
+.I den
+Denominator of 100 nm / DVI unit.
+.TP
+.I mag
+1000 * magnification.
+.TP
+.I k
+Comment length.
+.TP
+.I x
+Comment string.
+.RE
+.TP
+.I "248 post p[4] num[4] den[4] mag[4] l[4] u[4] s[2] t[2]"
+Begin postamble. The parameters are:
+.RS
+.TP \w'\fInum\fP'u+3n
+.I p
+Pointer to final bop.
+.TP
+.I "num, den, mag"
+Duplicates of values in preamble.
+.TP
+.I l
+Height-plus-depth of tallest page, in DVI units.
+.TP
+.I u
+Width of widest page, in DVI units.
+.TP
+.I s
+Maximum stack depth needed to process this DVI file.
+.TP
+.I t
+Total number of pages
+.RI ( bop
+commands) present.
+.RE
+.TP
+.I "249 post_post q[4] i[1] 223 .\|.\|. 223"
+End postamble. The parameters are:
+.RS
+.TP \w'\fI223\fP'u+3n
+.I q
+Byte offset from the beginning of the DVI file to
+the
+.I post
+command that started the postamble.
+.TP
+.I i
+DVI format ID, as in the preamble.
+.TP
+.I
+223
+At least four
+.I 223
+bytes.
+.RE
+.TP
+.I "250"
+Undefined.
+.TP
+.I .\|.\|.
+.TP
+.I "255"
+Undefined.
+.\"======================================================================
+.SH "DTL COMMAND DESCRIPTION"
+A DTL file contains one line per command, with a
+limit of 1024 characters per line. Each command
+contains a symbolic operation name, followed by
+zero or more parameter values. The parameter
+value descriptions are not repeated here; they can
+be found in the previous section.
+.TP \w'\fIw0,_w1,_w2,_w3,_w4\fP'u+3n
+variety <variety-name>
+This command specifies the name of the DTL file
+type; it has no DVI file equivalent.
+.TP
+.I (text)
+Series of set_char commands, for printable ASCII text.
+.TP
+.I \e(
+Literal ASCII left parenthesis in (text).
+.TP
+.I \e)
+Literal ASCII right parenthesis in (text).
+.TP
+.I \e\e
+Literal ASCII backslash in (text).
+.TP
+.I \e"
+Literal ASCII double quote in (text).
+.TP
+.I \eXY
+Set_char for character with hexadecimal code XY,
+not in parentheses, but by itself for readability.
+.TP
+.I "s1, s2, s2, s3"
+Set, with (1,2,3,4)-byte charcodes.
+.TP
+.I sr
+.IR set_rule .
+.TP
+.I "p1, p2, p2, p3"
+Put, with (1,2,3,4)-byte charcodes.
+.TP
+.I pr
+.IR put_rule .
+.TP
+.I nop
+.I nop
+(do nothing).
+.TP
+.I bop
+.I bop
+(beginning of page).
+.TP
+.I eop
+.I eop
+(end of page).
+.TP
+.I [
+Push.
+.TP
+.I ]
+Pop.
+.TP
+.I "r1, r2, r3, r4"
+Right, with (1,2,3,4)-byte argument.
+.TP
+.I "w0, w1, w2, w3, w4"
+As in DVI.
+.TP
+.I "x0, x1, x2, x3, x4"
+As in DVI.
+.TP
+.I "d1, d2, d3, d4"
+Down, with (1,2,3,4)-byte argument.
+.TP
+.I "y0, y1, y2, y3, y4"
+As in DVI.
+.TP
+.I "z0, z1, z2, z3, z4"
+As in DVI.
+.TP
+.I fn
+.I fnt_num
+(set current font to font number in 0 to 63).
+.TP
+.I "f1, f2, f3, f4"
+.I fnt
+(set current font to (1,2,3,4)-byte font number).
+.TP
+.I special
+.I xxx
+(special commands with (1,2,3,4)-byte string length).
+.TP
+.I fd
+.I fnt_def
+(assign a number to a named font).
+.TP
+.I pre
+Preamble.
+.TP
+.I post
+.I post
+(begin postamble).
+.TP
+.I post_post
+.I post_post
+(end postamble).
+.TP
+.I opcode
+Undefined DVI command (250 to 255).
+.\"======================================================================
+.SH "SAMPLE DTL FILE"
+The following 2-line \*(Te\& file
+.RS
+.nf
+Hello.
+\ebye
+.fi
+.RE
+when processed with the commands
+.RS
+.nf
+tex hello.tex
+dv2dt hello.dvi hello.dtl
+.fi
+.RE
+produces this DTL file:
+.RS
+.nf
+variety sequences-6
+pre 2 25400000 473628672 1000 27 ' TeX output 1995.03.02:2334'
+bop 1 0 0 0 0 0 0 0 0 0 -1
+[
+d3 -917504
+]
+d4 42152922
+[
+d4 -41497562
+[
+r3 1310720
+fd1 0 11374260171 655360 655360 0 5 '' 'cmr10'
+fn0
+(Hello.)
+]
+]
+d3 1572864
+[
+r4 15229091
+(1)
+]
+eop
+post 42 25400000 473628672 1000 43725786 30785863 2 1
+fd1 0 11374260171 655360 655360 0 5 'cmr10'
+post_post 152 2 223 223 223 223
+.fi
+.RE
+The command
+.RS
+.nf
+dt2dv hello.dtl hello.dvi
+.fi
+.RE
+will reconstruct the original DVI file.
+.\"======================================================================
+.SH "SEE ALSO"
+.BR dt2dv (1),
+.BR dvitype (1),
+.BR tex (1).
+.\"======================================================================
+.SH FILES
+.TP \w'\fI*.dvi\fP'u+3n
+.I *.dvi
+binary \*(Te\& DVI file.
+.TP
+.I *.dtl
+text representation of a \*(Te\& DVI file in
+.I "DVI Text Language"
+format.
+.\"======================================================================
+.SH AUTHOR
+.B dv2dt
+and
+.BR dt2dv (1)
+were written by
+.RS
+.nf
+Geoffrey Tobin
+Department of Electronic Engineering
+La Trobe University
+Bundoora, Victoria 3083
+Australia
+Tel: +61 3 479 3736
+FAX: +61 3 479 3025
+Email: <G.Tobin@ee.latrobe.edu.au>
+.fi
+.RE
+.PP
+These manual pages were primarily written by
+.RS
+.nf
+Nelson H. F. Beebe, Ph.D.
+Center for Scientific Computing
+Department of Mathematics
+University of Utah
+Salt Lake City, UT 84112
+Tel: +1 801 581 5254
+FAX: +1 801 581 4148
+Email: <beebe@math.utah.edu>
+.fi
+.RE
+.\"==============================[The End]==============================
diff --git a/Build/source/texk/dtl/dvi.doc b/Build/source/texk/dtl/dvi.doc
new file mode 100644
index 00000000000..738d871ba04
--- /dev/null
+++ b/Build/source/texk/dtl/dvi.doc
@@ -0,0 +1,154 @@
+``dvi.doc''
+Mon 27 Feb 1995
+Geoffrey Tobin
+
+Description of the DVI file structure.
+--------------------------------------
+
+Reference:
+----------
+
+ CTAN: dviware/driv-standard/level-0/dvistd0.tex
+
+ "The DVI Driver Standard, Level 0",
+ by The TUG DVI Driver Standards Committee (now defunct)
+ chaired by Joachim Schrod.
+ Appendix A, "Device-Independent File Format",
+ section A.2, "Summary of DVI commands".
+
+
+DVI Commands
+------------
+Listed in the free format:
+"Opcode Symbol Parameter[Signed? Bytes] ... Action".
+
+
+ 0 set_char_0 - set character 0 from current font
+ ...
+ 127 set_char_127 - set character 127 from current font
+
+ 128 set1 c[1] - set 1-byte unsigned character (uchar) number c
+ 129 set2 c[2] - set 2-byte uchar number c
+ 130 set3 c[3] - set 3-byte uchar number c
+ 131 set4 c[+4] - set 4-byte signed character (schar) number c
+
+ 132 set_rule a[+4] b[+4] - set rule, height a, width b
+
+ 133 put1 c[1] - put 1-byte uchar c
+ 134 put2 c[2] - put 2-byte uchar
+ 135 put3 c[3] - put 3-byte uchar
+ 136 put4 c[+4] - put 4-byte schar
+
+ 137 put_rule a[+4] b[+4] - put rule, height a, width b
+
+ 138 nop - do nothing
+
+ 139 bop c0[+4] ... c9[+4] p[+4] - beginning of page
+ 140 eop - end of page
+
+ 141 push - push (h,v,w,x,y,z) onto stack
+ 142 pop - pop (h,v,w,x,y,z) from stack
+
+ 143 right1 b[+1] - move right b units
+ 144 right2 b[+2] - move right b units
+ 145 right3 b[+3] - move right b units
+ 146 right4 b[+4] - move right b units
+
+ 147 w0 - move right w units
+ 148 w1 b[+1] - move right b units, and set w = b
+ 149 w2 b[+2] - move right b units, and set w = b
+ 150 w3 b[+3] - move right b units, and set w = b
+ 151 w4 b[+4] - move right b units, and set w = b
+
+ 152 x0 - move right x units
+ 153 x1 b[+1] - move right b units, and set x = b
+ 154 x2 b[+2] - move right b units, and set x = b
+ 155 x3 b[+3] - move right b units, and set x = b
+ 156 x4 b[+4] - move right b units, and set x = b
+
+ 157 down1 a[+1] - move down a units
+ 158 down2 a[+2] - move down a units
+ 159 down3 a[+3] - move down a units
+ 160 down4 a[+4] - move down a units
+
+ 161 y0 - move right y units
+ 162 y1 a[+1] - move right a units, and set y = a
+ 163 y2 a[+2] - move right a units, and set y = a
+ 164 y3 a[+3] - move right a units, and set y = a
+ 165 y4 a[+4] - move right a units, and set y = a
+
+ 166 z0 - move right z units
+ 167 z1 a[+1] - move right a units, and set z = a
+ 168 z2 a[+2] - move right a units, and set z = a
+ 169 z3 a[+3] - move right a units, and set z = a
+ 170 z4 a[+4] - move right a units, and set z = a
+
+ 171 fnt_num_0 - set current font number (f) = 0
+ ...
+ 234 fnt_num_63 - set f = 63
+
+ 235 fnt1 k[1] - set f = k
+ 236 fnt2 k[2] - set f = k
+ 237 fnt3 k[3] - set f = k
+ 238 fnt4 k[+4] - set f = k
+
+ 239 xxx1 k[1] x[k] - special string x with k bytes
+ 240 xxx2 k[2] x[k] - special string x with k bytes
+ 241 xxx3 k[3] x[k] - special string x with k bytes
+ 242 xxx4 k[4] x[k] - special string x with (unsigned) k bytes
+
+ 243 fnt_def1 k[1] c[4] s[4] d[4] a[1] l[1] n[a+l] - define font k
+ 244 fnt_def2 k[2] c[4] s[4] d[4] a[1] l[1] n[a+l] - define font k
+ 245 fnt_def3 k[3] c[4] s[4] d[4] a[1] l[1] n[a+l] - define font k
+ 246 fnt_def4 k[+4] c[4] s[4] d[4] a[1] l[1] n[a+l] - define font k
+
+ 247 pre i[1] num[4] den[4] mag[4] k[1] x[k] - begin preamble
+
+ 248 post p[4] num[4] den[4] mag[4] l[4] u[4] s[2] t[2] - begin postamble
+ 249 post_post q[4] i[1] 223 ... 223 - end postamble
+
+ 250 - undefined
+ ...
+ 255 - undefined
+
+In bop:
+
+ c0[+4] ... c9[+4] = page counters, \`a la TeX.
+ p[+4] = pointer to previous bop (its byte address); first bop has p = -1 .
+
+In the font definitions:
+
+ c[4] = check sum for TFM file.
+ s[4] = scale factor, in DVI units.
+ d[4] = design size, in DVI units.
+ a[1] = length of the "area" or directory.
+ l[1] = length of the font name.
+ n[a+l] = area and font name string(s).
+
+In the preamble:
+
+ i[1] = DVI format ID = 2, except TeX-XeT has 3.
+ num[4] = numerator of 100 nm / DVI unit.
+ den[4] = denominator of 100 nm / DVI unit.
+ mag[4] = 1000 * magnification.
+ k[1] = comment length.
+ x[k] = comment string.
+
+In the postamble:
+
+ p[4] = pointer to final bop.
+ num[4], den[4], mag[4] = duplicates of values in preamble.
+ l[4] = height-plus-depth of tallest page, in DVI units.
+ u[4] = width of widest page, in DVI units.
+ s[2] = maximum stack depth needed to process this DVI file.
+ t[2] = total number of pages (bop commands) present.
+
+In the post-postamble:
+
+ q[4] = pointer to the "post" command that started the postamble.
+ i[1] = DVI format ID, as in the preamble.
+ 223 ... 223 = at least four "223" bytes.
+
+---------------
+EOF ``dvi.doc''
+---------------
diff --git a/Build/source/texk/dtl/edited.txt b/Build/source/texk/dtl/edited.txt
new file mode 100644
index 00000000000..05126d10395
--- /dev/null
+++ b/Build/source/texk/dtl/edited.txt
@@ -0,0 +1,3854 @@
+variety sequences-6
+pre 2 25400000 473628672 1000 27 '\'TeX output 1995.03.08:2032*ADDED_JUNK*'
+bop 1 0 0 0 0 0 0 0 0 0 -1
+[
+d3 -917504
+]
+d4 45941966
+[
+d4 -44998066
+[
+r4 8497024
+fd1 50 11374260171 1359216 655360 0 5 '~/test/pl/' 'cmr10'
+fn50
+(T)
+[
+r3 -226584
+d3 292608
+(E)
+]
+r3 528538
+(Xnical)
+r3 453072
+(T)
+r3 -37758
+(yp)
+r3 37757
+(esetting)
+]
+d3 6662197
+[
+fd1 23 3274421126 655360 655360 0 6 '' 'cmbx10'
+fn23
+(What)
+w3 251220
+(is)
+w0
+(T)
+[
+r3 -125636
+d3 145635
+(E)
+]
+r3 275315
+(X?)
+]
+z3 1291389
+[
+r3 1310720
+fd1 0 11374260171 655360 655360 0 5 '' 'cmr10'
+fn0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w3 287604
+(\(pronounced)
+w0
+(\\tec)
+x2 -18205
+(k\"\))
+w0
+(is)
+w0
+(a)
+w0
+(computerized)
+w0
+(t)
+x0
+(yp)
+r2 18205
+(esetting)
+w0
+(system)
+w0
+(dev)
+x0
+(elop)
+r2 18205
+(ed)
+w0
+(b)
+x0
+(y)
+w0
+(Donald)
+w0
+(Kn)
+x0
+(uth)
+w0
+(and)
+]
+y3 786432
+[
+(others)
+w3 223564
+(at)
+w0
+(Stanford)
+w0
+(Univ)
+w2 -18205
+(ersit)
+w0
+(y)
+r3 -54614
+(.)
+r3 306603
+(It)
+w3 223564
+(is)
+w0
+(used)
+w0
+(to)
+w0
+(create)
+w0
+(high-qualit)
+x2 -18205
+(y)
+w0
+(do)
+r2 18205
+(cumen)
+x0
+(ts,)
+r3 224841
+(particularly)
+w0
+(those)
+w0
+(con)
+x0
+(taining)
+]
+y0
+[
+(mathematics.)
+r3 372135
+(The)
+w3 245408
+(name)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(is)
+w0
+(an)
+w0
+(upp)
+r2 18205
+(ercase)
+w0
+(form)
+w0
+(of)
+w0
+(the)
+w0
+(Greek)
+w0
+(letters)
+w0
+fd1 6 1350061076 655360 655360 0 6 '' 'cmmi10'
+fn6
+\1C
+r3 74183
+\0F
+\1F
+fn0
+(,)
+r3 252146
+(the)
+w0
+\0C
+(rst)
+w0
+(three)
+w0
+(letters)
+w0
+(of)
+w0
+(a)
+]
+y0
+[
+(Greek)
+w3 211436
+(w)
+x2 -18205
+(ord)
+w0
+(meaning)
+w0
+fd1 33 16053430112 655360 655360 0 6 '' 'cmsl10'
+fn33
+(art)
+w0
+fn0
+(as)
+w0
+(w)
+x0
+(ell)
+w0
+(as)
+w0
+fn33
+(tec)
+x0
+(hnology)
+fn0
+(.)
+r3 288932
+(The)
+w0
+(lo)
+x0
+(w)
+x0
+(ering)
+w0
+(of)
+w0
+(the)
+w0
+(\\E\")
+r3 211429
+(is)
+w0
+(a)
+w0
+(reminder)
+w0
+(that)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(is)
+w0
+(ab)
+r2 18205
+(out)
+]
+y0
+[
+(t)
+w2 -18205
+(yp)
+x2 18205
+(esetting,)
+r3 231398
+(whic)
+w0
+(h)
+w3 228809
+(can)
+w0
+(b)
+x0
+(e)
+w0
+(though)
+r2 -18205
+(t)
+w0
+(of)
+w0
+(as)
+w0
+(the)
+w0
+(next)
+w0
+(stage)
+w0
+(b)
+x0
+(ey)
+x2 -18205
+(ond)
+w0
+(w)
+x0
+(ord)
+w0
+(pro)
+r2 18205
+(cessing.)
+r3 322338
+(On)
+w0
+(devices)
+w0
+(where)
+w0
+(suc)
+x0
+(h)
+]
+y0
+[
+(lo)
+w2 -18205
+(w)
+w0
+(ering)
+w3 218453
+(is)
+w0
+(di)
+\0E
+(cult)
+w0
+(or)
+w0
+(imp)
+r2 18205
+(ossible)
+w0
+(y)
+x2 -18205
+(ou)
+w0
+(ma)
+x0
+(y)
+w0
+(see)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(written)
+w0
+(as)
+w0
+fd1 29 33772436170 655360 655360 0 6 '' 'cmtt10'
+fn29
+(TeX)
+fn0
+(.)
+]
+z0
+[
+r3 1310720
+(Most)
+w3 289550
+(w)
+x2 -18205
+(ord)
+w0
+(pro)
+r2 18205
+(cessors)
+w0
+(allo)
+x0
+(w)
+w0
+(y)
+x0
+(ou)
+w0
+(to)
+w0
+(create)
+w0
+(and)
+w0
+(mo)
+x2 18205
+(dify)
+w0
+(a)
+w0
+(do)
+x0
+(cumen)
+x2 -18205
+(t)
+w0
+(in)
+x0
+(teractiv)
+x0
+(ely)
+w0
+(|)
+w0
+(what)
+w0
+(y)
+x0
+(ou)
+w0
+(see)
+]
+y0
+[
+(on)
+w3 278277
+(the)
+w0
+(screen)
+w0
+(is)
+w0
+(usually)
+w0
+(what)
+w0
+(y)
+x2 -18205
+(our)
+w0
+(output)
+w0
+(will)
+w0
+(lo)
+r2 18205
+(ok)
+w0
+(lik)
+x0
+(e.)
+r3 470743
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(do)
+r2 18205
+(es)
+w0
+fd1 36 37500023472 655360 655360 0 6 '' 'cmti10'
+fn36
+(not)
+w0
+fn0
+(w)
+x0
+(ork)
+w0
+(in)
+w0
+(this)
+w0
+(w)
+x0
+(a)
+x0
+(y)
+r3 -54614
+(.)
+r3 470743
+(Lik)
+x0
+(e)
+w0
+(other)
+]
+y0
+[
+(t)
+x2 -18205
+(yp)
+r2 18205
+(esetting)
+w3 233773
+(systems)
+w0
+(\(suc)
+x0
+(h)
+w0
+(as)
+w0
+(SCRIBE)
+r3 233758
+(and)
+w0
+fn33
+(tro)
+\0B
+r3 126826
+fn0
+(\),)
+r3 237603
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(is)
+w0
+(kno)
+x0
+(wn)
+w0
+(as)
+w0
+(a)
+w0
+(\\do)
+r2 18205
+(cumen)
+x0
+(t)
+w0
+(compiler\".)
+r3 337231
+(Using)
+w0
+(y)
+x0
+(our)
+]
+y0
+[
+(fa)
+w2 -18205
+(v)
+w0
+(ourite)
+w3 208726
+(text)
+w0
+(editor)
+w0
+(y)
+x2 -18205
+(ou)
+w0
+(need)
+w0
+(to)
+w0
+(create)
+w0
+(a)
+w0
+\0C
+(le)
+w0
+(con)
+x0
+(taining)
+w0
+(the)
+w0
+(text)
+w0
+(of)
+w0
+(y)
+x0
+(our)
+w0
+(man)
+x0
+(uscript)
+w0
+(along)
+w0
+(with)
+w0
+(the)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+]
+y0
+[
+(t)
+x2 -18205
+(yp)
+r2 18205
+(esetting)
+w3 180582
+(commands.)
+r3 278648
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(giv)
+x0
+(es)
+w0
+(y)
+x0
+(ou)
+w0
+(the)
+w0
+(abilit)
+x0
+(y)
+w0
+(to)
+w0
+(pro)
+r2 18205
+(duce)
+w0
+(prin)
+x0
+(ted)
+w0
+(matter)
+w0
+(with)
+w0
+(a)
+w0
+(qualit)
+x0
+(y)
+w0
+(matc)
+x0
+(hing)
+w0
+(that)
+]
+y0
+[
+(found)
+w3 229642
+(in)
+w0
+(b)
+w2 18205
+(o)
+w0
+(oks,)
+r3 232439
+(dep)
+w0
+(ending)
+w3 229642
+(on)
+w0
+(the)
+w0
+(output)
+w0
+(device.)
+r3 324837
+(Adelaide)
+w0
+(Univ)
+w2 -18205
+(ersit)
+w0
+(y)
+w3 229642
+(has)
+w0
+(an)
+w0
+fd1 43 21413374024 655360 655360 0 7 '' 'cmcsc10'
+fn43
+(ima)
+r2 -14564
+(gen)
+w0
+fn0
+(laser)
+w0
+(prin)
+r2 -18205
+(ter)
+w0
+(with)
+]
+y0
+[
+(a)
+w3 253600
+(resolution)
+w0
+(of)
+w0
+(240)
+w0
+(dots)
+w0
+(p)
+r2 18205
+(er)
+w0
+(inc)
+x2 -18205
+(h.)
+r3 396711
+(This)
+w0
+(publication)
+w0
+(sho)
+x0
+(ws)
+w0
+(b)
+r2 18205
+(oth)
+w0
+(the)
+w0
+(capabilities)
+w0
+(of)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(and)
+w0
+(the)
+w0
+(output)
+]
+y0
+[
+(qualit)
+x2 -18205
+(y)
+w3 218453
+(of)
+w0
+(the)
+w0
+(laser)
+w0
+(prin)
+x0
+(ter.)
+]
+d3 2000498
+[
+fn23
+(F)
+r3 -62805
+(on)
+r2 -20935
+(ts)
+]
+z0
+[
+r3 1310720
+fn0
+(One)
+w3 191328
+(of)
+w0
+(the)
+w0
+(more)
+w0
+(ob)
+x2 -18205
+(vious)
+w0
+(adv)
+r3 -36409
+(an)
+x0
+(tages)
+w0
+(of)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(is)
+w0
+(the)
+w0
+(large)
+w0
+(range)
+w0
+(of)
+w0
+(fon)
+x0
+(ts)
+w0
+(from)
+w0
+(whic)
+x0
+(h)
+w0
+(y)
+x0
+(ou)
+w0
+(can)
+w0
+(c)
+x0
+(ho)
+r2 18205
+(ose.)
+r3 282230
+(A)
+]
+y0
+[
+(fon)
+x2 -18205
+(t)
+w3 184195
+(is)
+w0
+(a)
+w0
+(collection)
+w0
+(of)
+w0
+(c)
+x0
+(haracters)
+w0
+(eac)
+x0
+(h)
+w0
+(ha)
+x0
+(ving)
+w0
+(a)
+w0
+(similar)
+w0
+(size)
+w0
+(and)
+w0
+(st)
+x0
+(yle.)
+r3 279852
+(Some)
+w0
+(of)
+w0
+(the)
+w0
+(fon)
+x0
+(ts)
+w0
+(curren)
+x0
+(tly)
+w0
+(a)
+x0
+(v)
+r3 -36409
+(ailable)
+]
+y0
+[
+(include:)
+]
+y3 1398888
+[
+[
+w3 1542753
+(roman)
+w0
+fn33
+(slan)
+r2 -18205
+(ted)
+w0
+fn36
+(italic)
+w0
+fn23
+(b)
+r2 20935
+(oldface)
+w0
+fn29
+(typewriter)
+w0
+fd1 19 15510736522 655360 655360 0 6 '' 'cmss10'
+fn19
+(sans)
+r3 218453
+(serif)
+w0
+fn43
+(small)
+r3 247578
+(caps)
+]
+]
+y0
+[
+fn0
+(Man)
+x2 -18205
+(y)
+w3 218453
+(of)
+w0
+(these)
+w0
+(also)
+w0
+(come)
+w0
+(in)
+w0
+(a)
+w0
+(v)
+r3 -36409
+(ariet)
+x0
+(y)
+w0
+(of)
+w0
+(sizes:)
+]
+d3 1749323
+[
+[
+r3 5158746
+fn50
+(from)
+w3 453072
+(the)
+w0
+(v)
+r3 -37758
+(ery)
+w0
+(big)
+fn0
+(,)
+x3 436906
+fd1 1 15755105707 589824 589824 0 4 '' 'cmr9'
+fn1
+(to)
+w3 202068
+(the)
+w0
+(v)
+r2 -16839
+(ery)
+w0
+(small)
+fn0
+(,)
+x0
+fd1 5 20600715532 327680 327680 0 4 '' 'cmr5'
+fn5
+(to)
+w3 154740
+(the)
+w0
+(ridiculous)
+fn0
+(.)
+]
+]
+y0
+[
+(Apart)
+w3 195079
+(from)
+w0
+(a)
+w0
+(large)
+w0
+(selection)
+w0
+(of)
+w0
+(mathematical)
+w0
+(sym)
+w2 -18205
+(b)
+x2 18205
+(ols,)
+r3 199754
+(man)
+w0
+(y)
+w3 195079
+(sp)
+x0
+(ecial)
+w0
+(c)
+x2 -18205
+(haracters)
+w0
+(and)
+w0
+(accen)
+x0
+(ts)
+w0
+(are)
+w0
+(a)
+x0
+(v)
+r3 -36409
+(ailable:)
+]
+y0
+[
+[
+[
+[
+[
+[
+[
+[
+r3 1427428
+d2 -19753
+(c)
+]
+]
+]
+[
+[
+[
+r3 1245383
+fd1 12 4110426232 655360 655360 0 6 '' 'cmsy10'
+fn12
+\0D
+]
+]
+]
+]
+]
+[
+r3 3146127
+fn36
+($)
+]
+[
+[
+r3 4895543
+fn12
+(x)
+]
+]
+[
+[
+r3 6432199
+({)
+]
+]
+[
+[
+r3 8078080
+(y)
+]
+]
+[
+[
+r4 9614734
+(z)
+]
+]
+[
+r4 11151388
+\0E
+]
+[
+r4 12724452
+\0D
+]
+[
+r4 14625196
+( )
+]
+[
+r4 16525940
+(!)
+]
+[
+r4 18426684
+(4)
+]
+[
+r4 20254610
+(|)
+]
+[
+r4 22009719
+fn0
+\12
+r3 -327681
+(a)
+]
+[
+r4 23564578
+\13
+r3 -309476
+(e)
+]
+[
+r4 25119437
+\18
+r3 -291271
+(c)
+]
+[
+r4 26656091
+(^)
+r3 -327681
+(o)
+]
+[
+r4 28247360
+\7F
+r3 -345886
+(u)
+]
+]
+]
+]
+y0
+[
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w3 193975
+(do)
+r2 18205
+(es)
+w0
+(a)
+w0
+(few)
+w0
+(subtle)
+w0
+(things)
+w0
+(automatically)
+r3 -54614
+(.)
+r3 283112
+(Certain)
+w0
+(sequences)
+w0
+(of)
+w0
+(c)
+x2 -18205
+(haracters)
+w0
+(in)
+w0
+(y)
+x0
+(our)
+w0
+(text)
+w0
+(will)
+w0
+(b)
+r2 18205
+(e)
+w0
+(replaced)
+]
+y3 786432
+[
+(b)
+x2 -18205
+(y)
+w3 195273
+fn33
+(ligatures)
+w0
+fn0
+(in)
+w0
+(the)
+w0
+(prin)
+x0
+(ted)
+w0
+(output)
+w0
+(\(consider)
+w0
+(the)
+w0
+(\\)
+fn29
+(ffi)
+fn0
+(\")
+w0
+(in)
+w0
+(\\di)
+\0E
+(cult\"\),)
+r3 199910
+(while)
+w0
+(other)
+w0
+(pairs)
+w0
+(of)
+w0
+(c)
+x0
+(haracters)
+w0
+(need)
+]
+y0
+[
+(to)
+w3 240111
+(b)
+x2 18205
+(e)
+w0
+fn33
+(k)
+r2 -18205
+(erned)
+w0
+fn0
+(\(e.g.,)
+r3 245525
+(the)
+w0
+(\\o\")
+w0
+(and)
+w0
+(\\x\")
+w0
+(in)
+w0
+(\\b)
+x0
+(o)
+r2 -18205
+(x\")
+w0
+(lo)
+x0
+(ok)
+w0
+(b)
+x0
+(etter)
+w0
+(if)
+w0
+(they)
+w0
+(are)
+w0
+(mo)
+w2 -18205
+(v)
+w0
+(ed)
+w3 240111
+(closer)
+w0
+(together\).)
+r3 356245
+(The)
+w0
+(range)
+]
+y0
+[
+(and)
+w3 218453
+(qualit)
+x2 -18205
+(y)
+w0
+(of)
+w0
+(fon)
+x0
+(ts)
+w0
+(a)
+x0
+(v)
+r3 -36409
+(ailable)
+w0
+(will)
+w0
+(con)
+x0
+(tin)
+x0
+(ue)
+w0
+(to)
+w0
+(impro)
+x0
+(v)
+x0
+(e.)
+]
+d3 2000498
+[
+fn23
+(Mathematics)
+]
+z0
+[
+r3 1310720
+fn0
+(A)
+r3 270774
+(ma)
+r3 36408
+(jor)
+w3 270827
+(design)
+w0
+(goal)
+w0
+(of)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(w)
+x2 -18205
+(as)
+w0
+(to)
+w0
+(simplify)
+w0
+(the)
+w0
+(task)
+w0
+(of)
+w0
+(t)
+x0
+(yp)
+r2 18205
+(esetting)
+w0
+(mathematics)
+w0
+(|)
+w0
+(and)
+w0
+(to)
+w0
+(do)
+w0
+(it)
+]
+y0
+[
+(prop)
+x2 18205
+(erly)
+r3 -54614
+(.)
+r3 356376
+(Mathematicians)
+w3 240155
+(will)
+w0
+(b)
+x0
+(e)
+w0
+(pleasan)
+x2 -18205
+(tly)
+w0
+(surprised)
+w0
+(at)
+w0
+(the)
+w0
+(ease)
+w0
+(with)
+w0
+(whic)
+x0
+(h)
+w0
+(form)
+x0
+(ulae)
+w0
+(and)
+w0
+(expressions)
+]
+y0
+[
+(can)
+w3 171378
+(b)
+r2 18205
+(e)
+w0
+(created;)
+r3 187070
+(from)
+w0
+(simple)
+w0
+(in-line)
+w0
+(equations)
+w0
+(suc)
+r2 -18205
+(h)
+w0
+(as)
+w0
+fn6
+(e)
+[
+d3 -237825
+fd1 9 6031313562 458752 458752 0 5 '' 'cmmi7'
+fn9
+(i)
+\19
+]
+r3 723155
+fn0
+(=)
+x3 182040
+fn12
+\00
+fn0
+(1)
+w0
+(and)
+w0
+fn6
+(f)
+[
+d3 98303
+fn9
+(n)
+fd1 3 33144720122 458752 458752 0 4 '' 'cmr7'
+fn3
+(+2)
+]
+r3 1202329
+fn0
+(=)
+x0
+fn6
+(f)
+[
+d3 98303
+fn9
+(n)
+fn3
+(+1)
+]
+r3 1071773
+fn0
+(+)
+r3 51484
+fn6
+(f)
+[
+d3 98303
+fn9
+(n)
+]
+r3 356734
+fn0
+(,)
+r3 180793
+(to)
+w0
+(more)
+w0
+(extra)
+w2 -18205
+(v)
+r3 -36409
+(agan)
+w0
+(t)
+]
+y0
+[
+(displa)
+r2 -18205
+(ys:)
+]
+d3 1283093
+[
+[
+[
+[
+r4 9051774
+d3 -622596
+fd1 18 37254272422 655360 655360 0 6 '' 'cmex10'
+fn18
+(X)
+]
+]
+d3 788255
+[
+r4 9044832
+fn9
+(k)
+r2 11074
+fd1 15 11710361205 458752 458752 0 5 '' 'cmsy7'
+fn15
+\15
+fn3
+(1)
+]
+]
+[
+[
+r4 10114572
+d3 -606895
+fn18
+(p)
+]
+[
+r4 10769933
+d3 -606895
+pr 26213 2515167
+d3 606895
+[
+fn6
+(x)
+[
+d3 98303
+fn9
+(k)
+]
+r3 468080
+fn12
+\00
+[
+r3 145632
+fn0
+(ln)
+]
+r3 800991
+fn6
+(k)
+]
+]
+]
+r4 14122501
+fn12
+(6)
+fn0
+(=)
+[
+r3 837401
+d3 -892025
+fn18
+(Z)
+]
+[
+d3 -730007
+[
+r3 1492762
+fn15
+(1)
+]
+d3 1327120
+[
+r3 1201491
+fn3
+(0)
+]
+]
+[
+[
+[
+d3 -443356
+[
+r3 2235866
+fn6
+(e)
+[
+d3 -237825
+fn15
+\00
+fn9
+(x)
+[
+d3 -197774
+fn5
+(3)
+]
+]
+r3 1140965
+fn0
+(+)
+[
+[
+r3 145632
+d3 -472040
+fn12
+(p)
+]
+[
+r3 691767
+d3 -472040
+pr 26213 374556
+d3 472040
+[
+fn6
+(x)
+]
+]
+]
+]
+r3 2235866
+d3 292622
+pr 26213 3022167
+d3 703781
+[
+[
+[
+r2 29925
+fn0
+(\()
+]
+r3 284788
+(123)
+w3 145632
+fn12
+\00
+w0
+fn6
+(x)
+[
+fn0
+(\))
+]
+]
+[
+r3 2698240
+d3 -329502
+fn3
+(3)
+]
+]
+]
+]
+]
+r3 5445900
+fn6
+(dx)
+]
+d3 1840951
+[
+fn0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w3 234265
+(lo)
+r2 18205
+(oks)
+w0
+(after)
+w0
+(most)
+w0
+(of)
+w0
+(the)
+w0
+(nitt)
+x2 -18205
+(y)
+w0
+(gritt)
+x0
+(y)
+w0
+(details,)
+r3 238217
+(suc)
+x0
+(h)
+w0
+(as)
+w0
+(spacing)
+w0
+(things)
+w0
+(correctly)
+w0
+(and)
+w0
+(c)
+x0
+(ho)
+r2 18205
+(osing)
+w0
+(the)
+w0
+(righ)
+x0
+(t)
+]
+y0
+[
+(sizes)
+w3 219059
+(for)
+w0
+(sup)
+x2 18205
+(erscripts,)
+w3 219210
+(paren)
+r2 -18205
+(theses,)
+w0
+(square)
+w3 219059
+(ro)
+x0
+(ot)
+w0
+(signs)
+w0
+(etc.)
+r3 293088
+(\(The)
+w0
+(disco)
+w2 -18205
+(v)
+w0
+(erer)
+w3 219059
+(of)
+w0
+(the)
+w0
+(ab)
+x0
+(o)
+w2 -18205
+(v)
+w0
+(e)
+w3 219059
+(relation)
+w0
+(wishes)
+w0
+(to)
+]
+y0
+[
+(remain)
+r3 218453
+(anon)
+r2 -18205
+(ymous.\))
+]
+]
+d3 1572864
+[
+r4 14755470
+(1)
+]
+eop
+bop 2 0 0 0 0 0 0 0 0 0 42
+[
+d3 -917504
+]
+d4 45941966
+[
+d4 -45286606
+[
+fn23
+(Alignmen)
+r2 -20935
+(t)
+]
+z3 1310720
+[
+r3 1310720
+fn0
+(The)
+w3 233605
+(preparation)
+w0
+(of)
+w0
+(tabular)
+w0
+(material)
+w0
+(suc)
+r2 -18205
+(h)
+w0
+(as)
+w0
+(in)
+w0
+(lists)
+w0
+(and)
+w0
+(matrices)
+w0
+(can)
+w0
+(b)
+x2 18205
+(e)
+w0
+(a)
+w0
+(tedious)
+w0
+(job)
+w0
+(for)
+w0
+(a)
+w0
+(p)
+x0
+(erson)
+]
+y3 786432
+[
+(armed)
+w3 246414
+(only)
+w0
+(with)
+w0
+(a)
+w0
+(t)
+r2 -18205
+(yp)
+x2 18205
+(ewriter)
+w0
+(and)
+w0
+(a)
+w0
+(b)
+x0
+(ottle)
+w0
+(of)
+w0
+(correction)
+w0
+\0D
+(uid.)
+r3 375153
+(With)
+w0
+(a)
+w0
+(little)
+w0
+(help)
+w0
+(from)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X,)
+w0
+(computers)
+]
+y0
+[
+(can)
+w3 218453
+(mak)
+x2 -18205
+(e)
+w0
+(it)
+w0
+(so)
+w0
+(m)
+x0
+(uc)
+x0
+(h)
+w0
+(easier:)
+]
+d3 4351589
+[
+[
+r3 1026505
+d3 -3473407
+pr 26214 16577003
+z3 557056
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 4548394
+(Oldest)
+x3 218453
+(pla)
+w2 -18205
+(y)
+w0
+(ers)
+x0
+(to)
+x0
+(represen)
+w0
+(t)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 4814178
+(England)
+w3 218453
+(in)
+w0
+(a)
+w0
+(T)
+r3 -54614
+(est)
+w0
+(Matc)
+r2 -18205
+(h)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y3 255590
+pr 26214 16577003
+z0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 2004253
+(Name)
+]
+[
+r3 5638900
+d3 229376
+sr 786432 26214
+]
+[
+r3 7203972
+(Age)
+]
+[
+r4 9853302
+d3 229376
+sr 786432 26214
+]
+[
+r4 12282175
+(V)
+r3 -54614
+(ersus)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+pr 26214 16577003
+z0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 836891
+(W.Rho)
+r2 18205
+(des)
+]
+[
+r3 5638900
+d3 229376
+sr 786432 26214
+]
+[
+r3 6475791
+(52y)
+r3 218453
+(165d)
+]
+[
+r4 9853302
+d3 229376
+sr 786432 26214
+]
+[
+r4 10690193
+(W)
+r3 -54614
+(est)
+w3 218453
+(Indies,)
+w0
+(1930)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+pr 26214 16577003
+z0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 836891
+(W.G.Grace)
+]
+[
+r3 5638900
+d3 229376
+sr 786432 26214
+]
+[
+r3 6475791
+(50y)
+r3 218453
+(320d)
+]
+[
+r4 9853302
+d3 229376
+sr 786432 26214
+]
+[
+r4 11383780
+(Australia,)
+r3 218453
+(1899)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+pr 26214 16577003
+z0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 836891
+(G.Gunn)
+]
+[
+r3 5638900
+d3 229376
+sr 786432 26214
+]
+[
+r3 6475791
+(50y)
+r3 218453
+(303d)
+]
+[
+r4 9853302
+d3 229376
+sr 786432 26214
+]
+[
+r4 10690193
+(W)
+r3 -54614
+(est)
+w3 218453
+(Indies,)
+w0
+(1929)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+pr 26214 16577003
+z0
+[
+[
+d3 229376
+sr 786432 26214
+]
+[
+r3 836891
+(J.Southerton)
+fn1
+(*)
+]
+[
+r3 5638900
+d3 229376
+sr 786432 26214
+]
+[
+r3 6475791
+fn0
+(49y)
+r3 218453
+(139d)
+]
+[
+r4 9853302
+d3 229376
+sr 786432 26214
+]
+[
+r4 11383780
+(Australia,)
+r3 218453
+(1877)
+]
+[
+r4 16550791
+d3 229376
+sr 786432 26214
+]
+]
+y0
+pr 26214 16577003
+d3 753664
+[
+[
+fn1
+(*)
+w3 202068
+(\(This)
+w0
+(w)
+r2 -16839
+(as)
+w0
+(actually)
+w0
+(his)
+w0
+(T)
+r3 -50517
+(est)
+w0
+(debut.\))
+]
+]
+]
+r4 19971651
+fn6
+(A)
+w3 182040
+fn0
+(=)
+[
+[
+d3 -1710506
+[
+w0
+fn18
+(0)
+]
+d3 1153446
+[
+w0
+(B)
+]
+d3 393220
+[
+w0
+(B)
+]
+d3 419433
+[
+w0
+(@)
+]
+]
+[
+d3 -1361692
+[
+[
+r3 966613
+fn6
+(a)
+[
+d3 98303
+fn3
+(11)
+]
+]
+[
+r3 2727444
+fn6
+(a)
+[
+d3 98303
+fn3
+(12)
+]
+]
+[
+[
+r3 4386367
+fn6
+(:)
+w3 109224
+(:)
+w0
+(:)
+]
+]
+[
+r3 5908219
+(a)
+[
+d3 98303
+fn3
+(1)
+fn9
+(n)
+]
+]
+]
+y0
+[
+[
+r3 966613
+fn6
+(a)
+[
+d3 98303
+fn3
+(21)
+]
+]
+[
+r3 2727444
+fn6
+(a)
+[
+d3 98303
+fn3
+(22)
+]
+]
+[
+[
+r3 4386367
+fn6
+(:)
+w3 109224
+(:)
+w0
+(:)
+]
+]
+[
+r3 5908219
+(a)
+[
+d3 98303
+fn3
+(2)
+fn9
+(n)
+]
+]
+]
+d3 1150519
+[
+[
+[
+d3 -524288
+[
+r3 1326418
+fn0
+(.)
+]
+y3 262144
+[
+r3 1326418
+(.)
+]
+y0
+[
+r3 1326418
+(.)
+]
+]
+]
+[
+[
+d3 -524288
+[
+r3 3087249
+(.)
+]
+y3 262144
+[
+r3 3087249
+(.)
+]
+y0
+[
+r3 3087249
+(.)
+]
+]
+]
+[
+[
+[
+d3 -458752
+[
+r3 4422775
+(.)
+]
+]
+[
+r3 4677636
+d3 -262144
+(.)
+]
+[
+r3 4932497
+d3 -65536
+(.)
+]
+]
+]
+[
+[
+d3 -524288
+[
+r3 6299389
+(.)
+]
+y3 262144
+[
+r3 6299389
+(.)
+]
+y0
+[
+r3 6299389
+(.)
+]
+]
+]
+]
+y0
+[
+[
+r3 864705
+fn6
+(a)
+[
+d3 98303
+fn9
+(m)
+fn3
+(1)
+]
+]
+[
+r3 2625536
+fn6
+(a)
+[
+d3 98303
+fn9
+(m)
+fn3
+(2)
+]
+]
+[
+[
+r3 4386367
+fn6
+(:)
+w3 109224
+(:)
+w0
+(:)
+]
+]
+[
+r3 5806311
+(a)
+[
+d3 98303
+fn9
+(mn)
+]
+]
+]
+y0
+]
+[
+d3 -1710506
+[
+r3 7083736
+fn18
+(1)
+]
+d3 1153446
+[
+r3 7083736
+(C)
+]
+d3 393220
+[
+r3 7083736
+(C)
+]
+d3 419433
+[
+r3 7083736
+(A)
+]
+]
+]
+]
+d3 5003308
+[
+fn23
+(Other)
+r3 251220
+(features)
+]
+z0
+[
+r3 1310720
+fn0
+(Space)
+w3 276499
+(do)
+x2 18205
+(es)
+w0
+(not)
+w0
+(p)
+x0
+(ermit)
+w0
+(examples)
+w0
+(of)
+w0
+(all)
+w0
+(the)
+w0
+(things)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(can)
+w0
+(do.)
+r3 465410
+(Here)
+w0
+(are)
+w0
+(some)
+w0
+(more)
+w0
+(features)
+w0
+(y)
+r2 -18205
+(ou)
+]
+y0
+[
+(migh)
+w2 -18205
+(t)
+x3 218453
+(lik)
+w0
+(e)
+x0
+(to)
+x0
+(kno)
+w0
+(w)
+x0
+(ab)
+r2 18205
+(out:)
+]
+z0
+[
+[
+r3 655359
+fn12
+\0F
+]
+r3 1310720
+fn0
+(Multi-column)
+w3 218453
+(output)
+w0
+(can)
+w0
+(b)
+r2 18205
+(e)
+w0
+(generated.)
+]
+y0
+[
+[
+r3 655359
+fn12
+\0F
+]
+r3 1310720
+fn0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w3 161606
+(has)
+w0
+(a)
+w0
+(v)
+x2 -18205
+(ery)
+w0
+(sophisticated)
+w0
+(paragraph)
+w0
+(building)
+w0
+(algorithm)
+w0
+(and)
+w0
+(rarely)
+w0
+(needs)
+w0
+(to)
+w0
+(resort)
+w0
+(to)
+w0
+(h)
+x0
+(yphenation.)
+]
+y0
+[
+r3 1310720
+(P)
+x2 -18205
+(aragraphs)
+w3 218453
+(can)
+w0
+(b)
+r2 18205
+(e)
+w0
+(inden)
+x0
+(ted)
+w0
+(and)
+w0
+(shap)
+r2 18205
+(ed)
+w0
+(in)
+w0
+(man)
+x0
+(y)
+w0
+(di)
+\0B
+(eren)
+x0
+(t)
+w0
+(w)
+x0
+(a)
+x0
+(ys.)
+]
+y0
+[
+[
+r3 655359
+fn12
+\0F
+]
+r3 1310720
+fn0
+(Automatic)
+w3 218453
+(insertion)
+w0
+(of)
+w0
+(fo)
+x2 18205
+(otnotes,)
+[
+fn12
+(y)
+]
+r3 509724
+fn0
+(running)
+w0
+(heads,)
+w0
+(page)
+w0
+(n)
+w2 -18205
+(um)
+w0
+(b)
+x0
+(ers)
+r3 218453
+(etc.)
+]
+y0
+[
+[
+r3 655359
+fn12
+\0F
+]
+r3 1310720
+fn0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w3 247230
+(mak)
+x2 -18205
+(es)
+w0
+(pro)
+x0
+(vision)
+w0
+(for)
+w0
+(generating)
+w0
+(a)
+w0
+(table)
+w0
+(of)
+w0
+(con)
+x0
+(ten)
+x0
+(ts,)
+r3 254424
+(a)
+w0
+(bibliograph)
+x0
+(y)
+r3 -54614
+(,)
+r3 254424
+(ev)
+x0
+(en)
+w0
+(an)
+w0
+(index.)
+r3 377602
+(Automatic)
+]
+y0
+[
+r3 1310720
+(section)
+x3 218453
+(n)
+w2 -18205
+(um)
+w0
+(b)
+w2 18205
+(ering)
+x0
+(and)
+x0
+(cross)
+x0
+(referencing)
+x0
+(are)
+x0
+(also)
+x0
+(p)
+w0
+(ossible.)
+]
+y0
+[
+[
+r3 655359
+fn12
+\0F
+]
+r3 1310720
+fn0
+(A)
+r3 189261
+(p)
+r2 18205
+(o)
+w2 -18205
+(w)
+w0
+(erful)
+w3 189289
+(macro)
+w0
+(facilit)
+x2 -18205
+(y)
+w0
+(is)
+w0
+(built)
+w0
+(in)
+x0
+(to)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X.)
+w0
+(This)
+w0
+(lets)
+w0
+(y)
+x0
+(ou)
+w0
+(do)
+w0
+(some)
+w0
+(v)
+x0
+(ery)
+w0
+(useful)
+w0
+(things,)
+r3 195122
+(lik)
+x0
+(e)
+w0
+(creating)
+w0
+(an)
+]
+y0
+[
+r3 1310720
+(abbreviation)
+w3 207360
+(for)
+w0
+(a)
+w0
+(commonly)
+w0
+(used)
+w0
+(phrase,)
+r3 209578
+(or)
+w0
+(de)
+\0C
+(ning)
+w0
+(a)
+w0
+(new)
+w0
+(command)
+w0
+(that)
+w0
+(will)
+w0
+(ha)
+w2 -18205
+(v)
+w0
+(e)
+w3 207360
+(v)
+r3 -36409
+(arying)
+w0
+(e)
+\0B
+(ects)
+]
+y0
+[
+r3 1310720
+(dep)
+r2 18205
+(ending)
+w3 273457
+(on)
+w0
+(the)
+w0
+(parameters)
+w0
+(it)
+w0
+(is)
+w0
+(giv)
+x2 -18205
+(en.)
+r3 456282
+(A)
+r3 273401
+(macro)
+w0
+(pac)
+x0
+(k)
+r3 -36409
+(age)
+w0
+(can)
+w0
+(enhance)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(b)
+x0
+(y)
+w0
+(making)
+w0
+(it)
+w0
+(m)
+x0
+(uc)
+x0
+(h)
+]
+y0
+[
+r3 1310720
+(easier)
+w3 218453
+(to)
+w0
+(generate)
+w0
+(a)
+w0
+(do)
+r2 18205
+(cumen)
+r2 -18205
+(t)
+w0
+(in)
+w0
+(a)
+w0
+(prede)
+\0C
+(ned)
+w0
+(format.)
+]
+d3 2097152
+[
+fn23
+(What)
+w3 251220
+(CAN'T)
+w0
+(T)
+[
+r3 -125636
+d3 145635
+(E)
+]
+r3 275315
+(X)
+w0
+(do?)
+]
+z0
+[
+r3 1310720
+fn0
+(Complex)
+w3 242946
+(graphics)
+w0
+(suc)
+x2 -18205
+(h)
+w0
+(as)
+w0
+(diagrams)
+w0
+(and)
+w0
+(illustrations)
+w0
+(p)
+r2 18205
+(ose)
+w0
+(a)
+w0
+(ma)
+r3 36408
+(jor)
+w0
+(problem)
+w0
+(|)
+w0
+(at)
+w0
+(the)
+w0
+(momen)
+x0
+(t)
+w0
+(y)
+x0
+(ou)
+]
+y0
+[
+(ha)
+w2 -18205
+(v)
+w0
+(e)
+w3 243107
+(to)
+w0
+(lea)
+w2 -18205
+(v)
+w0
+(e)
+w3 243107
+(an)
+w0
+(appropriate)
+w0
+(amoun)
+r2 -18205
+(t)
+w0
+(of)
+w0
+(blank)
+w0
+(space)
+w0
+(and)
+w0
+(paste)
+w0
+(them)
+w0
+(in)
+w0
+(later.)
+r3 365233
+(Graphic)
+w0
+(facilities)
+w0
+(are)
+w0
+(the)
+]
+y0
+[
+(sub)
+r3 36408
+(ject)
+w3 218453
+(of)
+w0
+(curren)
+x2 -18205
+(t)
+w0
+(researc)
+x0
+(h.)
+]
+d3 2097152
+[
+fn23
+(T)
+[
+r3 -125636
+d3 145635
+(E)
+]
+r3 275315
+(X)
+w3 251220
+(and)
+w0
+(V)
+r3 -83740
+(AX/VMS)
+]
+z0
+[
+r3 1310720
+fn0
+(The)
+w3 185026
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(source)
+w0
+\0C
+(le)
+w0
+(used)
+w0
+(to)
+w0
+(generate)
+w0
+(this)
+w0
+(do)
+r2 18205
+(cumen)
+x2 -18205
+(t)
+w0
+(is)
+w0
+(a)
+x0
+(v)
+r3 -36409
+(ailable)
+w0
+(for)
+w0
+(insp)
+r2 18205
+(ection)
+w0
+(on)
+w0
+(an)
+x0
+(y)
+w0
+(V)
+r3 -72819
+(AX)
+r3 184993
+(no)
+r2 18205
+(de)
+w0
+(that)
+]
+y0
+[
+(has)
+w3 218453
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X|)
+w0
+(just)
+w0
+(t)
+x2 -18205
+(yp)
+r2 18205
+(e)
+w0
+(`)
+fn29
+(scroll)
+r3 344061
+(tex_inputs:example.tex)
+fn0
+('.)
+r3 291271
+(A)
+w0
+(few)
+w0
+(steps)
+w0
+(are)
+w0
+(needed)
+w0
+(to)
+w0
+(prin)
+x0
+(t)
+w0
+(suc)
+x0
+(h)
+w0
+(a)
+w0
+\0C
+(le:)
+]
+z0
+[
+[
+r3 145633
+(\(1\))
+]
+r3 1310720
+(T)
+r2 -18205
+(yp)
+x2 18205
+(e)
+w3 221172
+(`)
+fn29
+(tex)
+r3 344061
+(example)
+fn0
+(')
+w0
+(to)
+w0
+(\\compile\")
+w0
+(the)
+w0
+\0C
+(le.)
+r3 299428
+(\(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(lo)
+x0
+(oks)
+w0
+(for)
+w0
+(a)
+w0
+fn29
+(.tex)
+w0
+fn0
+\0C
+(le)
+w0
+(b)
+r2 -18205
+(y)
+w0
+(default.)
+r3 299428
+(If)
+w0
+(it)
+w0
+(can't)
+w0
+\0C
+(nd)
+w0
+(the)
+]
+y0
+[
+r3 1310720
+(giv)
+x2 -18205
+(en)
+w3 194490
+\0C
+(le)
+w0
+(in)
+w0
+(y)
+x0
+(our)
+w0
+(curren)
+x0
+(t)
+w0
+(directory)
+w0
+(it)
+w0
+(will)
+w0
+(lo)
+r2 18205
+(ok)
+w0
+(in)
+w0
+fn29
+(tex_inputs)
+fn0
+(.\))
+r3 283284
+(Tw)
+x0
+(o)
+w0
+(new)
+w0
+\0C
+(les)
+w0
+(will)
+w0
+(b)
+r2 18205
+(e)
+w0
+(created)
+w0
+(in)
+w0
+(y)
+x0
+(our)
+]
+y0
+[
+r3 1310720
+(curren)
+x2 -18205
+(t)
+w3 231698
+(directory:)
+r3 317761
+fn29
+(example.dvi)
+w0
+fn0
+(and)
+w0
+fn29
+(example.lis)
+fn0
+(.)
+r3 331007
+(The)
+w0
+(former)
+w0
+(is)
+w0
+(a)
+w0
+(device)
+w0
+(indep)
+r2 18205
+(enden)
+x0
+(t)
+w0
+(description)
+]
+y0
+[
+r3 1310720
+(of)
+w3 218453
+(the)
+w0
+(do)
+r2 18205
+(cumen)
+r2 -18205
+(t;)
+w0
+(the)
+w0
+(latter)
+w0
+(is)
+w0
+(simply)
+w0
+(a)
+w0
+(log)
+w0
+(of)
+w0
+(the)
+w0
+(T)
+[
+r3 -109250
+d3 141084
+(E)
+]
+r3 254840
+(X)
+w0
+(run.)
+]
+y0
+[
+[
+r3 145633
+(\(2\))
+]
+r3 1310720
+(T)
+r2 -18205
+(yp)
+x2 18205
+(e)
+w3 186484
+(`)
+fn29
+(dvitovdu)
+r3 344061
+(example)
+fn0
+(')
+w0
+(to)
+w0
+(preview)
+w0
+(the)
+w0
+(do)
+x0
+(cumen)
+r2 -18205
+(t)
+w0
+(on)
+w0
+(a)
+w0
+(terminal)
+w0
+(screen.)
+r3 280615
+(This)
+w0
+(program)
+w0
+(can)
+w0
+(b)
+x0
+(e)
+w0
+(used)
+]
+y0
+[
+r3 1310720
+(to)
+w3 218453
+(detect)
+w0
+(a)
+w0
+(v)
+r3 -36409
+(ariet)
+x2 -18205
+(y)
+w0
+(of)
+w0
+(formatting)
+w0
+(problems,)
+w0
+(sa)
+x0
+(ving)
+w0
+(b)
+x2 18205
+(oth)
+w0
+(time)
+w0
+(and)
+w0
+(pap)
+x0
+(er.)
+]
+y0
+[
+[
+r3 145633
+(\(3\))
+]
+r3 1310720
+(T)
+x2 -18205
+(yp)
+r2 18205
+(e)
+w3 263820
+(`)
+fn29
+(imprint)
+r3 344061
+(example)
+fn0
+(')
+w0
+(to)
+w0
+(prin)
+x0
+(t)
+w0
+(the)
+w0
+(do)
+r2 18205
+(cumen)
+x0
+(t.)
+r3 427373
+(\(Note)
+w0
+(that)
+w0
+(the)
+w0
+(D)
+x0
+(VIto)
+r3 -98300
+(VDU)
+x3 263775
+(and)
+w0
+(IMPRINT)
+x0
+(com-)
+]
+y0
+[
+r3 1310720
+(mands)
+w3 218453
+(accept)
+w0
+(a)
+w0
+fn29
+(.dvi)
+w0
+fn0
+\0C
+(le)
+w0
+(b)
+r2 -18205
+(y)
+w0
+(default\).)
+]
+z0
+[
+r3 1310720
+(Detailed)
+w3 218453
+(help)
+w0
+(on)
+w0
+(all)
+w0
+(these)
+w0
+(commands)
+w0
+(is)
+w0
+(a)
+x2 -18205
+(v)
+r3 -36409
+(ailable)
+w0
+(on-line)
+w0
+(|)
+w0
+(try)
+w0
+(t)
+x0
+(yping)
+w0
+(`)
+fn29
+(help)
+r3 344061
+(tex)
+fn0
+(')
+w0
+(to)
+w0
+(get)
+w0
+(started.)
+]
+d3 4533411
+pr 26214 9472573
+d3 727450
+[
+[
+[
+r3 691769
+fn12
+(y)
+]
+]
+r3 1310720
+fn1
+(Here)
+w3 202068
+(is)
+w0
+(a)
+w0
+(fo)
+r2 16839
+(otnote.)
+]
+]
+d3 1572864
+[
+r4 14755470
+fn0
+(2)
+]
+eop
+post 4784 25400000 473628672 1000 47514830 29838620 9 2
+fd1 50 11374260171 1359216 655360 0 5 '' 'cmr10'
+fd1 43 21413374024 655360 655360 0 7 '' 'cmcsc10'
+fd1 36 37500023472 655360 655360 0 6 '' 'cmti10'
+fd1 33 16053430112 655360 655360 0 6 '' 'cmsl10'
+fd1 29 33772436170 655360 655360 0 6 '' 'cmtt10'
+fd1 23 3274421126 655360 655360 0 6 '' 'cmbx10'
+fd1 19 15510736522 655360 655360 0 6 '' 'cmss10'
+fd1 18 37254272422 655360 655360 0 6 '' 'cmex10'
+fd1 15 11710361205 458752 458752 0 5 '' 'cmsy7'
+fd1 12 4110426232 655360 655360 0 6 '' 'cmsy10'
+fd1 9 6031313562 458752 458752 0 5 '' 'cmmi7'
+fd1 6 1350061076 655360 655360 0 6 '' 'cmmi10'
+fd1 5 20600715532 327680 327680 0 4 '' 'cmr5'
+fd1 3 33144720122 458752 458752 0 4 '' 'cmr7'
+fd1 1 15755105707 589824 589824 0 4 '' 'cmr9'
+fd1 0 11374260171 655360 655360 0 5 '' 'cmr10'
+post_post 9603 2 223 223 223 223 223 223 223
diff --git a/Build/source/texk/dtl/example.tex b/Build/source/texk/dtl/example.tex
new file mode 100644
index 00000000000..858ad3b9bbe
--- /dev/null
+++ b/Build/source/texk/dtl/example.tex
@@ -0,0 +1,232 @@
+% This is the TeX source file for the "TeXnical Typesetting" document.
+% Notice how you can put in comments? If TeX sees a % it simply ignores
+% the rest of the line.
+
+% A4 paper is 8.3in wide and 11.7in high; we set the page dimensions so that
+% there are 1in margins all around:
+\hsize 6.3in % page width
+\vsize 9.7in % page height
+
+\parskip 8pt plus 2pt minus 1pt % glue before a paragraph
+
+% Define a few extra fonts for later use:
+\font\bigrm=cmr10 scaled\magstep4 % big version of the standard roman font
+\font\ninerm=cmr9 % 9pt roman
+\font\fiverm=cmr5 % 5pt roman
+\font\sm=cmcsc10 % caps and small caps
+\font\ss=cmss10 % sans serif
+
+% Here's a macro that we'll use to produce all subheadings:
+\def\subhead#1{\bigskip % extra glue before subheading
+ \noindent{\bf #1}\par % unindented boldface subheading
+ \nobreak} % prevent a page break after subheading
+
+\centerline{\bigrm \TeX nical Typesetting}
+
+\vskip 2.5cm % dimensions can be metric
+
+\subhead{What is \TeX?}
+
+\TeX\ (pronounced ``teck'') is a computerized typesetting system developed by
+Donald Knuth and others at Stanford University. It is used to create
+high-quality documents, particularly those containing mathematics.
+The name \TeX\ is an uppercase form of the Greek letters $\tau\epsilon\chi$,
+the first three letters of a Greek word meaning {\sl art} as well as
+{\sl technology}.
+The lowering of the ``E'' is a reminder that \TeX\ is about typesetting,
+which can be thought of as the next stage beyond word processing.
+On devices where such lowering is difficult or impossible you may see \TeX\
+written as {\tt TeX}.
+
+% the above blank line ends the first paragraph
+
+Most word processors allow you to
+create and modify a document interactively --- what
+you see on the screen is usually what your output will look like.
+\TeX\ does {\it not} work in this way.
+Like other typesetting systems (such as SCRIBE and
+{\sl troff\/}), \TeX\ is known as a ``document compiler''. Using your
+favourite text editor you need to create a file containing the
+text of your manuscript along with the \TeX\ typesetting commands.
+\TeX\ gives you the ability to produce printed matter with a quality
+matching that found in books, depending on the output device.
+Adelaide University has an {\sm imagen} laser printer
+with a resolution of 240 dots per inch.
+This publication shows both the capabilities of \TeX\ and
+the output quality of the laser printer.
+
+\subhead{Fonts}
+
+One of the more obvious advantages of \TeX\ is the large range of fonts from
+which you can choose. A font is a collection of characters each having a
+similar size and style. Some of the fonts currently available include:
+$$ % enter display math mode just to get space above and below \line
+\line
+ {\hfil % infinitely stretchable glue
+ \rm roman\hfil \sl slanted\hfil \it italic\hfil \bf boldface\hfil
+ \tt typewriter\hfil \ss sans serif\hfil \sm small caps\hfil
+ } % take care to ensure each { has a matching }
+$$
+Many of these also come in a variety of sizes:
+$$
+\centerline{{\bigrm from the very big},~ % extra space after comma
+ {\ninerm to the very small},~
+ {\fiverm to the ridiculous}.}
+$$
+Apart from a large selection of mathematical symbols,
+many special characters and accents are available:
+$$
+\vbox
+ {\tabskip 10pt plus 1fil % glue before and after all columns
+ \halign to\hsize
+ {& \hfil#\hfil\cr % specify a variable number of centred columns
+ \copyright& \it\$& \S& \P& \dag& \ddag&
+ $\circ$& $\bigcirc$& % some symbols must be accessed from math mode
+ $\leftarrow$& $\rightarrow$& $\triangle$& $\clubsuit$&
+ \`a& \'e& \c c& \^o& \"u\cr
+ }
+ }
+$$
+\TeX\ does a few subtle things automatically.
+Certain sequences of characters in your text will
+be replaced by {\sl ligatures} in the printed output (consider the ``{\tt ffi}''
+in ``difficult''), while other pairs of characters need to be {\sl kerned}
+(e.g., the ``o'' and ``x'' in ``box'' look better if they are moved closer
+together). The range and quality of fonts available will continue to improve.
+
+\subhead{Mathematics}
+
+A major design goal of \TeX\ was to simplify the task of typesetting
+mathematics --- and to do it properly. Mathematicians will be pleasantly
+surprised at the ease with which formulae and expressions can be created;
+from simple in-line equations
+such as $e^{i\pi}=-1$ and $f_{n+2}=f_{n+1}+f_n$, to more extravagant displays:
+$$
+\sum_{k\ge1} \sqrt{x_k-\ln k}\quad\ne\quad
+\int_{0}^\infty {e^{-x^3}+\sqrt{x} \over \left(123-x\right)^3} \,dx
+$$
+\TeX\ looks after most of the nitty gritty details, such as spacing things
+correctly and choosing the right sizes for superscripts, parentheses,
+square root signs etc. (The discoverer of the above relation wishes to
+remain anonymous.)
+
+\subhead{Alignment}
+
+The preparation of tabular material such as in lists and matrices can be a
+tedious job for a person armed only with a typewriter and a bottle of
+correction fluid. With a little help from \TeX, computers can make it so
+much easier:
+$$
+\vcenter % a vertically centred \vbox
+ {\tabskip 0pt % no space before column 1
+ \halign to 3.5in % width of table
+ {\strut#& % col 1 is a strut
+ \vrule#\tabskip .5em plus2em& % col 2 is a vrule; also set col spacing
+ #\hfil& % col 3 is left justified
+ \vrule#& % col 4 is a vrule
+ \hfil#\hfil& % col 5 is centred
+ \vrule#& % col 6 is a vrule
+ \hfil#& % col 7 is right justified
+ \vrule#\tabskip 0pt % col 8 is a vrule; no space after it
+ \cr % end of the preamble
+ \noalign{\hrule}
+ & & \multispan5 \hfil Oldest players to represent\hfil& \cr
+ & & \multispan5 \hfil England in a Test Match\hfil& \cr
+ \noalign{\hrule}
+ & & \omit\hfil Name\hfil& & % \omit ignores template in preamble
+ \omit\hfil Age\hfil& &
+ \omit\hfil Versus\hfil& \cr
+ \noalign{\hrule}
+ & & W.Rhodes& & 52y 165d& & West Indies, 1930& \cr
+ \noalign{\hrule}
+ & & W.G.Grace& & 50y 320d& & Australia, 1899& \cr
+ \noalign{\hrule}
+ & & G.Gunn& & 50y 303d& & West Indies, 1929& \cr
+ \noalign{\hrule}
+ & & J.Southerton{\ninerm*}& & 49y 139d& & Australia, 1877& \cr
+ \noalign{\hrule\smallskip}
+ & \multispan7\ninerm* (This was actually his Test debut.)\hfil \cr
+ }
+ }
+\hskip .5in % space between table and matrix
+A=\pmatrix % parenthesized matrix
+ {a_{11}& a_{12}& \ldots& a_{1n}\cr
+ a_{21}& a_{22}& \ldots& a_{2n}\cr
+ \vdots& \vdots& \ddots& \vdots\cr
+ a_{m1}& a_{m2}& \ldots& a_{mn}\cr
+ }
+$$
+
+\vskip -\the\belowdisplayskip % avoid too much space below display
+
+\subhead{Other features}
+
+Space does not permit examples of all the things \TeX\ can do. Here are some
+more features you might like to know about:
+
+\item{$\bullet$}
+Multi-column output can be generated.
+
+{\parskip=0pt % temporarily turn off the skipping between paragraphs
+\item{$\bullet$}
+\TeX\ has a very sophisticated paragraph building algorithm and rarely needs
+to resort to hyphenation. Paragraphs can be indented and shaped in many
+different ways.
+
+\item{$\bullet$}
+Automatic insertion of footnotes,\footnote{\dag}{\ninerm Here is
+a footnote.} running heads, page numbers etc.
+
+\item{$\bullet$}
+\TeX\ makes provision for generating a table of contents, a bibliography, even
+an index. Automatic section numbering and cross referencing are also possible.
+
+\item{$\bullet$}
+A powerful macro facility is built into \TeX. This lets you do some very
+useful things, like creating an abbreviation for a commonly used phrase, or
+defining a new command that will have varying effects depending on the
+parameters it is given. A macro package can enhance \TeX\ by making it much
+easier to generate a document in a predefined format.
+\par % end the last paragraph BEFORE ending the group
+} % \parskip will now revert to its previous value
+
+\subhead{What CAN'T \TeX\ do?}
+
+Complex graphics such as diagrams and illustrations pose
+a major problem --- at the moment you have to leave an appropriate amount of
+blank space and paste them in later.
+Graphic facilities are the subject of current research.
+
+\subhead{\TeX\ and VAX/VMS}
+
+The \TeX\ source file used to generate this document is available for
+inspection on any VAX node that has \TeX ---
+just type `{\tt scroll tex\char'137 inputs:example.tex}'.
+A few steps are needed to print such a file:
+
+\item{(1)}
+Type `{\tt tex example}' to ``compile'' the file.
+(\TeX\ looks for a {\tt .tex} file by default. If it can't find the given
+file in your current directory it will look in {\tt tex\char'137 inputs}.)
+Two new files will be created in your current directory:
+{\tt example.dvi} and {\tt example.lis}.
+The former is a device independent description of the document;
+the latter is simply a log of the \TeX\ run.
+
+{\parskip=0pt % temporarily turn off \parskip
+\item{(2)}
+Type `{\tt dvitovdu example}' to preview the document on a terminal screen.
+This program can be used to detect a variety of formatting problems,
+saving both time and paper.
+
+\item{(3)}
+Type `{\tt imprint example}' to print the document.
+(Note that the DVIto\kern-.15em VDU and IMPRINT commands
+accept a {\tt .dvi} file by default).
+
+} % restore \parskip
+
+Detailed help on all these commands is available on-line --- try typing
+`{\tt help tex}' to get started.
+
+\bye
diff --git a/Build/source/texk/dtl/hello.tex b/Build/source/texk/dtl/hello.tex
new file mode 100644
index 00000000000..63f8d5370bd
--- /dev/null
+++ b/Build/source/texk/dtl/hello.tex
@@ -0,0 +1,2 @@
+Hello.
+\bye
diff --git a/Build/source/texk/dtl/man2ps b/Build/source/texk/dtl/man2ps
new file mode 100644
index 00000000000..8d0f2304438
--- /dev/null
+++ b/Build/source/texk/dtl/man2ps
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Filter for converting "troff -mxx" to PostScript. This script is
+# normally linked to the names man2ps, ms2ps, me2ps, and mm2ps.
+#
+# Usage:
+# man2ps [<] cc.1 >cc.ps
+# me2ps [<] foo.me >foo.ps
+# mm2ps [<] foo.mm >foo.ps
+# ms2ps [<] foo.ms >foo.ps
+#
+# [08-May-1993]
+
+# Choose a troff format according to the scrip name.
+case `basename $0` in
+ man*) FORMAT=-man ;;
+ me*) FORMAT=-me ;;
+ mm*) FORMAT=-mm ;;
+ ms*) FORMAT=-ms ;;
+ *) echo "Unknown troff format:" ; exit 1 ;;
+esac
+
+# We can use either GNU groff or Sun Solaris troff + dpost
+if [ -x /usr/local/bin/groff ]
+then # GNU groff
+ TROFF="groff $FORMAT"
+ TROFF2PS="cat"
+elif [ -x /usr/lib/lp/postscript/dpost ]
+then # Solaris 2.1
+ TROFF="troff $FORMAT"
+ TROFF2PS="/usr/lib/lp/postscript/dpost"
+else
+ echo "Cannot find troff-to-PostScript filter"
+ exit 1
+fi
+
+tbl $* | eqn | $TROFF | $TROFF2PS
diff --git a/Build/source/texk/dtl/tripvdu.tex b/Build/source/texk/dtl/tripvdu.tex
new file mode 100644
index 00000000000..e8b92541e8d
--- /dev/null
+++ b/Build/source/texk/dtl/tripvdu.tex
@@ -0,0 +1,279 @@
+% TeX source file for creating TRIPVDU.DVI, a torture file for DVItoVDU
+% (using the same philosophy as Donald Knuth's torture test for TeX).
+
+\nopagenumbers
+\topskip 0pt
+\parindent 0pt
+\parskip 0pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 1
+% This page is completely empty but has some \special stuff.
+
+\message{Empty page.}
+\null
+\special{DVItoVDU should warn user that it is ignoring this stuff.}
+\special{And this.}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 2
+% This page has 1 black pixel at (0,0).
+
+\message{1 black pixel at (0,0).}
+\hrule height 1sp width 1sp depth 0sp
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 3
+% This page will fill an A4 sheet with black pixels, assuming A4 paper is
+% 8.3in by 11.7in and (0,0) is 1in from the top and left edges.
+
+\message{A4 sheet full of black pixels.}
+{% change page size and location temporarily
+\hsize 10in
+\vsize 12in
+\hoffset -1in
+\voffset -1in
+% Because ref pts of rules are at BOTTOM left corner we first need to output
+% a rule that will guarantee Minv = -1in, then output the large rule with
+% slightly less than A4 height.
+\hrule height 1sp width 8.299in depth 0sp
+\hrule height 11.695in width 8.299in depth 0sp
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 4
+% This page is 1 pixel wider than page 3.
+% DVItoVDU should detect that page is too wide for A4 paper.
+
+\message{As above but 1 pixel too wide.}
+\hrule height 1sp width 8.301in depth 0sp
+\hrule height 11.695in width 8.301in depth 0sp
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 5
+% This page is 1 pixel longer than page 3.
+% DVItoVDU should detect that page is too low for A4 paper.
+
+\message{As above but 1 pixel too low.}
+\hrule height 11.701in width 8.299in depth 0sp
+\vfil\eject
+
+}% reset page size and location
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 6
+% This page has a rulelist with a full ruletable (= 300 rules).
+% Note that DVItoVDU does not impose any limits
+% on the number of rules or characters in a page. Pages 6 to 9
+% test the list manipulating code in DVIReader and DVItoVDU.
+
+\message{Page with ruletablesize rules.}
+\newcount\temp
+\temp=300
+\loop\ifnum\temp>0
+ \hrule height 1sp width \hsize % 1 pixel high
+ \vfil
+ \advance\temp by -1
+\repeat
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 7
+% This page has ruletablesize+1 rules (so rulelist has 2 nodes).
+
+\message{Page with ruletablesize+1 rules.}
+\temp=301
+\loop\ifnum\temp>0
+ \hrule height 1sp width \hsize % 1 pixel high
+ \vfil
+ \advance\temp by -1
+\repeat
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 8
+% This page has a charlist with a full chartable (= 3000 characters).
+
+\message{Page with chartablesize characters from one font.}
+\font\small=cmr5
+{\small \offinterlineskip
+ \temp=30
+ \loop\ifnum\temp>0
+ \leftline{iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
+ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii} % 100 chars
+ \advance\temp by -1
+ \repeat
+}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 9
+% This page has chartablesize+1 characters (so charlist has 2 nodes).
+
+\message{Page with chartablesize+1 characters from one font.}
+{\small \offinterlineskip
+ \temp=30
+ \loop\ifnum\temp>0
+ \leftline{iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
+ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii} % 100 chars
+ \advance\temp by -1
+ \repeat
+ \leftline{i} % the extra character
+}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 10
+
+\message{Multiple TeX page counters.}
+\footline={\hss\tenrm\folio\hss} % turn on page numbers
+\pageno=0
+\count1=1 \count2=2 \count3=3 \count4=4 \count9=9
+\noindent
+This is \TeX\ page [0.1.2.3.4.....9].
+\vfil\eject
+
+\count1=0 \count2=0 \count3=0 \count4=0 \count9=0 % reset TeX counters
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 11
+
+\message{Negative TeX page.}
+\pageno=-11
+\noindent
+This is \TeX\ page [-11].
+\vfil\eject
+
+\pageno=12 % DVI page = TeX page again
+\nopagenumbers % turn off page numbers again
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 12
+% This page has characters from many fonts.
+% Note that the page is off the right edge of A4 paper.
+
+\message{Page with characters from many fonts.}
+% avoid redefining plain TeX's \i, \j etc.
+\font\Fb=cmr5
+\font\Fc=cmr5 scaled\magstep5
+\font\Fe=cmr10 scaled\magstep5
+\font\Fg=cmbx10
+\font\Fh=cmbx10 scaled\magstep5
+\font\Fj=cmsl10
+\font\Fk=cmsl10 scaled\magstep5
+\font\Fm=cmtt10
+\font\Fn=cmtt10 scaled\magstep5
+\font\Fo=cmss10
+\font\Fp=cmcsc10
+\font\Fq=cmdunh10
+
+\leftline{\Fb These characters are from CMR5 at mag 1000.}
+\leftline{\Fc These characters are from CMR5 at mag 2488.}
+\leftline{\tenrm These characters are from CMR10 at mag 1000.}
+\leftline{\Fe These characters are from CMR10 at mag 2488.}
+\leftline{\Fg These characters are from CMBX10 at mag 1000.}
+\leftline{\Fh These characters are from CMBX10 at mag 2488.}
+\leftline{\Fj These characters are from CMSL10 at mag 1000.}
+\leftline{\Fk These characters are from CMSL10 at mag 2488.}
+\leftline{\Fm These characters are from CMTT10 at mag 1000.}
+\leftline{\Fn These characters are from CMTT10 at mag 2488.}
+\leftline{\Fo These characters are from CMSS10 at mag 1000.}
+\leftline{\Fp These characters are from CMCSC10 at mag 1000.}
+\leftline{\Fq These characters are from CMDUNH10 at mag 1000.}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 13
+% This page has characters from many fonts, some of which have no corresponding
+% PXL file. DVItoVDU should warn user about non-existent font files and
+% continue as best it can by loading dummy font info.
+% Note that the page is off the right edge of A4 paper.
+
+\message{Page with characters from fonts at unknown magnifications.}
+% PXL files do not exist at the requested magnifications:
+\font\Fr=cmr5 scaled 500
+\font\Fs=cmr5 scaled 3000
+\font\Ft=cmr10 scaled 200
+\font\Fu=cmr10 scaled 5000
+\font\Fv=cmsl10 scaled 49
+\font\Fw=cmsl10 scaled 10000
+
+\leftline{\Fr CMR5 at mag 500 does not exist.}
+\leftline{\Fb These characters are from CMR5 at mag 1000.}
+\leftline{\Fs CMR5 at mag 3000 does not exist.}
+\leftline{\Ft CMR10 at mag 200 does not exist.}
+\leftline{\tenrm These characters are from CMR10 at mag 1000.}
+\leftline{\Fu CMR10 at mag 5000 does not exist.}
+\leftline{\Fv CMSL10 at mag 49 does not exist.}
+\leftline{\Fj These characters are from CMSL10 at mag 1000.}
+\leftline{\Fw CMSL10 at mag 10000 does not exist.}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 14
+% This page has a paragraph illustrating most of the characters from the
+% standard roman TeX text font.
+
+\message{Standard paragraph.}
+\rm
+Our task is to create a paragraph illustrating what a typical piece of text
+looks like in the standard \TeX\ font. It should be stressed that not all
+\TeX\ fonts can be used for typesetting text. We need to show most of the
+characters in this font---for instance, something like ``the quick brown fox
+jumps over a lazy dog'' would use all the lower-case letters. Hmmm \dots\
+how about ``THE QUICK BROWN FOX JUMPS OVER 9876543210 LAZY DOGS'' to make
+sure we show all the upper-case letters and digits? Such a paragraph would
+hardly be typical! Then there's ligatures (try and fit in words like
+fluffy, waffle, firefly, difficult) and examples of kerning (boxer, cooked,
+vowel). Not to mention the various accents and other special letters:
+prot\'eg\'e, r\^ole, na\"\i ve, \AE sop's \OE vres en fran\c cais.
+But how do we put all this stuff into a paragraph that makes sense!?
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 15
+
+\message{Page in bottom half of A4 paper.}
+\null\vfil
+\centerline{Page in bottom half of A4 paper.}
+\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 16
+
+\message{Page completely above left of A4 paper.}
+\voffset -3in
+\hoffset -9in
+\leftline{Page completely above left of A4 paper.}
+\vfil\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 17
+
+\message{Page completely below right of A4 paper.}
+\voffset 3in
+\hoffset 9in
+\null\vfil
+\rightline{Page completely below right of A4 paper.}
+\eject
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DVI page 18
+
+\message{Page beyond all edges of A4 paper.}
+\voffset -3in
+\hoffset -3in
+\vsize 15in
+\hsize 15in
+\line{Page beyond all edges of A4 paper.\hfil
+ Page beyond all edges of A4 paper.}
+\vfil
+\line{Page beyond all edges of A4 paper.\hfil
+ Page beyond all edges of A4 paper.}
+\eject
+\voffset 0in \hoffset 0in % offsets back to normal
+
+\bye
diff --git a/Build/source/texk/dtl/win32.mak b/Build/source/texk/dtl/win32.mak
new file mode 100644
index 00000000000..d33d2ecec8d
--- /dev/null
+++ b/Build/source/texk/dtl/win32.mak
@@ -0,0 +1,114 @@
+################################################################################
+#
+# Makefile : DTL
+# Author : Fabrice Popineau <Fabrice.Popineau@supelec.fr>
+# Platform : Win32, Microsoft VC++ 6.0, depends upon fpTeX 0.5 sources
+# Time-stamp: <02/01/21 08:46:39 popineau>
+#
+################################################################################
+root_srcdir = ..\..
+!ifdef DEVELOPMENT
+INCLUDE=$(INCLUDE);$(root_srcdir)\texk.development
+!else
+INCLUDE=$(INCLUDE);$(root_srcdir)\texk
+!endif
+
+USE_KPATHSEA = 1
+USE_GNUW32 = 1
+
+!include <msvc/common.mak>
+
+DEFS = $(DEFS) -DHAVE_CONFIG_H
+
+programs = $(objdir)\dt2dv.exe $(objdir)\dv2dt.exe
+objects = $(objdir)\dt2dv.obj $(objdir)\dv2dt.obj
+manfiles = dt2dv.1 dv2dt.1
+docfiles = README dtl.doc dvi.doc
+
+default: all
+
+all: $(objdir) $(programs)
+
+$(objdir)\dv2dt.exe: $(objdir)\dv2dt.obj $(kpathsealib)
+ $(link) $(**) $(conlibs)
+
+$(objdir)\dt2dv.exe: $(objdir)\dt2dv.obj $(kpathsealib)
+ $(link) $(**) $(conlibs)
+
+test: hello example tripvdu edited
+
+hello: hello.dtl $(programs)
+ $(objdir)\dt2dv hello.dtl hello2.dvi
+ $(objdir)\dv2dt hello2.dvi hello2.dtl
+ -@diff hello.dtl hello2.dtl > hello.dif
+ type hello.dif
+# @if [ -s hello.dif ] ; \
+# then echo ERROR: differences in hello.dif ; \
+# else $(RM) hello.dif ; \
+# fi
+
+hello.dtl: hello.tex
+ tex hello
+ $(objdir)\dv2dt hello.dvi hello.dtl
+
+example: example.dtl $(programs)
+ $(objdir)\dt2dv example.dtl example2.dvi
+ $(objdir)\dv2dt example2.dvi example2.dtl
+ -@diff example.dtl example2.dtl > example.dif
+ type example.dif
+# @if [ -s example.dif ] ; \
+# then echo ERROR: differences in example.dif ; \
+# else $(RM) example.dif ; \
+# fi
+
+example.dtl: example.tex
+ tex example
+ $(objdir)\dv2dt example.dvi example.dtl
+
+tripvdu: tripvdu.dtl $(programs)
+ $(objdir)\dt2dv tripvdu.dtl tripvdu2.dvi
+ $(objdir)\dv2dt tripvdu2.dvi tripvdu2.dtl
+ -@diff tripvdu.dtl tripvdu2.dtl > tripvdu.dif
+ type tripvdu.dif
+# @if [ -s tripvdu.dif ] ; \
+# then echo ERROR: differences in tripvdu.dif ; \
+# else $(RM) tripvdu.dif ; \
+# fi
+
+tripvdu.dtl: tripvdu.tex
+ tex tripvdu
+ $(objdir)\dv2dt tripvdu.dvi tripvdu.dtl
+
+# edited.txt is already a dtl file.
+
+edited: edited.txt $(programs)
+ $(objdir)\dt2dv edited.txt edited.dvi
+ $(objdir)\dv2dt edited.dvi edited2.dtl
+ -@diff edited.txt edited2.dtl > edited.dif
+ $(objdir)\dt2dv edited2.dtl edited2.dvi
+ $(objdir)\dv2dt edited2.dvi edited3.dtl
+ -@diff edited2.dtl edited3.dtl >> edited.dif
+ type edited.dif
+# @if [ -s edited.dif ] ; \
+# then echo ERROR : differences in edited.dif ; \
+# else $(RM) edited.dif ; \
+# fi
+
+!include <msvc/config.mak>
+
+!include <msvc/install.mak>
+
+install:: install-exec install-man
+
+!include <msvc/clean.mak>
+
+clean::
+ -@$(del) *.log *.dvi *.dtl *.dif
+
+!include <msvc/rdepend.mak>
+!include "./depend.mak"
+
+#
+# Local Variables:
+# mode: makefile
+# End:# End: \ No newline at end of file