diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
commit | 487ca4806cc046076293cf6cc5fbba0db282bac7 (patch) | |
tree | 847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/dtl | |
parent | a3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (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/ChangeLog | 24 | ||||
-rw-r--r-- | Build/source/texk/dtl/Makefile.in | 53 | ||||
-rw-r--r-- | Build/source/texk/dtl/README | 143 | ||||
-rw-r--r-- | Build/source/texk/dtl/c-auto.in | 129 | ||||
-rwxr-xr-x | Build/source/texk/dtl/configure | 7421 | ||||
-rw-r--r-- | Build/source/texk/dtl/configure.in | 14 | ||||
-rw-r--r-- | Build/source/texk/dtl/depend.mak | 38 | ||||
-rw-r--r-- | Build/source/texk/dtl/depend.mk | 4 | ||||
-rw-r--r-- | Build/source/texk/dtl/dt2dv.c | 2868 | ||||
-rw-r--r-- | Build/source/texk/dtl/dt2dv.man | 156 | ||||
-rw-r--r-- | Build/source/texk/dtl/dtl.doc | 77 | ||||
-rw-r--r-- | Build/source/texk/dtl/dtl.h | 177 | ||||
-rw-r--r-- | Build/source/texk/dtl/dv2dt.c | 929 | ||||
-rw-r--r-- | Build/source/texk/dtl/dv2dt.man | 715 | ||||
-rw-r--r-- | Build/source/texk/dtl/dvi.doc | 154 | ||||
-rw-r--r-- | Build/source/texk/dtl/edited.txt | 3854 | ||||
-rw-r--r-- | Build/source/texk/dtl/example.tex | 232 | ||||
-rw-r--r-- | Build/source/texk/dtl/hello.tex | 2 | ||||
-rw-r--r-- | Build/source/texk/dtl/man2ps | 36 | ||||
-rw-r--r-- | Build/source/texk/dtl/tripvdu.tex | 279 | ||||
-rw-r--r-- | Build/source/texk/dtl/win32.mak | 114 |
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 |