---
 configure                                   |   12 
 libs/configure                              |   12 
 texk/configure                              |   12 
 texk/web2c/Makefile.am                      |    3 
 texk/web2c/Makefile.in                      |  746 ++-
 texk/web2c/ac/web2c.ac                      |    1 
 texk/web2c/configure                        |   45 
 texk/web2c/configure.ac                     |    5 
 texk/web2c/cpascal.h                        |    4 
 texk/web2c/jtexdir/ChangeLog                |  143 
 texk/web2c/jtexdir/INSTALL                  |   36 
 texk/web2c/jtexdir/INSTALL.ja               |   43 
 texk/web2c/jtexdir/Makefile.am              |  192 
 texk/web2c/jtexdir/Makefile.in              | 1925 ++++++++
 texk/web2c/jtexdir/README                   |   26 
 texk/web2c/jtexdir/README.ja                |   44 
 texk/web2c/jtexdir/aclocal.m4               |  178 
 texk/web2c/jtexdir/am/jtex.am               |   84 
 texk/web2c/jtexdir/c-auto.in                |  146 
 texk/web2c/jtexdir/config.h                 |  115 
 texk/web2c/jtexdir/configure                | 6228 ++++++++++++++++++++++++++++
 texk/web2c/jtexdir/configure.ac             |  372 +
 texk/web2c/jtexdir/cvtbib.sed               |   12 
 texk/web2c/jtexdir/doc/README-jbib          |   18 
 texk/web2c/jtexdir/doc/jbib-orig/README     |  249 +
 texk/web2c/jtexdir/doc/jbib-orig/README.1st |  169 
 texk/web2c/jtexdir/help.h                   |   54 
 texk/web2c/jtexdir/jbib.c                   |   72 
 texk/web2c/jtexdir/jbib.defines             |    2 
 texk/web2c/jtexdir/jbib.h                   |   39 
 texk/web2c/jtexdir/jbibtex.ch               |  566 ++
 texk/web2c/jtexdir/jbibtex.test             |   23 
 texk/web2c/jtexdir/jconvert                 |  110 
 texk/web2c/jtexdir/jlib.c                   |   81 
 texk/web2c/jtexdir/jtex.ch                  | 3656 ++++++++++++++++
 texk/web2c/jtexdir/jtex.defines             |    6 
 texk/web2c/jtexdir/kanji.c                  |  524 ++
 texk/web2c/jtexdir/kanji.h                  |  107 
 texk/web2c/jtexdir/tests/jbib-new.tex       |   17 
 texk/web2c/jtexdir/tests/jbib-sin.tex       |   12 
 texk/web2c/jtexdir/tests/jexampl.aux        |    6 
 texk/web2c/jtexdir/tests/jexampl.bbl        |  525 ++
 texk/web2c/jtexdir/tests/jexampl.tex        |   36 
 texk/web2c/jtexdir/tests/jplain.bst         | 1392 ++++++
 texk/web2c/jtexdir/tests/jxampl.bib         |  798 +++
 texk/web2c/jtexdir/texmfmp-help.h           |   59 
 texk/web2c/jtexdir/texmfmp.c                | 2396 ++++++++++
 texk/web2c/jtexdir/texmfmp.h                |  584 ++
 texk/web2c/jtexdir/trip.test                |   51 
 texk/web2c/jtexdir/triptrap-j/texmf.cnf     |   97 
 texk/web2c/web2c/splitup.c                  |    3 
 utils/configure                             |   12 
 52 files changed, 21810 insertions(+), 238 deletions(-)

--- texlive-bin.orig/configure
+++ texlive-bin/configure
@@ -810,6 +810,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
+enable_jtex
 enable_ptex
 enable_ptex_synctex
 enable_eptex
@@ -1624,6 +1625,7 @@
   --enable-tex-synctex        build TeX with SyncTeX support
   --enable-etex             compile and install e-TeX
   --disable-etex-synctex      build e-TeX without SyncTeX support
+  --disable-jtex            do not compile and install JTeX
   --disable-ptex            do not compile and install pTeX
   --disable-ptex-synctex      build pTeX without SyncTeX support
   --disable-eptex           do not compile and install e-pTeX
@@ -4548,6 +4550,16 @@
 if test "${enable_etex_synctex+set}" = set; then :
   enableval=$enable_etex_synctex;
 fi
+# Check whether --enable-jtex was given.
+if test "${enable_jtex+set}" = set; then :
+  enableval=$enable_jtex;
+fi
+case $enable_jtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_jtex=yes ;;
+esac
 # Check whether --enable-ptex was given.
 if test "${enable_ptex+set}" = set; then :
   enableval=$enable_ptex;
--- texlive-bin.orig/libs/configure
+++ texlive-bin/libs/configure
@@ -721,6 +721,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
+enable_jtex
 enable_ptex
 enable_ptex_synctex
 enable_eptex
@@ -1529,6 +1530,7 @@
   --enable-tex-synctex        build TeX with SyncTeX support
   --enable-etex             compile and install e-TeX
   --disable-etex-synctex      build e-TeX without SyncTeX support
+  --disable-jtex            do not compile and install JTeX
   --disable-ptex            do not compile and install pTeX
   --disable-ptex-synctex      build pTeX without SyncTeX support
   --disable-eptex           do not compile and install e-pTeX
@@ -3746,6 +3748,16 @@
 if test "${enable_etex_synctex+set}" = set; then :
   enableval=$enable_etex_synctex;
 fi
+# Check whether --enable-jtex was given.
+if test "${enable_jtex+set}" = set; then :
+  enableval=$enable_jtex;
+fi
+case $enable_jtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_jtex=yes ;;
+esac
 # Check whether --enable-ptex was given.
 if test "${enable_ptex+set}" = set; then :
   enableval=$enable_ptex;
--- texlive-bin.orig/texk/configure
+++ texlive-bin/texk/configure
@@ -721,6 +721,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
+enable_jtex
 enable_ptex
 enable_ptex_synctex
 enable_eptex
@@ -1541,6 +1542,7 @@
   --enable-tex-synctex        build TeX with SyncTeX support
   --enable-etex             compile and install e-TeX
   --disable-etex-synctex      build e-TeX without SyncTeX support
+  --disable-jtex            do not compile and install JTeX
   --disable-ptex            do not compile and install pTeX
   --disable-ptex-synctex      build pTeX without SyncTeX support
   --disable-eptex           do not compile and install e-pTeX
@@ -3758,6 +3760,16 @@
 if test "${enable_etex_synctex+set}" = set; then :
   enableval=$enable_etex_synctex;
 fi
+# Check whether --enable-jtex was given.
+if test "${enable_jtex+set}" = set; then :
+  enableval=$enable_jtex;
+fi
+case $enable_jtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_jtex=yes ;;
+esac
 # Check whether --enable-ptex was given.
 if test "${enable_ptex+set}" = set; then :
   enableval=$enable_ptex;
--- texlive-bin.orig/texk/web2c/Makefile.am
+++ texlive-bin/texk/web2c/Makefile.am
@@ -203,6 +203,9 @@
 ## e-TeX
 include $(srcdir)/etexdir/am/etex.am
 
+## e-TeX
+include $(srcdir)/jtexdir/am/jtex.am
+
 ## pTeX
 include $(srcdir)/ptexdir/am/ptex.am
 
--- texlive-bin.orig/texk/web2c/Makefile.in
+++ texlive-bin/texk/web2c/Makefile.in
@@ -95,12 +95,12 @@
 EXTRA_PROGRAMS = $(am__EXEEXT_1) tex$(EXEEXT) mf$(EXEEXT) \
 	mf-nowin$(EXEEXT) mflua$(EXEEXT) mflua-nowin$(EXEEXT) \
 	mfluajit$(EXEEXT) mfluajit-nowin$(EXEEXT) mpost$(EXEEXT) \
-	pmpost$(EXEEXT) upmpost$(EXEEXT) etex$(EXEEXT) ptex$(EXEEXT) \
-	$(am__EXEEXT_2) eptex$(EXEEXT) uptex$(EXEEXT) $(am__EXEEXT_3) \
-	euptex$(EXEEXT) pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
-	pdftosrc$(EXEEXT) luatex$(EXEEXT) luajittex$(EXEEXT) \
-	xetex$(EXEEXT) $(am__EXEEXT_4) aleph$(EXEEXT) synctex$(EXEEXT) \
-	md5main$(EXEEXT)
+	pmpost$(EXEEXT) upmpost$(EXEEXT) etex$(EXEEXT) jtex$(EXEEXT) \
+	jbibtex$(EXEEXT) ptex$(EXEEXT) $(am__EXEEXT_2) eptex$(EXEEXT) \
+	uptex$(EXEEXT) $(am__EXEEXT_3) euptex$(EXEEXT) pdftex$(EXEEXT) \
+	ttf2afm$(EXEEXT) pdftosrc$(EXEEXT) luatex$(EXEEXT) \
+	luajittex$(EXEEXT) xetex$(EXEEXT) $(am__EXEEXT_4) \
+	aleph$(EXEEXT) synctex$(EXEEXT) md5main$(EXEEXT)
 bin_PROGRAMS = tangle$(EXEEXT) ctangle$(EXEEXT) $(am__EXEEXT_5) \
 	ctie$(EXEEXT) cweave$(EXEEXT) tie$(EXEEXT) $(am__EXEEXT_6) \
 	$(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
@@ -110,20 +110,21 @@
 	$(am__EXEEXT_19) $(am__EXEEXT_20) $(am__EXEEXT_21) \
 	$(am__EXEEXT_22) $(am__EXEEXT_23) $(am__EXEEXT_24) \
 	$(am__EXEEXT_25) $(am__EXEEXT_26) $(am__EXEEXT_27) \
-	$(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30)
+	$(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30) \
+	$(am__EXEEXT_31) $(am__EXEEXT_32)
 noinst_PROGRAMS = tangleboot$(EXEEXT) ctangleboot$(EXEEXT) \
-	$(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \
-	$(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \
-	$(am__EXEEXT_37) $(am__EXEEXT_38)
-TESTS = tangle.test $(am__EXEEXT_41) ctiedir/ctie.test \
+	$(am__EXEEXT_33) $(am__EXEEXT_34) $(am__EXEEXT_35) \
+	$(am__EXEEXT_36) $(am__EXEEXT_37) $(am__EXEEXT_38) \
+	$(am__EXEEXT_39) $(am__EXEEXT_40)
+TESTS = tangle.test $(am__EXEEXT_43) ctiedir/ctie.test \
 	cwebdir/cweave.test tiedir/tie.test $(am__append_6) \
 	$(am__append_16) $(am__append_25) $(am__append_34) \
 	$(am__append_42) $(am__append_55) $(am__append_56) \
-	$(am__append_58) $(am__append_63) $(am__append_66) \
-	$(am__append_68) $(am__append_73) $(am__append_76) \
-	$(am__append_78) $(am__append_83) $(am__append_94) \
-	$(am__append_95) $(am__append_102) $(am__append_104) \
-	$(am__append_106) $(am__append_140) libmd5/md5.test
+	$(am__append_58) $(am__append_65) $(am__append_68) \
+	$(am__append_70) $(am__append_75) $(am__append_78) \
+	$(am__append_80) $(am__append_85) $(am__append_96) \
+	$(am__append_97) $(am__append_104) $(am__append_106) \
+	$(am__append_108) $(am__append_142) libmd5/md5.test
 @WEB_TRUE@am__append_1 = $(web_programs)
 @WEB_TRUE@am__append_2 = $(web_tests)
 @TEX_TRUE@am__append_3 = tex
@@ -184,155 +185,157 @@
 @ETEX_TRUE@am__append_58 = $(etex_tests)
 @ETEX_TRUE@am__append_59 = etrip.diffs
 @ETEX_TRUE@am__append_60 = etrip-clean
-@PTEX_TRUE@am__append_61 = ptex
-@PWEB_TRUE@am__append_62 = $(pweb_programs)
-@PTEX_TRUE@am__append_63 = $(ptex_tests)
-@PTEX_TRUE@am__append_64 = ptrip.diffs
-@PTEX_TRUE@am__append_65 = ptrip-clean
-@PWEB_TRUE@am__append_66 = $(pweb_tests)
-@EPTEX_TRUE@am__append_67 = eptex
-@EPTEX_TRUE@am__append_68 = $(eptex_tests)
-@EPTEX_TRUE@am__append_69 = eptrip.diffs
-@EPTEX_TRUE@am__append_70 = eptrip-clean
-@UPTEX_TRUE@am__append_71 = uptex
-@UPWEB_TRUE@am__append_72 = $(upweb_programs)
-@UPTEX_TRUE@am__append_73 = $(uptex_tests)
-@UPTEX_TRUE@am__append_74 = uptrip.diffs
-@UPTEX_TRUE@am__append_75 = uptrip-clean
-@UPWEB_TRUE@am__append_76 = $(upweb_tests)
-@EUPTEX_TRUE@am__append_77 = euptex
-@EUPTEX_TRUE@am__append_78 = $(euptex_tests)
-@EUPTEX_TRUE@am__append_79 = euptrip.diffs
-@EUPTEX_TRUE@am__append_80 = euptrip-clean
-@MINGW32_TRUE@am__append_81 = \
+@JTEX_TRUE@am__append_61 = jtex
+@JBIBTEX_TRUE@am__append_62 = jbibtex
+@PTEX_TRUE@am__append_63 = ptex
+@PWEB_TRUE@am__append_64 = $(pweb_programs)
+@PTEX_TRUE@am__append_65 = $(ptex_tests)
+@PTEX_TRUE@am__append_66 = ptrip.diffs
+@PTEX_TRUE@am__append_67 = ptrip-clean
+@PWEB_TRUE@am__append_68 = $(pweb_tests)
+@EPTEX_TRUE@am__append_69 = eptex
+@EPTEX_TRUE@am__append_70 = $(eptex_tests)
+@EPTEX_TRUE@am__append_71 = eptrip.diffs
+@EPTEX_TRUE@am__append_72 = eptrip-clean
+@UPTEX_TRUE@am__append_73 = uptex
+@UPWEB_TRUE@am__append_74 = $(upweb_programs)
+@UPTEX_TRUE@am__append_75 = $(uptex_tests)
+@UPTEX_TRUE@am__append_76 = uptrip.diffs
+@UPTEX_TRUE@am__append_77 = uptrip-clean
+@UPWEB_TRUE@am__append_78 = $(upweb_tests)
+@EUPTEX_TRUE@am__append_79 = euptex
+@EUPTEX_TRUE@am__append_80 = $(euptex_tests)
+@EUPTEX_TRUE@am__append_81 = euptrip.diffs
+@EUPTEX_TRUE@am__append_82 = euptrip-clean
+@MINGW32_TRUE@am__append_83 = \
 @MINGW32_TRUE@	pdftexdir/regex/regex.c \
 @MINGW32_TRUE@	pdftexdir/regex/regex.h
 
-@PDFTEX_TRUE@am__append_82 = pdftex ttf2afm pdftosrc
-@PDFTEX_TRUE@am__append_83 = $(pdftex_tests) $(ttf2afm_tests) \
+@PDFTEX_TRUE@am__append_84 = pdftex ttf2afm pdftosrc
+@PDFTEX_TRUE@am__append_85 = $(pdftex_tests) $(ttf2afm_tests) \
 @PDFTEX_TRUE@	$(pdftosrc_tests)
-@LUATEX_TRUE@am__append_84 = luatex
-@LUATEX_TRUE@@WIN32_TRUE@am__append_85 = call_luatex
-@LUATEX_TRUE@@WIN32_TRUE@am__append_86 = install-luatex-links
-@LUATEX_TRUE@@WIN32_TRUE@am__append_87 = uninstall-luatex-links
-@LUATEX_TRUE@@WIN32_FALSE@am__append_88 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
-@LUAJITTEX_TRUE@am__append_89 = luajittex
-@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_90 = call_luajittex
-@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_91 = install-luajittex-links
-@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_92 = uninstall-luajittex-links
-@LUAJITTEX_TRUE@@WIN32_FALSE@am__append_93 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
-@LUATEX_TRUE@am__append_94 = $(luatex_tests)
-@LUAJITTEX_TRUE@am__append_95 = $(luajittex_tests)
-@XETEX_TRUE@am__append_96 = xetex
-@XETEX_MACOSX_TRUE@am__append_97 = -DXETEX_MAC
-@XETEX_MACOSX_FALSE@am__append_98 = $(FONTCONFIG_INCLUDES)
-@XETEX_MACOSX_FALSE@am__append_99 = $(FONTCONFIG_LIBS)
-@XETEX_MACOSX_TRUE@am__append_100 = \
+@LUATEX_TRUE@am__append_86 = luatex
+@LUATEX_TRUE@@WIN32_TRUE@am__append_87 = call_luatex
+@LUATEX_TRUE@@WIN32_TRUE@am__append_88 = install-luatex-links
+@LUATEX_TRUE@@WIN32_TRUE@am__append_89 = uninstall-luatex-links
+@LUATEX_TRUE@@WIN32_FALSE@am__append_90 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
+@LUAJITTEX_TRUE@am__append_91 = luajittex
+@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_92 = call_luajittex
+@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_93 = install-luajittex-links
+@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_94 = uninstall-luajittex-links
+@LUAJITTEX_TRUE@@WIN32_FALSE@am__append_95 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
+@LUATEX_TRUE@am__append_96 = $(luatex_tests)
+@LUAJITTEX_TRUE@am__append_97 = $(luajittex_tests)
+@XETEX_TRUE@am__append_98 = xetex
+@XETEX_MACOSX_TRUE@am__append_99 = -DXETEX_MAC
+@XETEX_MACOSX_FALSE@am__append_100 = $(FONTCONFIG_INCLUDES)
+@XETEX_MACOSX_FALSE@am__append_101 = $(FONTCONFIG_LIBS)
+@XETEX_MACOSX_TRUE@am__append_102 = \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.cpp \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.mm \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeX_mac.c
 
-@XETEX_MACOSX_FALSE@am__append_101 = \
+@XETEX_MACOSX_FALSE@am__append_103 = \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.cpp \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.h
 
-@XETEX_TRUE@am__append_102 = $(xetex_tests)
-@OTANGLE_TRUE@am__append_103 = $(omegaware_programs)
-@OTANGLE_TRUE@am__append_104 = $(OTANGLE_tests) $(OMFONTS_tests)
-@ALEPH_TRUE@am__append_105 = aleph
-@ALEPH_TRUE@am__append_106 = $(aleph_tests)
-@SYNCTEX_TRUE@am__append_107 = synctex
-@SYNCTEX_TRUE@am__append_108 = $(LTLIBSYNCTEX)
-@SYNCTEX_TRUE@am__append_109 = $(LIBSYNCTEX)
-@MINGW32_TRUE@am__append_110 = -lshlwapi
-@MINGW32_TRUE@am__append_111 = -lshlwapi
-@TEX_SYNCTEX_TRUE@am__append_112 = -I$(srcdir)/synctexdir \
+@XETEX_TRUE@am__append_104 = $(xetex_tests)
+@OTANGLE_TRUE@am__append_105 = $(omegaware_programs)
+@OTANGLE_TRUE@am__append_106 = $(OTANGLE_tests) $(OMFONTS_tests)
+@ALEPH_TRUE@am__append_107 = aleph
+@ALEPH_TRUE@am__append_108 = $(aleph_tests)
+@SYNCTEX_TRUE@am__append_109 = synctex
+@SYNCTEX_TRUE@am__append_110 = $(LTLIBSYNCTEX)
+@SYNCTEX_TRUE@am__append_111 = $(LIBSYNCTEX)
+@MINGW32_TRUE@am__append_112 = -lshlwapi
+@MINGW32_TRUE@am__append_113 = -lshlwapi
+@TEX_SYNCTEX_TRUE@am__append_114 = -I$(srcdir)/synctexdir \
 @TEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @TEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-tex.h\"
-@TEX_SYNCTEX_TRUE@am__append_113 = $(ZLIB_LIBS)
-@TEX_SYNCTEX_TRUE@am__append_114 = $(ZLIB_DEPEND)
-@TEX_SYNCTEX_TRUE@am__append_115 = \
+@TEX_SYNCTEX_TRUE@am__append_115 = $(ZLIB_LIBS)
+@TEX_SYNCTEX_TRUE@am__append_116 = $(ZLIB_DEPEND)
+@TEX_SYNCTEX_TRUE@am__append_117 = \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-tex.h
 
-@ETEX_SYNCTEX_TRUE@am__append_116 = -I$(srcdir)/synctexdir \
+@ETEX_SYNCTEX_TRUE@am__append_118 = -I$(srcdir)/synctexdir \
 @ETEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @ETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-etex.h\"
-@ETEX_SYNCTEX_TRUE@am__append_117 = $(ZLIB_LIBS)
-@ETEX_SYNCTEX_TRUE@am__append_118 = $(ZLIB_DEPEND)
-@ETEX_SYNCTEX_TRUE@am__append_119 = \
+@ETEX_SYNCTEX_TRUE@am__append_119 = $(ZLIB_LIBS)
+@ETEX_SYNCTEX_TRUE@am__append_120 = $(ZLIB_DEPEND)
+@ETEX_SYNCTEX_TRUE@am__append_121 = \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-etex.h
 
-@PTEX_SYNCTEX_TRUE@am__append_120 = -I$(srcdir)/synctexdir \
+@PTEX_SYNCTEX_TRUE@am__append_122 = -I$(srcdir)/synctexdir \
 @PTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @PTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-ptex.h\"
-@PTEX_SYNCTEX_TRUE@am__append_121 = $(ZLIB_LIBS)
-@PTEX_SYNCTEX_TRUE@am__append_122 = $(ZLIB_DEPEND)
-@PTEX_SYNCTEX_TRUE@am__append_123 = \
+@PTEX_SYNCTEX_TRUE@am__append_123 = $(ZLIB_LIBS)
+@PTEX_SYNCTEX_TRUE@am__append_124 = $(ZLIB_DEPEND)
+@PTEX_SYNCTEX_TRUE@am__append_125 = \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-ptex.h
 
-@UPTEX_SYNCTEX_TRUE@am__append_124 = -I$(srcdir)/synctexdir \
+@UPTEX_SYNCTEX_TRUE@am__append_126 = -I$(srcdir)/synctexdir \
 @UPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @UPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-uptex.h\"
-@UPTEX_SYNCTEX_TRUE@am__append_125 = $(ZLIB_LIBS)
-@UPTEX_SYNCTEX_TRUE@am__append_126 = $(ZLIB_DEPEND)
-@UPTEX_SYNCTEX_TRUE@am__append_127 = \
+@UPTEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_LIBS)
+@UPTEX_SYNCTEX_TRUE@am__append_128 = $(ZLIB_DEPEND)
+@UPTEX_SYNCTEX_TRUE@am__append_129 = \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-uptex.h
 
-@EPTEX_SYNCTEX_TRUE@am__append_128 = -I$(srcdir)/synctexdir \
+@EPTEX_SYNCTEX_TRUE@am__append_130 = -I$(srcdir)/synctexdir \
 @EPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-eptex.h\"
-@EPTEX_SYNCTEX_TRUE@am__append_129 = $(ZLIB_LIBS)
-@EPTEX_SYNCTEX_TRUE@am__append_130 = $(ZLIB_DEPEND)
-@EPTEX_SYNCTEX_TRUE@am__append_131 = \
+@EPTEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_LIBS)
+@EPTEX_SYNCTEX_TRUE@am__append_132 = $(ZLIB_DEPEND)
+@EPTEX_SYNCTEX_TRUE@am__append_133 = \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-eptex.h
 
-@EUPTEX_SYNCTEX_TRUE@am__append_132 = -I$(srcdir)/synctexdir \
+@EUPTEX_SYNCTEX_TRUE@am__append_134 = -I$(srcdir)/synctexdir \
 @EUPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EUPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-euptex.h\"
-@EUPTEX_SYNCTEX_TRUE@am__append_133 = $(ZLIB_LIBS)
-@EUPTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_DEPEND)
-@EUPTEX_SYNCTEX_TRUE@am__append_135 = \
+@EUPTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_LIBS)
+@EUPTEX_SYNCTEX_TRUE@am__append_136 = $(ZLIB_DEPEND)
+@EUPTEX_SYNCTEX_TRUE@am__append_137 = \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-euptex.h
 
-@PDFTEX_SYNCTEX_TRUE@am__append_136 = -I$(srcdir)/synctexdir \
+@PDFTEX_SYNCTEX_TRUE@am__append_138 = -I$(srcdir)/synctexdir \
 @PDFTEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @PDFTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-pdftex.h\"
-@PDFTEX_SYNCTEX_TRUE@am__append_137 = \
+@PDFTEX_SYNCTEX_TRUE@am__append_139 = \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-pdftex.h
 
-@XETEX_SYNCTEX_TRUE@am__append_138 = -I$(srcdir)/synctexdir \
+@XETEX_SYNCTEX_TRUE@am__append_140 = -I$(srcdir)/synctexdir \
 @XETEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @XETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-xetex.h\"
-@XETEX_SYNCTEX_TRUE@am__append_139 = \
+@XETEX_SYNCTEX_TRUE@am__append_141 = \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-xetex.h
 
-@SYNCTEX_TRUE@am__append_140 = $(synctex_tests)
+@SYNCTEX_TRUE@am__append_142 = $(synctex_tests)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \
@@ -957,28 +960,30 @@
 @PMP_TRUE@am__EXEEXT_15 = pmpost$(EXEEXT)
 @UPMP_TRUE@am__EXEEXT_16 = upmpost$(EXEEXT)
 @ETEX_TRUE@am__EXEEXT_17 = etex$(EXEEXT)
-@PTEX_TRUE@am__EXEEXT_18 = ptex$(EXEEXT)
-@PWEB_TRUE@am__EXEEXT_19 = $(am__EXEEXT_2)
-@EPTEX_TRUE@am__EXEEXT_20 = eptex$(EXEEXT)
-@UPTEX_TRUE@am__EXEEXT_21 = uptex$(EXEEXT)
-@UPWEB_TRUE@am__EXEEXT_22 = $(am__EXEEXT_3)
-@EUPTEX_TRUE@am__EXEEXT_23 = euptex$(EXEEXT)
-@PDFTEX_TRUE@am__EXEEXT_24 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
+@JTEX_TRUE@am__EXEEXT_18 = jtex$(EXEEXT)
+@JBIBTEX_TRUE@am__EXEEXT_19 = jbibtex$(EXEEXT)
+@PTEX_TRUE@am__EXEEXT_20 = ptex$(EXEEXT)
+@PWEB_TRUE@am__EXEEXT_21 = $(am__EXEEXT_2)
+@EPTEX_TRUE@am__EXEEXT_22 = eptex$(EXEEXT)
+@UPTEX_TRUE@am__EXEEXT_23 = uptex$(EXEEXT)
+@UPWEB_TRUE@am__EXEEXT_24 = $(am__EXEEXT_3)
+@EUPTEX_TRUE@am__EXEEXT_25 = euptex$(EXEEXT)
+@PDFTEX_TRUE@am__EXEEXT_26 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 @PDFTEX_TRUE@	pdftosrc$(EXEEXT)
-@LUATEX_TRUE@am__EXEEXT_25 = luatex$(EXEEXT)
-@LUAJITTEX_TRUE@am__EXEEXT_26 = luajittex$(EXEEXT)
-@XETEX_TRUE@am__EXEEXT_27 = xetex$(EXEEXT)
-@OTANGLE_TRUE@am__EXEEXT_28 = $(am__EXEEXT_4)
-@ALEPH_TRUE@am__EXEEXT_29 = aleph$(EXEEXT)
-@SYNCTEX_TRUE@am__EXEEXT_30 = synctex$(EXEEXT)
-@MF_TRUE@@WIN32_TRUE@am__EXEEXT_31 = call_mf$(EXEEXT)
-@MFLUA_TRUE@@WIN32_TRUE@am__EXEEXT_32 = call_mflua$(EXEEXT)
-@MFLUAJIT_TRUE@@WIN32_TRUE@am__EXEEXT_33 = call_mfluajit$(EXEEXT)
-@MP_TRUE@@WIN32_TRUE@am__EXEEXT_34 = call_mpost$(EXEEXT)
-@PMP_TRUE@@WIN32_TRUE@am__EXEEXT_35 = call_pmpost$(EXEEXT)
-@UPMP_TRUE@@WIN32_TRUE@am__EXEEXT_36 = call_upmpost$(EXEEXT)
-@LUATEX_TRUE@@WIN32_TRUE@am__EXEEXT_37 = call_luatex$(EXEEXT)
-@LUAJITTEX_TRUE@@WIN32_TRUE@am__EXEEXT_38 = call_luajittex$(EXEEXT)
+@LUATEX_TRUE@am__EXEEXT_27 = luatex$(EXEEXT)
+@LUAJITTEX_TRUE@am__EXEEXT_28 = luajittex$(EXEEXT)
+@XETEX_TRUE@am__EXEEXT_29 = xetex$(EXEEXT)
+@OTANGLE_TRUE@am__EXEEXT_30 = $(am__EXEEXT_4)
+@ALEPH_TRUE@am__EXEEXT_31 = aleph$(EXEEXT)
+@SYNCTEX_TRUE@am__EXEEXT_32 = synctex$(EXEEXT)
+@MF_TRUE@@WIN32_TRUE@am__EXEEXT_33 = call_mf$(EXEEXT)
+@MFLUA_TRUE@@WIN32_TRUE@am__EXEEXT_34 = call_mflua$(EXEEXT)
+@MFLUAJIT_TRUE@@WIN32_TRUE@am__EXEEXT_35 = call_mfluajit$(EXEEXT)
+@MP_TRUE@@WIN32_TRUE@am__EXEEXT_36 = call_mpost$(EXEEXT)
+@PMP_TRUE@@WIN32_TRUE@am__EXEEXT_37 = call_pmpost$(EXEEXT)
+@UPMP_TRUE@@WIN32_TRUE@am__EXEEXT_38 = call_upmpost$(EXEEXT)
+@LUATEX_TRUE@@WIN32_TRUE@am__EXEEXT_39 = call_luatex$(EXEEXT)
+@LUAJITTEX_TRUE@@WIN32_TRUE@am__EXEEXT_40 = call_luajittex$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 dist_aleph_OBJECTS = alephdir/aleph-aleph.$(OBJEXT) \
 	alephdir/aleph-alephbis.$(OBJEXT) \
@@ -1091,9 +1096,24 @@
 nodist_initex_OBJECTS = initex-callexe.$(OBJEXT)
 initex_OBJECTS = $(nodist_initex_OBJECTS)
 initex_DEPENDENCIES =
-am__objects_32 = luatexdir/luajittex-luatex.$(OBJEXT) \
+am_jbibtex_OBJECTS =
+dist_jbibtex_OBJECTS = jtexdir/jbibtex-jbib.$(OBJEXT)
+nodist_jbibtex_OBJECTS = jbibtex-jbibtex.$(OBJEXT) \
+	jtexdir/jbibtex-bibkanji.$(OBJEXT) \
+	jtexdir/jbibtex-jlib.$(OBJEXT)
+jbibtex_OBJECTS = $(am_jbibtex_OBJECTS) $(dist_jbibtex_OBJECTS) \
+	$(nodist_jbibtex_OBJECTS)
+jbibtex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+dist_jtex_OBJECTS = jtexdir/jtex-jlib.$(OBJEXT)
+am__objects_32 = jtex-jtexini.$(OBJEXT) jtex-jtex0.$(OBJEXT)
+nodist_jtex_OBJECTS = $(am__objects_32) jtex-jtex-pool.$(OBJEXT) \
+	jtexdir/jtex-jtexextra.$(OBJEXT) \
+	jtexdir/jtex-texkanji.$(OBJEXT)
+jtex_OBJECTS = $(dist_jtex_OBJECTS) $(nodist_jtex_OBJECTS)
+jtex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+am__objects_33 = luatexdir/luajittex-luatex.$(OBJEXT) \
 	mplibdir/luajittex-lmplib.$(OBJEXT)
-nodist_luajittex_OBJECTS = $(am__objects_32)
+nodist_luajittex_OBJECTS = $(am__objects_33)
 luajittex_OBJECTS = $(nodist_luajittex_OBJECTS)
 am__DEPENDENCIES_6 = libmplib.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1104,9 +1124,9 @@
 luajittex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luajittex_CXXFLAGS) \
 	$(CXXFLAGS) $(luajittex_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_33 = luatexdir/luatex-luatex.$(OBJEXT) \
+am__objects_34 = luatexdir/luatex-luatex.$(OBJEXT) \
 	mplibdir/luatex-lmplib.$(OBJEXT)
-nodist_luatex_OBJECTS = $(am__objects_33)
+nodist_luatex_OBJECTS = $(am__objects_34)
 luatex_OBJECTS = $(nodist_luatex_OBJECTS)
 am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
 luatex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -1133,8 +1153,8 @@
 mflua_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mflua_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_34 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
-nodist_mflua_nowin_OBJECTS = $(am__objects_34)
+am__objects_35 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
+nodist_mflua_nowin_OBJECTS = $(am__objects_35)
 mflua_nowin_OBJECTS = $(nodist_mflua_nowin_OBJECTS)
 mflua_nowin_DEPENDENCIES = libmflua.a $(am__DEPENDENCIES_2) \
 	$(windowlib) $(am__DEPENDENCIES_7)
@@ -1148,8 +1168,8 @@
 mfluajit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mfluajit_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_35 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
-nodist_mfluajit_nowin_OBJECTS = $(am__objects_35)
+am__objects_36 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
+nodist_mfluajit_nowin_OBJECTS = $(am__objects_36)
 mfluajit_nowin_OBJECTS = $(nodist_mfluajit_nowin_OBJECTS)
 mfluajit_nowin_DEPENDENCIES = libmfluajit.a $(am__DEPENDENCIES_2) \
 	$(windowlib) $(am__DEPENDENCIES_1)
@@ -1161,8 +1181,8 @@
 mft_OBJECTS = $(nodist_mft_OBJECTS)
 mft_LDADD = $(LDADD)
 mft_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_36 = mpost-mpxout.$(OBJEXT)
-nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_36)
+am__objects_37 = mpost-mpxout.$(OBJEXT)
+nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_37)
 mpost_OBJECTS = $(nodist_mpost_OBJECTS)
 mpost_DEPENDENCIES = libmplib.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1194,12 +1214,12 @@
 	pdftexdir/etex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-pdftex.h
-@PDFTEX_SYNCTEX_TRUE@am__objects_37 =  \
+@PDFTEX_SYNCTEX_TRUE@am__objects_38 =  \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/pdftex-synctex.$(OBJEXT)
 dist_pdftex_OBJECTS = pdftexdir/pdftex-pdftexextra.$(OBJEXT) \
-	$(am__objects_37)
-am__objects_38 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
-nodist_pdftex_OBJECTS = $(am__objects_38) pdftex-pdftex-pool.$(OBJEXT)
+	$(am__objects_38)
+am__objects_39 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
+nodist_pdftex_OBJECTS = $(am__objects_39) pdftex-pdftex-pool.$(OBJEXT)
 pdftex_OBJECTS = $(dist_pdftex_OBJECTS) $(nodist_pdftex_OBJECTS)
 am__DEPENDENCIES_10 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) libmd5.a
@@ -1226,20 +1246,20 @@
 pltotf_OBJECTS = $(nodist_pltotf_OBJECTS)
 pltotf_LDADD = $(LDADD)
 pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_39 = pmpost-pmp.$(OBJEXT)
-am__objects_40 = pmpost-pmpmath.$(OBJEXT)
-am__objects_41 = pmpost-pmpmathbinary.$(OBJEXT)
-am__objects_42 = pmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_43 = pmpost-pmpmathdouble.$(OBJEXT)
-am__objects_44 = pmpost-pmpstrings.$(OBJEXT)
-am__objects_45 = pmpost-pmpxout.$(OBJEXT)
-am__objects_46 = pmpost-ppngout.$(OBJEXT)
-am__objects_47 = pmpost-ppsout.$(OBJEXT)
-am__objects_48 = pmpost-psvgout.$(OBJEXT)
-nodist_pmpost_OBJECTS = $(am__objects_39) $(am__objects_40) \
-	$(am__objects_41) $(am__objects_42) $(am__objects_43) \
-	pmpost-pmpost.$(OBJEXT) $(am__objects_44) $(am__objects_45) \
-	$(am__objects_46) $(am__objects_47) $(am__objects_48) \
+am__objects_40 = pmpost-pmp.$(OBJEXT)
+am__objects_41 = pmpost-pmpmath.$(OBJEXT)
+am__objects_42 = pmpost-pmpmathbinary.$(OBJEXT)
+am__objects_43 = pmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_44 = pmpost-pmpmathdouble.$(OBJEXT)
+am__objects_45 = pmpost-pmpstrings.$(OBJEXT)
+am__objects_46 = pmpost-pmpxout.$(OBJEXT)
+am__objects_47 = pmpost-ppngout.$(OBJEXT)
+am__objects_48 = pmpost-ppsout.$(OBJEXT)
+am__objects_49 = pmpost-psvgout.$(OBJEXT)
+nodist_pmpost_OBJECTS = $(am__objects_40) $(am__objects_41) \
+	$(am__objects_42) $(am__objects_43) $(am__objects_44) \
+	pmpost-pmpost.$(OBJEXT) $(am__objects_45) $(am__objects_46) \
+	$(am__objects_47) $(am__objects_48) $(am__objects_49) \
 	pmpost-ptfmin.$(OBJEXT)
 pmpost_OBJECTS = $(nodist_pmpost_OBJECTS)
 pmpost_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1257,10 +1277,10 @@
 	ptexdir/ptex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-ptex.h
-@PTEX_SYNCTEX_TRUE@am__objects_49 = synctexdir/ptex-synctex.$(OBJEXT)
-dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_49)
-am__objects_50 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
-nodist_ptex_OBJECTS = $(am__objects_50) ptex-ptex-pool.$(OBJEXT)
+@PTEX_SYNCTEX_TRUE@am__objects_50 = synctexdir/ptex-synctex.$(OBJEXT)
+dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_50)
+am__objects_51 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
+nodist_ptex_OBJECTS = $(am__objects_51) ptex-ptex-pool.$(OBJEXT)
 ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS)
 @PTEX_SYNCTEX_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1)
 am_ptftopl_OBJECTS =
@@ -1281,10 +1301,10 @@
 am__dist_tex_SOURCES_DIST = texextra.c synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-tex.h
-@TEX_SYNCTEX_TRUE@am__objects_51 = synctexdir/tex-synctex.$(OBJEXT)
-dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_51)
-am__objects_52 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
-nodist_tex_OBJECTS = $(am__objects_52) tex-tex-pool.$(OBJEXT)
+@TEX_SYNCTEX_TRUE@am__objects_52 = synctexdir/tex-synctex.$(OBJEXT)
+dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_52)
+am__objects_53 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
+nodist_tex_OBJECTS = $(am__objects_53) tex-tex-pool.$(OBJEXT)
 tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS)
 @TEX_SYNCTEX_TRUE@am__DEPENDENCIES_13 = $(am__DEPENDENCIES_1)
 tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
@@ -1309,21 +1329,21 @@
 nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT)
 updvitype_OBJECTS = $(am_updvitype_OBJECTS) \
 	$(nodist_updvitype_OBJECTS)
-am__objects_53 = upmpost-pmp.$(OBJEXT)
-am__objects_54 = upmpost-pmpmath.$(OBJEXT)
-am__objects_55 = upmpost-pmpmathbinary.$(OBJEXT)
-am__objects_56 = upmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_57 = upmpost-pmpmathdouble.$(OBJEXT)
-am__objects_58 = upmpost-pmpstrings.$(OBJEXT)
-am__objects_59 = upmpost-pmpxout.$(OBJEXT)
-am__objects_60 = upmpost-ppngout.$(OBJEXT)
-am__objects_61 = upmpost-ppsout.$(OBJEXT)
-am__objects_62 = upmpost-psvgout.$(OBJEXT)
-am__objects_63 = $(am__objects_53) $(am__objects_54) $(am__objects_55) \
-	$(am__objects_56) $(am__objects_57) upmpost-pmpost.$(OBJEXT) \
-	$(am__objects_58) $(am__objects_59) $(am__objects_60) \
-	$(am__objects_61) $(am__objects_62) upmpost-ptfmin.$(OBJEXT)
-nodist_upmpost_OBJECTS = $(am__objects_63)
+am__objects_54 = upmpost-pmp.$(OBJEXT)
+am__objects_55 = upmpost-pmpmath.$(OBJEXT)
+am__objects_56 = upmpost-pmpmathbinary.$(OBJEXT)
+am__objects_57 = upmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_58 = upmpost-pmpmathdouble.$(OBJEXT)
+am__objects_59 = upmpost-pmpstrings.$(OBJEXT)
+am__objects_60 = upmpost-pmpxout.$(OBJEXT)
+am__objects_61 = upmpost-ppngout.$(OBJEXT)
+am__objects_62 = upmpost-ppsout.$(OBJEXT)
+am__objects_63 = upmpost-psvgout.$(OBJEXT)
+am__objects_64 = $(am__objects_54) $(am__objects_55) $(am__objects_56) \
+	$(am__objects_57) $(am__objects_58) upmpost-pmpost.$(OBJEXT) \
+	$(am__objects_59) $(am__objects_60) $(am__objects_61) \
+	$(am__objects_62) $(am__objects_63) upmpost-ptfmin.$(OBJEXT)
+nodist_upmpost_OBJECTS = $(am__objects_64)
 upmpost_OBJECTS = $(nodist_upmpost_OBJECTS)
 am__DEPENDENCIES_15 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1337,12 +1357,12 @@
 	uptexdir/uptexextra.h uptexdir/uptex_version.h \
 	synctexdir/synctex.c synctexdir/synctex.h \
 	synctexdir/synctex-common.h synctexdir/synctex-uptex.h
-@UPTEX_SYNCTEX_TRUE@am__objects_64 =  \
+@UPTEX_SYNCTEX_TRUE@am__objects_65 =  \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/uptex-synctex.$(OBJEXT)
 dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT) \
-	$(am__objects_64)
-am__objects_65 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
-nodist_uptex_OBJECTS = $(am__objects_65) uptex-uptex-pool.$(OBJEXT)
+	$(am__objects_65)
+am__objects_66 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
+nodist_uptex_OBJECTS = $(am__objects_66) uptex-uptex-pool.$(OBJEXT)
 uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS)
 @UPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1)
 am_uptftopl_OBJECTS =
@@ -1381,12 +1401,12 @@
 	xetexdir/xetex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-xetex.h
-@XETEX_SYNCTEX_TRUE@am__objects_66 =  \
+@XETEX_SYNCTEX_TRUE@am__objects_67 =  \
 @XETEX_SYNCTEX_TRUE@	synctexdir/xetex-synctex.$(OBJEXT)
 dist_xetex_OBJECTS = xetexdir/xetex-xetexextra.$(OBJEXT) \
-	$(am__objects_66)
-am__objects_67 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
-nodist_xetex_OBJECTS = $(am__objects_67) xetex-xetex-pool.$(OBJEXT)
+	$(am__objects_67)
+am__objects_68 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
+nodist_xetex_OBJECTS = $(am__objects_68) xetex-xetex-pool.$(OBJEXT)
 xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS)
 @XETEX_MACOSX_FALSE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1)
 am__DEPENDENCIES_18 = $(libxetex) $(am__DEPENDENCIES_1) \
@@ -1497,9 +1517,12 @@
 	$(nodist_euptex_SOURCES) $(gftodvi_SOURCES) \
 	$(nodist_gftodvi_SOURCES) $(nodist_gftopk_SOURCES) \
 	$(nodist_gftype_SOURCES) $(nodist_initex_SOURCES) \
-	$(nodist_luajittex_SOURCES) $(nodist_EXTRA_luajittex_SOURCES) \
-	$(nodist_luatex_SOURCES) $(nodist_EXTRA_luatex_SOURCES) \
-	$(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \
+	$(jbibtex_SOURCES) $(dist_jbibtex_SOURCES) \
+	$(nodist_jbibtex_SOURCES) $(dist_jtex_SOURCES) \
+	$(nodist_jtex_SOURCES) $(nodist_luajittex_SOURCES) \
+	$(nodist_EXTRA_luajittex_SOURCES) $(nodist_luatex_SOURCES) \
+	$(nodist_EXTRA_luatex_SOURCES) $(md5main_SOURCES) \
+	$(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \
 	$(dist_mflua_SOURCES) $(nodist_mflua_nowin_SOURCES) \
 	$(dist_mfluajit_SOURCES) $(nodist_mfluajit_nowin_SOURCES) \
 	$(nodist_mft_SOURCES) $(nodist_mpost_SOURCES) \
@@ -1539,7 +1562,8 @@
 	$(am__libxetex_a_SOURCES_DIST) $(libsynctex_la_SOURCES) \
 	$(dist_aleph_SOURCES) $(am__dist_eptex_SOURCES_DIST) \
 	$(am__dist_etex_SOURCES_DIST) $(am__dist_euptex_SOURCES_DIST) \
-	$(gftodvi_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \
+	$(gftodvi_SOURCES) $(jbibtex_SOURCES) $(dist_jbibtex_SOURCES) \
+	$(dist_jtex_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \
 	$(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \
 	$(dist_mfluajit_SOURCES) $(pbibtex_SOURCES) \
 	$(am__dist_pdftex_SOURCES_DIST) $(pdftosrc_SOURCES) \
@@ -1756,13 +1780,13 @@
   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
 RECHECK_LOGS = $(TEST_LOGS)
-am__EXEEXT_39 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
+am__EXEEXT_41 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
 	gftopk.test gftype.test mft.test patgen.test pktogf.test \
 	pktype.test pltotf.test pooltype.test tftopl.test vftovp.test \
 	vptovf.test weave.test
-am__EXEEXT_40 = $(am__EXEEXT_39) tests/bibtex-openout-test.pl \
+am__EXEEXT_42 = $(am__EXEEXT_41) tests/bibtex-openout-test.pl \
 	tests/bibtex-longline-test.pl tests/bibtex-mem.test
-@WEB_TRUE@am__EXEEXT_41 = $(am__EXEEXT_40)
+@WEB_TRUE@am__EXEEXT_43 = $(am__EXEEXT_42)
 TEST_SUITE_LOG = test-suite.log
 am__test_logs1 = $(TESTS:=.log)
 am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
@@ -1790,8 +1814,8 @@
 	$(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/am/web.am \
 	$(srcdir)/c-auto.in $(srcdir)/ctangleboot-sh.in \
 	$(srcdir)/eptexdir/am/eptex.am $(srcdir)/etexdir/am/etex.am \
-	$(srcdir)/euptexdir/am/euptex.am $(srcdir)/libmd5/am/md5.am \
-	$(srcdir)/luatexdir/am/libluatex.am \
+	$(srcdir)/euptexdir/am/euptex.am $(srcdir)/jtexdir/am/jtex.am \
+	$(srcdir)/libmd5/am/md5.am $(srcdir)/luatexdir/am/libluatex.am \
 	$(srcdir)/luatexdir/am/libunilib.am \
 	$(srcdir)/luatexdir/am/luafontforge.am \
 	$(srcdir)/luatexdir/am/luamisc.am \
@@ -2103,8 +2127,8 @@
 	libff.a libluatex.a libluajittex.a libxetex.a libsynctex.a \
 	libmd5.a
 EXTRA_LTLIBRARIES = libsynctex.la
-lib_LIBRARIES = $(am__append_109)
-lib_LTLIBRARIES = $(am__append_108)
+lib_LIBRARIES = $(am__append_111)
+lib_LTLIBRARIES = $(am__append_110)
 dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5
 nodist_man_MANS = 
 TEST_EXTENSIONS = .pl .test
@@ -2200,7 +2224,9 @@
 	etexdir/etrip/etrip1.in etexdir/etrip/etrip2.in \
 	etexdir/etrip/etrip3.in etexdir/etrip/etripin.log \
 	etexdir/etrip/etripman.tex etexdir/etrip/texmf.cnf \
-	etexdir/etrip/trip2.in $(ptex_web_srcs) $(ptex_ch_srcs) \
+	etexdir/etrip/trip2.in $(jtex_ch_srcs) $(jtex_web_srcs) \
+	jtexdir/texmfmp.c jtexdir/jtex.defines jtexdir/pbibtex.ch \
+	jtexdir/cvtbib.sed $(ptex_web_srcs) $(ptex_ch_srcs) \
 	ptexdir/ptex.defines ptexdir/pbibtex.ch web2c/cvtbib.sed \
 	ptexdir/pdvitype.ch ptexdir/ppltotf.ch ptexdir/ptftopl.ch \
 	ptexdir/COPYRIGHT ptexdir/COPYRIGHT.jis ptexdir/ChangeLog \
@@ -2442,9 +2468,10 @@
 	mpmathdouble-tangle mpstrings-tangle psout-tangle \
 	svgout-tangle pngout-tangle $(nodist_etex_SOURCES) etex.web \
 	etex.ch etex-web2c etex.p etex.pool etex-tangle etrip.diffs \
-	ewprob.log ewprob.tex $(nodist_ptex_SOURCES) ptex.web ptex.ch \
-	ptex-web2c ptex.p ptex.pool ptex-tangle $(pweb_programs:=.c) \
-	$(pweb_programs:=.h) $(pweb_programs:=.p) \
+	ewprob.log ewprob.tex $(nodist_jtex_SOURCES) jtex-final.ch \
+	jtex-web2c jtex.p jtex.pool jtex-tangle $(nodist_ptex_SOURCES) \
+	ptex.web ptex.ch ptex-web2c ptex.p ptex.pool ptex-tangle \
+	$(pweb_programs:=.c) $(pweb_programs:=.h) $(pweb_programs:=.p) \
 	$(pweb_programs:=-web2c) $(pweb_programs:=.web) \
 	ptests/nissya_bib.* ptests/xexampl.aux ptests/xexampl.bbl \
 	ptests/xexampl.blg ptests/memtest.bib ptests/memtest?.* \
@@ -2491,22 +2518,22 @@
 CLEANFILES = $(EXTRA_PROGRAMS) $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES)
 TRIPTRAP_CLEAN = $(am__append_8) $(am__append_18) $(am__append_27) \
 	$(am__append_36) $(am__append_44) $(am__append_60) \
-	$(am__append_65) $(am__append_70) $(am__append_75) \
-	$(am__append_80)
+	$(am__append_67) $(am__append_72) $(am__append_77) \
+	$(am__append_82)
 TRIPTRAP = $(am__append_7) $(am__append_17) $(am__append_26) \
 	$(am__append_35) $(am__append_43) $(am__append_59) \
-	$(am__append_64) $(am__append_69) $(am__append_74) \
-	$(am__append_79)
+	$(am__append_66) $(am__append_71) $(am__append_76) \
+	$(am__append_81)
 bin_links = $(am__append_5) $(am__append_14) $(am__append_15) \
 	$(am__append_24) $(am__append_33) $(am__append_41) \
-	$(am__append_49) $(am__append_54) $(am__append_88) \
-	$(am__append_93)
+	$(am__append_49) $(am__append_54) $(am__append_90) \
+	$(am__append_95)
 install_exe_links = $(am__append_12) $(am__append_22) $(am__append_31) \
 	$(am__append_39) $(am__append_47) $(am__append_52) \
-	$(am__append_86) $(am__append_91)
+	$(am__append_88) $(am__append_93)
 uninstall_exe_links = $(am__append_13) $(am__append_23) \
 	$(am__append_32) $(am__append_40) $(am__append_48) \
-	$(am__append_53) $(am__append_87) $(am__append_92)
+	$(am__append_53) $(am__append_89) $(am__append_94)
 NEVER_DIST = `find . $(NEVER_NAMES)` cwebdir/cweave.log \
 	cwebdir/cweave.trs ctiedir/ctie.log ctiedir/ctie.trs \
 	tiedir/tie.log tiedir/tie.trs
@@ -2616,18 +2643,18 @@
 initex_CPPFLAGS = -DEXEPROG=\"tex.exe\"
 nodist_initex_SOURCES = callexe.c
 initex_LDADD = 
-tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_112)
+tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_114)
 
 # With --enable-ipc, TeX may need to link with -lsocket.
-tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_113)
+tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_115)
 
 # TeX C sources
 tex_c_h = texini.c tex0.c texcoerce.h texd.h
 nodist_tex_SOURCES = $(tex_c_h) tex-pool.c
-dist_tex_SOURCES = texextra.c $(am__append_115)
+dist_tex_SOURCES = texextra.c $(am__append_117)
 
 # We must create texd.h before building the tex_OBJECTS.
-tex_prereq = texd.h $(am__append_114)
+tex_prereq = texd.h $(am__append_116)
 tex_ch_srcs = \
 	tex.web \
 	tex.ch \
@@ -2818,19 +2845,19 @@
 	mplibdir/pngout.w mplibdir/mpmath.w mplibdir/mpmathbinary.w \
 	mplibdir/mpmathdecimal.w mplibdir/mpmathdouble.w \
 	mplibdir/mpstrings.w mplibdir/tfmin.w
-etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_116)
+etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_118)
 
 # With --enable-ipc, e-TeX may need to link with -lsocket.
-etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_117)
+etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_119)
 
 # e-TeX C sources
 etex_c_h = etexini.c etex0.c etexcoerce.h etexd.h
 nodist_etex_SOURCES = $(etex_c_h) etex-pool.c
 dist_etex_SOURCES = etexdir/etexextra.c etexdir/etexextra.h \
-	etexdir/etex_version.h $(am__append_119)
+	etexdir/etex_version.h $(am__append_121)
 
 # We must create etexd.h and etexdir/etex_version.h before building the etex_OBJECTS.
-etex_prereq = etexd.h etexdir/etex_version.h $(am__append_118)
+etex_prereq = etexd.h etexdir/etex_version.h $(am__append_120)
 etex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch
@@ -2848,6 +2875,33 @@
 # e-TeX Tests
 #
 etex_tests = etexdir/wprob.test etexdir/etriptest.test
+web2c_j = srcdir=$(srcdir) $(shared_env) $(SHELL) $(srcdir)/jtexdir/jconvert
+web2c_aux = web2c/jconvert
+
+# With --enable-ipc, TeX may need to link with -lsocket.
+jtex_CPPFLAGS = $(KPATHSEA_INCLUDES) $(AM_CPPFLAGS)
+jtex_LDADD = $(LDADD) $(ipc_socketlibs)
+
+# TeX C sources
+jtex_c_h = jtexini.c jtex0.c jtexcoerce.h jtexd.h
+nodist_jtex_SOURCES = $(jtex_c_h) jtex-pool.c jtexdir/jtexextra.c jtexdir/texkanji.c
+dist_jtex_SOURCES = jtexdir/jlib.c
+
+# We must create jtexd.h before building the ptex_OBJECTS.
+jtex_prereq = jtexd.h
+jtex_web_srcs = \
+    tex.web \
+    tex.ch
+
+jtex_ch_srcs = \
+	jtexdir/jtex.ch \
+	tex-binpool.ch
+
+nodist_jbibtex_SOURCES = jbibtex.c jbibtex.h jtexdir/bibkanji.c jtexdir/jlib.c
+dist_jbibtex_SOURCES = jtexdir/jbib.c
+jbibtex_SOURCES = jtexdir/kanji.h
+jbibtex_CPPFLAGS = $(KPATHSEA_INCLUDES) $(AM_CPPFLAGS)
+jbibtex_LDADD = $(LDADD) $(ipc_socketlibs)
 ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS)
 ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD)
 ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies)
@@ -2856,20 +2910,20 @@
 pproglib = lib/libp.a
 libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h
 libkanji_a_CPPFLAGS = $(ptex_cppflags)
-ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_120)
+ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_122)
 
 # With --enable-ipc, pTeX may need to link with -lsocket.
-ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_121)
+ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_123)
 ptex_DEPENDENCIES = $(ptex_dependencies)
 
 # pTeX C sources
 ptex_c_h = ptexini.c ptex0.c ptexcoerce.h ptexd.h
 nodist_ptex_SOURCES = $(ptex_c_h) ptex-pool.c
 dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h \
-	ptexdir/ptex_version.h $(am__append_123)
+	ptexdir/ptex_version.h $(am__append_125)
 
 # We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS.
-ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_122)
+ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_124)
 ptex_web_srcs = \
 	tex.web \
 	tex.ch
@@ -2909,22 +2963,22 @@
 	ptexdir/pbibtex-longline-test.pl ptexdir/pbibtex-mem.test \
 	ptexdir/nissya.test ptexdir/sample.test ptexdir/yokotate.test
 eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \
-	$(am__append_128)
+	$(am__append_130)
 
 # With --enable-ipc, e-pTeX may need to link with -lsocket.
 eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \
-	$(ipc_socketlibs) libmd5.a $(am__append_129)
+	$(ipc_socketlibs) libmd5.a $(am__append_131)
 eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a
 
 # e-pTeX C sources
 eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h
 nodist_eptex_SOURCES = $(eptex_c_h) eptex-pool.c
 dist_eptex_SOURCES = eptexdir/eptexextra.c eptexdir/eptexextra.h \
-	eptexdir/eptex_version.h $(am__append_131)
+	eptexdir/eptex_version.h $(am__append_133)
 
 # We must create eptexd.h and eptexdir/eptex_version.h before building the eptex_OBJECTS.
 eptex_prereq = eptexd.h etexdir/etex_version.h ptexdir/ptex_version.h \
-	eptexdir/eptex_version.h $(am__append_130)
+	eptexdir/eptex_version.h $(am__append_132)
 eptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -2954,21 +3008,21 @@
 upweb_programs = upbibtex updvitype uppltotf uptftopl
 libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c
 libukanji_a_CPPFLAGS = $(uptex_cppflags)
-uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_124)
+uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_126)
 
 # With --enable-ipc, upTeX may need to link with -lsocket.
-uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_125)
+uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_127)
 uptex_DEPENDENCIES = $(uptex_dependencies)
 
 # upTeX C sources
 uptex_c_h = uptexini.c uptex0.c uptexcoerce.h uptexd.h
 nodist_uptex_SOURCES = $(uptex_c_h) uptex-pool.c
 dist_uptex_SOURCES = uptexdir/uptexextra.c uptexdir/uptexextra.h \
-	uptexdir/uptex_version.h $(am__append_127)
+	uptexdir/uptex_version.h $(am__append_129)
 
 # We must create uptexd.h and uptexdir/uptex_version.h before building the uptex_OBJECTS.
 uptex_prereq = uptexd.h ptexdir/ptex_version.h \
-	uptexdir/uptex_version.h $(am__append_126)
+	uptexdir/uptex_version.h $(am__append_128)
 uptex_web_srcs = \
 	tex.web \
 	tex.ch
@@ -3010,23 +3064,23 @@
 	uptexdir/yokotate.test
 
 euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \
-	-I$(srcdir)/libmd5 $(am__append_132)
+	-I$(srcdir)/libmd5 $(am__append_134)
 
 # With --enable-ipc, e-upTeX may need to link with -lsocket.
 euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \
-	$(ipc_socketlibs) libmd5.a $(am__append_133)
+	$(ipc_socketlibs) libmd5.a $(am__append_135)
 euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a
 
 # e-upTeX C sources
 euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h
 nodist_euptex_SOURCES = $(euptex_c_h) euptex-pool.c
 dist_euptex_SOURCES = euptexdir/euptexextra.c euptexdir/euptexextra.h \
-	$(am__append_135)
+	$(am__append_137)
 
 # We must create euptexd.h and [eu]ptexdir/[eu]ptex_version.h before building the euptex_OBJECTS.
 euptex_prereq = euptexd.h etexdir/etex_version.h \
 	ptexdir/ptex_version.h eptexdir/eptex_version.h \
-	uptexdir/uptex_version.h $(am__append_134)
+	uptexdir/uptex_version.h $(am__append_136)
 euptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -3066,7 +3120,7 @@
 	pdftexdir/writejbig2.c pdftexdir/writejpg.c \
 	pdftexdir/writepng.c pdftexdir/writet1.c pdftexdir/writet3.c \
 	pdftexdir/writettf.c pdftexdir/writettf.h pdftexdir/writezip.c \
-	$(am__append_81)
+	$(am__append_83)
 @MINGW32_TRUE@REGEX_INCLUDES = -I$(srcdir)/pdftexdir/regex
 EXTRA_libpdftex_a_SOURCES = pdftexdir/macnames.c \
 	pdftexdir/regex/regcomp.c pdftexdir/regex/regex_internal.c \
@@ -3082,7 +3136,7 @@
 # Force Automake to use CXXLD for linking
 nodist_EXTRA_pdftex_SOURCES = dummy.cxx
 pdf_tangle = WEBINPUTS=.:$(srcdir)/pdftexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(TANGLE)
-pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_136)
+pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_138)
 pdftex_CXXFLAGS = $(WARNING_CXXFLAGS)
 
 # With --enable-ipc, pdfTeX may need to link with -lsocket.
@@ -3095,7 +3149,7 @@
 nodist_pdftex_SOURCES = $(pdftex_c_h) pdftex-pool.c
 dist_pdftex_SOURCES = pdftexdir/pdftexextra.c pdftexdir/pdftexextra.h \
 	pdftexdir/pdftex_version.h pdftexdir/etex_version.h \
-	$(am__append_137)
+	$(am__append_139)
 pdftex_ch_srcs = \
 	pdftexdir/pdftex.web \
 	pdftexdir/tex.ch0 \
@@ -3552,17 +3606,17 @@
 xetex_cppflags = $(AM_CPPFLAGS) -I$(srcdir)/xetexdir $(ICU_INCLUDES) \
 	$(FREETYPE2_INCLUDES) $(TECKIT_INCLUDES) $(HARFBUZZ_INCLUDES) \
 	$(GRAPHITE2_INCLUDES) $(POPPLER_INCLUDES) $(LIBPNG_INCLUDES) \
-	$(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_97) \
-	$(am__append_98)
+	$(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_99) \
+	$(am__append_100)
 xetex_ldadd = $(libxetex) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) \
 	$(ICU_LIBS) $(TECKIT_LIBS) $(POPPLER_LIBS) $(LIBPNG_LIBS) \
-	$(FREETYPE2_LIBS) $(ZLIB_LIBS) libmd5.a $(am__append_99)
+	$(FREETYPE2_LIBS) $(ZLIB_LIBS) libmd5.a $(am__append_101)
 xetex_dependencies = $(proglib) $(KPATHSEA_DEPEND) $(ICU_DEPEND) \
 	$(TECKIT_DEPEND) $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND) \
 	$(POPPLER_DEPEND) $(LIBPNG_DEPEND) $(FREETYPE2_DEPEND) \
 	$(ZLIB_DEPEND) libmd5.a
 @XETEX_MACOSX_TRUE@xetex_LDFLAGS = -framework ApplicationServices -framework Cocoa
-xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_138)
+xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_140)
 xetex_CFLAGS = $(WARNING_CFLAGS)
 xetex_CXXFLAGS = # $(WARNING_CXXFLAGS)
 xetex_LDADD = $(xetex_ldadd) $(LDADD) $(ipc_socketlibs)
@@ -3573,7 +3627,7 @@
 nodist_xetex_SOURCES = $(xetex_c_h) xetex-pool.c
 dist_xetex_SOURCES = xetexdir/xetexextra.c xetexdir/xetexextra.h \
 	xetexdir/etex_version.h xetexdir/xetex_version.h \
-	$(am__append_139)
+	$(am__append_141)
 xetex_ch_srcs = \
 	xetexdir/xetex.web \
 	xetexdir/tex.ch0 \
@@ -3600,7 +3654,7 @@
 	xetexdir/image/jpegimage.h xetexdir/image/mfileio.c \
 	xetexdir/image/mfileio.h xetexdir/image/numbers.c \
 	xetexdir/image/numbers.h xetexdir/image/pngimage.c \
-	xetexdir/image/pngimage.h $(am__append_100) $(am__append_101)
+	xetexdir/image/pngimage.h $(am__append_102) $(am__append_103)
 
 # We must create xetexd.h etc. before building the libxetex_a_OBJECTS.
 libxetex_prereq = xetexd.h $(xetex_dependencies)
@@ -3704,12 +3758,12 @@
 	synctexdir/synctex_main.c
 
 synctex_CPPFLAGS = -I$(srcdir)/synctexdir
-synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_110)
+synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_112)
 libsynctex = $(LTLIBSYNCTEX) $(LIBSYNCTEX)
 libsynctex_la_CPPFLAGS = -I$(srcdir)/synctexdir $(ZLIB_INCLUDES) -DSYNCTEX_USE_LOCAL_HEADER
 libsynctex_a_CPPFLAGS = $(libsynctex_la_CPPFLAGS)
 libsynctex_la_LDFLAGS = -rpath @libdir@ -bindir @bindir@ -no-undefined -version-info $(SYNCTEX_LT_VERSINFO)
-libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_111)
+libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_113)
 libsynctex_la_SOURCES = \
 	synctexdir/synctex_parser.c \
 	synctexdir/synctex_parser_local.h \
@@ -3823,7 +3877,7 @@
 .SUFFIXES: .c .cc .cin .cpp .cxx .h .hin .lo .log .mm .o .obj .p .pin .pl .pl$(EXEEXT) .test .test$(EXEEXT) .trs
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/jtexdir/am/jtex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -3845,7 +3899,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
-$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
+$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/jtexdir/am/jtex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -4980,6 +5034,32 @@
 initex$(EXEEXT): $(initex_OBJECTS) $(initex_DEPENDENCIES) $(EXTRA_initex_DEPENDENCIES) 
 	@rm -f initex$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(initex_OBJECTS) $(initex_LDADD) $(LIBS)
+jtexdir/$(am__dirstamp):
+	@$(MKDIR_P) jtexdir
+	@: > jtexdir/$(am__dirstamp)
+jtexdir/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) jtexdir/$(DEPDIR)
+	@: > jtexdir/$(DEPDIR)/$(am__dirstamp)
+jtexdir/jbibtex-jbib.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+jtexdir/jbibtex-bibkanji.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+jtexdir/jbibtex-jlib.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+
+jbibtex$(EXEEXT): $(jbibtex_OBJECTS) $(jbibtex_DEPENDENCIES) $(EXTRA_jbibtex_DEPENDENCIES) 
+	@rm -f jbibtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(jbibtex_OBJECTS) $(jbibtex_LDADD) $(LIBS)
+jtexdir/jtex-jlib.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+jtexdir/jtex-jtexextra.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+jtexdir/jtex-texkanji.$(OBJEXT): jtexdir/$(am__dirstamp) \
+	jtexdir/$(DEPDIR)/$(am__dirstamp)
+
+jtex$(EXEEXT): $(jtex_OBJECTS) $(jtex_DEPENDENCIES) $(EXTRA_jtex_DEPENDENCIES) 
+	@rm -f jtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(jtex_OBJECTS) $(jtex_LDADD) $(LIBS)
 luatexdir/$(am__dirstamp):
 	@$(MKDIR_P) luatexdir
 	@: > luatexdir/$(am__dirstamp)
@@ -5237,6 +5317,7 @@
 	-rm -f eptexdir/*.$(OBJEXT)
 	-rm -f etexdir/*.$(OBJEXT)
 	-rm -f euptexdir/*.$(OBJEXT)
+	-rm -f jtexdir/*.$(OBJEXT)
 	-rm -f libmd5/*.$(OBJEXT)
 	-rm -f luatexdir/*.$(OBJEXT)
 	-rm -f luatexdir/lua/*.$(OBJEXT)
@@ -5301,6 +5382,10 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gftopk.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gftype.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initex-callexe.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jbibtex-jbibtex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-jtex-pool.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-jtex0.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-jtexini.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libluajittex_a-align.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libluajittex_a-arithmetic.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libluajittex_a-avlstuff.Po@am__quote@
@@ -5591,6 +5676,12 @@
 @AMDEP_TRUE@@am__include@ @am__quote@eptexdir/$(DEPDIR)/eptex-eptexextra.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@etexdir/$(DEPDIR)/etex-etexextra.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@euptexdir/$(DEPDIR)/euptex-euptexextra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jbibtex-bibkanji.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jbibtex-jbib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jbibtex-jlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jtex-jlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jtex-jtexextra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jtexdir/$(DEPDIR)/jtex-texkanji.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libmd5/$(DEPDIR)/libmd5_a-md5.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libmd5/$(DEPDIR)/md5main-md5main.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/$(DEPDIR)/luajittex-luatex.Po@am__quote@
@@ -11859,6 +11950,146 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(initex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o initex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
 
+jtexdir/jbibtex-jbib.o: jtexdir/jbib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-jbib.o -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-jbib.Tpo -c -o jtexdir/jbibtex-jbib.o `test -f 'jtexdir/jbib.c' || echo '$(srcdir)/'`jtexdir/jbib.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-jbib.Tpo jtexdir/$(DEPDIR)/jbibtex-jbib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jbib.c' object='jtexdir/jbibtex-jbib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-jbib.o `test -f 'jtexdir/jbib.c' || echo '$(srcdir)/'`jtexdir/jbib.c
+
+jtexdir/jbibtex-jbib.obj: jtexdir/jbib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-jbib.obj -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-jbib.Tpo -c -o jtexdir/jbibtex-jbib.obj `if test -f 'jtexdir/jbib.c'; then $(CYGPATH_W) 'jtexdir/jbib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jbib.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-jbib.Tpo jtexdir/$(DEPDIR)/jbibtex-jbib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jbib.c' object='jtexdir/jbibtex-jbib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-jbib.obj `if test -f 'jtexdir/jbib.c'; then $(CYGPATH_W) 'jtexdir/jbib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jbib.c'; fi`
+
+jbibtex-jbibtex.o: jbibtex.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jbibtex-jbibtex.o -MD -MP -MF $(DEPDIR)/jbibtex-jbibtex.Tpo -c -o jbibtex-jbibtex.o `test -f 'jbibtex.c' || echo '$(srcdir)/'`jbibtex.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jbibtex-jbibtex.Tpo $(DEPDIR)/jbibtex-jbibtex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jbibtex.c' object='jbibtex-jbibtex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jbibtex-jbibtex.o `test -f 'jbibtex.c' || echo '$(srcdir)/'`jbibtex.c
+
+jbibtex-jbibtex.obj: jbibtex.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jbibtex-jbibtex.obj -MD -MP -MF $(DEPDIR)/jbibtex-jbibtex.Tpo -c -o jbibtex-jbibtex.obj `if test -f 'jbibtex.c'; then $(CYGPATH_W) 'jbibtex.c'; else $(CYGPATH_W) '$(srcdir)/jbibtex.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jbibtex-jbibtex.Tpo $(DEPDIR)/jbibtex-jbibtex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jbibtex.c' object='jbibtex-jbibtex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jbibtex-jbibtex.obj `if test -f 'jbibtex.c'; then $(CYGPATH_W) 'jbibtex.c'; else $(CYGPATH_W) '$(srcdir)/jbibtex.c'; fi`
+
+jtexdir/jbibtex-bibkanji.o: jtexdir/bibkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-bibkanji.o -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-bibkanji.Tpo -c -o jtexdir/jbibtex-bibkanji.o `test -f 'jtexdir/bibkanji.c' || echo '$(srcdir)/'`jtexdir/bibkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-bibkanji.Tpo jtexdir/$(DEPDIR)/jbibtex-bibkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/bibkanji.c' object='jtexdir/jbibtex-bibkanji.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-bibkanji.o `test -f 'jtexdir/bibkanji.c' || echo '$(srcdir)/'`jtexdir/bibkanji.c
+
+jtexdir/jbibtex-bibkanji.obj: jtexdir/bibkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-bibkanji.obj -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-bibkanji.Tpo -c -o jtexdir/jbibtex-bibkanji.obj `if test -f 'jtexdir/bibkanji.c'; then $(CYGPATH_W) 'jtexdir/bibkanji.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/bibkanji.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-bibkanji.Tpo jtexdir/$(DEPDIR)/jbibtex-bibkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/bibkanji.c' object='jtexdir/jbibtex-bibkanji.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-bibkanji.obj `if test -f 'jtexdir/bibkanji.c'; then $(CYGPATH_W) 'jtexdir/bibkanji.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/bibkanji.c'; fi`
+
+jtexdir/jbibtex-jlib.o: jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-jlib.o -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-jlib.Tpo -c -o jtexdir/jbibtex-jlib.o `test -f 'jtexdir/jlib.c' || echo '$(srcdir)/'`jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-jlib.Tpo jtexdir/$(DEPDIR)/jbibtex-jlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jlib.c' object='jtexdir/jbibtex-jlib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-jlib.o `test -f 'jtexdir/jlib.c' || echo '$(srcdir)/'`jtexdir/jlib.c
+
+jtexdir/jbibtex-jlib.obj: jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jbibtex-jlib.obj -MD -MP -MF jtexdir/$(DEPDIR)/jbibtex-jlib.Tpo -c -o jtexdir/jbibtex-jlib.obj `if test -f 'jtexdir/jlib.c'; then $(CYGPATH_W) 'jtexdir/jlib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jlib.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jbibtex-jlib.Tpo jtexdir/$(DEPDIR)/jbibtex-jlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jlib.c' object='jtexdir/jbibtex-jlib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jbibtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jbibtex-jlib.obj `if test -f 'jtexdir/jlib.c'; then $(CYGPATH_W) 'jtexdir/jlib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jlib.c'; fi`
+
+jtexdir/jtex-jlib.o: jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-jlib.o -MD -MP -MF jtexdir/$(DEPDIR)/jtex-jlib.Tpo -c -o jtexdir/jtex-jlib.o `test -f 'jtexdir/jlib.c' || echo '$(srcdir)/'`jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-jlib.Tpo jtexdir/$(DEPDIR)/jtex-jlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jlib.c' object='jtexdir/jtex-jlib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-jlib.o `test -f 'jtexdir/jlib.c' || echo '$(srcdir)/'`jtexdir/jlib.c
+
+jtexdir/jtex-jlib.obj: jtexdir/jlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-jlib.obj -MD -MP -MF jtexdir/$(DEPDIR)/jtex-jlib.Tpo -c -o jtexdir/jtex-jlib.obj `if test -f 'jtexdir/jlib.c'; then $(CYGPATH_W) 'jtexdir/jlib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jlib.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-jlib.Tpo jtexdir/$(DEPDIR)/jtex-jlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jlib.c' object='jtexdir/jtex-jlib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-jlib.obj `if test -f 'jtexdir/jlib.c'; then $(CYGPATH_W) 'jtexdir/jlib.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jlib.c'; fi`
+
+jtex-jtexini.o: jtexini.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtexini.o -MD -MP -MF $(DEPDIR)/jtex-jtexini.Tpo -c -o jtex-jtexini.o `test -f 'jtexini.c' || echo '$(srcdir)/'`jtexini.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtexini.Tpo $(DEPDIR)/jtex-jtexini.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexini.c' object='jtex-jtexini.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtexini.o `test -f 'jtexini.c' || echo '$(srcdir)/'`jtexini.c
+
+jtex-jtexini.obj: jtexini.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtexini.obj -MD -MP -MF $(DEPDIR)/jtex-jtexini.Tpo -c -o jtex-jtexini.obj `if test -f 'jtexini.c'; then $(CYGPATH_W) 'jtexini.c'; else $(CYGPATH_W) '$(srcdir)/jtexini.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtexini.Tpo $(DEPDIR)/jtex-jtexini.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexini.c' object='jtex-jtexini.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtexini.obj `if test -f 'jtexini.c'; then $(CYGPATH_W) 'jtexini.c'; else $(CYGPATH_W) '$(srcdir)/jtexini.c'; fi`
+
+jtex-jtex0.o: jtex0.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtex0.o -MD -MP -MF $(DEPDIR)/jtex-jtex0.Tpo -c -o jtex-jtex0.o `test -f 'jtex0.c' || echo '$(srcdir)/'`jtex0.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtex0.Tpo $(DEPDIR)/jtex-jtex0.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtex0.c' object='jtex-jtex0.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtex0.o `test -f 'jtex0.c' || echo '$(srcdir)/'`jtex0.c
+
+jtex-jtex0.obj: jtex0.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtex0.obj -MD -MP -MF $(DEPDIR)/jtex-jtex0.Tpo -c -o jtex-jtex0.obj `if test -f 'jtex0.c'; then $(CYGPATH_W) 'jtex0.c'; else $(CYGPATH_W) '$(srcdir)/jtex0.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtex0.Tpo $(DEPDIR)/jtex-jtex0.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtex0.c' object='jtex-jtex0.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtex0.obj `if test -f 'jtex0.c'; then $(CYGPATH_W) 'jtex0.c'; else $(CYGPATH_W) '$(srcdir)/jtex0.c'; fi`
+
+jtex-jtex-pool.o: jtex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtex-pool.o -MD -MP -MF $(DEPDIR)/jtex-jtex-pool.Tpo -c -o jtex-jtex-pool.o `test -f 'jtex-pool.c' || echo '$(srcdir)/'`jtex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtex-pool.Tpo $(DEPDIR)/jtex-jtex-pool.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtex-pool.c' object='jtex-jtex-pool.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtex-pool.o `test -f 'jtex-pool.c' || echo '$(srcdir)/'`jtex-pool.c
+
+jtex-jtex-pool.obj: jtex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-jtex-pool.obj -MD -MP -MF $(DEPDIR)/jtex-jtex-pool.Tpo -c -o jtex-jtex-pool.obj `if test -f 'jtex-pool.c'; then $(CYGPATH_W) 'jtex-pool.c'; else $(CYGPATH_W) '$(srcdir)/jtex-pool.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-jtex-pool.Tpo $(DEPDIR)/jtex-jtex-pool.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtex-pool.c' object='jtex-jtex-pool.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-jtex-pool.obj `if test -f 'jtex-pool.c'; then $(CYGPATH_W) 'jtex-pool.c'; else $(CYGPATH_W) '$(srcdir)/jtex-pool.c'; fi`
+
+jtexdir/jtex-jtexextra.o: jtexdir/jtexextra.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-jtexextra.o -MD -MP -MF jtexdir/$(DEPDIR)/jtex-jtexextra.Tpo -c -o jtexdir/jtex-jtexextra.o `test -f 'jtexdir/jtexextra.c' || echo '$(srcdir)/'`jtexdir/jtexextra.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-jtexextra.Tpo jtexdir/$(DEPDIR)/jtex-jtexextra.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jtexextra.c' object='jtexdir/jtex-jtexextra.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-jtexextra.o `test -f 'jtexdir/jtexextra.c' || echo '$(srcdir)/'`jtexdir/jtexextra.c
+
+jtexdir/jtex-jtexextra.obj: jtexdir/jtexextra.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-jtexextra.obj -MD -MP -MF jtexdir/$(DEPDIR)/jtex-jtexextra.Tpo -c -o jtexdir/jtex-jtexextra.obj `if test -f 'jtexdir/jtexextra.c'; then $(CYGPATH_W) 'jtexdir/jtexextra.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jtexextra.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-jtexextra.Tpo jtexdir/$(DEPDIR)/jtex-jtexextra.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/jtexextra.c' object='jtexdir/jtex-jtexextra.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-jtexextra.obj `if test -f 'jtexdir/jtexextra.c'; then $(CYGPATH_W) 'jtexdir/jtexextra.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/jtexextra.c'; fi`
+
+jtexdir/jtex-texkanji.o: jtexdir/texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-texkanji.o -MD -MP -MF jtexdir/$(DEPDIR)/jtex-texkanji.Tpo -c -o jtexdir/jtex-texkanji.o `test -f 'jtexdir/texkanji.c' || echo '$(srcdir)/'`jtexdir/texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-texkanji.Tpo jtexdir/$(DEPDIR)/jtex-texkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/texkanji.c' object='jtexdir/jtex-texkanji.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-texkanji.o `test -f 'jtexdir/texkanji.c' || echo '$(srcdir)/'`jtexdir/texkanji.c
+
+jtexdir/jtex-texkanji.obj: jtexdir/texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtexdir/jtex-texkanji.obj -MD -MP -MF jtexdir/$(DEPDIR)/jtex-texkanji.Tpo -c -o jtexdir/jtex-texkanji.obj `if test -f 'jtexdir/texkanji.c'; then $(CYGPATH_W) 'jtexdir/texkanji.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/texkanji.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) jtexdir/$(DEPDIR)/jtex-texkanji.Tpo jtexdir/$(DEPDIR)/jtex-texkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='jtexdir/texkanji.c' object='jtexdir/jtex-texkanji.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtexdir/jtex-texkanji.obj `if test -f 'jtexdir/texkanji.c'; then $(CYGPATH_W) 'jtexdir/texkanji.c'; else $(CYGPATH_W) '$(srcdir)/jtexdir/texkanji.c'; fi`
+
 luatexdir/luajittex-luatex.o: luatexdir/luatex.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajittex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luajittex-luatex.o -MD -MP -MF luatexdir/$(DEPDIR)/luajittex-luatex.Tpo -c -o luatexdir/luajittex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luajittex-luatex.Tpo luatexdir/$(DEPDIR)/luajittex-luatex.Po
@@ -13954,6 +14185,8 @@
 	-rm -f etexdir/$(am__dirstamp)
 	-rm -f euptexdir/$(DEPDIR)/$(am__dirstamp)
 	-rm -f euptexdir/$(am__dirstamp)
+	-rm -f jtexdir/$(DEPDIR)/$(am__dirstamp)
+	-rm -f jtexdir/$(am__dirstamp)
 	-rm -f libmd5/$(DEPDIR)/$(am__dirstamp)
 	-rm -f libmd5/$(am__dirstamp)
 	-rm -f luatexdir/$(DEPDIR)/$(am__dirstamp)
@@ -14019,7 +14252,7 @@
 
 distclean: distclean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf ./$(DEPDIR) alephdir/$(DEPDIR) eptexdir/$(DEPDIR) etexdir/$(DEPDIR) euptexdir/$(DEPDIR) libmd5/$(DEPDIR) luatexdir/$(DEPDIR) luatexdir/lua/$(DEPDIR) luatexdir/luafilesystem/src/$(DEPDIR) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR) luatexdir/luafontloader/src/$(DEPDIR) luatexdir/luamd5/$(DEPDIR) luatexdir/luapeg/$(DEPDIR) luatexdir/luaprofiler/$(DEPDIR) luatexdir/luasocket/src/$(DEPDIR) luatexdir/luazip/src/$(DEPDIR) luatexdir/luazlib/$(DEPDIR) luatexdir/slnunicode/$(DEPDIR) luatexdir/unilib/$(DEPDIR) luatexdir/utils/$(DEPDIR) mfluadir/$(DEPDIR) mfluajitdir/$(DEPDIR) mplibdir/$(DEPDIR) pdftexdir/$(DEPDIR) pdftexdir/regex/$(DEPDIR) ptexdir/$(DEPDIR) synctexdir/$(DEPDIR) uptexdir/$(DEPDIR) xetexdir/$(DEPDIR) xetexdir/image/$(DEPDIR)
+	-rm -rf ./$(DEPDIR) alephdir/$(DEPDIR) eptexdir/$(DEPDIR) etexdir/$(DEPDIR) euptexdir/$(DEPDIR) jtexdir/$(DEPDIR) libmd5/$(DEPDIR) luatexdir/$(DEPDIR) luatexdir/lua/$(DEPDIR) luatexdir/luafilesystem/src/$(DEPDIR) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR) luatexdir/luafontloader/src/$(DEPDIR) luatexdir/luamd5/$(DEPDIR) luatexdir/luapeg/$(DEPDIR) luatexdir/luaprofiler/$(DEPDIR) luatexdir/luasocket/src/$(DEPDIR) luatexdir/luazip/src/$(DEPDIR) luatexdir/luazlib/$(DEPDIR) luatexdir/slnunicode/$(DEPDIR) luatexdir/unilib/$(DEPDIR) luatexdir/utils/$(DEPDIR) mfluadir/$(DEPDIR) mfluajitdir/$(DEPDIR) mplibdir/$(DEPDIR) pdftexdir/$(DEPDIR) pdftexdir/regex/$(DEPDIR) ptexdir/$(DEPDIR) synctexdir/$(DEPDIR) uptexdir/$(DEPDIR) xetexdir/$(DEPDIR) xetexdir/image/$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
 	distclean-hdr distclean-libtool distclean-tags
@@ -14070,7 +14303,7 @@
 maintainer-clean: maintainer-clean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
 	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -rf ./$(DEPDIR) alephdir/$(DEPDIR) eptexdir/$(DEPDIR) etexdir/$(DEPDIR) euptexdir/$(DEPDIR) libmd5/$(DEPDIR) luatexdir/$(DEPDIR) luatexdir/lua/$(DEPDIR) luatexdir/luafilesystem/src/$(DEPDIR) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR) luatexdir/luafontloader/src/$(DEPDIR) luatexdir/luamd5/$(DEPDIR) luatexdir/luapeg/$(DEPDIR) luatexdir/luaprofiler/$(DEPDIR) luatexdir/luasocket/src/$(DEPDIR) luatexdir/luazip/src/$(DEPDIR) luatexdir/luazlib/$(DEPDIR) luatexdir/slnunicode/$(DEPDIR) luatexdir/unilib/$(DEPDIR) luatexdir/utils/$(DEPDIR) mfluadir/$(DEPDIR) mfluajitdir/$(DEPDIR) mplibdir/$(DEPDIR) pdftexdir/$(DEPDIR) pdftexdir/regex/$(DEPDIR) ptexdir/$(DEPDIR) synctexdir/$(DEPDIR) uptexdir/$(DEPDIR) xetexdir/$(DEPDIR) xetexdir/image/$(DEPDIR)
+	-rm -rf ./$(DEPDIR) alephdir/$(DEPDIR) eptexdir/$(DEPDIR) etexdir/$(DEPDIR) euptexdir/$(DEPDIR) jtexdir/$(DEPDIR) libmd5/$(DEPDIR) luatexdir/$(DEPDIR) luatexdir/lua/$(DEPDIR) luatexdir/luafilesystem/src/$(DEPDIR) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR) luatexdir/luafontloader/src/$(DEPDIR) luatexdir/luamd5/$(DEPDIR) luatexdir/luapeg/$(DEPDIR) luatexdir/luaprofiler/$(DEPDIR) luatexdir/luasocket/src/$(DEPDIR) luatexdir/luazip/src/$(DEPDIR) luatexdir/luazlib/$(DEPDIR) luatexdir/slnunicode/$(DEPDIR) luatexdir/unilib/$(DEPDIR) luatexdir/utils/$(DEPDIR) mfluadir/$(DEPDIR) mfluajitdir/$(DEPDIR) mplibdir/$(DEPDIR) pdftexdir/$(DEPDIR) pdftexdir/regex/$(DEPDIR) ptexdir/$(DEPDIR) synctexdir/$(DEPDIR) uptexdir/$(DEPDIR) xetexdir/$(DEPDIR) xetexdir/image/$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -14691,6 +14924,43 @@
 .PHONY: etrip-clean
 etrip-clean:
 	rm -rf etripdir
+$(jtex_OBJECTS): $(jtex_prereq)
+
+$(jtex_c_h): jtex-web2c
+jtex-web2c: jtex.p $(web2c_texmf) jtexdir/jtex.defines
+	$(web2c_j) jtex
+
+jtex-pool.c: jtex.pool jtexd.h $(makecpool_stamp)
+	$(makecpool) jtex >$@ || rm -f $@
+
+jtexdir/jtexextra.c: jtexdir/texmfmp.c jtexd.h
+	cp $(srcdir)/jtexdir/texmfmp.c $@
+jtexdir/texkanji.c: jtexdir/kanji.c jtexdir/kanji.h
+	sed s/TEX-OR-BIB/jtexd/ $(srcdir)/jtexdir/kanji.c >$@
+
+# Tangling TeX
+jtex.p jtex.pool: jtex-tangle
+jtex-tangle: tangle$(EXEEXT) jtex.web jtex-final.ch
+	$(tangle) jtex.web jtex-final.ch
+
+# Generate jtex.web
+jtex.web: tie$(EXEEXT) $(jtex_web_srcs)
+	$(tie_m) $(jtex_web_srcs)
+
+# Generate jtex-final.ch
+jtex-final.ch: tie$(EXEEXT) jtex.web $(jtex_ch_srcs)
+	$(tie_c) jtex.web $(jtex_ch_srcs)
+jbibtex.c jbibtex.h: jbibtex-web2c
+	@$(web2c) jbibtex
+jbibtex-web2c: jbibtex.p $(web2c_depend) jtexdir/jbib.defines jtexdir/cvtbib.sed
+	@$(web2c_j) jbibtex
+jbibtex.p: tangle$(EXEEXT) jbibtex.web jtexdir/jbibtex.ch
+	$(tangle) jbibtex jtexdir/jbibtex.ch
+jbibtex.web: tie$(EXEEXT) bibtex.web bibtex.ch
+	$(tie_m) bibtex.web bibtex.ch
+
+jtexdir/bibkanji.c: jtexdir/kanji.c jtexdir/kanji.h
+	sed s+TEX-OR-BIB+jtexdir/jbib+ $(srcdir)/jtexdir/kanji.c >$@
 # Rebuild $(pproglib)
 $(pproglib): $(KPATHSEA_DEPEND) ${srcdir}/lib/*.c
 	cd lib && $(MAKE) $(AM_MAKEFLAGS) libp.a
--- texlive-bin.orig/texk/web2c/ac/web2c.ac
+++ texlive-bin/texk/web2c/ac/web2c.ac
@@ -29,6 +29,7 @@
 m4_define([kpse_tex_progs], [dnl
 [[tex],       [yes], [no],  [TeX],        []],
 [[etex],      [no],  [yes], [e-TeX],      []],
+[[jtex],      [yes], [],    [JTeX],       []],
 [[ptex],      [yes], [yes], [pTeX],       [ptexenc]],
 [[eptex],     [yes], [yes], [e-pTeX],     [ptexenc]],
 [[uptex],     [yes], [yes], [upTeX],      [ptexenc]],
--- texlive-bin.orig/texk/web2c/configure
+++ texlive-bin/texk/web2c/configure
@@ -734,6 +734,8 @@
 UPWEB_TRUE
 PWEB_FALSE
 PWEB_TRUE
+JBIBTEX_FALSE
+JBIBTEX_TRUE
 WEB_FALSE
 WEB_TRUE
 wlibs
@@ -796,6 +798,8 @@
 PTEX_SYNCTEX_TRUE
 PTEX_FALSE
 PTEX_TRUE
+JTEX_FALSE
+JTEX_TRUE
 ETEX_SYNCTEX_FALSE
 ETEX_SYNCTEX_TRUE
 ETEX_FALSE
@@ -987,6 +991,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
+enable_jtex
 enable_ptex
 enable_ptex_synctex
 enable_eptex
@@ -1717,6 +1722,7 @@
   --enable-tex-synctex      build TeX with SyncTeX support
   --enable-etex           compile and install e-TeX
   --disable-etex-synctex    build e-TeX without SyncTeX support
+  --disable-jtex          do not compile and install JTeX
   --disable-ptex          do not compile and install pTeX
   --disable-ptex-synctex    build pTeX without SyncTeX support
   --disable-eptex         do not compile and install e-pTeX
@@ -18638,6 +18644,16 @@
 if test "${enable_etex_synctex+set}" = set; then :
   enableval=$enable_etex_synctex;
 fi
+# Check whether --enable-jtex was given.
+if test "${enable_jtex+set}" = set; then :
+  enableval=$enable_jtex;
+fi
+case $enable_jtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_jtex=yes ;;
+esac
 # Check whether --enable-ptex was given.
 if test "${enable_ptex+set}" = set; then :
   enableval=$enable_ptex;
@@ -20045,6 +20061,13 @@
   ETEX_SYNCTEX_TRUE='#'
   ETEX_SYNCTEX_FALSE=
 fi
+ if test "x$enable_jtex" = xyes; then
+  JTEX_TRUE=
+  JTEX_FALSE='#'
+else
+  JTEX_TRUE='#'
+  JTEX_FALSE=
+fi
  if test "x$enable_ptex" = xyes; then
   PTEX_TRUE=
   PTEX_FALSE='#'
@@ -21138,6 +21161,20 @@
 fi
 
 
+if test "x$enable_jtex" = xno; then :
+  enable_jbibtex=no
+else
+  enable_jbibtex=$enable_web_progs
+fi
+ if test "x$enable_jbibtex" != xno; then
+  JBIBTEX_TRUE=
+  JBIBTEX_FALSE='#'
+else
+  JBIBTEX_TRUE='#'
+  JBIBTEX_FALSE=
+fi
+
+
 if test "x$enable_ptex:$enable_eptex" = xno:no; then :
   enable_pweb_progs=no
 else
@@ -25092,6 +25129,10 @@
   as_fn_error $? "conditional \"ETEX_SYNCTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${JTEX_TRUE}" && test -z "${JTEX_FALSE}"; then
+  as_fn_error $? "conditional \"JTEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${PTEX_TRUE}" && test -z "${PTEX_FALSE}"; then
   as_fn_error $? "conditional \"PTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25200,6 +25241,10 @@
   as_fn_error $? "conditional \"WEB\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${JBIBTEX_TRUE}" && test -z "${JBIBTEX_FALSE}"; then
+  as_fn_error $? "conditional \"JBIBTEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${PWEB_TRUE}" && test -z "${PWEB_FALSE}"; then
   as_fn_error $? "conditional \"PWEB\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
--- texlive-bin.orig/texk/web2c/configure.ac
+++ texlive-bin/texk/web2c/configure.ac
@@ -198,6 +198,11 @@
 
 AM_CONDITIONAL([WEB], [test "x$enable_web_progs" != xno])
 
+AS_IF([test "x$enable_jtex" = xno],
+      [enable_jbibtex=no],
+      [enable_jbibtex=$enable_web_progs])
+AM_CONDITIONAL([JBIBTEX], [test "x$enable_jbibtex" != xno])
+
 AS_IF([test "x$enable_ptex:$enable_eptex" = xno:no],
       [enable_pweb_progs=no],
       [enable_pweb_progs=$enable_web_progs])
--- texlive-bin.orig/texk/web2c/cpascal.h
+++ texlive-bin/texk/web2c/cpascal.h
@@ -26,7 +26,9 @@
 #include <kpathsea/variable.h>
 
 /* Help messages.  */
+#ifndef JBIBTEX
 #include "help.h"
+#endif
 
 /* Allow translation files.  */
 #define	Xchr(x) xchr[x]
@@ -133,7 +135,9 @@
 
 /* The fixwrites program outputs this, for diagnostics and such, that
    aren't worth checking the return value on.  */
+#if !defined(JTeX)&&!defined(JBIBTEX)
 #define Fputs(f,s) (void) fputs (s, f)
+#endif
 
 /* `aopenin' is used for all kinds of input text files, so it
    needs to know what path to use.  Used by BibTeX, MF, TeX.  */
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/ChangeLog
@@ -0,0 +1,143 @@
+JTeX Changes
+				$B:y0f5.J8(B(sakurai@math.s.chiba-u.ac.jp)
+
+---- version 2.0 (03 Jan)
+TeX C Version 3.14159 / web2c 7.4.3 $B$KBP1~$7$?!#(B
+
+---- version 1.9.1 (00 Sep)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . $B4A;z$r(Bnon-expand token$B$K$G$-$J$$!#(B($BJs9p(B: $B3QF#$5$s(B)
+
+---- version 1.9 (00 Mar)
+TeX C Version 3.14159 / teTeX 1.0.7 (web2c 7.3.1) $B$KBP1~$7$?!#(B
+
+---- version 1.8 (98 May)
+TeX C Version 3.14159 / web2c 7.2 $B$KBP1~$7$?!#(B
+
+---- version 1.7 (97 Apr)
+TeX C Version 3.14159 / web2c 7.0 $B$KBP1~$7$?!#(B
+$B%3%^%s%I%i%$%s$*$h$S(Btexmf.cnf$B$G4A;z%3!<%I$r;XDj$G$-$k$h$&$K$7$?!#(B
+(jtexnote$B;2>H!#(B)
+
+---- version 1.61 (96 May)
+TeX C Version 3.14159(2) / web2c 6.1 + kpathsea 2.6 $B$KBP1~$7$?!#(B
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . jbibtex$B$G4A;z%3!<%I$H$7$F(BShift-JIS$B$rMQ$$$?$H$-!"@5>o$K=hM}$5$l$J$$!#(B
+
+---- version 1.6 (94 Sep)
+TeX C Version 3.1415 / web2c 6.1 $B$KBP1~$7$?!#(B
+
+---- version 1.52 (94 Feb)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . \input $B$5$l$?%U%!%$%k$N:G4|$K!V(B\input XXX$B!W$H$$$&(Bcommand$B$,$"$k$H$-(B
+   XXX$B$,FI$_9~$^$l$J$$!#(B(1.51$B$GF~$l$F$7$^$C$?%P%0!#(B)
+
+---- version 1.51 (94 Jan)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . FMTBASE_SWAP $B$r(Bdefine$B$7$F$b(Blittle/big endian$B6&DL$N(Bfmt$B%U%!%$%k$K$J$i$J$$!#(B
+ . \input $B$5$l$?%U%!%$%k$N:G4|$NItJ,$K%U%!%$%k$N:G4|$N(B<return>$B$r6uGr$H$7$F(B
+   $B0z?t$K(Bmatch$B$9$k$3$H$r4|BT$9$k(Bcommand$B$,4|BTDL$j$KF0$+$J$$!#(B
+
+---- version 1.5 (93 Nov)
+TeX C Version 3.141 $B$KBP1~$7$?!#(B
+
+---- version 1.45 (93 Sep)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . 8bit$BL\$,N)$C$F$$$kJ8;z$N(Bcategory code$B$r(B7$B$K$7$F$b@5$7$/G'<1$5$l$J$$!#(B
+
+---- version 1.44 (93 Jul)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . \endlinechar$B$,(B-1$B0J2<$^$?$O(B256$B0J>e$N$H$-!"9TKv$K$"$k4A;z(B1$B;z$N%^%/%m$O(B
+   $B$_$+$1$I$&$j$N%^%/%m$H$O$_$J$5$l$J$$!#(B
+ . $B4A;z$N6uGr$N8e$KJ8;z0J30$N$b$N$,B3$/$H0[>o$H$J$k>l9g$,$"$k!#(B
+   ($B%"%/%;%9$7$F$O$$$1$J$$=j$r%"%/%;%9$7$F5/$3$k0[>o$J$N$G6qBNE*$K$I$&$$$&(B
+    $B0[>o$,5/$3$k$+$ONs5sITG=!#(B)
+ . math mode$B$G4A;z$N6uGr$r;H$&$H(B \jspaceskip $B$H$_$J$5$l$J$$!#(B
+   (dvi$B$O0l1~$G$-$k$,!"J8;z$H$7$F$OB8:_$7$J$$4A;z$N6uGr$rJ8;z$H$_$J$7$F(B
+    $B$$$k!#(B)
+
+---- version 1.43 (93 Jul)
+Shift JIS$B$K4X$7$F!"2<5-$N=$@5$KH<$&JQ99$rK:$l$F$$$?$N$GDI2C$7$?!#(B
+
+---- version 1.4 (93 Jun)
+TeX 3.0$B0J9_(B8bit$BJ8;z$r%U%k$K;H$($k$h$&$K$J$C$?$,!"(BJTeX$B$G$O(B8bit$B$a$,(B
+$BN)$C$F$$$kJ8;z$rL5>r7o$K4A;z(B($B$N0lIt(B)$B$H8+$J$7$F$$$?$N$G!"<B$O(B1.2$B0J9_$N(B
+JTeX$B$O(Btrip test$B$KDL$i$J$+$C$?!#$3$l$r=$@5$7$F(Btrip test$B$KDL$k$h$&$K$7$?!#(B
+
+---- version 1.33 (93 Jun)
+512$B8D$N%U%)%s%H$r;H$($k$h$&$K$7$?!#(B($B$?$@$7(Bbigjtex$B$N$H$-$N$_!#Dj?t$N(B
+$BJQ99$K$h$j$5$i$KA}$d$9$3$H$b2DG=!#(B)
+
+---- version 1.3 (92 Aug)
+TeX 3.14 WEB-to-C version $B$KBP1~$7$?!#(B
+
+---- version 1.2 (91 Feb)
+TeX 3.0 WEB-to-C version $B$KBP1~$7$?!#(B
+
+---- version 1.12 (91 Jan)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . \string\$B$"$$$&$($*(B $B$,$A$c$s$H=P$J$$!#(B
+ . \jfont\foo=... scaled {\magstephalf} $B$N$h$&$K!"(B\jfont$B$G(B
+     \magstephalf$B$r;XDj$9$k$H$-$O(B {} $B$G0O$^$J$1$l$P$J$i$J$$!#(B
+$B0J2<$N5!G=$rDI2C$7$?!#(B
+ . $BC10L(B zw, zh
+ . $B4A;z$H2~9T$N4X78$r$h$j=@Fp$K;XDj$G$-$k(B
+ . $BCY1d(B(on demmand) font loading
+
+---- version 1.06 (90 Mar)
+1.05$B$G(B\jspaceskip$B$N07$$$r(B\jintercharskip$BEy$HF1$8$K$7$?$,!"85$KLa$7$?!#(B
+
+---- version 1.05 (90 Feb)
+\jintercharskip$BEy$N07$$$NJQ99!#(B(JTeXdoc/jtexnote$B;2>H!#(B)
+subfont$B$rJ];}$9$k(Bcommand$B$NJQ99!#(B(JTeXdoc/jtexnote$B;2>H!#(B)
+
+---- version 1.04 (90 Jan)
+$B0J2<$N%P%0$r=$@5$7$?!#(B
+ . \csname $B$GF|K\8l$,;H$($J$$!#(B
+ . $BF|K\8l$H?t<0$N4V$G6XB'=hM}$,9T$o$l$J$$!#(B(e.g. $B!V(B$a$$B!"(B)
+ . $BF|K\8l4V$G(Bglue$B$,F~$i$J$$>l9g$,$"$k!#(B(e.g. {\tendg $B$$(B}$B$"(B)
+$BF|K\8l4VEy$N(Bglue$B$N%;%C%H$N;EJ}$r2~A1$7$?!#(B(JTeXdoc/jtexnote$B;2>H!#(B)
+bigjtex$B$r%G%U%)!<%k%H$K$7$?!#(B
+
+---- version 1.01 (89 Mar)
+TeX 2.95 WEB-to-C version $B$KBP1~$7$?!#(B
+
+---- version 1.0 (88 Dec)
+version 0.96$B$H$N0c$$(B
+(1) $BF|K\8l(Bsubfont$B$r$_$+$1>e(Bautoload$B$9$kMM$K$7$?!#(B($B<B:]$O(Bja subfont$B$G(B
+$BBeMQ$7$F$$$k!#(B)$B$3$l$KH<$$!"(B
+$B!!(B0.96$B0JA0$N(B\jfont$B$OGQ;_$7$?!#(B
+$B!!(B\loadjfont$B$H(B\loadsfont(jtexbase.tex$B$GDj5A$5$l$F$$$?(Bmacro)$B$rE}9g$7$F(B
+$B!!(B\jfont$B$H$7$?!#(B
+$B!!(B\use \uses \usesecondlevel \usesecondlevels $B$OGQ;_$7$?!#(B
+(2) $BF|K\8l$H?t<0$N4V$K(B\jmathkanjiskip$B$H$$$&(Bglue$B$rF~$l$kMM$K$7$?!#(B
+jtexbase.tex$B$G$O(B\jasciikanjiskip$B$HF1$8CM$K@_Dj$7$F$"$k!#(B
+
+---- version 0.96 (88 May)
+Pascal$BHG$N(BJTeX(inijtex.ch$B$+$i:n$i$l$k$b$N!"0J2<5l(BJTeX$B$H8F$V(B)$B$H(B
+TeX-to-C$BHG$N(BJTeX(cjtex.ch$BEy$+$i:n$i$l$k$b$N!"0J2<C1$K(BJTeX$B$H8F$V(B)$B$N(B
+$B0c$$$r0J2<$K=R$Y$k!#(B
+
+(1) EUC/sjis$B$N%5%]!<%H(B (JTeXdoc/jtexnote$B;2>H(B)
+
+(2) $B4A;z$H(Bascii$B4V$N6uGr(B
+$B5l(BJTeX$B$G$O(B
+	$B$"(B{\bf a}$B$$(B
+$B$H$$$C$?>l9g!"(Ba$B$NA08e$K$O(B\jasciikanjiskip$B$,$O$$$i$J$$$,!"(B
+JTeX$B$G$O$O$$$k$h$&$K$9$k!#(B($BMW$9$k$K4A;z(Bcharnode$B$HIaDL$N(Bcharnode$B$N(B
+$B4V$K(Bglue$B$rF~$l$k!#(B)$B$3$N;~!"6XB'=hM}$b9T$o$l$k$N$G6uGr$,$O$$$i$J$$(B
+$B>l9g$b$"$k!#(B
+
+$B!!4A;z$H(Bmath,hbox$B$N4V$K$b(B\jasciikanjiskip$B$rF~$l$?J}$,(B
+$B!!$h$$MM$J5$$,$7$^$9$,!"(B($BFC$K(Bhbox$B$K$D$$$F(B)$B:$$C$?;v$,5/$-$J$$$+$O(B
+$B!!L$8!F$$G$9!#(B
+$B!!$=$l$+$i(Bdiscretionary$B$H$+(Bunhbox$B$H$+$H$N4XO"$K$D$$$F$O4c$r$D$`$k(B
+$B!!M=Dj$G$9!#(B
+
+(3) $B4A;z$H2~9T(B
+$B5l(BJTeX$B$G$O!"4A;z(B-$B2~9T(B-$B4A;z$HB3$/>l9g2~9T$OL5;k$5$l$k$,!"(BJTeX$B$G$O(B
+$B2~9T$NA08e$$$:$l$+$,4A;z$N$H$-2~9T$rL5;k$9$k!#(B
+
+(4) $B%(%i!<%a%C%;!<%8(B
+$B%(%i!<%a%C%;!<%8$G4A;z$,=PNO$5$l$F$bC<Kv$d%m%0%U%!%$%k$,$0$A$c$0$A$c$K(B
+$B$J$i$J$$!#(B
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/INSTALL
@@ -0,0 +1,36 @@
+1. Hierarchy of Library Files
+
+As is stated in ../INSTALL-tf, texfam-texmf-j<version>.tar.gz should
+be unpacked in /usr/local/share/texmf-local.  The directories and its
+contents are:
+
+	fonts/tfm/muling/nttsub	subfont tfm for NTT JTeX
+	tex/jplain		JTeX
+	    jlatex		JLaTeX2e
+	    jlatex209		JLaTeX209
+	doc/jtex		documents for JTeX, JLaTeX2e (in Japanese)
+	    jbibtex		documents for JBibTeX (in Japanese)
+	jbibtex/bst		bst files for JBibTeX
+	        bib		bib files for JBibTeX
+	source/jlatex		source files for JLaTeX2e
+
+
+2. Setups in Installation
+
+To setup the default kanji code, read $TEXMFLCL/doc/jtex/jtexnote
+(sorry this is written in Japanese, but I recommend not to change
+the default code JISX2080) and change $TEXMFLCL/tex/jplain/base/sitekcode.tex.
+Further, if the value of jtex_filetype in texmf.in is changed (and
+installed to $TEXMFLCL/web2c/texmf.cnf), it overrides the file code
+specified in sitekcode.tex.
+
+To change the default kanji code of JBibTeX, change DEFAULT_FILE_CODE
+and DEFAULT_TERM_CODE in jbib.h.
+
+Do configure and make in the above directory.
+
+
+3. Fonts for Printing and Previewing
+
+We have prepared mulftool package which divides a Japanese truetype
+font into subfonts.
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/INSTALL.ja
@@ -0,0 +1,43 @@
+1. $B%i%$%V%i%j$N%G%#%l%/%H%j9=@.(B
+
+../INSTALL-tf.ja$B$G=R$Y$?$h$&$K!"(Btexfam-texmf-j<version>.tar.gz $B$O%G%U%)(B
+$B%k%H$G$O(B /usr/local/share/texmf-local $B$H$$$&%G%#%l%/%H%j$N2<$GE83+$5$l(B
+$B$k!#$=$3$KCV$+$l$k%G%#%l%/%H%j$H$=$NFbMF$O0J2<$NDL$j$G$"$k!#(B
+
+	fonts/tfm/muling/nttsub	NTT JTeX$BMQ(Bsubfont tfm
+	tex/jplain		JTeX
+	    jlatex		JLaTeX2e
+	    jlatex209		JLaTeX209
+	doc/jtex		JTeX, JLaTeX2e$B$N%I%-%e%a%s%H(B
+	    jbibtex		JBibTeX$B$N%I%-%e%a%s%H(B
+	jbibtex/bst		JBibTeX$BMQ(Bbst file
+	        bib		JBibTeX$BMQ(Bbib file
+	source/jlatex		JLaTeX2e$B$N%=!<%9%U%!%$%k(B
+
+
+2. $B%$%s%9%H!<%k(B
+
+$B$^$:(B ../web2c/INSTALL $B$rFI$s$G$=$3$K$"$k;X<($K=>$&!#(BJBibTeX$B$K$D$$$F$O(B
+$B$5$i$K(B doc/README-jbib $B$rFI$`!#(B
+
+$B%G%U%)%k%H$N4A;z%3!<%I$N@_Dj$N$?$a$K!"(B$TEXMFLCL/doc/jtex/jtexnote $B$rFI(B
+$B$s$G(B $TEXMFLCL/jtex/plain/base/sitekcode.tex $B$rJQ99$9$k!#$5$i$K(B 
+texmf.in $B$N(B jtex_filetype $B$NCM$rJQ99(B($B$7$F$=$l$r(B
+$TEXMFLCL/web2c/texmf.cnf $B$K%$%s%9%H!<%k(B)$B$9$l$P!"FI$_9~$`%U%!%$%k$N%3!<(B
+$B%I$O$3$A$i$,M%@h$5$l$k!#(B
+
+JBibTeX$B$N%G%U%)%k%H$N4A;z%3!<%I$O!"(Bjbib.h$B$N(BDEFAULT_FILE_CODE$B$H(B
+DEFAULT_TERM_CODE$B$rJQ99$9$k!#(B
+
+$B0J>e$N=`Hw$N8e!"(Bconfigure$B$H(Bmake$B$r$3$N>e$N%G%#%l%/%H%j$G9T$&!#(B
+
+
+3. $B0u:~!"(Bpreview$B$KI,MW$J%U%)%s%H(B
+
+$B%5%V%U%)%s%H$r;H$&MxE@$O!"F|K\8lMQ$KFCJL$K:n$i$l$?(Bdvi$B%I%i%$%P$r;H$&I,(B
+$BMW$,$J$$E@$G$"$k!#(Bpk$B7A<0$N%5%V%U%)%s%H$K$OM-NA$NBgF|K\%U%)%s%H$,$"$k$,!"(B
+$B:G6a$O$"$^$j;H$o$l$F$$$J$$!#(B($B$*$=$i$/?7$?$K<j$KF~$l$k$3$H$O$G$-$J$$$H(B
+$B;W$o$l$k!#(B) $B$=$3$G!"F|K\8l(Btruetype$B%U%)%s%H$r(Btype1$B7A<0$N%5%V%U%)%s%H$K(B
+$BJ,3d$7!"$=$l$r;H$&(Bvirtual$B%U%)%s%H$r:n$k%W%m%0%i%`$rMQ0U$7$?!#$=$l$,(B
+mulftool$B%Q%C%1!<%8$G$"$k!#$7$?$,$C$F!"DL>o$NJ8;z?t(B256$B0J2<$N(Bvirtual$B%U%)(B
+$B%s%H$H(Btype1$B%U%)%s%H$r2r<a$9$k(Bdvi$B%I%i%$%P$,$"$l$P0u:~!"(Bpreview$B$,$G$-$k!#(B
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/Makefile.am
@@ -0,0 +1,192 @@
+## Makefile.am for the TeX Live subdirectory texk/web2c/
+##
+## Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+##
+VPATH = @srcdir@:@srcdir@/../web2c
+DEFAULT_INCLUDES = -I. -I@srcdir@ -I@srcdir@/../web2c
+
+ACLOCAL_AMFLAGS = -I ../../m4
+
+INCLUDES = -I$(top_builddir)/.. $(KPATHSEA_INCLUDES)
+
+version = $(WEB2CVERSION)
+
+#SUBDIRS = doc lib man web2c . window omegafonts otps
+
+proglib = ../web2c/lib/lib.a
+
+## Below we will add to these
+EXTRA_PROGRAMS =
+bin_PROGRAMS =
+noinst_PROGRAMS =
+dist_man_MANS =
+nodist_man_MANS =
+check_PROGRAMS =
+TESTS =
+EXTRA_LIBRARIES =
+EXTRA_DIST = PROJECTS cftests config.h cpascal.h help.h
+DISTCLEANFILES = $(EXTRA_LIBRARIES)
+CLEANFILES =
+
+# in case of an SVN repository
+dist-hook:
+	rm -rf `find $(distdir) -name .svn`
+
+## The sh script that does the conversion.
+web2c = srcdir=$(srcdir) $(SHELL) $(srcdir)/web2c/jconvert
+
+## We put this in the web2c directory because it runs on the build system, it
+## is separate from (and simpler than) the actual web-to-C conversion programs.
+makecpool = ../web2c/web2c/makecpool
+
+# Additional dependencies:
+web2c_common = web2c/convert web2c/common.defines
+# When cross-compiling, EXEEXT for the build and hosts system may differ.
+# Thus we depend on the auxiliary files web2c/stamp-*.
+#web2c_stamps = web2c/stamp-fixwrites web2c/stamp-splitup web2c/stamp-web2c
+#makecpool_stamp = web2c/stamp-makecpool
+web2c_stamps = ../web2c/web2c/stamp-fixwrites ../web2c/web2c/stamp-splitup ../web2c/web2c/stamp-web2c
+makecpool_stamp = ../web2c/web2c/stamp-makecpool
+web2c_depend = $(web2c_common) $(web2c_stamps)
+web2c_texmf = $(web2c_depend) web2c/texmf.defines web2c/coerce.h
+
+## This is right for most Web2C programs
+LDADD = $(proglib) $(KPATHSEA_LIBS)
+
+## Automake automatically uses $(proglib)=lib/lib.a as dependency.
+## This does not work for the configure substitution  $(KPATHSEA_LIBS),
+## thus we let $(proglib) artificially depend on $(KPATHSEA_LIBS).
+
+# Rebuild $(proglib)
+$(proglib):
+	cd ../web2c/lib && $(MAKE) $(AM_MAKEFLAGS)
+
+# Rebuild Web2C programs
+web2c/stamp-fixwrites:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-fixwrites
+web2c/stamp-splitup:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-splitup
+web2c/stamp-web2c:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-web2c
+web2c/stamp-makecpool:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-makecpool
+
+tangle$(EXEEXT):
+	cd ../web2c && $(MAKE) $(AM_MAKEFLAGS) tangle$(EXEEXT)
+tie$(EXEEXT):
+	cd ../web2c && $(MAKE) $(AM_MAKEFLAGS) tie$(EXEEXT)
+
+## Rebuild libkpathsea
+#@KPATHSEA_RULE@
+## Rebuild libz
+#@ZLIB_RULE@
+## Rebuild libpng
+#@LIBPNG_RULE@
+## Rebuild libxpdf & Co
+#@XPDF_RULE@
+## Rebuild libopenbsd-compat
+#@OBSDCOMPAT_RULE@
+## Rebuild libgraphite
+#@GRAPHITE_RULE@
+## Rebuild libfreetype
+#@FREETYPE2_RULE@
+## Rebuild libTEXkit
+#@TECKIT_RULE@
+## Rebuild libsicuxxx
+#@ICU_RULE@
+
+## The environment for building.
+buildenv = TEXMFCNF=$(srcdir)/../kpathsea
+
+## Calling tangle & Co.
+tangle = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TANGLE)
+tangleboot = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TANGLEBOOT)
+#otangle = WEBINPUTS=.:$(srcdir) $(buildenv) $(OTANGLE)
+ctangle = $(buildenv) $(CTANGLE)
+ctangleboot = $(buildenv) $(CTANGLEBOOT)
+tie = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TIE)
+
+## For trip, trap, and other tests
+DIFF = diff
+DIFFFLAGS =
+TESTS_ENVIRONMENT = DIFF='$(DIFF)' DIFFFLAGS='$(DIFFFLAGS)' LN_S='$(LN_S)' KPSEWHICH='$(KPSEWHICH)'
+
+## The environment for making dumps.
+## No need to specify TEXMF, as ../kpathsea/texmf.cnf should contain
+## suitable absolute paths at this point.  Those are converted to
+## SELFAUTO* paths on installation.
+dumpenv = TEXMFCNF=../kpathsea
+
+## ################################
+
+## Prevent Make from deleting the intermediate forms.
+.PRECIOUS: %.ch %.p %.c
+
+## ################################
+
+## tangle and ctangle
+#include $(srcdir)/am/bootstrap.am
+
+## normal web programs (except tangle)
+include $(srcdir)/am/web.am
+
+## normal cweb programs (except ctangle)
+#include $(srcdir)/am/cweb.am
+
+## TeX and MF
+include $(srcdir)/am/texmf.am
+
+## MetaPost
+#include $(srcdir)/mplibdir/am/mplib.am
+
+## libmplib, used by MetaPost and luaTeX
+#include $(srcdir)/mplibdir/am/libmplib.am
+
+## e-TeX
+#include $(srcdir)/etexdir/am/etex.am
+
+## pdfTeX
+#include $(srcdir)/pdftexdir/am/pdftex.am
+#include $(srcdir)/pdftexdir/am/libpdftex.am
+#include $(srcdir)/pdftexdir/am/ttf2afm.am
+#include $(srcdir)/pdftexdir/am/pdftosrc.am
+
+## luaTeX
+#include $(srcdir)/luatexdir/am/luatex.am
+#include $(srcdir)/luatexdir/am/luatangle.am
+#include $(srcdir)/luatexdir/am/liblua51.am
+#include $(srcdir)/luatexdir/am/libzzip.am
+#include $(srcdir)/luatexdir/am/luasocket.am
+#include $(srcdir)/luatexdir/am/luamisc.am
+#include $(srcdir)/luatexdir/am/luafontforge.am
+#include $(srcdir)/luatexdir/am/libluatex.am
+
+## XeTeX
+#include $(srcdir)/xetexdir/am/xetex.am
+
+## omegaware web programs
+#include $(srcdir)/omegaware/am/omegaware.am
+
+## programs required for 'make check' in omegafonts/ and omegaware/
+#if OTANGLE
+#check_PROGRAMS += pltotf tftopl
+#endif OTANGLE
+
+## Aleph
+#include $(srcdir)/alephdir/am/aleph.am
+
+## SyncTeX, must come after all TeX-like engines
+#include $(srcdir)/synctexdir/am/synctex.am
+
+## libmd5
+#include $(srcdir)/libmd5/am/md5.am
+
+## Not used
+##
+#EXTRA_DIST += fmtutil.in
+
+## Eventually delete these files
+##
+#EXTRA_DIST += Makefile.in.orig configure.in.orig metapost.mk
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/Makefile.in
@@ -0,0 +1,1925 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+EXTRA_PROGRAMS = $(am__EXEEXT_1) jtex$(EXEEXT)
+bin_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
+noinst_PROGRAMS =
+check_PROGRAMS = $(am__EXEEXT_4)
+TESTS = $(am__EXEEXT_7) $(am__append_4)
+@WEB_TRUE@am__append_1 = $(web_programs)
+@WEB_TRUE@am__append_2 = $(web_tests)
+@JTEX_TRUE@am__append_3 = jtex
+@JTEX_TRUE@am__append_4 = $(tex_tests)
+@JTEX_TRUE@am__append_5 = dvitype pltotf tftopl
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-asm.m4 \
+	$(top_srcdir)/../../m4/kpse-common.m4 \
+	$(top_srcdir)/../../m4/kpse-cross.m4 \
+	$(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
+	$(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
+	$(top_srcdir)/../../m4/kpse-lex.m4 \
+	$(top_srcdir)/../../m4/kpse-warnings.m4 \
+	$(top_srcdir)/../../m4/kpse-web2c.m4 \
+	$(top_srcdir)/../../m4/kpse-win32.m4 \
+	$(top_srcdir)/../../m4/libtool.m4 \
+	$(top_srcdir)/../../m4/ltoptions.m4 \
+	$(top_srcdir)/../../m4/ltsugar.m4 \
+	$(top_srcdir)/../../m4/ltversion.m4 \
+	$(top_srcdir)/../../m4/lt~obsolete.m4 \
+	$(top_srcdir)/ac/web2c.ac $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = c-auto.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__EXEEXT_1 = jbibtex$(EXEEXT)
+@WEB_TRUE@am__EXEEXT_2 = $(am__EXEEXT_1)
+@JTEX_TRUE@am__EXEEXT_3 = jtex$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+@JTEX_TRUE@am__EXEEXT_4 = dvitype$(EXEEXT) pltotf$(EXEEXT) \
+@JTEX_TRUE@	tftopl$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+dvitype_SOURCES = dvitype.c
+dvitype_OBJECTS = dvitype.$(OBJEXT)
+dvitype_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+dvitype_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+nodist_jbibtex_OBJECTS = bibtex.$(OBJEXT) bibkanji.$(OBJEXT) \
+	bibjbib.$(OBJEXT) bibjlib.$(OBJEXT)
+jbibtex_OBJECTS = $(nodist_jbibtex_OBJECTS)
+jbibtex_LDADD = $(LDADD)
+jbibtex_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+am__objects_1 = jtex-texini.$(OBJEXT) jtex-tex0.$(OBJEXT) \
+	jtex-tex1.$(OBJEXT) jtex-tex2.$(OBJEXT)
+nodist_jtex_OBJECTS = $(am__objects_1) jtex-tex-pool.$(OBJEXT) \
+	jtex-texextra.$(OBJEXT) jtex-texkanji.$(OBJEXT) \
+	jtex-texjlib.$(OBJEXT)
+jtex_OBJECTS = $(nodist_jtex_OBJECTS)
+am__DEPENDENCIES_2 = $(proglib) $(am__DEPENDENCIES_1)
+jtex_DEPENDENCIES = $(am__DEPENDENCIES_2)
+pltotf_SOURCES = pltotf.c
+pltotf_OBJECTS = pltotf.$(OBJEXT)
+pltotf_LDADD = $(LDADD)
+pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+tftopl_SOURCES = tftopl.c
+tftopl_OBJECTS = tftopl.$(OBJEXT)
+tftopl_LDADD = $(LDADD)
+tftopl_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = dvitype.c $(nodist_jbibtex_SOURCES) $(nodist_jtex_SOURCES) \
+	pltotf.c tftopl.c
+DIST_SOURCES = dvitype.c pltotf.c tftopl.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)c-auto.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope check recheck
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='[0;31m'; \
+    grn='[0;32m'; \
+    lgn='[1;32m'; \
+    blu='[1;34m'; \
+    mgn='[0;35m'; \
+    brg='[1m'; \
+    std='[m'; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+am__EXEEXT_5 = jbibtex.test
+am__EXEEXT_6 = $(am__EXEEXT_5)
+@WEB_TRUE@am__EXEEXT_7 = $(am__EXEEXT_6)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
+	$(srcdir)/am/texmf.am $(srcdir)/am/web.am $(srcdir)/c-auto.in \
+	$(top_srcdir)/../../build-aux/compile \
+	$(top_srcdir)/../../build-aux/config.guess \
+	$(top_srcdir)/../../build-aux/config.sub \
+	$(top_srcdir)/../../build-aux/depcomp \
+	$(top_srcdir)/../../build-aux/install-sh \
+	$(top_srcdir)/../../build-aux/ltmain.sh \
+	$(top_srcdir)/../../build-aux/missing \
+	$(top_srcdir)/../../build-aux/test-driver \
+	../../build-aux/compile ../../build-aux/config.guess \
+	../../build-aux/config.sub ../../build-aux/depcomp \
+	../../build-aux/install-sh ../../build-aux/ltmain.sh \
+	../../build-aux/missing ../../build-aux/texinfo.tex \
+	../../build-aux/ylwrap ChangeLog INSTALL README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+VPATH = @srcdir@:@srcdir@/../web2c
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CTANGLE = @CTANGLE@
+CTANGLEBOOT = @CTANGLEBOOT@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXLD = @CXXLD@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
+KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
+KPATHSEA_LIBS = @KPATHSEA_LIBS@
+KPATHSEA_PATHS_H = @KPATHSEA_PATHS_H@
+KPSEWHICH = @KPSEWHICH@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TANGLE = @TANGLE@
+TANGLEBOOT = @TANGLEBOOT@
+TIE = @TIE@
+VERSION = @VERSION@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WEB2CVERSION = @WEB2CVERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+DEFAULT_INCLUDES = -I. -I@srcdir@ -I@srcdir@/../web2c
+ACLOCAL_AMFLAGS = -I ../../m4
+INCLUDES = -I$(top_builddir)/.. $(KPATHSEA_INCLUDES)
+version = $(WEB2CVERSION)
+
+#SUBDIRS = doc lib man web2c . window omegafonts otps
+proglib = ../web2c/lib/lib.a
+dist_man_MANS = 
+nodist_man_MANS = 
+EXTRA_LIBRARIES = 
+EXTRA_DIST = PROJECTS cftests config.h cpascal.h help.h \
+	$(web_programs:=.web) $(web_programs:=.ch) $(web_tests) \
+	lib/texmfmp.c lib/kanji.c lib/jlib.c lib/jbib.c texmfmem.h \
+	texmfmp-help.h texmfmp.h kanji.h jbib.h $(tex_ch_srcs) \
+	lib/texmfmp.c tmf-pool.h $(tex_tests)
+DISTCLEANFILES = $(EXTRA_LIBRARIES) $(web_programs:=.c) \
+	$(web_programs:=.h) $(web_programs:=.p) \
+	$(web_programs:=-web2c) tests/xexampl.aux tests/xexampl.bbl \
+	tests/xexampl.blg $(nodist_tex_SOURCES) tex-final.ch tex-web2c \
+	tex.p tex.pool tex-tangle
+CLEANFILES = 
+web2c = srcdir=$(srcdir) $(SHELL) $(srcdir)/web2c/jconvert
+makecpool = ../web2c/web2c/makecpool
+
+# Additional dependencies:
+web2c_common = web2c/convert web2c/common.defines
+# When cross-compiling, EXEEXT for the build and hosts system may differ.
+# Thus we depend on the auxiliary files web2c/stamp-*.
+#web2c_stamps = web2c/stamp-fixwrites web2c/stamp-splitup web2c/stamp-web2c
+#makecpool_stamp = web2c/stamp-makecpool
+web2c_stamps = ../web2c/web2c/stamp-fixwrites ../web2c/web2c/stamp-splitup ../web2c/web2c/stamp-web2c
+makecpool_stamp = ../web2c/web2c/stamp-makecpool
+web2c_depend = $(web2c_common) $(web2c_stamps)
+web2c_texmf = $(web2c_depend) web2c/texmf.defines web2c/coerce.h
+LDADD = $(proglib) $(KPATHSEA_LIBS)
+
+#@KPATHSEA_RULE@
+#@ZLIB_RULE@
+#@LIBPNG_RULE@
+#@XPDF_RULE@
+#@OBSDCOMPAT_RULE@
+#@GRAPHITE_RULE@
+#@FREETYPE2_RULE@
+#@TECKIT_RULE@
+#@ICU_RULE@
+buildenv = TEXMFCNF=$(srcdir)/../kpathsea
+tangle = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TANGLE)
+tangleboot = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TANGLEBOOT)
+#otangle = WEBINPUTS=.:$(srcdir) $(buildenv) $(OTANGLE)
+ctangle = $(buildenv) $(CTANGLE)
+ctangleboot = $(buildenv) $(CTANGLEBOOT)
+tie = WEBINPUTS=.:$(srcdir):$(srcdir)/../web2c $(buildenv) $(TIE)
+DIFF = diff
+DIFFFLAGS = 
+TESTS_ENVIRONMENT = DIFF='$(DIFF)' DIFFFLAGS='$(DIFFFLAGS)' LN_S='$(LN_S)' KPSEWHICH='$(KPSEWHICH)'
+dumpenv = TEXMFCNF=../kpathsea
+
+#web_programs = bibtex dvicopy dvitype gftodvi gftopk gftype mft \
+#	patgen pktogf pktype pltotf pooltype tftopl vftovp vptovf weave
+web_programs = jbibtex
+nodist_jbibtex_SOURCES = bibtex.c bibtex.h bibkanji.c bibjbib.c bibjlib.c
+
+#nodist_dvicopy_SOURCES = dvicopy.c dvicopy.h
+#dvicopy.c dvicopy.h: dvicopy-web2c
+#dvicopy-web2c: $(web2c_depend) dvicopy.p
+#	$(web2c) dvicopy
+#	echo timestamp >$@
+#	touch dvicopy.c dvicopy.h
+#dvicopy.p: tangle$(EXEEXT) dvicopy.web dvicopy.ch
+#	$(tangle) dvicopy dvicopy
+#
+#nodist_dvitype_SOURCES = dvitype.c dvitype.h
+#dvitype.c dvitype.h: dvitype-web2c
+#dvitype-web2c: $(web2c_depend) dvitype.p
+#	$(web2c) dvitype
+#	echo timestamp >$@
+#	touch dvitype.c dvitype.h
+#dvitype.p: tangle$(EXEEXT) dvitype.web dvitype.ch
+#	$(tangle) dvitype dvitype
+#
+#nodist_gftodvi_SOURCES = gftodvi.c gftodvi.h
+#gftodvi.c gftodvi.h: gftodvi-web2c
+#gftodvi-web2c: $(web2c_depend) gftodvi.p
+#	$(web2c) gftodvi
+#	echo timestamp >$@
+#	touch gftodvi.c gftodvi.h
+#gftodvi.p: tangle$(EXEEXT) gftodvi.web gftodvi.ch
+#	$(tangle) gftodvi gftodvi
+#gftodvi_SOURCES = gftodmem.h
+#
+#nodist_gftopk_SOURCES = gftopk.c gftopk.h
+#gftopk.c gftopk.h: gftopk-web2c
+#gftopk-web2c: $(web2c_depend) gftopk.p
+#	$(web2c) gftopk
+#	echo timestamp >$@
+#	touch gftopk.c gftopk.h
+#gftopk.p: tangle$(EXEEXT) gftopk.web gftopk.ch
+#	$(tangle) gftopk gftopk
+#
+#nodist_gftype_SOURCES = gftype.c gftype.h
+#gftype.c gftype.h: gftype-web2c
+#gftype-web2c: $(web2c_depend) gftype.p
+#	$(web2c) gftype
+#	echo timestamp >$@
+#	touch gftype.c gftype.h
+#gftype.p: tangle$(EXEEXT) gftype.web gftype.ch
+#	$(tangle) gftype gftype
+#
+#nodist_mft_SOURCES = mft.c mft.h
+#mft.c mft.h: mft-web2c
+#mft-web2c: $(web2c_depend) mft.p
+#	$(web2c) mft
+#	echo timestamp >$@
+#	touch mft.c mft.h
+#mft.p: tangle$(EXEEXT) mft.web mft.ch
+#	$(tangle) mft mft
+#
+#nodist_patgen_SOURCES = patgen.c patgen.h
+#patgen.c patgen.h: patgen-web2c
+#patgen-web2c: $(web2c_depend) patgen.p
+#	$(web2c) patgen
+#	echo timestamp >$@
+#	touch patgen.c patgen.h
+#patgen.p: tangle$(EXEEXT) patgen.web patgen.ch
+#	$(tangle) patgen patgen
+#
+#nodist_pktogf_SOURCES = pktogf.c pktogf.h
+#pktogf.c pktogf.h: pktogf-web2c
+#pktogf-web2c: $(web2c_depend) pktogf.p
+#	$(web2c) pktogf
+#	echo timestamp >$@
+#	touch pktogf.c pktogf.h
+#pktogf.p: tangle$(EXEEXT) pktogf.web pktogf.ch
+#	$(tangle) pktogf pktogf
+#
+#nodist_pktype_SOURCES = pktype.c pktype.h
+#pktype.c pktype.h: pktype-web2c
+#pktype-web2c: $(web2c_depend) pktype.p
+#	$(web2c) pktype
+#	echo timestamp >$@
+#	touch pktype.c pktype.h
+#pktype.p: tangle$(EXEEXT) pktype.web pktype.ch
+#	$(tangle) pktype pktype
+#
+#nodist_pltotf_SOURCES = pltotf.c pltotf.h
+#pltotf.c pltotf.h: pltotf-web2c
+#pltotf-web2c: $(web2c_depend) pltotf.p
+#	$(web2c) pltotf
+#	echo timestamp >$@
+#	touch pltotf.c pltotf.h
+#pltotf.p: tangle$(EXEEXT) pltotf.web pltotf.ch
+#	$(tangle) pltotf pltotf
+#
+#nodist_pooltype_SOURCES = pooltype.c pooltype.h
+#pooltype.c pooltype.h: pooltype-web2c
+#pooltype-web2c: $(web2c_depend) pooltype.p
+#	$(web2c) pooltype
+#	echo timestamp >$@
+#	touch pooltype.c pooltype.h
+#pooltype.p: tangle$(EXEEXT) pooltype.web pooltype.ch
+#	$(tangle) pooltype pooltype
+#
+#nodist_tftopl_SOURCES = tftopl.c tftopl.h
+#tftopl.c tftopl.h: tftopl-web2c
+#tftopl-web2c: $(web2c_depend) tftopl.p
+#	$(web2c) tftopl
+#	echo timestamp >$@
+#	touch tftopl.c tftopl.h
+#tftopl.p: tangle$(EXEEXT) tftopl.web tftopl.ch
+#	$(tangle) tftopl tftopl
+#
+#nodist_vftovp_SOURCES = vftovp.c vftovp.h
+#vftovp.c vftovp.h: vftovp-web2c
+#vftovp-web2c: $(web2c_depend) vftovp.p
+#	$(web2c) vftovp
+#	echo timestamp >$@
+#	touch vftovp.c vftovp.h
+#vftovp.p: tangle$(EXEEXT) vftovp.web vftovp.ch
+#	$(tangle) vftovp vftovp
+#
+#nodist_vptovf_SOURCES = vptovf.c vptovf.h
+#vptovf.c vptovf.h: vptovf-web2c
+#vptovf-web2c: $(web2c_depend) vptovf.p
+#	$(web2c) vptovf
+#	echo timestamp >$@
+#	touch vptovf.c vptovf.h
+#vptovf.p: tangle$(EXEEXT) vptovf.web vptovf.ch
+#	$(tangle) vptovf vptovf
+#
+#nodist_weave_SOURCES = weave.c weave.h
+#weave.c weave.h: weave-web2c
+#weave-web2c: $(web2c_depend) weave.p
+#	$(web2c) weave
+#	echo timestamp >$@
+#	touch weave.c weave.h
+#weave.p: tangle$(EXEEXT) weave.web weave.ch
+#	$(tangle) weave weave
+web_tests = $(web_programs:=.test)
+jtex_CPPFLAGS = 
+
+# With --enable-ipc, TeX may need to link with -lsocket.
+jtex_LDADD = $(LDADD) $(ipc_socketlibs)
+
+# TeX C sources
+tex_c_h = texini.c tex0.c tex1.c tex2.c texcoerce.h texd.h
+nodist_jtex_SOURCES = $(tex_c_h) tex-pool.c texextra.c texkanji.c texjlib.c
+tex_ch_srcs = \
+	tex.web \
+	tex.ch \
+	jtex.ch \
+	$(tex_ch_synctex) \
+	tex-binpool.ch
+
+tex_tests = trip.test
+all: c-auto.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/am/web.am $(srcdir)/am/texmf.am $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+$(srcdir)/am/web.am $(srcdir)/am/texmf.am $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+c-auto.h: stamp-h1
+	@test -f $@ || rm -f stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/c-auto.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status c-auto.h
+$(srcdir)/c-auto.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f c-auto.h stamp-h1
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+clean-checkPROGRAMS:
+	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+dvitype$(EXEEXT): $(dvitype_OBJECTS) $(dvitype_DEPENDENCIES) $(EXTRA_dvitype_DEPENDENCIES) 
+	@rm -f dvitype$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(dvitype_OBJECTS) $(dvitype_LDADD) $(LIBS)
+
+jbibtex$(EXEEXT): $(jbibtex_OBJECTS) $(jbibtex_DEPENDENCIES) $(EXTRA_jbibtex_DEPENDENCIES) 
+	@rm -f jbibtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(jbibtex_OBJECTS) $(jbibtex_LDADD) $(LIBS)
+
+jtex$(EXEEXT): $(jtex_OBJECTS) $(jtex_DEPENDENCIES) $(EXTRA_jtex_DEPENDENCIES) 
+	@rm -f jtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(jtex_OBJECTS) $(jtex_LDADD) $(LIBS)
+
+pltotf$(EXEEXT): $(pltotf_OBJECTS) $(pltotf_DEPENDENCIES) $(EXTRA_pltotf_DEPENDENCIES) 
+	@rm -f pltotf$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(pltotf_OBJECTS) $(pltotf_LDADD) $(LIBS)
+
+tftopl$(EXEEXT): $(tftopl_OBJECTS) $(tftopl_DEPENDENCIES) $(EXTRA_tftopl_DEPENDENCIES) 
+	@rm -f tftopl$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(tftopl_OBJECTS) $(tftopl_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibjbib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibjlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibkanji.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibtex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dvitype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-tex-pool.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-tex0.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-tex1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-tex2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-texextra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-texini.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-texjlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jtex-texkanji.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pltotf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tftopl.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+jtex-texini.o: texini.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texini.o -MD -MP -MF $(DEPDIR)/jtex-texini.Tpo -c -o jtex-texini.o `test -f 'texini.c' || echo '$(srcdir)/'`texini.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texini.Tpo $(DEPDIR)/jtex-texini.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texini.c' object='jtex-texini.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texini.o `test -f 'texini.c' || echo '$(srcdir)/'`texini.c
+
+jtex-texini.obj: texini.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texini.obj -MD -MP -MF $(DEPDIR)/jtex-texini.Tpo -c -o jtex-texini.obj `if test -f 'texini.c'; then $(CYGPATH_W) 'texini.c'; else $(CYGPATH_W) '$(srcdir)/texini.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texini.Tpo $(DEPDIR)/jtex-texini.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texini.c' object='jtex-texini.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texini.obj `if test -f 'texini.c'; then $(CYGPATH_W) 'texini.c'; else $(CYGPATH_W) '$(srcdir)/texini.c'; fi`
+
+jtex-tex0.o: tex0.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex0.o -MD -MP -MF $(DEPDIR)/jtex-tex0.Tpo -c -o jtex-tex0.o `test -f 'tex0.c' || echo '$(srcdir)/'`tex0.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex0.Tpo $(DEPDIR)/jtex-tex0.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex0.c' object='jtex-tex0.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex0.o `test -f 'tex0.c' || echo '$(srcdir)/'`tex0.c
+
+jtex-tex0.obj: tex0.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex0.obj -MD -MP -MF $(DEPDIR)/jtex-tex0.Tpo -c -o jtex-tex0.obj `if test -f 'tex0.c'; then $(CYGPATH_W) 'tex0.c'; else $(CYGPATH_W) '$(srcdir)/tex0.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex0.Tpo $(DEPDIR)/jtex-tex0.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex0.c' object='jtex-tex0.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex0.obj `if test -f 'tex0.c'; then $(CYGPATH_W) 'tex0.c'; else $(CYGPATH_W) '$(srcdir)/tex0.c'; fi`
+
+jtex-tex1.o: tex1.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex1.o -MD -MP -MF $(DEPDIR)/jtex-tex1.Tpo -c -o jtex-tex1.o `test -f 'tex1.c' || echo '$(srcdir)/'`tex1.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex1.Tpo $(DEPDIR)/jtex-tex1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex1.c' object='jtex-tex1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex1.o `test -f 'tex1.c' || echo '$(srcdir)/'`tex1.c
+
+jtex-tex1.obj: tex1.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex1.obj -MD -MP -MF $(DEPDIR)/jtex-tex1.Tpo -c -o jtex-tex1.obj `if test -f 'tex1.c'; then $(CYGPATH_W) 'tex1.c'; else $(CYGPATH_W) '$(srcdir)/tex1.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex1.Tpo $(DEPDIR)/jtex-tex1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex1.c' object='jtex-tex1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex1.obj `if test -f 'tex1.c'; then $(CYGPATH_W) 'tex1.c'; else $(CYGPATH_W) '$(srcdir)/tex1.c'; fi`
+
+jtex-tex2.o: tex2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex2.o -MD -MP -MF $(DEPDIR)/jtex-tex2.Tpo -c -o jtex-tex2.o `test -f 'tex2.c' || echo '$(srcdir)/'`tex2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex2.Tpo $(DEPDIR)/jtex-tex2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex2.c' object='jtex-tex2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex2.o `test -f 'tex2.c' || echo '$(srcdir)/'`tex2.c
+
+jtex-tex2.obj: tex2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex2.obj -MD -MP -MF $(DEPDIR)/jtex-tex2.Tpo -c -o jtex-tex2.obj `if test -f 'tex2.c'; then $(CYGPATH_W) 'tex2.c'; else $(CYGPATH_W) '$(srcdir)/tex2.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex2.Tpo $(DEPDIR)/jtex-tex2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex2.c' object='jtex-tex2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex2.obj `if test -f 'tex2.c'; then $(CYGPATH_W) 'tex2.c'; else $(CYGPATH_W) '$(srcdir)/tex2.c'; fi`
+
+jtex-tex-pool.o: tex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex-pool.o -MD -MP -MF $(DEPDIR)/jtex-tex-pool.Tpo -c -o jtex-tex-pool.o `test -f 'tex-pool.c' || echo '$(srcdir)/'`tex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex-pool.Tpo $(DEPDIR)/jtex-tex-pool.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex-pool.c' object='jtex-tex-pool.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex-pool.o `test -f 'tex-pool.c' || echo '$(srcdir)/'`tex-pool.c
+
+jtex-tex-pool.obj: tex-pool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-tex-pool.obj -MD -MP -MF $(DEPDIR)/jtex-tex-pool.Tpo -c -o jtex-tex-pool.obj `if test -f 'tex-pool.c'; then $(CYGPATH_W) 'tex-pool.c'; else $(CYGPATH_W) '$(srcdir)/tex-pool.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-tex-pool.Tpo $(DEPDIR)/jtex-tex-pool.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tex-pool.c' object='jtex-tex-pool.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-tex-pool.obj `if test -f 'tex-pool.c'; then $(CYGPATH_W) 'tex-pool.c'; else $(CYGPATH_W) '$(srcdir)/tex-pool.c'; fi`
+
+jtex-texextra.o: texextra.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texextra.o -MD -MP -MF $(DEPDIR)/jtex-texextra.Tpo -c -o jtex-texextra.o `test -f 'texextra.c' || echo '$(srcdir)/'`texextra.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texextra.Tpo $(DEPDIR)/jtex-texextra.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texextra.c' object='jtex-texextra.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texextra.o `test -f 'texextra.c' || echo '$(srcdir)/'`texextra.c
+
+jtex-texextra.obj: texextra.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texextra.obj -MD -MP -MF $(DEPDIR)/jtex-texextra.Tpo -c -o jtex-texextra.obj `if test -f 'texextra.c'; then $(CYGPATH_W) 'texextra.c'; else $(CYGPATH_W) '$(srcdir)/texextra.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texextra.Tpo $(DEPDIR)/jtex-texextra.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texextra.c' object='jtex-texextra.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texextra.obj `if test -f 'texextra.c'; then $(CYGPATH_W) 'texextra.c'; else $(CYGPATH_W) '$(srcdir)/texextra.c'; fi`
+
+jtex-texkanji.o: texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texkanji.o -MD -MP -MF $(DEPDIR)/jtex-texkanji.Tpo -c -o jtex-texkanji.o `test -f 'texkanji.c' || echo '$(srcdir)/'`texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texkanji.Tpo $(DEPDIR)/jtex-texkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texkanji.c' object='jtex-texkanji.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texkanji.o `test -f 'texkanji.c' || echo '$(srcdir)/'`texkanji.c
+
+jtex-texkanji.obj: texkanji.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texkanji.obj -MD -MP -MF $(DEPDIR)/jtex-texkanji.Tpo -c -o jtex-texkanji.obj `if test -f 'texkanji.c'; then $(CYGPATH_W) 'texkanji.c'; else $(CYGPATH_W) '$(srcdir)/texkanji.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texkanji.Tpo $(DEPDIR)/jtex-texkanji.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texkanji.c' object='jtex-texkanji.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texkanji.obj `if test -f 'texkanji.c'; then $(CYGPATH_W) 'texkanji.c'; else $(CYGPATH_W) '$(srcdir)/texkanji.c'; fi`
+
+jtex-texjlib.o: texjlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texjlib.o -MD -MP -MF $(DEPDIR)/jtex-texjlib.Tpo -c -o jtex-texjlib.o `test -f 'texjlib.c' || echo '$(srcdir)/'`texjlib.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texjlib.Tpo $(DEPDIR)/jtex-texjlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texjlib.c' object='jtex-texjlib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texjlib.o `test -f 'texjlib.c' || echo '$(srcdir)/'`texjlib.c
+
+jtex-texjlib.obj: texjlib.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jtex-texjlib.obj -MD -MP -MF $(DEPDIR)/jtex-texjlib.Tpo -c -o jtex-texjlib.obj `if test -f 'texjlib.c'; then $(CYGPATH_W) 'texjlib.c'; else $(CYGPATH_W) '$(srcdir)/texjlib.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/jtex-texjlib.Tpo $(DEPDIR)/jtex-texjlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='texjlib.c' object='jtex-texjlib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jtex-texjlib.obj `if test -f 'texjlib.c'; then $(CYGPATH_W) 'texjlib.c'; else $(CYGPATH_W) '$(srcdir)/texjlib.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool config.lt
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	elif test -n "$$redo_logs"; then \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
+	    else \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+	    fi; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
+	    else \
+	      color_start= color_end=; \
+	    fi; \
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__post_remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
+
+dist-tarZ: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__post_remove_distdir)
+
+dist-shar: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__post_remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__post_remove_distdir)
+
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__post_remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS) c-auto.h
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+	clean-libtool clean-local clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-TESTS \
+	check-am clean clean-binPROGRAMS clean-checkPROGRAMS \
+	clean-cscope clean-generic clean-libtool clean-local \
+	clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+	dist-tarZ dist-xz dist-zip distcheck distclean \
+	distclean-compile distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	recheck tags tags-am uninstall uninstall-am \
+	uninstall-binPROGRAMS
+
+.PRECIOUS: Makefile
+
+
+# in case of an SVN repository
+dist-hook:
+	rm -rf `find $(distdir) -name .svn`
+
+# Rebuild $(proglib)
+$(proglib):
+	cd ../web2c/lib && $(MAKE) $(AM_MAKEFLAGS)
+
+# Rebuild Web2C programs
+web2c/stamp-fixwrites:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-fixwrites
+web2c/stamp-splitup:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-splitup
+web2c/stamp-web2c:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-web2c
+web2c/stamp-makecpool:
+	cd ../web2c/web2c && $(MAKE) $(AM_MAKEFLAGS) stamp-makecpool
+
+tangle$(EXEEXT):
+	cd ../web2c && $(MAKE) $(AM_MAKEFLAGS) tangle$(EXEEXT)
+tie$(EXEEXT):
+	cd ../web2c && $(MAKE) $(AM_MAKEFLAGS) tie$(EXEEXT)
+
+.PRECIOUS: %.ch %.p %.c
+bibtex.c bibtex.h: bibtex-web2c
+bibtex-web2c: $(web2c_depend) web2c/cvtbib.sed bibtex.p
+	$(web2c) bibtex
+	echo timestamp >$@
+	touch bibtex.c bibtex.h
+bibtex.p: ../web2c/tangle$(EXEEXT) bibtex.web jbibtex.ch
+	$(tangle) bibtex jbibtex
+bibkanji.c: lib/kanji.c kanji.h
+	sed s/TEX-OR-BIB/bib/ $(srcdir)/lib/kanji.c >$@
+bibjbib.c: lib/jbib.c
+	cp $(srcdir)/lib/jbib.c $@
+bibjlib.c: lib/jlib.c
+	cp $(srcdir)/lib/jlib.c $@
+### dvicopy.test
+#DISTCLEANFILES += tests/xstory.dvi tests/xpplr.dvi
+### dvitype.test
+#DISTCLEANFILES += tests/xstory.dvityp tests/xpagenum.typ
+### gftodvi.test
+#DISTCLEANFILES += cmr10.dvi tests/xcmr10.dvi
+### gftopk.test
+#DISTCLEANFILES += cmr10.pk tests/xcmr10.pk
+### gftype.test
+#DISTCLEANFILES += tests/xcmr10.gft1 tests/xcmr10.gft2
+### mft.test
+#DISTCLEANFILES += io.tex tests/io.tex
+### patgen.test
+#DISTCLEANFILES += tests/xpatout pattmp.4
+### pktogf.test
+#DISTCLEANFILES += cmr10.gf tests/xcmr10.600gf
+### pktype.test
+#DISTCLEANFILES += tests/xcmr10.pktyp
+### pltotf.tes
+#DISTCLEANFILES += tests/xcmr10.tfm
+### pooltype.test
+#DISTCLEANFILES += tests/xtexpool.typ
+### tftopl.test
+#DISTCLEANFILES += tests/xcmr10.pl
+### vftovp.test
+#DISTCLEANFILES += tests/xptmr.vpl
+### vptovf.test
+#DISTCLEANFILES += tests/xptmr.tfm tests/xptmr.vf
+### weave.test
+#DISTCLEANFILES += pooltype.tex
+
+#EXTRA_DIST += \
+#	tests/Cherokee.pl \
+#	tests/OCherokee.ovp \
+#	tests/allbib.aux \
+#	tests/allbib.tex \
+#	tests/apalike.bst \
+#	tests/batch.tex \
+#	tests/check.log \
+#	tests/cmr10.600gf \
+#	tests/cmr10.pk \
+#	tests/cmr10.pl \
+#	tests/cmr10.tfm \
+#	tests/cmr7.tfm \
+#	tests/cmr8.tfm \
+#	tests/cmti10.tfm \
+#	tests/cmtt10.tfm \
+#	tests/cmtt8.tfm \
+#	tests/dict \
+#	tests/eight.tex \
+#	tests/end.tex \
+#	tests/exampl.aux \
+#	tests/exampl.tex \
+#	tests/gray.tfm \
+#	tests/hello.tex \
+#	tests/io.mf \
+#	tests/just.texi \
+#	tests/label.mp \
+#	tests/label.mpx \
+#	tests/level1.opl \
+#	tests/logo8.tfm \
+#	tests/longtfm.tex \
+#	tests/magic.tex \
+#	tests/memtest.tex \
+#	tests/mltextst.tex \
+#	tests/mptest.mp \
+#	tests/mptest.mpx \
+#	tests/one.two.mf \
+#	tests/one.two.mp \
+#	tests/one.two.tex \
+#	tests/online.mf \
+#	tests/openout.mp \
+#	tests/openout.tex \
+#	tests/pagenum.dvi \
+#	tests/pagenum.tex \
+#	tests/patgen.in \
+#	tests/patterns \
+#	tests/plain.mft \
+#	tests/pplr.dvi \
+#	tests/pplr.tfm \
+#	tests/ptmr.dvi \
+#	tests/ptmr.tfm \
+#	tests/ptmr.vf \
+#	tests/ptmr.vpl \
+#	tests/rpsyr.tfm \
+#	tests/rptmr.tfm \
+#	tests/specialhex.ovp \
+#	tests/story.dvi \
+#	tests/testex.err \
+#	tests/testex.mp \
+#	tests/testex.tex \
+#	tests/translate \
+#	tests/uno.dos \
+#	tests/write18.tex \
+#	tests/xampl.bib
+
+# We must create texd.h before building the tex_OBJECTS.
+$(tex_OBJECTS): texd.h
+
+$(tex_c_h): tex-web2c
+tex-web2c: tex.p $(web2c_texmf)
+	$(web2c) tex
+	: $(synctex_convert_tex)
+	echo timestamp >$@
+	touch $(tex_c_h)
+
+tex-pool.c: tex.pool $(makecpool_stamp) tmf-pool.h
+	$(makecpool) tex.pool $(srcdir)/tmf-pool.h >$@ || rm -f $@
+
+texextra.c: lib/texmfmp.c texd.h
+	sed s/TEX-OR-MF-OR-MP/tex/ $(srcdir)/lib/texmfmp.c >$@
+texkanji.c: lib/kanji.c kanji.h
+	sed s/TEX-OR-BIB/tex/ $(srcdir)/lib/kanji.c >$@
+texjlib.c: lib/jlib.c
+	cp $(srcdir)/lib/jlib.c $@
+
+# Tangling TeX
+tex.p tex.pool: tex-tangle
+tex-tangle: ../web2c/tangle$(EXEEXT) tex.web tex-final.ch
+	$(tangle) tex.web tex-final.ch
+	echo timestamp >$@
+	touch tex.p tex.pool
+
+tex-final.ch: ../web2c/tie$(EXEEXT) $(tex_ch_srcs)
+	$(tie) -c $@ $(tex_ch_srcs)
+
+.PHONY: trip-clean
+clean-local:: trip-clean
+trip-clean:
+	rm -f trip.tfm trip.pl trip.tex trip.fmt tripin.fot tripin.log
+	rm -f trip.fot trip.log trip.dvi trip.typ tripos.tex 8terminal.tex
+	rm -rf tfm
+
+.PHONY: trap-clean
+clean-local:: trap-clean
+trap-clean:
+#	rm -f trap.mf trap.base
+#	rm -f mftrapin.fot mftrapin.log
+#	rm -f mftrap.fot mftrap.log mftrap.tfm
+#	rm -f mftrap.pl trap.72270gf trap.typ
+
+#EXTRA_DIST += \
+#	triptrap/README \
+#	triptrap/mftrap.diffs \
+#	triptrap/mftrap.fot \
+#	triptrap/mftrap.log \
+#	triptrap/mftrap.pl \
+#	triptrap/mftrap1.in \
+#	triptrap/mftrap2.in \
+#	triptrap/mftrapin.log \
+#	triptrap/mptrap.diffs \
+#	triptrap/mptrap.fot \
+#	triptrap/mptrap.log \
+#	triptrap/mptrap.pl \
+#	triptrap/mptrap.readme \
+#	triptrap/mptrap1.in \
+#	triptrap/mptrap2.in \
+#	triptrap/mptrapin.log \
+#	triptrap/mtrap.0 \
+#	triptrap/mtrap.1 \
+#	triptrap/mtrap.log \
+#	triptrap/mtrap.mp \
+#	triptrap/texmf.cnf \
+#	triptrap/trap.148 \
+#	triptrap/trap.149 \
+#	triptrap/trap.150 \
+#	triptrap/trap.151 \
+#	triptrap/trap.197 \
+#	triptrap/trap.200 \
+#	triptrap/trap.5 \
+#	triptrap/trap.6 \
+#	triptrap/trap.mf \
+#	triptrap/trap.mp \
+#	triptrap/trap.mpx \
+#	triptrap/trap.typ \
+#	triptrap/trapf.pl \
+#	triptrap/trapman.tex \
+#	triptrap/trip.diffs \
+#	triptrap/trip.fot \
+#	triptrap/trip.log \
+#	triptrap/trip.pl \
+#	triptrap/trip.tex \
+#	triptrap/trip.typ \
+#	triptrap/trip1.in \
+#	triptrap/trip2.in \
+#	triptrap/tripin.log \
+#	triptrap/tripman.tex \
+#	triptrap/tripos.tex \
+#	triptrap/writeo \
+#	triptrap/writeo.2
+
+#include $(srcdir)/am/bootstrap.am
+
+#include $(srcdir)/am/cweb.am
+
+#include $(srcdir)/mplibdir/am/mplib.am
+
+#include $(srcdir)/mplibdir/am/libmplib.am
+
+#include $(srcdir)/etexdir/am/etex.am
+
+#include $(srcdir)/pdftexdir/am/pdftex.am
+#include $(srcdir)/pdftexdir/am/libpdftex.am
+#include $(srcdir)/pdftexdir/am/ttf2afm.am
+#include $(srcdir)/pdftexdir/am/pdftosrc.am
+
+#include $(srcdir)/luatexdir/am/luatex.am
+#include $(srcdir)/luatexdir/am/luatangle.am
+#include $(srcdir)/luatexdir/am/liblua51.am
+#include $(srcdir)/luatexdir/am/libzzip.am
+#include $(srcdir)/luatexdir/am/luasocket.am
+#include $(srcdir)/luatexdir/am/luamisc.am
+#include $(srcdir)/luatexdir/am/luafontforge.am
+#include $(srcdir)/luatexdir/am/libluatex.am
+
+#include $(srcdir)/xetexdir/am/xetex.am
+
+#include $(srcdir)/omegaware/am/omegaware.am
+
+#if OTANGLE
+#check_PROGRAMS += pltotf tftopl
+#endif OTANGLE
+
+#include $(srcdir)/alephdir/am/aleph.am
+
+#include $(srcdir)/synctexdir/am/synctex.am
+
+#include $(srcdir)/libmd5/am/md5.am
+
+#EXTRA_DIST += fmtutil.in
+
+#EXTRA_DIST += Makefile.in.orig configure.in.orig metapost.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/README
@@ -0,0 +1,26 @@
+JTeX 2.1 (JTeX based on TeX 3.141592 / teTeX 3.0.x)
+
+				SAKURAI Takafumi (sakurai@math.s.chiba-u.ac.jp)
+
+This file should be found in the directory /.../tetex-src-3.0/texk/web2c-j.
+
+
+[] Hierarchy of Library Files
+
+For the files added by unpacking texfam-texmf-j<version>.tar.gz,
+read INSTALL.
+
+
+[] Setups in Installation and Fonts for Printing and Previewing
+
+Read INSTALL.
+
+
+Copyright:
+web2c-j is derived from web2c. The files I modified have the same copying
+permission as the original. The files I wrote are covered by my copyright.
+See the beginning of the files.
+
+Acknowledgement:
+Thanks to KITAGAWA Katsuhiro at Osaka University for merging JTeX 1.52
+with web2c-6.1. I have referred to his work in making JTeX 1.6.
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/README.ja
@@ -0,0 +1,44 @@
+JTeX 2.1 (JTeX based on TeX 3.141592 / teTeX 3.0.x)
+
+				$B:y0f5.J8(B(sakurai@math.s.chiba-u.ac.jp)
+
+$B$3$N%U%!%$%k$O!"(B /.../tetex-src-3.0/texk/web2c-j $B$H$$$&%G%#%l%/%H%j(B
+$B$N2<$K$"$k$O$:$G$"$k!#(B
+
+
+[] $B%i%$%V%i%j$N%G%#%l%/%H%j9=@.(B
+
+texfam-texmf-j<version>.tar.gz $B$rE83+$9$k$3$H$K$h$C$F?7$7$/2C$o$k%U%!(B
+$B%$%k$K$D$$$F$O!"(BINSTALL.ja$B$r;2>H$7$F2<$5$$!#(B
+
+
+[] $B%$%s%9%H!<%k;~$N@_Dj$*$h$S0u:~!"(Bpreview$B$KI,MW$J%U%)%s%H(B
+
+INSTALL.ja$B$rFI$s$G2<$5$$!#(B
+
+
+[] JLaTeX2e
+
+$B$3$N(Bjlatex$B$O(BLaTeX2e$B$rF|K\8l2=$7$?$b$N$G$9$,!"$^$@;EMM$,JQ$o$k$+$b$7$l(B
+$B$^$;$s$N$G8fN;>52<$5$$!#$=$b$=$b$^$@%I%-%e%a%s%H$,$J$$$N$G$9$,!"IaDL$K(B
+$B;H$C$F$$$k$V$s$K$ODI2C(B/$B2~JQ$7$?%3%^%s%I$K$D$$$FCN$i$J$/$F$b;HMQ$K$OBQ(B
+$B$($k(B(?)$B$H;W$$$^$9!#(B
+
+$B8=:_$G$O(BLaTeX2e$B$,<gN.$K$J$C$F$$$k$N$G!"(BJLaTeX$B$b(BLaTeX2e$B$K4p$E$$$?$b$N$r(B
+$B;H$&$3$H$r4+$a$^$9!#$?$@$7!"(B(LaTeX$B$N>l9g$bF1$8$G$9$,(B)$B5l(B(J)LaTeX$B$NFbIt(B
+$B9=B$$K0MB8$7$?%^%/%m$r;H$C$F$$$k>l9g!"?7$7$$(B(J)LaTeX$B$G$O=hM}$G$-$J$$$3(B
+$B$H$,$"$j$^$9!#$3$N$3$H$r9MN8$7$F!"$3$N%Q%C%1!<%8$G$O5l(B(J)LaTeX$B$r(B
+(j)latex209$B$H$$$&L>A0$G:n$k$h$&$K$7$F$"$j$^$9!#(B
+
+$B$^$?!"(B(j)slitex$B$O(B(J)LaTeX2e$B$G$OJL$N%3%^%s%I$G$O$J$/!"(B(j)latex$B$N(Bclass$B$H(B
+$B$7$FDj5A$5$l$F$$$^$9!#(B
+
+
+Copyright:
+web2c-j is derived from web2c. The files I modified have the same copying
+permission as the original. The files I wrote are covered by my copyright.
+See the beginning of the files.
+
+$B<U<-(B:
+JTeX version 1.6$B$r:n$k$K$"$?$C$F!"Bg:eBg3X4pAC9)3XIt$NKL@n>!9@$5$s$,(B 
+JTeX 1.52$B$r(Bweb2c-6.1$B$K%^!<%8$7$?:n6H$r;29M$K$7$^$7$?!#(B
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/aclocal.m4
@@ -0,0 +1,178 @@
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+# longlong.m4 serial 17
+dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+  AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+     [ac_cv_type_long_long_int=yes
+      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+        if test $ac_cv_type_long_long_int = yes; then
+          dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+          dnl If cross compiling, assume the bug is not important, since
+          dnl nobody cross compiles for this platform as far as we know.
+          AC_RUN_IFELSE(
+            [AC_LANG_PROGRAM(
+               [[@%:@include <limits.h>
+                 @%:@ifndef LLONG_MAX
+                 @%:@ define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 @%:@ define LLONG_MAX (HALF - 1 + HALF)
+                 @%:@endif]],
+               [[long long int n = 1;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;]])],
+            [],
+            [ac_cv_type_long_long_int=no],
+            [:])
+        fi
+      fi])
+  if test $ac_cv_type_long_long_int = yes; then
+    AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+      [Define to 1 if the system has the type 'long long int'.])
+  fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+  AC_CACHE_CHECK([for unsigned long long int],
+    [ac_cv_type_unsigned_long_long_int],
+    [ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+       AC_LINK_IFELSE(
+         [_AC_TYPE_LONG_LONG_SNIPPET],
+         [],
+         [ac_cv_type_unsigned_long_long_int=no])
+     fi])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+      [Define to 1 if the system has the type 'unsigned long long int'.])
+  fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+  AC_LANG_PROGRAM(
+    [[/* For now, do not test the preprocessor; as of 2007 there are too many
+         implementations with broken preprocessors.  Perhaps this can
+         be revisited in 2012.  In the meantime, code should not expect
+         #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+                     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+                     ? 1 : -1)];
+      int i = 63;]],
+    [[/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+              | (llmax / ll) | (llmax % ll)
+              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+              | (ullmax / ull) | (ullmax % ull));]])
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/am/jtex.am
@@ -0,0 +1,84 @@
+## texk/web2c-j/am/jtex.am: Makefile fragment for JTeX..
+##
+## Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+web2c_j = srcdir=$(srcdir) $(shared_env) $(SHELL) $(srcdir)/jtexdir/jconvert
+web2c_aux = web2c/jconvert
+
+if JTEX
+bin_PROGRAMS += jtex
+endif JTEX
+EXTRA_PROGRAMS += jtex
+
+# With --enable-ipc, TeX may need to link with -lsocket.
+jtex_CPPFLAGS = $(KPATHSEA_INCLUDES) $(AM_CPPFLAGS)
+jtex_LDADD = $(LDADD) $(ipc_socketlibs)
+
+# TeX C sources
+jtex_c_h = jtexini.c jtex0.c jtexcoerce.h jtexd.h
+nodist_jtex_SOURCES = $(jtex_c_h) jtex-pool.c jtexdir/jtexextra.c jtexdir/texkanji.c
+dist_jtex_SOURCES = jtexdir/jlib.c
+
+# We must create jtexd.h before building the ptex_OBJECTS.
+jtex_prereq = jtexd.h
+$(jtex_OBJECTS): $(jtex_prereq)
+
+$(jtex_c_h): jtex-web2c
+jtex-web2c: jtex.p $(web2c_texmf) jtexdir/jtex.defines
+	$(web2c_j) jtex
+
+jtex-pool.c: jtex.pool jtexd.h $(makecpool_stamp)
+	$(makecpool) jtex >$@ || rm -f $@
+
+jtexdir/jtexextra.c: jtexdir/texmfmp.c jtexd.h
+	cp $(srcdir)/jtexdir/texmfmp.c $@
+jtexdir/texkanji.c: jtexdir/kanji.c jtexdir/kanji.h
+	sed s/TEX-OR-BIB/jtexd/ $(srcdir)/jtexdir/kanji.c >$@
+
+# Tangling TeX
+jtex.p jtex.pool: jtex-tangle
+jtex-tangle: tangle$(EXEEXT) jtex.web jtex-final.ch
+	$(tangle) jtex.web jtex-final.ch
+
+# Generate jtex.web
+jtex.web: tie$(EXEEXT) $(jtex_web_srcs)
+	$(tie_m) $(jtex_web_srcs)
+jtex_web_srcs = \
+    tex.web \
+    tex.ch
+
+# Generate jtex-final.ch
+jtex-final.ch: tie$(EXEEXT) jtex.web $(jtex_ch_srcs)
+	$(tie_c) jtex.web $(jtex_ch_srcs)
+jtex_ch_srcs = \
+	jtexdir/jtex.ch \
+	tex-binpool.ch
+##
+EXTRA_DIST += $(jtex_ch_srcs) $(jtex_web_srcs) jtexdir/texmfmp.c jtexdir/jtex.defines
+
+DISTCLEANFILES += $(nodist_jtex_SOURCES) jtex-final.ch jtex-web2c \
+	jtex.p jtex.pool jtex-tangle
+
+
+if JBIBTEX
+bin_PROGRAMS += jbibtex
+endif JBIBTEX
+EXTRA_PROGRAMS += jbibtex
+
+nodist_jbibtex_SOURCES = jbibtex.c jbibtex.h jtexdir/bibkanji.c jtexdir/jlib.c
+dist_jbibtex_SOURCES = jtexdir/jbib.c
+jbibtex_SOURCES = jtexdir/kanji.h
+jbibtex_CPPFLAGS = $(KPATHSEA_INCLUDES) $(AM_CPPFLAGS)
+jbibtex_LDADD  = $(LDADD) $(ipc_socketlibs)
+jbibtex.c jbibtex.h: jbibtex-web2c
+	@$(web2c) jbibtex
+jbibtex-web2c: jbibtex.p $(web2c_depend) jtexdir/jbib.defines jtexdir/cvtbib.sed
+	@$(web2c_j) jbibtex
+jbibtex.p: tangle$(EXEEXT) jbibtex.web jtexdir/jbibtex.ch
+	$(tangle) jbibtex jtexdir/jbibtex.ch
+jbibtex.web: tie$(EXEEXT) bibtex.web bibtex.ch
+	$(tie_m) bibtex.web bibtex.ch
+EXTRA_DIST += jtexdir/pbibtex.ch jtexdir/cvtbib.sed
+
+jtexdir/bibkanji.c: jtexdir/kanji.c jtexdir/kanji.h
+	sed s+TEX-OR-BIB+jtexdir/jbib+ $(srcdir)/jtexdir/kanji.c >$@
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/c-auto.in
@@ -0,0 +1,146 @@
+/* c-auto.in.  Generated from configure.ac by autoheader.  */
+
+/* c-auto.h: defines for web2c, as determined by configure.
+
+   Copyright 1994-97, 2008, 2009 Karl Berry.
+   Copyright 1997-99, 2002, 2005 Olaf Weber.
+
+   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 3 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, see <http://www.gnu.org/licenses/>.  */
+
+/* Guard against double inclusion. */
+#ifndef WEB2C_C_AUTO_H
+#define WEB2C_C_AUTO_H
+
+/* web2c: the version string. */
+#define WEB2CVERSION "REPLACE-WITH-WEB2CVERSION"
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* web2c: Default editor for interactive `e' option. */
+#undef EDITOR
+
+/* web2c: Define to enable HackyInputFileNameForCoreDump.tex. */
+#undef FUNNY_CORE_DUMP
+
+/* Define to 1 if you have the `access' function. */
+#undef HAVE_ACCESS
+
+/* Define to 1 if you have the `atoi' function. */
+#undef HAVE_ATOI
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#undef HAVE_LANGINFO_H
+
+/* Define to 1 if you have the `posix' library (-lposix). */
+#undef HAVE_LIBPOSIX
+
+/* Define to 1 if the system has the type `long double'. */
+#undef HAVE_LONG_DOUBLE
+
+/* Define to 1 if the system has the type 'long long int'. */
+#undef HAVE_LONG_LONG_INT
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#undef HAVE_SYS_TIMEB_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#undef HAVE_SYS_WAIT_H
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type 'unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
+/* web2c: Define to disable architecture-independent dump files. Faster on
+   LittleEndian architectures. */
+#undef NO_DUMP_SHARE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif
+
+#endif /* !WEB2C_C_AUTO_H */
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/config.h
@@ -0,0 +1,115 @@
+/* config.h: All .c files include this first.
+
+Copyright (C) 1995, 96 Karl Berry.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef WEB2C_CONFIG_H
+#define WEB2C_CONFIG_H
+
+/* The stuff from the path searching library.  */
+#include <kpathsea/config.h>
+#include <../web2c/w2c/c-auto.h>
+#include <stdarg.h>
+/* How to open a binary file.  */
+#include <kpathsea/c-fopen.h>
+
+/* The smallest signed type: use `signed char' if ANSI C, `short' if
+   char is unsigned, otherwise `char'.  */
+#ifndef SCHAR_TYPE
+#if __STDC__
+#define SCHAR_TYPE signed char
+#else /* not __STDC */
+#ifdef __CHAR_UNSIGNED__
+#define SCHAR_TYPE short
+#else
+#define SCHAR_TYPE char
+#endif
+#endif /* not __STDC__ */
+#endif /* not SCHAR_TYPE */
+typedef SCHAR_TYPE schar;
+
+/* The type `integer' must be a signed integer capable of holding at
+   least the range of numbers (-2^31)..(2^31-1).  If your compiler goes
+   to great lengths to make programs fail, you might have to change this
+   definition.  If this changes, you may have to modify
+   web2c/fixwrites.c, since it generates code to do integer output using
+   "%ld", and casts all integral values to be printed to `long'.
+   
+   If you define your own INTEGER_TYPE, you have to define your own
+   INTEGER_MAX and INTEGER_MIN, too. */
+#ifndef INTEGER_TYPE
+
+#if SIZEOF_LONG > 4 && !defined (NO_FMTBASE_SHARE)
+/* If we have 64-bit longs and want to share format files (with 32-bit
+   machines), use `int'.  */
+#define INTEGER_IS_INT
+#endif
+
+#ifdef INTEGER_IS_INT
+#define INTEGER_TYPE int
+#define INTEGER_MAX INT_MAX
+#define INTEGER_MIN INT_MIN
+#else
+#define INTEGER_TYPE long
+#define INTEGER_MAX LONG_MAX
+#define INTEGER_MIN LONG_MIN
+#endif /* not INTEGER_IS_INT */
+
+#endif /* not INTEGER_TYPE */
+
+typedef INTEGER_TYPE integer;
+
+/* I don't want to write a configure test for remove when all Unix
+   machines have unlink.  But, for the sake of non-Unix machines that
+   support ANSI C... */
+#if !defined (unix) && !defined (__unix__) && defined (__STDC__) && !defined (unlink)
+#define unlink remove
+#endif
+
+/* Window support on the Amiga is just for the Amiga.  */
+#ifdef AMIGA
+#define AMIGAWIN
+#endif
+
+/* Window support for WIN32 machines. */
+#ifdef WIN32
+#define WIN32WIN
+#endif
+
+/* strtol.c */
+#ifndef HAVE_STRTOL
+extern long strtol(const char *, char **, int);
+#endif
+
+#if defined __GNUC__ && __GNUC__ >=3
+#define WEB2C_NORETURN __attribute__((__noreturn__))
+#else
+#define WEB2C_NORETURN
+#endif
+
+/* From uexit.c.  This is here because the lib/ and web2c/ routines
+   themselves can use it, but they don't need cpascal.h.  */
+extern void uexit(int status);
+
+/* usage.c */
+extern void usage(const_string help_msg);
+
+#ifdef WIN32
+#undef system
+#define system win32_system
+#endif
+
+#endif /* not CONFIG_H */
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/configure
@@ -0,0 +1,6228 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for Web2C 2009.
+#
+# Report bugs to <tex-k@tug.org>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='Web2C'
+PACKAGE_TARNAME='web2c'
+PACKAGE_VERSION='2009'
+PACKAGE_STRING='Web2C 2009'
+PACKAGE_BUGREPORT='tex-k@tug.org'
+PACKAGE_URL=''
+
+ac_unique_file="cpascal.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+EGREP
+GREP
+CPP
+ac_ct_CC
+CFLAGS
+CC
+YFLAGS
+YACC
+KPATHSEA_PATHS_H
+WEB_FALSE
+WEB_TRUE
+MINGW32_FALSE
+MINGW32_TRUE
+WIN32_FALSE
+WIN32_TRUE
+KPSEWHICH
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+WEB2CVERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_tex_banner
+with_editor
+enable_auto_core
+enable_dump_share
+enable_ipc
+enable_web_progs
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+YACC
+YFLAGS
+CC
+CFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+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=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -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_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$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 ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$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 | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$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 ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    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 | -n)
+    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 ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$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_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=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 ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# 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 the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  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
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # 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 <<_ACEOF
+\`configure' configures Web2C 2009 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/web2c]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of Web2C 2009:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-auto-core      cause TeX&MF to dump core, given a certain filename
+  --disable-dump-share    make fmt/base/mem files architecture-dependent
+  --disable-ipc           disable TeX's --ipc option, i.e., pipe to a program
+  --disable-web-progs     do not build WEB programs bibtex ... weave
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-tex-banner=STR   version string appended to banner lines [Web2C YEAR]
+  --with-editor=CMD       invoke CMD from the `e' option [vi +%d %s]
+
+Some influential environment variables:
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  YACC        The `Yet Another Compiler Compiler' implementation to use.
+              Defaults to the first program found out of: `bison -y', `byacc',
+              `yacc'.
+  YFLAGS      The list of arguments that will be passed by default to $YACC.
+              This script will default YFLAGS to the empty string to avoid a
+              default value of `-d' given by some make applications.
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <tex-k@tug.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+Web2C configure 2009
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ---------------------------- ##
+## Report this to tex-k@tug.org ##
+## ---------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by Web2C $as_me 2009, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+
+WEB2CVERSION=2009
+
+
+KPSE_COMMON(web2c programs)
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C++ compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+KPSE_CXX_HACK
+
+KPSE_WEB2C_PREPARE
+## texk/web2c-j/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c-j/
+## configure options for TeX and MF
+
+# Check whether --with-tex-banner was given.
+if test "${with_tex_banner+set}" = set; then :
+  withval=$with_tex_banner;
+fi
+
+# Check whether --with-editor was given.
+if test "${with_editor+set}" = set; then :
+  withval=$with_editor;
+fi
+# Check whether --enable-auto-core was given.
+if test "${enable_auto_core+set}" = set; then :
+  enableval=$enable_auto_core;
+fi
+# Check whether --enable-dump-share was given.
+if test "${enable_dump_share+set}" = set; then :
+  enableval=$enable_dump_share;
+fi
+## configure options for TeX
+# Check whether --enable-ipc was given.
+if test "${enable_ipc+set}" = set; then :
+  enableval=$enable_ipc;
+fi
+# AC_ARG_ENABLE([omfonts],
+#               AS_HELP_STRING([--disable-omfonts],
+#                              [do not compile and install omfonts (use Web2C versions)],
+#                              kpse_indent_26))[]dnl
+KPSE_WITH_XTEX(jtex,   yes, no,  JTeX,   )# ## configure options for MF
+# AC_ARG_ENABLE([mf],
+#               AS_HELP_STRING([--disable-mf],
+#                              [do not build METAFONT],
+#                              kpse_indent_26))[]dnl
+# AC_ARG_ENABLE([mf-nowin],
+#               AS_HELP_STRING([--disable-mf-nowin],
+#                              [do not build a separate non-windows-capable METAFONT],
+#                              kpse_indent_26+2))[]dnl
+# AC_ARG_WITH([mf-x-toolkit],
+#             AS_HELP_STRING([--without-mf-x-toolkit],
+#                            [do not use X toolkit for METAFONT]))[]dnl
+# m4_define([kpse_mf_win], [dnl
+# [[epsf],      [EPSF],      [EPSF pseudo]],
+# [[hp2627],    [HP2627],    [HP 2627]],
+# [[mftalk],    [MFTALK],    [mftalk (generic server)]],
+# [[next],      [NEXT],      [NeXT]],
+# [[regis],     [REGIS],     [Regis]],
+# [[suntools],  [SUN],       [old Suntools (not X)]],
+# [[tektronix], [TEKTRONIX], [Tektronix]],
+# [[uniterm],   [UNITERM],   [Uniterm]],
+# ])[]dnl
+# m4_foreach([Kpse_Win], [kpse_mf_win],
+#            [m4_ifset([Kpse_Win],
+#                      [KPSE_WITH_MFWIN(Kpse_Win)])])[]dnl
+# ## configure options for MP
+# AC_ARG_ENABLE([mp],
+#               AS_HELP_STRING([--disable-mp],
+#                              [do not build METAPOST],
+#                              kpse_indent_26))[]dnl
+## configure options for WEB programs
+# Check whether --enable-web-progs was given.
+if test "${enable_web_progs+set}" = set; then :
+  enableval=$enable_web_progs;
+fi
+
+
+case $with_tex_banner in #(
+  ''|yes|no) :
+    with_tex_banner="Web2C $WEB2CVERSION" ;; #(
+  *) :
+    if echo "$with_tex_banner" | grep -v "$WEB2CVERSION" >/dev/null; then :
+  as_fn_error $? "Bad \`--with-tex-banner=$with_tex_banner' version string (must contain \` $WEB2CVERSION')" "$LINENO" 5
+fi ;;
+esac
+cat >>confdefs.h <<_ACEOF
+#define WEB2CVERSION " ($with_tex_banner)"
+_ACEOF
+
+
+for ac_prog in kpsewhich
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_KPSEWHICH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$KPSEWHICH"; then
+  ac_cv_prog_KPSEWHICH="$KPSEWHICH" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_KPSEWHICH="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+KPSEWHICH=$ac_cv_prog_KPSEWHICH
+if test -n "$KPSEWHICH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KPSEWHICH" >&5
+$as_echo "$KPSEWHICH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$KPSEWHICH" && break
+done
+test -n "$KPSEWHICH" || KPSEWHICH="false"
+
+
+KPSE_ASM_UNDERSCORE
+
+case $with_editor in #(
+  ''|yes|no) :
+    with_editor='vi +%d %s' ;; #(
+  *) :
+     ;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+#define EDITOR "$with_editor"
+_ACEOF
+
+
+if test "x$enable_auto_core" = xyes; then :
+
+$as_echo "#define FUNNY_CORE_DUMP 1" >>confdefs.h
+
+fi
+
+if test "x$enable_dump_share" = xno; then :
+
+$as_echo "#define NO_DUMP_SHARE 1" >>confdefs.h
+
+fi
+
+case $enable_ipc in #(
+  yes|no) :
+     ;; #(
+  *) :
+    enable_ipc=yes ;;
+esac
+
+KPSE_CHECK_WIN32
+ if test "x$kpse_cv_have_win32" != xno; then
+  WIN32_TRUE=
+  WIN32_FALSE='#'
+else
+  WIN32_TRUE='#'
+  WIN32_FALSE=
+fi
+
+ if test "x$kpse_cv_have_win32" = xmingw32; then
+  MINGW32_TRUE=
+  MINGW32_FALSE='#'
+else
+  MINGW32_TRUE='#'
+  MINGW32_FALSE=
+fi
+
+
+# KPSE_CHECK_SOCKET_LIBS
+# AS_IF([test "x$enable_luatex:$enable_ipc" != xno:no],
+#       [AS_CASE([$ac_cv_search_connect],
+#                ["none required"], [],
+#                [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                             [KPSE_MSG_WARN([Sorry, no socket library: can not build luaTeX])
+#                              enable_luatex=no])
+#                       AS_IF([test "x$enable_ipc" = xyes],
+#                             [KPSE_MSG_WARN([no socket library: disabling ipc])
+#                              enable_ipc=no])],
+#                    [socketlibs=$ac_cv_search_connect])])
+# if test "x$enable_ipc" = xyes; then
+#    ipc_socketlibs=$socketlibs
+#    AC_DEFINE([IPC], 1, [tex: Define to enable --ipc.])
+# fi
+# # We may need additional libraries for luaTeX.
+# # On Solaris -lnsl for gethostbyname(), -lrt for nanosleep(),
+# # and maybe -lresolv for inet_aton().
+# lua_socketlibs=$socketlibs
+# if test "x$kpse_cv_have_win32" = xno; then
+#   kpse_save_LIBS=$LIBS
+#   AC_SEARCH_LIBS([gethostbyname], [nsl])
+#   AC_SEARCH_LIBS([inet_aton], [resolv])
+#   LIBS=$kpse_save_LIBS
+#   AC_SEARCH_LIBS([nanosleep], [rt])
+#   LIBS=$kpse_save_LIBS
+#   AS_CASE([$ac_cv_search_inet_aton],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no inet_aton(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_inet_aton"])
+#   AS_CASE([$ac_cv_search_gethostbyname],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no gethostbyname(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_gethostbyname"])
+#   AS_CASE([$ac_cv_search_nanosleep],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no nanosleep(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_nanosleep"])
+# fi
+# AC_SUBST([lua_socketlibs])
+# AC_SUBST([ipc_socketlibs])
+#
+# KPSE_CHECK_FRAMEWORK([Carbon], [ATSUStyle style])
+# KPSE_FONTCONFIG_FLAGS
+# AS_IF([test "x$enable_xetex:$kpse_cv_have_Carbon:$kpse_cv_have_fontconfig" = xyes:no:no],
+#       [KPSE_MSG_WARN([Sorry, can not build XeTeX without Carbon framework or fontconfig])
+#        enable_xetex=no])
+# AM_CONDITIONAL([XETEX_MACOSX], [test "x$kpse_cv_have_Carbon" = xyes])
+# AM_CONDITIONAL([XETEX_GRAPHITE], [test "x$with_graphite" != xno])
+#
+# dnl Generate *TEX and ALEPH conditionals.
+KPSE_XTEX_COND(jtex,   yes, no,  JTeX,   )#
+# AS_IF([test "x$enable_aleph:$enable_xetex" = xno:no],
+#       [enable_otangle=no],
+#       [enable_otangle=yes])
+# AM_CONDITIONAL([OTANGLE],
+#                [test "x$enable_otangle" = xyes])[]dnl
+#
+# AM_CONDITIONAL([OMFONTS], [test "x$enable_omfonts" != xno])
+#
+# AM_CONDITIONAL([MF], [test "x$enable_mf" != xno])
+# AM_CONDITIONAL([MFN], [test "x$enable_mf_nowin" != xno])
+#
+# # Handle --with-mf-x-toolkit and --with-x
+# test "x$enable_mf" = xno || enable_mf=yes
+# AS_CASE([$with_mf_x_toolkit],
+#         [yes|no], [],
+#         [''], [with_mf_x_toolkit=$enable_mf],
+#         [y|ye], [with_mf_x_toolkit=yes],
+#         [n], [with_mf_x_toolkit=no],
+#             [KPSE_MSG_WARN([unknown --with-mf-x-toolkit argument \`$with_mf_x_toolkit'; using yes.])
+#              with_mf_x_toolkit=yes])
+# test "x$with_x_toolkit" = xyes && with_x=yes
+# test "x$with_x" = xno && with_x_toolkit=no
+# : ${with_x=$enable_mf} # tell PATH_XTRA to use X for Metafont, if not specified.
+#
+# # Distinguish no X at all, no toolkit, or toolkit.
+# AC_PATH_XTRA
+# if test "x$with_x" = xyes; then
+#   if test "x$no_x" = xyes; then
+#     AC_MSG_ERROR([Sorry, could not find X include and library files required for Metafont.])
+#   fi
+#   test -n "$x_libraries" && XLFLAG="-L$x_libraries"
+#   wlibs="$XLFLAG -lX11"
+#   if test -z "$x_ext_lib"; then # allow envvar override
+#     AC_CHECK_LIB([Xext], [XextCreateExtension],
+#                  [x_ext_lib=-lXext], ,
+#                  [$wlibs $X_EXTRA_LIBS])
+#   fi
+#   test "x$with_mf_x_toolkit" = xyes && x_tool_libs="-lXt"
+#   AC_DEFINE([X11WIN], 1, [Define to include X11 window in Metafont.])
+# fi
+# AM_CONDITIONAL([MFXT], [test "x$with_mf_x_toolkit" = xyes])
+# AC_SUBST([x_ext_lib])
+# AC_SUBST([x_tool_libs])
+# AC_SUBST([wlibs])
+#
+# dnl Generate MetaFont *WIN defines.
+# m4_foreach([Kpse_Win], [kpse_mf_win],
+#            [m4_ifset([Kpse_Win],
+#                      [KPSE_MFWIN_DEFINE(Kpse_Win)])])[]dnl
+#
+# AM_CONDITIONAL([MP], [test "x$enable_mp" != xno])
+
+ if test "x$enable_web_progs" != xno; then
+  WEB_TRUE=
+  WEB_FALSE='#'
+else
+  WEB_TRUE='#'
+  WEB_FALSE=
+fi
+
+
+if test "x$with_system_kpathsea" = xyes; then
+  if test "x$with_kpathsea_includes" = x; then
+    list="/usr/include /usr/local/include"
+  else
+    list=$with_kpathsea_includes
+  fi
+  found=no
+  for KPATHSEA_PATHS_H in $list; do
+    if test -r "$KPATHSEA_PATHS_H/kpathsea/paths.h"; then
+      found=yes
+      break
+    fi
+  done
+  if test "x$found" = xno; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: You requested to build \`web2c' using an installed \`kpathsea' version," >&5
+$as_echo "$as_me: You requested to build \`web2c' using an installed \`kpathsea' version," >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}:     which requires to locate the <kpathsea/paths.h> header file." >&5
+$as_echo "$as_me:     which requires to locate the <kpathsea/paths.h> header file." >&6;}
+    as_fn_error $? "Sorry, not found under any of: $list *****" "$LINENO" 5
+  fi
+else
+  KPATHSEA_PATHS_H='${top_builddir}/..'
+fi
+
+
+for ac_prog in 'bison -y' byacc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$YACC"; then
+  ac_cv_prog_YACC="$YACC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_YACC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+KPSE_PROG_LEX
+
+# Needed on A/UX 3.0. I don't want to pull in other -lposix's, though.
+# From: bernt@weinberg.pop.bio.aau.dk (Bernt Guldbrandtsen)
+if test `(uname) 2>/dev/null` = aux; then
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_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 $# != 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
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+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_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigemptyset in -lposix" >&5
+$as_echo_n "checking for sigemptyset in -lposix... " >&6; }
+if ${ac_cv_lib_posix_sigemptyset+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sigemptyset ();
+int
+main ()
+{
+return sigemptyset ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_posix_sigemptyset=yes
+else
+  ac_cv_lib_posix_sigemptyset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_sigemptyset" >&5
+$as_echo "$ac_cv_lib_posix_sigemptyset" >&6; }
+if test "x$ac_cv_lib_posix_sigemptyset" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPOSIX 1
+_ACEOF
+
+  LIBS="-lposix $LIBS"
+
+fi
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#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))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if ${ac_cv_sizeof_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_int" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_int=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if ${ac_cv_sizeof_long+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_long" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_long=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pow" >&5
+$as_echo_n "checking for library containing pow... " >&6; }
+if ${ac_cv_search_pow+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pow ();
+int
+main ()
+{
+return pow ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' m; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_pow=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_pow+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_pow+:} false; then :
+
+else
+  ac_cv_search_pow=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pow" >&5
+$as_echo "$ac_cv_search_pow" >&6; }
+ac_res=$ac_cv_search_pow
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+for ac_func in access atoi strerror
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_header in errno.h langinfo.h sys/timeb.h sys/wait.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
+$as_echo_n "checking for long double... " >&6; }
+if ${ac_cv_type_long_double+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$GCC" = yes; then
+       ac_cv_type_long_double=yes
+     else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* The Stardent Vistra knows sizeof (long double), but does
+		 not support it.  */
+	      long double foo = 0.0L;
+int
+main ()
+{
+static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
+	      sizeof (double) <= sizeof (long double))];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_long_double=yes
+else
+  ac_cv_type_long_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
+$as_echo "$ac_cv_type_long_double" >&6; }
+  if test $ac_cv_type_long_double = yes; then
+
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  /* For now, do not test the preprocessor; as of 2007 there are too many
+         implementations with broken preprocessors.  Perhaps this can
+         be revisited in 2012.  In the meantime, code should not expect
+         #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+                     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+                     ? 1 : -1)];
+      int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+              | (llmax / ll) | (llmax % ll)
+              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+              | (ullmax / ull) | (ullmax % ull));
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+  ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_type_long_long_int=yes
+      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+        if test $ac_cv_type_long_long_int = yes; then
+                                        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+                 #ifndef LLONG_MAX
+                 # define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 # define LLONG_MAX (HALF - 1 + HALF)
+                 #endif
+int
+main ()
+{
+long long int n = 1;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+        fi
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+  if test $ac_cv_type_long_long_int = yes; then
+
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+  fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+for ac_header in time.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_time_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TIME_H 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_signal=int
+else
+  ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+
+KPSE_KPATHSEA_FLAGS
+# KPSE_ZLIB_FLAGS
+# KPSE_LIBPNG_FLAGS
+# KPSE_XPDF_FLAGS
+# KPSE_GRAPHITE_FLAGS
+# KPSE_FREETYPE2_FLAGS
+# KPSE_TECKIT_FLAGS
+# KPSE_ICU_FLAGS
+# KPSE_OBSDCOMPAT_FLAGS
+
+ac_config_headers="$ac_config_headers c-auto.h:c-auto.in"
+
+
+
+
+
+# dnl Additional config header for luaTeX
+# AC_CONFIG_HEADERS([ff-config.h:luatexdir/luafontloader/ff-config.in])
+
+# For cross-compilation.  Put at the end so there is a fair chance
+# these are still visible when the configure script has finished.
+
+# The supporting programs we need to have available on the build machine.
+#                     make variable  cross        native
+KPSE_CROSS_PATH_PROG(TANGLEBOOT,  tangle,    ../web2c/tangleboot)
+KPSE_CROSS_PATH_PROG(TANGLE,      tangle,    ../web2c/tangle)
+KPSE_CROSS_PATH_PROG(CTANGLEBOOT, ctangle,   ../web2c/ctangleboot)
+KPSE_CROSS_PATH_PROG(CTANGLE,     ctangle,   ../web2c/ctangle)
+KPSE_CROSS_PATH_PROG(TIE,         tie,       ../web2c/tie)
+# dnl Required for Aleph and XeTeX
+# KPSE_CROSS_PATH_PROG([OTANGLE],     [otangle],   [./otangle])
+# dnl Required for luaTeX
+# KPSE_CROSS_PATH_PROG([LUATANGLE],   [luatangle], [./luatangle])
+
+if test "x$cross_compiling" = xyes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if your tie supports WEBINPUTS" >&5
+$as_echo_n "checking if your tie supports WEBINPUTS... " >&6; }
+  ( WEBINPUTS=$srcdir/tiedir
+    export WEBINPUTS
+    $TIE -c tie.outc tie.tie tie.cf1 tie.cf2 tie.cf3
+    $TIE -m tie.outm tie.tie tie.cf1 tie.cf2 tie.cf3 ) >/dev/null 2>&1
+  if diff tie.outc $srcdir/tiedir/tie.chf.gen >/dev/null 2>&1 && \
+     diff tie.outm $srcdir/tiedir/tie.master.gen >/dev/null 2>&1; then
+    tool_ok=yes
+  else
+    tool_ok=no
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_ok" >&5
+$as_echo "$tool_ok" >&6; }
+  if test "x$tool_ok" != xyes; then
+    as_fn_error $? "Sorry, your $TIE is too old and does not support WEBINPUTS" "$LINENO" 5
+  fi
+  rm -f tie.outc tie.outm
+  if test "x$enable_otangle" = xyes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if your otangle supports WEBINPUTS" >&5
+$as_echo_n "checking if your otangle supports WEBINPUTS... " >&6; }
+    ( WEBINPUTS=$srcdir/cftests
+      export WEBINPUTS
+      $OTANGLE cftest cftest ) >/dev/null 2>&1
+    if diff cftest.p $srcdir/cftests/ocftest.p >/dev/null 2>&1; then
+      tool_ok=yes
+    else
+      tool_ok=no
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_ok" >&5
+$as_echo "$tool_ok" >&6; }
+    if test "x$tool_ok" != xyes; then
+      as_fn_error $? "Sorry, your $OTANGLE is too old and does not support WEBINPUTS" "$LINENO" 5
+    fi
+    rm -f cftest.p
+  fi
+  if test "x$enable_luatex" = xyes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if your luatangle supports WEBINPUTS" >&5
+$as_echo_n "checking if your luatangle supports WEBINPUTS... " >&6; }
+    ( WEBINPUTS=$srcdir/cftests
+      export WEBINPUTS
+      $LUATANGLE cftest cftest ) >/dev/null 2>&1
+    if diff cftest.p $srcdir/cftests/lcftest.p >/dev/null 2>&1; then
+      tool_ok=yes
+    else
+      tool_ok=no
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_ok" >&5
+$as_echo "$tool_ok" >&6; }
+    if test "x$tool_ok" != xyes; then
+      as_fn_error $? "Sorry, your $LUATANGLE is too old and does not support WEBINPUTS" "$LINENO" 5
+    fi
+    rm -f cftest.p
+  fi
+fi
+
+# AC_CONFIG_SUBDIRS([web2c])
+
+# AC_CONFIG_FILES([Makefile doc/Makefile lib/Makefile man/Makefile
+#                  omegafonts/Makefile otps/Makefile window/Makefile])
+ac_config_files="$ac_config_files Makefile"
+
+
+
+
+cat >confcache <<\_ACEOF
+# 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, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# 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.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then
+  as_fn_error $? "conditional \"WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MINGW32_TRUE}" && test -z "${MINGW32_FALSE}"; then
+  as_fn_error $? "conditional \"MINGW32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WEB_TRUE}" && test -z "${WEB_FALSE}"; then
+  as_fn_error $? "conditional \"WEB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by Web2C $as_me 2009, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <tex-k@tug.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+Web2C config.status 2009
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "c-auto.h") CONFIG_HEADERS="$CONFIG_HEADERS c-auto.h:c-auto.in" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #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.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    "
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+ ;;
+
+
+  esac
+
+
+  case $ac_file$ac_mode in
+    "c-auto.h":H) sed -e 's/^#define PACKAGE/#define WEB2C_PACKAGE/' \
+      -e 's/^#define VERSION/#define WEB2C_VERSION/' c-auto.h >c-auto.tmp && mv -f c-auto.tmp c-auto.h ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+if test "x$cross_compiling" = xyes; then :
+  cache_file=/dev/null
+ ac_configure_args="$ac_configure_args --host='$build' \
+ CC='$BUILDCC' CPPFLAGS='$BUILDCPPFLAGS'\
+ CFLAGS='$BUILDCFLAGS' LDFLAGS='$BUILDLDFLAGS'"
+fi
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/configure.ac
@@ -0,0 +1,372 @@
+dnl Process this file with Autoconf to produce a configure script for Web2c.
+dnl
+dnl   Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+dnl
+dnl   This file is free software; the copyright holder
+dnl   gives unlimited permission to copy and/or distribute it,
+dnl   with or without modifications, as long as this notice is preserved.
+dnl
+dnl --------------------------------------------------------
+dnl
+dnl Some things are no longer configurable:
+dnl - SMALL{TeX,MF,BibTeX}: too painful to maintain the separate patch
+dnl   files, and, for TeX, texmfmem.h would have to be fixed to support
+dnl   more than 256 fonts.
+dnl - NONASCII: necessary for the character translation feature.
+dnl - REGFIX: modern compilers mostly ignore register declarations, anyway.
+dnl The code for these things remains (where applicable), so you can
+dnl get these features if you are willing to hack the sources. If not,
+dnl it'll take a good argument to convince me to invest the time to make
+dnl them configurable.
+dnl
+m4_define([web2_version], [2009])
+AC_INIT([Web2C], web2_version(), [tex-k@tug.org])
+AC_PREREQ([2.63])
+dnl 
+dnl We don't use (for example) tex/tex.web because people who only want
+dnl to build part of the distribution may not have any given program.
+dnl Even cpascal.h isn't guaranteed, but then nothing is, really ...
+AC_CONFIG_SRCDIR([cpascal.h])
+AC_CONFIG_AUX_DIR([../../build-aux])
+AC_CONFIG_MACRO_DIR([../../m4])
+
+WEB2CVERSION=web2_version()
+AC_SUBST([WEB2CVERSION])
+
+dnl Common code for all programs using libkpathsea.
+KPSE_COMMON([web2c programs])
+
+AC_PROG_CXX
+KPSE_CXX_HACK
+
+dnl Include additional code for web2c.
+KPSE_WEB2C_PREPARE
+m4_include([ac/web2c.ac])
+
+AS_CASE([$with_tex_banner],
+        [''|yes|no], [with_tex_banner="Web2C $WEB2CVERSION"],
+        [AS_IF([echo "$with_tex_banner" | grep -v "$WEB2CVERSION" >/dev/null],
+               [AC_MSG_ERROR([Bad `--with-tex-banner=$with_tex_banner' version string (must contain ` $WEB2CVERSION')])])])
+AC_DEFINE_UNQUOTED([WEB2CVERSION], [" ($with_tex_banner)"])
+
+dnl For tests
+AC_CHECK_PROGS([KPSEWHICH], [kpsewhich], [false])
+
+KPSE_ASM_UNDERSCORE
+
+AS_CASE([$with_editor],
+        [''|yes|no], [with_editor='vi +%d %s'])
+AC_DEFINE_UNQUOTED([EDITOR], ["$with_editor"],
+                   [web2c: Default editor for interactive `e' option.])
+
+AS_IF([test "x$enable_auto_core" = xyes],
+      [AC_DEFINE([FUNNY_CORE_DUMP], 1,
+                 [web2c: Define to enable HackyInputFileNameForCoreDump.tex.])])
+
+AS_IF([test "x$enable_dump_share" = xno],
+      [AC_DEFINE([NO_DUMP_SHARE], 1,
+                 [web2c: Define to disable architecture-independent dump files.
+                  Faster on LittleEndian architectures.])])
+
+AS_CASE([$enable_ipc],
+        [yes|no], [],
+            [enable_ipc=yes])
+
+KPSE_CHECK_WIN32
+AM_CONDITIONAL([WIN32], [test "x$kpse_cv_have_win32" != xno])
+AM_CONDITIONAL([MINGW32], [test "x$kpse_cv_have_win32" = xmingw32])
+
+# KPSE_CHECK_SOCKET_LIBS
+# AS_IF([test "x$enable_luatex:$enable_ipc" != xno:no],
+#       [AS_CASE([$ac_cv_search_connect],
+#                ["none required"], [],
+#                [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                             [KPSE_MSG_WARN([Sorry, no socket library: can not build luaTeX])
+#                              enable_luatex=no])
+#                       AS_IF([test "x$enable_ipc" = xyes],
+#                             [KPSE_MSG_WARN([no socket library: disabling ipc])
+#                              enable_ipc=no])],
+#                    [socketlibs=$ac_cv_search_connect])])
+# if test "x$enable_ipc" = xyes; then
+#    ipc_socketlibs=$socketlibs
+#    AC_DEFINE([IPC], 1, [tex: Define to enable --ipc.])
+# fi
+# # We may need additional libraries for luaTeX.
+# # On Solaris -lnsl for gethostbyname(), -lrt for nanosleep(),
+# # and maybe -lresolv for inet_aton().
+# lua_socketlibs=$socketlibs
+# if test "x$kpse_cv_have_win32" = xno; then
+#   kpse_save_LIBS=$LIBS
+#   AC_SEARCH_LIBS([gethostbyname], [nsl])
+#   AC_SEARCH_LIBS([inet_aton], [resolv])
+#   LIBS=$kpse_save_LIBS
+#   AC_SEARCH_LIBS([nanosleep], [rt])
+#   LIBS=$kpse_save_LIBS
+#   AS_CASE([$ac_cv_search_inet_aton],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no inet_aton(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_inet_aton"])
+#   AS_CASE([$ac_cv_search_gethostbyname],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no gethostbyname(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_gethostbyname"])
+#   AS_CASE([$ac_cv_search_nanosleep],
+#           ["none required"], [],
+#           [no], [AS_IF([test "x$enable_luatex" = xyes],
+#                        [KPSE_MSG_WARN([Sorry, no nanosleep(): can not build luaTeX])
+#                         enable_luatex=no])],
+#               [lua_socketlibs="$lua_socketlibs $ac_cv_search_nanosleep"])
+# fi
+# AC_SUBST([lua_socketlibs])
+# AC_SUBST([ipc_socketlibs])
+# 
+# KPSE_CHECK_FRAMEWORK([Carbon], [ATSUStyle style])
+# KPSE_FONTCONFIG_FLAGS
+# AS_IF([test "x$enable_xetex:$kpse_cv_have_Carbon:$kpse_cv_have_fontconfig" = xyes:no:no],
+#       [KPSE_MSG_WARN([Sorry, can not build XeTeX without Carbon framework or fontconfig])
+#        enable_xetex=no])
+# AM_CONDITIONAL([XETEX_MACOSX], [test "x$kpse_cv_have_Carbon" = xyes])
+# AM_CONDITIONAL([XETEX_GRAPHITE], [test "x$with_graphite" != xno])
+# 
+# dnl Generate *TEX and ALEPH conditionals.
+m4_foreach([Kpse_Prog], [kpse_tex_progs],
+           [m4_ifset([Kpse_Prog],
+                     [KPSE_XTEX_COND(Kpse_Prog)])])[]dnl
+# 
+# AS_IF([test "x$enable_aleph:$enable_xetex" = xno:no],
+#       [enable_otangle=no],
+#       [enable_otangle=yes])
+# AM_CONDITIONAL([OTANGLE],
+#                [test "x$enable_otangle" = xyes])[]dnl
+# 
+# AM_CONDITIONAL([OMFONTS], [test "x$enable_omfonts" != xno])
+# 
+# AM_CONDITIONAL([MF], [test "x$enable_mf" != xno])
+# AM_CONDITIONAL([MFN], [test "x$enable_mf_nowin" != xno])
+# 
+# # Handle --with-mf-x-toolkit and --with-x
+# test "x$enable_mf" = xno || enable_mf=yes
+# AS_CASE([$with_mf_x_toolkit],
+#         [yes|no], [],
+#         [''], [with_mf_x_toolkit=$enable_mf],
+#         [y|ye], [with_mf_x_toolkit=yes],
+#         [n], [with_mf_x_toolkit=no],
+#             [KPSE_MSG_WARN([unknown --with-mf-x-toolkit argument \`$with_mf_x_toolkit'; using yes.])
+#              with_mf_x_toolkit=yes])
+# test "x$with_x_toolkit" = xyes && with_x=yes
+# test "x$with_x" = xno && with_x_toolkit=no
+# : ${with_x=$enable_mf} # tell PATH_XTRA to use X for Metafont, if not specified.
+# 
+# # Distinguish no X at all, no toolkit, or toolkit.
+# AC_PATH_XTRA
+# if test "x$with_x" = xyes; then
+#   if test "x$no_x" = xyes; then
+#     AC_MSG_ERROR([Sorry, could not find X include and library files required for Metafont.])
+#   fi
+#   test -n "$x_libraries" && XLFLAG="-L$x_libraries"
+#   wlibs="$XLFLAG -lX11"
+#   if test -z "$x_ext_lib"; then # allow envvar override
+#     AC_CHECK_LIB([Xext], [XextCreateExtension],
+#                  [x_ext_lib=-lXext], ,
+#                  [$wlibs $X_EXTRA_LIBS])
+#   fi
+#   test "x$with_mf_x_toolkit" = xyes && x_tool_libs="-lXt"
+#   AC_DEFINE([X11WIN], 1, [Define to include X11 window in Metafont.])
+# fi
+# AM_CONDITIONAL([MFXT], [test "x$with_mf_x_toolkit" = xyes])
+# AC_SUBST([x_ext_lib])
+# AC_SUBST([x_tool_libs])
+# AC_SUBST([wlibs])
+# 
+# dnl Generate MetaFont *WIN defines.
+# m4_foreach([Kpse_Win], [kpse_mf_win],
+#            [m4_ifset([Kpse_Win],
+#                      [KPSE_MFWIN_DEFINE(Kpse_Win)])])[]dnl
+# 
+# AM_CONDITIONAL([MP], [test "x$enable_mp" != xno])
+
+AM_CONDITIONAL([WEB], [test "x$enable_web_progs" != xno])
+
+dnl Although quite unusual, it is possible to build Web2C (TeX & Co)
+dnl using installed (system) kpathsea headers and library.
+dnl In that case we need the location of <kpathsea/paths.h>.
+if test "x$with_system_kpathsea" = xyes; then
+  if test "x$with_kpathsea_includes" = x; then
+    list="/usr/include /usr/local/include"
+  else
+    list=$with_kpathsea_includes
+  fi
+  found=no
+  for KPATHSEA_PATHS_H in $list; do
+    if test -r "$KPATHSEA_PATHS_H/kpathsea/paths.h"; then
+      found=yes
+      break
+    fi
+  done
+  if test "x$found" = xno; then
+    AC_MSG_NOTICE([You requested to build `web2c' using an installed `kpathsea' version,])
+    AC_MSG_NOTICE([    which requires to locate the <kpathsea/paths.h> header file.])
+    AC_MSG_ERROR([Sorry, not found under any of: $list *****])
+  fi
+else
+  KPATHSEA_PATHS_H='${top_builddir}/..'
+fi
+AC_SUBST([KPATHSEA_PATHS_H])
+
+AC_PROG_YACC
+KPSE_PROG_LEX
+
+# Needed on A/UX 3.0. I don't want to pull in other -lposix's, though.
+# From: bernt@weinberg.pop.bio.aau.dk (Bernt Guldbrandtsen)
+if test `(uname) 2>/dev/null` = aux; then
+  AC_CHECK_LIB([posix], [sigemptyset])
+fi
+
+dnl FIXME: luaTeX requires <unistd.h>, access, and atoi
+dnl
+AC_CHECK_SIZEOF([int])
+AC_CHECK_SIZEOF([long])
+AC_SEARCH_LIBS([pow], [m])
+AC_CHECK_FUNCS([access atoi strerror])
+AC_CHECK_HEADERS([errno.h langinfo.h sys/timeb.h sys/wait.h])
+AC_TYPE_LONG_DOUBLE
+AC_TYPE_LONG_LONG_INT
+
+dnl sharable format files.
+AC_C_BIGENDIAN
+
+dnl FIXME: needed for libpdf -> xpdf ?
+AC_CHECK_HEADERS([time.h])
+
+dnl FIXME: obsolete
+AC_TYPE_SIGNAL
+
+KPSE_KPATHSEA_FLAGS
+# KPSE_ZLIB_FLAGS
+# KPSE_LIBPNG_FLAGS
+# KPSE_XPDF_FLAGS
+# KPSE_GRAPHITE_FLAGS
+# KPSE_FREETYPE2_FLAGS
+# KPSE_TECKIT_FLAGS
+# KPSE_ICU_FLAGS
+# KPSE_OBSDCOMPAT_FLAGS
+
+dnl Write output here, instead of putting a zillion -D's on the command line.
+AC_CONFIG_HEADERS([c-auto.h:c-auto.in],
+ [sed -e 's/^#define PACKAGE/#define WEB2C_PACKAGE/' \
+      -e 's/^#define VERSION/#define WEB2C_VERSION/' c-auto.h >c-auto.tmp && mv -f c-auto.tmp c-auto.h])
+
+AH_TOP([/* c-auto.h: defines for web2c, as determined by configure.
+
+   Copyright 1994-97, 2008, 2009 Karl Berry.
+   Copyright 1997-99, 2002, 2005 Olaf Weber.
+
+   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 3 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, see <http://www.gnu.org/licenses/>.  */
+
+/* Guard against double inclusion. */
+#ifndef WEB2C_C_AUTO_H
+#define WEB2C_C_AUTO_H
+
+/* web2c: the version string. */
+#define WEB2CVERSION "REPLACE-WITH-WEB2CVERSION"])
+AH_BOTTOM([#endif /* !WEB2C_C_AUTO_H */])
+
+# dnl Additional config header for luaTeX
+# AC_CONFIG_HEADERS([ff-config.h:luatexdir/luafontloader/ff-config.in])
+
+# For cross-compilation.  Put at the end so there is a fair chance
+# these are still visible when the configure script has finished.
+
+# The supporting programs we need to have available on the build machine.
+#                     make variable  cross        native  
+KPSE_CROSS_PATH_PROG([TANGLEBOOT],  [tangle],    [../web2c/tangleboot])
+KPSE_CROSS_PATH_PROG([TANGLE],      [tangle],    [../web2c/tangle])
+KPSE_CROSS_PATH_PROG([CTANGLEBOOT], [ctangle],   [../web2c/ctangleboot])
+KPSE_CROSS_PATH_PROG([CTANGLE],     [ctangle],   [../web2c/ctangle])
+KPSE_CROSS_PATH_PROG([TIE],         [tie],       [../web2c/tie])
+# dnl Required for Aleph and XeTeX
+# KPSE_CROSS_PATH_PROG([OTANGLE],     [otangle],   [./otangle])
+# dnl Required for luaTeX
+# KPSE_CROSS_PATH_PROG([LUATANGLE],   [luatangle], [./luatangle])
+
+if test "x$cross_compiling" = xyes; then
+  AC_MSG_CHECKING([if your tie supports WEBINPUTS])
+  ( WEBINPUTS=$srcdir/tiedir
+    export WEBINPUTS
+    $TIE -c tie.outc tie.tie tie.cf1 tie.cf2 tie.cf3
+    $TIE -m tie.outm tie.tie tie.cf1 tie.cf2 tie.cf3 ) >/dev/null 2>&1
+  if diff tie.outc $srcdir/tiedir/tie.chf.gen >/dev/null 2>&1 && \
+     diff tie.outm $srcdir/tiedir/tie.master.gen >/dev/null 2>&1; then
+    tool_ok=yes
+  else
+    tool_ok=no
+  fi
+  AC_MSG_RESULT([$tool_ok])
+  if test "x$tool_ok" != xyes; then
+    AC_MSG_ERROR([Sorry, your $TIE is too old and does not support WEBINPUTS])
+  fi
+  rm -f tie.outc tie.outm
+  if test "x$enable_otangle" = xyes; then
+    AC_MSG_CHECKING([if your otangle supports WEBINPUTS])
+    ( WEBINPUTS=$srcdir/cftests
+      export WEBINPUTS
+      $OTANGLE cftest cftest ) >/dev/null 2>&1
+    if diff cftest.p $srcdir/cftests/ocftest.p >/dev/null 2>&1; then
+      tool_ok=yes
+    else
+      tool_ok=no
+    fi
+    AC_MSG_RESULT([$tool_ok])
+    if test "x$tool_ok" != xyes; then
+      AC_MSG_ERROR([Sorry, your $OTANGLE is too old and does not support WEBINPUTS])
+    fi
+    rm -f cftest.p
+  fi
+  if test "x$enable_luatex" = xyes; then
+    AC_MSG_CHECKING([if your luatangle supports WEBINPUTS])
+    ( WEBINPUTS=$srcdir/cftests
+      export WEBINPUTS
+      $LUATANGLE cftest cftest ) >/dev/null 2>&1
+    if diff cftest.p $srcdir/cftests/lcftest.p >/dev/null 2>&1; then
+      tool_ok=yes
+    else
+      tool_ok=no
+    fi
+    AC_MSG_RESULT([$tool_ok])
+    if test "x$tool_ok" != xyes; then
+      AC_MSG_ERROR([Sorry, your $LUATANGLE is too old and does not support WEBINPUTS])
+    fi
+    rm -f cftest.p
+  fi
+fi
+
+# AC_CONFIG_SUBDIRS([web2c])
+
+# AC_CONFIG_FILES([Makefile doc/Makefile lib/Makefile man/Makefile
+#                  omegafonts/Makefile otps/Makefile window/Makefile])
+AC_CONFIG_FILES([Makefile])
+
+dnl The subdirectory web2c must be configured for the build system.
+dnl When cross compiling, can not share the cache file with the subdirectory!
+AC_CONFIG_COMMANDS_POST([AS_IF([test "x$cross_compiling" = xyes],
+[cache_file=/dev/null
+ ac_configure_args="$ac_configure_args --host='$build' \
+ CC='$BUILDCC' CPPFLAGS='$BUILDCPPFLAGS'\
+ CFLAGS='$BUILDCFLAGS' LDFLAGS='$BUILDLDFLAGS'"])])
+
+AC_OUTPUT
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/cvtbib.sed
@@ -0,0 +1,12 @@
+1i\
+\#include \<setjmp.h\> \
+jmp_buf jmp9998, jmp32; int lab31=0;
+s/goto lab31 ; */{lab31=1; return;}/
+s/goto lab32/longjmp(jmp32,1)/
+s/goto lab9998/longjmp(jmp9998,1)/g
+s/lab31://
+s/lab32://
+s/hack0 () ;/if(setjmp(jmp9998)==1) goto lab9998;/
+s/hack1 () ;/if(setjmp(jmp32)==0)for(;;)/
+s/hack2 ()/break/
+/^void mainbody/,$s/while ( true/while (lab31==0/
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/doc/README-jbib
@@ -0,0 +1,18 @@
+JBibTeX$B$O!"EENOCf1{8&5f=j$N>>0f@50l$5$s$,(BBibTeX$B$rF|K\8l2=$7$?$b$N$G$9$,!"(B
+$B$3$3$K$"$k$N$O$=$l$r:y0f$,(B JTeX 1.7 (web2c 7.0) $B$NG[I[%-%C%HCf$K4^$a$k(B
+$B$3$H$,$G$-$k$h$&$K<c43JQ99$7$?$b$N$G$9!#(B
+
+$B$^$:!"%*%j%8%J%k$N(BJBibTeX$B$NG[I[%-%C%H$N%I%-%e%a%s%H$G$"$k(B
+	jbib-orig/README.1st jbib-orig/README
+$B$rFI$s$G2<$5$$!#$=$3$G8@5Z$5$l$F$$$k(BREADEM.1st.euc$B$H(Breadme$B$,$=$l$>$l(B
+README.1st$B$H(BREADME$B$KL>A0$,JQ99$5$l$F$$$^$9!#$^$?$3$l$i$NCf$G@bL@$5$l$F(B
+$B$$$k(Bdirectory$B$N0LCV$O0J2<$N$h$&$KJQ99$5$l$F$$$^$9!#(B
+	bst	-> $TEXMF/bibtex/jbst/base
+			(generate$BMQ%U%!%$%k$O(Bdoc/jbibtex$B$K(B)
+	bib	-> $TEXMF/bibtex/jbib/base
+			(jbtxdoc.bib,jbibtex.bib$B$O(Bdoc/jbibtex$B$K(B)
+	doc	-> $TEXMF/doc/jbibtex
+$B$^$?!"(BBibTeX$B$N(Bbst,bib$B$O4^$a$F$$$^$;$s!#(Bsty file$B$O(BJLaTeX2e$B$G;H$($k$+(B
+$B$I$&$+L$3NG'$J$N$G!"(B(j)latex209$BMQ$N(Bpackages$B$K4^$a$F$"$j$^$9!#$?$@$7!"(B
+sty/tables.sty$B$O(BJLaTeX2e$B$H6&$K;H$&$3$H$,$G$-$^$9!#(B($B>/$/$H$b(Bdoc/jbibtex$B$N(B
+$B%I%-%e%a%s%H$r=hM}$G$-$^$9!#(B)
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/doc/jbib-orig/README
@@ -0,0 +1,249 @@
+JBibTeX(C Version) ver. 0.30 γ				1991-1-2
+
+				ʺꡡ󥷥ƥ 
+						100ĶĮ 1-6-1
+						JUNET: matsui@denken.or.jp
+						CompuServe: 70064,645
+ڻϤˡ
+
+JBibTeX  BibTeX 0.99c(C Version)  NTTJTeX, ASCIIܸTeXΤɤ
+ˤбܸ첽ΤǤ롥
+
+ѹϰʲ̤Ǥ롥
+
+ (1) ɤŪˤ EUC ɽ롥ե뤫Ԥɤ߹ǡ
+EUC ʤ餽Τޤޡ JIS  EUC ˥Ѵ롥
+    üեؤνϥɷϤϡѥ˻ꤹ뤬
+    Ѽñ̤ˤ⡤줾켡δĶѿǻǤ롥
+	ü		BIBTERMCODE
+	ե	BIBFILECODE
+    ϡNTT JTeX \kanjitermicalcode, \kanjifilecode Ʊ
+	1,2,3,4,5,6,10(SJIS),20(EUC)
+    ǹԤMS-DOS ǤǤ SJIS ǥեȤ exe Ƥ롥
+
+ (2) ɤ̤褦 BibTeX  Chage File ѹ, ʸ 7bits 
+8bits ѹʤ˹礻 bibext.c ѹƤ)
+
+ (3) ȹߴؿ substring$, text.prefix$ ФƤϡ
+ñ̤δɤδ֤(1Хܤ2Хܤο)ʸʬǤ
+ʤ褦ˤ
+  㤨С"" Ƭ 3 ʸȴФ "" 2Хܤʤʤä
+    ޤΤǡΤ褦ʾˤϡ4ХܤޤڽФ褦ˤ
+ 
+ (4) (3)Ȥδطǡ chr.to.int$  stack top ʤ single character
+  ǤʤƤ warning Ф 1byte ܤ֤ͤ褦ˤ
+
+ (5) ɤޤʸǤ뤫ɤȽѤˡȤ߹ߴؿȤ
+     is.kanji.str$ ɲä
+
+ (6) add.period$ ؿǤ `!', `?', `.' θˤϡ`.' դäʤΤǡ
+     бʸ `', `', `', `' θˤ `.' դäʤ
+ 褦ˤ
+
+ (7) ʣ̾ " and " ֤ˤϤ¤٤뤬̾ξˤ " and "
+     ˡѤζ `', `' ȤäƤ褤褦ˤ
+     (ѹˤꡤƶؿ format.name$  num.names$ ؿ)
+
+ (8) ver. 0.20 ޤǤϡ̾̾ζڤȤƤȾѤΥڡ
+     ƤʤäѤΥڡǤ褤褦ˤ
+
+ (9) bib file ιܤΤɤ˴ɤȤäƤ褤ϡ test.bib ʤɤ򻲾
+ 줿
+
+(10) bib եδ̾̾δ֤ˤϥڡ(ȾѤǤѤǤ)
+ ֤ȤɸȤʤʤƤʤ̤ȤʤʤȤ
+     뤷ٹåϤˡ
+
+(11) ʸȤ plain, abbrv, alpha, unsrt бܸб
+     Ȥơ jplain, jabbrv, jalpha, junsrt ѰդƤ롥ޤ
+     زʸ(tipsj), ʸʸ(jipsj), ŻҾ̿زʸ
+     (tieice), ܥڥ졼󥺥ꥵزʸ(jorsj) ѤΥ
+ ѰդƤ롥
+
+(12) MS-DOS ǤǤʸΥեޥåȥե(*.bst)ϡ褺
+ǥ쥯ȥ꤫õʤФޤ\jtex\bst ǥ쥯ȥ꤫顤
+ʤ \jtex\sty ǥ쥯ȥ꤫õΥХ TEXINPUTS Ȥ
+ĶѿѹǤ롥
+
+	set TEXINPUTS=.:\usr\lib\tex\sty
+
+Τ褦 : (ȾѤΥ)Ƕڤäƥѥ¤٤롥
+    UNIX ǤǤ TEXINPUTS ΥǥեȤϥ˷ƤϤ
+뤬ĶѿȤäѹǤΤ MS-DOS ǤƱǤ롥
+
+(13) MS-DOS ǤǤʸǡ١ե(*.bib)ϡ褺ȥǥ쥯ȥ
+ õʤ \jtex\bib ǥ쥯ȥ꤫õΥѥ
+ BIBINPUTS ȤĶѿѹǤ롥
+
+	set BIBINPUTS=.:\usr\lib\tex\bib
+
+Τ褦 : (ȾѤΥ)Ƕڤäƥѥ¤٤롥
+    UNIX ǤǤ BIBINPUTS ΥǥեȤϥ˷ƤϤ
+뤬ĶѿȤäѹǤΤ MS-DOS ǤƱǤ롥
+
+(14) MS-DOS Ǥ UNIX  C Ÿ˼ѹäƺ
+ Turbo-C  Huge model ǥѥ뤷 jbibtex.exe ȴϢեΤߤ
+ ۤۤʤѹޤͤ˸ΤǤ
+ ʤʤʪǤ뤫 :-)
+ʤƤιʿͤɤƤߤȤˤä˵ͳϤʤˡ
+
+    MS-DOS ʤŪˤ SJIS ɽơϻǤΥ
+ѴԤʤʤƤ⤤褦ˤΨŪǤ뤬ѹ
+ݤʤΤ UNIX ǤΤޤޤǤ롥
+
+
+ver. 0.10, ver. 0.20 ѼԤؤա
+
+ʸ(bst) ver. 0.30 ѹǽȤƺƤΤǡ
+jbibtex ver. 0.10, ver. 0.20 ǤϻȤʤ jbibtex  ver. 0.30 ˤƤ顤
+bst ե촹뤳ȡjbibtex ver. 0.30 ǸŤ(ver. 0.20 )
+ȤäƤϤʤ
+
+MS-DOSǤǤ
+
+󤫤顤chkdsk ȤɽѲǽ꤬ 470K ٤
+ˤϡǤʸο(\cite{}ο)ϤϤ300Ǥ롥
+  \nocite{*} Ȥä bib եȤʤɤˤϡñ
+300ʾˤʤ뤬򸫤 250 ˤȤɤΤ˾ޤ
+¿ʸη̤ݾڤʤ(ʥǡ١ϤʤȻפ
+ʤRAND Corp. ݼ餷Ƥ REDUCE ˴ؤ bib եˤϤ⤦
+700᤯äƤΤǤ͡)
+
+ѾʤȻפ뤬Ǥ­ˤ fep, tsr Ϥʤ
+ơѲǽ䤻ФƥꤷƤʸο
+¤450Ǥ뤬ãʤ˥­ˤʤ⤢롥
+
+
+ۥե
+
+MS-DOS ǤǤϥѥ̾ /  \ ֤ɤ
+
+  ѥ̾      		
+-------------------------------------------------------------------------
+readme.1st.euc		UNIX 
+readme.1st		MS-DOS 
+			ʤɤ˴ؤ뤳Ȥ񤫤Ƥ
+readme			ʸ
+jbibtex.exe		jbibtex ץ (UNIX ǤˤϤʤ)
+
+UNIX Ѥ JBibTeX ѥե뷲(MS-DOSǤˤϤʤ)
+
+bibtex.ch		JBibTeX Ѥ change file
+Makefile		Makefile 
+*.c, *.h		ѤΥץࡤإåե뷲
+
+
+ʸ j*.tex եϤ٤ NTTǤ(J)LaTeX ѤΥեǤ롥ASCII Ǥ
+ˤϼ㴳νɬפǤ롥
+
+doc/jbibtex.tex		JBibTeX ˤĤƤ
+doc/btxdoc.tex		ꥸʥ
+doc/jbtxdoc.tex		ܸ
+doc/btxhak.tex		ꥸʥ *.bst եκˡ
+doc/jbtxhak.tex		ܸ
+doc/btxbst.doc		ꥸʥ *.bst Υɥȡޥե
+doc/jbtxbst.doc		ܸǡɲ bst ޤޤƤ
+
+UNIX ѤΥޥ˥奢 roff ե
+
+doc/jbibtex.1		JBibTeX  man Ѥ roff ե
+
+Ѥ (J)LaTeX ե
+
+sample/jplain.aux	ƥѤ aux ե
+sample/jplain.sav	嵭 jbibtex ǽ̤ bbl λ
+
+sample/test.tex		Ѥ jlatex ե
+sample/new.tex		Ʊ
+sample/sin.tex		Ʊ
+
+(J)BibTeX ѤΰʸեޥåѤΥ
+
+bst/abbrv.bst		abbrv 
+bst/jabbrv.bst		嵭ܸб
+bst/alpha.bst		alpha 
+bst/jalpha.bst		嵭ܸб
+bst/plain.bst		plain 
+bst/jplain.bst		嵭ܸб
+bst/unsrt.bst		unsrt 
+bst/junsrt.bst		嵭ܸб 
+bst/tipsj.bst		ززʸʸ
+bst/jipsj.bst		زʸʸ
+bst/tieice.bst		Ż̿زʸ
+bst/jorsj.bst		ܥڥ졼󥺥ꥵزʸ
+bst/jname.bst           jalpha  jabbrv κ祹
+
+bst/cpp.awk             cpp  btxbst.doc, jbtxbst.doc ǤʤѤ
+			gawk scriptɤ߹եꤷƤ
+			ΤǡUNIX ǤǤդɬסcpp Ȥ⤳
+			ȤäѥȤ bst ե뤬ñ˺롥
+
+bst/generate.bat	嵭Ѥ bst ФΥХåե
+			UNIX ǤǤϰ̣ʤ
+
+bst/generate.sh		嵭Ѥ bst Ф shell script
+			MS-DOS ǤǤϰ̣ʤ
+
+(J)LaTeX Ѥʥץ˥ե
+
+sty/ipsjcite.sty	زز
+sty/jipsjcit.sty	زʸʸ
+sty/tieiceci.sty	Ż̿زʸ
+sty/tables.sty		doc/ *.tex νɬפʥץ󥹥
+sty/openbib.sty		ʲϥꥸʥ°
+sty/clbiba.sty		
+sty/clbibr.sty
+sty/opbiba.sty
+sty/opbibr.sty
+
+ʸǡ١
+
+bib/btxdoc.bib		ꥸʥ btxdoc.tex, btxhak.tex ե
+bib/jbtxdoc.bib		ܸǤ jbtxdoc.tex, btxhak.tex ե
+bib/jbibtex.bib		jbibtex.tex 
+bib/jxampl.bib		ƥѡꥸʥ xampl.bib ɲä
+
+
+ڲѡ¤ʤɡ
+
+(1) ꥸʥ TeX ƥ Copyright Notice ˸§Ū˽
+
+ŪѤʤ¤ˤơԡۡžܤϼͳȤ롥
+
+AS IS ۤΤǤꡤΥץѤˤäƾ㳲
+Ƥ⡤ԤϲǤʤХȯԤ˾޶Фꤷʤ
+
+(2) ԡۡžܤˤ jbibtex.lzh Υե򤹤٤ư礷
+ԡۡžܤ뤳(MS-DOSξ)UNIX ǤǤۥåȤ
+ƺۤ뤳ȡ
+
+(3) jbibtex.exe βѤ϶ػߤ(MS-DOSǤΤ)
+
+(4) jbibtex.exe ʳβѤ jbtxbst.doc, *.bst ΤˤĤƤβ
+(jbtxbst.doc 򻲾ȤΤ)ơͳǤ롥äܸβ
+ޤ롥Ѥ˴ؤƤ readme.1st.euc 뤤 readme.1st 
+Ȥ줿
+
+(5) ϢŻҥ᡼ˤΤ˾ޤ뤬ѤǤʤˤ
+    ̾͹ؤǤޤʤԤ1991ǯ7ޤǡꥫˤΤǡ
+    ̾͹ؤǤϢ˻֤뤳Ȥդ뤳ȡŻҥ᡼Υɥ쥹
+Ƭ˽񤤤ƤΤǤޤʤꥫΥȤ˥᡼ˤ
+matsui@grebyn.com ľܽФ®ǤCompuServe Ǥ⤤
+ϣ󤷤åʤˡ
+
+ꥫν
+	Shouichi Matsui
+	c/o ICF Resources, Inc.
+	9300 Lee Highway
+	Fairfax, VA 22031-1207
+
+	tel. (703)-934-3882, fax. (703) 691-3349
+Ǥ롥
+
+(6) Х򸫤ĤƤ޶򤢤Ϥʤ
+Хϴ򤷤ǤϤʤݤꤷʤ :-)
+
+μ桤դϵޤʤ :-)
+
+ʸեޥåȥ(bst ե)ä˴ޤ롥
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/doc/jbib-orig/README.1st
@@ -0,0 +1,169 @@
+                       ڤޤɤ߲
+
+--------------------------------------------------------------------------
+
+Υեˤϡ줬ܸ BibTeX: JBibTeXפˤĤơ
+ñʥ󥹥ȡˡƤʤɤҤƤޤ
+
+JBibTeX ϡUNIX(BSD/Sytem V/¾)ưޤ JIS, եJIS, EUC 
+δɤǤȤޤʥ˥ѥ˥ǥեȤδ
+ɷϤꤹ褦ˤʤäƤޤˡ NTT ǡǤ鷺
+ܸб LaTeX Ȥ߹碌ƻȤȤǤޤ
+
+JBibTeX ϡWEB Υ󥸥եȤäƼ¸Ƥޤߤϡ
+C С 0.99c ѤΥ󥸥եˤʤäƤޤC СǤ顤
+Pascal ѥ顼ʤƤǤޤΤǡؤɤ UNIX ƥ
+ǤϤǤ
+
+ JBibTeX ϡλǧΤѤƲ
+
+1. JBibTeX Ρܸ첽ʬ˴ؤƤϾޤ
+
+2. λѤľŪʱŪ㤨СѼԤ˥ץλ
+   ȤˤǤʤ¤ꡤɤΤ褦ˡŪǻѤƤ⤫ޤޤ
+   ˤ˴ؤƤϡԤϰǤޤ
+
+3. ¾ԤؤΥԡϡι԰٤ŪǤʤ˸¤꼫ͳ˹ԤäƷ빽
+   Ǥ
+
+4. ץܸ첽˴طʬˤβѤˤĤƤϼͳ˹ԤäƤ
+   ޤޤ󡥤 3 ˤĤƤϡΤΤޤϲξ
+   ˴ñ᤻ǹԤäƲޤѤˤȸޤޤƤ뤫
+   ⤷ʤ̤뤿ˡեˤĤƤϲѤ
+   ϡ󶡤̾Ȥ̤ΤΤˤƲ
+
+   ƤˤĤƤԤؤε̳ΤȤθˤĤƤ
+   ξɬפȤޤ
+
+----------------------------------------------------------------------------
+
+Υǥ쥯ȥ˴ޤޤΤϼΤȤǤ
+ɷϤϤ٤ EUCˤʤäƤޤΤǡŬʥɷϤѴ
+Ȥ
+
+
+./README.1st.euc
+    ΥեǤ
+
+./readme
+JBibTeX ver. 0.30 ˤĤƤδñ񤫤줿եǤ
+    ɬɤ߲
+
+./Makefile ./bibext.c ./bibtex.ch ./bibtex.defines ./bibtex.h
+./coerce.h ./kanji.h ./sed.script
+    JBibTeX Υ󥸥եʤɤǤ
+
+./bst
+    ܸбʸ(bst)ե뤬ޤޤƤǥ쥯ȥǤ
+
+./sty
+    doc ǥ쥯ȥ jlatex ե뤿ɬפʥץ
+latex style ȡܸбʸȤɬפʥץ
+latex style ޤޤƤǥ쥯ȥǤ
+
+./doc-NTT
+    JBibTeX ˤĤƤΥɥȤޤޤƤǥ쥯ȥǤ
+    ɤΥɥȤ⡤NTT Ǥ jlatex ˤäƽ񤫤Ƥޤ
+ޤܸбʸΥޥɥȥե
+ޤޤƤޤASCII Ǥ jlatex ѤΥɥȤ ./doc-ASCII
+    ǥ쥯ȥˤޤ
+
+./bib
+ƥѤʸǡ١ե뤬ޤޤƤǥ쥯ȥǤ
+
+./sample
+ƥѤ jlatex ե뤬ޤޤƤǥ쥯ȥǤ
+
+--------------------------------------------------------------------------
+
+JBibTeX κˡ
+
+1) ΥåȤϸ tex82 Υǥ쥯ȥβǡ bibtex Ʊ٥
+    jbibtex Ȥ̾Υǥ쥯ȥäơŸ뤳Ȥ
+   ȤޤʤǤʤˤ Makefile ΥץΥѥ̾Ȥ
+   site.h Υѥ̾Ȥѹɬפޤˡ
+
+   ޤ jlatex ưƤ뤳ȤɬפǤ C С tex, jtex, latex,
+   jlatex ʤɤФΥġ뷲ȤޤΤǡtangle(jtangle), 
+   web2cdir  web2c, fixwrites, splitup ưƤ뤳ȤɬפǤ
+   NTT 뤤 ASCIIǤ C С jtex ФƤСʤ
+   jbibtex ϤǤ
+
+2) åȤŸä顤褺 Makefile Ŭ˽Ʋ
+   NTT ǤξˤѹɬפʤǤ礦 ASCII Ǥξˤ TANGLE
+   ѹƲޤ site.h (̾ tex Υǥ쥯ȥˤ
+   ϤǤˤ BIBINPUTS 򥵥Ȥι˹碌Ʋ
+ ȤƤȰ㤦ȤǺˤϡMakefile ΤĤ
+   ѥ̾ѹɬפޤΤǡդƲ
+
+   ѥ顼ˤäƤ -O ꤹȡjbibtex ưʤ
+   (core dumpꤹ) Ȥޤ顤ξˤ -O λ
+   äƲGNU CC (gcc) Ȥ -O ǤưΤϤǤ
+
+3) bibext.c ƬʬˡȤΥǥեȤδɷϤƤ
+   #define Ĥޤ顤ŬͤꤷƲ
+
+4) ѸǤ bibtex  bibtex.web 򤳤Υǥ쥯ȥ˥ԡ뤫
+   ޤϤ link ĥäƲ
+
+5) make Ʋ jbibtex ϤǤǤʤˤ
+   matsui@denken.or.jp ޤǡΤ餻
+
+6) make test ǥƥȤƲ diff ǰ㤤Фʤ OK Ǥ
+   Ǥޤʤˤ matsui@denken.or.jp ޤǤΤ餻
+
+7) bst Υǥ쥯ȥˤ bst ե TEXINPUTS ǻꤵƤ
+   ǥ쥯ȥ˥ԡƲjbibtex ϥǥեȤδɤ
+   Shift JIS/EUC ǤäƤ JIS ɷϤɤ߹褦ˤʤäƤޤ
+   顤Shift JIS/EUC ߤͥåȥĶ bst եͭ
+   ˤϡ bst եϡJIS ɷϤˤƤΤǤ礦
+
+ ޤ jbibtex Ŭʾ˥ԡƲǥ󥹥ȡ뤷
+   ׻ѼԤ jbibtex Ȥ褦ˤʤϤǤ
+   doc/jbibtex.1 Ŭ man ǥ쥯ȥ˥ԡƲ
+
+8) doc-NTT(뤤doc-ASCII) β jbtxdoc.tex, jbtxhak.tex 
+	jlatex
+	jbibtex
+	jlatex
+	jlatex 
+   Ƥ顤ơɤ߲(٤ܤ̤Ʋ)
+   ޤ jbtxbst.doc ⤪ɤ߲(ϥƥȥեǤ)
+
+9) 󥹥ȡ뤷ȤξİƤΤǡưǧǤޤ
+   ʲξñǷ빽Ǥ顤 matsui@denken.or.jp ޤǥ᡼ǤΤ餻
+   Żҥ᡼뤬ѤǤʤˤϡ̾͹ؤǤ⤫ޤޤˡ
+
+    A) 󥹥ȡĶ
+    	A-1) 󥹥ȡ뤷׻μ(ޥ󡤣ϣӡ
+    	A-2) ȤΥǥեȤδɷ
+    B) 󥹥ȡ뤷̾̾ʤ
+	B-1) ϢôԤλ̾᡼륢ɥ쥹
+	B-2) °ء̾ʤ
+    C) ¾
+	C-1) ߤʸ(bst)η
+	C-2) ¾δ˾ոʤ
+
+򼨤ޤ
+
+	A-1) SUN 3/80, SUN SPARC Station 1, SUN OS4.0.3+JLE4.0.3
+	A-2) EUC
+	B-1)   (matsui@denken.or.jp)
+	B-2) ʺꡡ󥷥ƥ
+	 100 ĶĮ 1-6-1
+	C-1) äˤʤ
+	C-2) make ȯǴñ˥󥹥ȡǤȤ褤
+	 ܸʸϤʤƤʤ
+
+--------------------------------------------------------------------------
+JBibTeX ˴ؤ뤪䤤碌ϲ˸ꤤޤʤäǤΤ䤤碌
+Ϥθ
+
+                        ˡꡡ󥷥ƥ
+
+                        桡  (matsui@denken.or.jp)
+			ꡡ졡(tokoro@denken.or.jp)
+
+                        100 Ķ衡Į 1-6-1
+                        FAX: 03 (3287) 2864
+--------------------------------------------------------------------------
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/help.h
@@ -0,0 +1,54 @@
+/* Modified for JTeX by Takafumi Sakurai 1998. */
+
+/* help.h: help messages for web2c programs.
+
+   This is included by everyone, from cpascal.h.  This is better than
+   putting the help messages directly in the change files because (1)
+   multiline strings aren't supported by tangle, and it would be a pain
+   to make up a new syntax for them in web2c, and (2) when a help msg
+   changes, we need only recompile, not retangle or reconvert.  The
+   downside is that everything gets recompiled when any msg changes, but
+   that's better than having umpteen separate tiny files.  (For one
+   thing, the messages have a lot in common, so it's nice to have them
+   in one place.)
+
+Copyright (C) 1995, 96 Karl Berry.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef HELP_H
+#define HELP_H
+
+
+#ifdef TeX
+EXTERN const_string TEXHELP[];
+#endif /* TeX */
+
+#ifdef JBIBTEX
+const_string based_prog_name = "BibTeX";
+#ifndef NO_BIBTEX_HELP
+const_string BIBTEXHELP[] = {
+"Usage: jbibtex [OPTION]... AUXFILE[.aux]",
+"       Write bibliography for entries in AUXFILE to AUXFILE.bbl.",
+"-min-crossrefs=NUMBER  include item after NUMBER cross-refs; default 2",
+"-terse                 do not print progress reports",
+"-help                  display this help and exit",
+"-version               output version information and exit",
+NULL
+};
+#endif /* NO_BIBTEX_HELP */
+#endif /* JBIBTEX */
+
+#endif /* not HELP_H */
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jbib.c
@@ -0,0 +1,72 @@
+/* Hand-coded routines for JBibTeX in C.  */
+
+#define	EXTERN extern
+#define NO_BIBTEX_HELP
+#include "jtexdir/jbib.h"
+
+char kanji_file_code, kanji_term_code;
+
+#define	legal_kanji_code(kcode) \
+	((jis_1 <= kcode && kcode <= jis_6) || \
+	 kcode == shift_jis || kcode == EUC)
+
+void
+initkanji(void)
+{
+    char *p;
+
+    kanji_file_code = DEFAULT_FILE_CODE;
+    kanji_term_code = DEFAULT_TERM_CODE;
+
+    if ((p = getenv("BIBFILECODE")) != NULL)
+	kanji_file_code = atoi(p);
+    if (!legal_kanji_code(kanji_file_code)) {
+	fprintf(stderr,
+		"Kanji File Code:%d is illegal. I'll use system default\n",
+		kanji_file_code);
+	kanji_file_code = DEFAULT_FILE_CODE;
+    }
+    if ((p=getenv("BIBTERMCODE")) != NULL)
+	kanji_term_code = atoi(p);
+    if (!legal_kanji_code(kanji_term_code)) {
+	fprintf(stderr,
+		"Kanji Term Code:%d is illegal. I'll use system default\n",
+		kanji_term_code);
+	kanji_term_code = DEFAULT_TERM_CODE;
+    }
+
+    setinkanjitype(stdin, kanji_term_code);
+    setoutkanjitype(stdout, kanji_term_code);
+}
+
+void
+input_line_bib(FILE *f, int *lc)
+{
+    register int i;
+    register mlcinfo *mi = &mlcodeinfo[fileno(f)];
+
+    i = (*(mi->in_ln))(f, mi);
+
+    *lc = i;
+}
+
+boolean
+a_open_in(FILE **f_ptr,  kpse_file_format_type filefmt,
+              const_string fopen_mode)
+{
+    if (open_input(f_ptr, filefmt, fopen_mode)) {
+	setinkanjitype(*f_ptr, kanji_file_code);
+	return true;
+    } else
+	return false;
+}
+
+boolean
+a_open_out(FILE **f_ptr,  const_string fopen_mode)
+{
+    if (open_output(f_ptr, fopen_mode)) {
+	setoutkanjitype(*f_ptr, kanji_file_code);
+	return true;
+    } else
+	return false;
+}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jbib.defines
@@ -0,0 +1,2 @@
+@define procedure inputlinebib();
+@define procedure initkanji;
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jbib.h
@@ -0,0 +1,39 @@
+/* default kanji-code of JBibTeX */
+#define	DEFAULT_FILE_CODE	shift_jis
+#define	DEFAULT_TERM_CODE	shift_jis
+
+#include "cpascal.h"
+#include "jtexdir/help.h"
+
+void initkanji(void);
+
+#define	inputlinebib(stream, a)	input_line_bib(stream, a)
+extern void input_line_bib();
+
+#undef	aopenin
+#define aopenin(f, p)	a_open_in(&(f), p, FOPEN_R_MODE)
+extern boolean a_open_in();
+#undef	aopenout
+#define aopenout(f)	a_open_out(&(f), FOPEN_W_MODE)
+extern boolean a_open_out();
+
+#undef	Fputs
+#if !defined(NOFIXPUTC)
+#undef	putc
+#define	putc	Fputc
+#endif
+#include "jtexdir/kanji.h"
+
+#define	getmlinputcodetype	getkanjiterminaltype
+#define	setinmlcodetype		setinkanjitype
+
+#define	mlchar		textchar
+#define	mlcinfo		kaninfo
+#define	mlcodeinfo	kanjiinfo
+
+typedef unsigned char ASCIIcode  ;
+typedef ASCIIcode * buftype  ;
+typedef integer bufpointer  ;
+extern integer bufsize  ;
+extern buftype buffer  ;
+extern bufpointer last  ;
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jbibtex.ch
@@ -0,0 +1,566 @@
+% Change file for BibTeX in C, originally by Howard Trickey.
+%
+% 05/28/84      Initial implementation, version 0.41 of BibTeX
+% 07/01/84      Version 0.41a of BibTeX.
+% 12/17/84      Version 0.97c of BibTeX.
+% 02/12/85      Version 0.98c of BibTeX.
+% 02/25/85      Newer version 0.98c of BibTeX.
+% 03/25/85      Version 0.98f of BibTeX
+% 05/23/85      Version 0.98i of BibTeX
+% 02/11/88      Version 0.99b of BibTeX
+% 04/04/88      Version 0.99c; converted for use with web2c (ETM).
+% 11/30/89      Use FILENAMESIZE instead of 1024 (KB).
+% 03/09/90	`int' is a bad variable name for C.
+% (more recent changes in the ChangeLog)
+%
+%  5/ 2/89      Version 0.20 of JBiBTeX by Shouichi Matsui
+% 12/25/90      Version 0.30 of JBibTeX by Shouichi Matsui
+%  1/ 1/91      last update for JBibTeX 0.30 by Shouichi Matsui
+% 10/30/92      last update for JBibTeX 0.31 for bug fix by Shouichi Matsui
+% 11/02/94      Version 0.32 for use with web2c 6.1, by Takafumi Sakurai
+%  4/02/97      Version 0.32 for use with web2c 7.0, by Takafumi Sakurai
+
+@x [0] only print chnages
+\def\title{\BibTeX\ }
+@y
+\def\title{J\BibTeX\ }
+@z
+
+@x
+ \def\titlepage{F}
+ \centerline{\:\titlefont The {\:\ttitlefont \BibTeX} preprocessor}
+ \vskip 15pt \centerline{(Version 0.99d---\today)} \vfill}
+@y
+ \def\titlepage{F}
+ \centerline{\:\titlefont The {\:\ttitlefont J\BibTeX} preprocessor}
+ \vskip 15pt \centerline{(Version 0.33 based on C Version \BibTeX 0.99d---\today)} \vfill}
+@z
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% [1] banner
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@x
+@d my_name=='bibtex'
+@d banner=='This is BibTeX, Version 0.99d' {printed when the program starts}
+@y
+@d my_name=='jbibtex'
+@d banner=='This is JBibTeX, Version 0.33, based on BibTeX 0.99d'
+   {printed when the program starts}
+@z
+
+@x
+initialize;
+@y
+init_kanji;
+initialize;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [27]
+for i:=0 to @'37 do xchr[i]:=chr(i);
+for i:=@'177 to @'377 do xchr[i]:=chr(i);
+@y
+for i:=1 to @'37 do xchr[i]:=' ';
+xchr[tab]:=chr(tab);
+for i:=@'200 to @'237 do xchr[i]:=chr(i-@'200);
+for i:=@'240 to 255 do xchr[i]:=chr(i);
+xchr[@'33]:=chr(@'33); {escape char}
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [28]
+for i:=first_text_char to last_text_char do xord[xchr[i]]:=i;
+@y
+for i:=first_text_char to last_text_char do xord[i]:=invalid_code;
+for i:=1 to @'176 do xord[i]:= i;
+for i:=@'200 to @'237 do xord[i]:= i-@'200;
+for i:=@'240 to 255 do xord[i]:=i;
+@z
+
+
+@x Changes for JBibTeX by Shouichi Matsui  for ver. 0.30
+@d period = "."                 {these are three}
+@d question_mark = "?"          {string-ending characters}
+@d exclamation_mark = "!"       {of interest in \.{add.period\$}}
+@y
+@d period = "."                 {these are three}
+@d question_mark = "?"          {string-ending characters}
+@d exclamation_mark = "!"       {of interest in \.{add.period\$}}
+@d zen_pun_first = 161          {Zenkaku punctuation first byte; in EUC}
+@d zen_space = 161              {Zenkaku space first, second byte; in EUC}
+@d zen_kuten = 162              {Zenkaku kuten second byte; in EUC}
+@d zen_ten = 163                {Zenkaku ten second byte; in EUC}
+@d zen_comma = 164              {Zenkaku comman second byte; in EUC}
+@d zen_period = 165             {Zenkaku period second byte; in EUC}
+@d zen_question = 169           {Zenkaku question mark second byte; in EUC}
+@d zen_exclamation = 170        {Zenkaku exclamation mark second byte; in EUC}
+@z
+
+% [32] Make RET a `white_space' character, so we won't choke on DOS
+% files, which use CR/LF for line endings.
+@x Changes for JBibTeX by Shouichi Matsui [32]
+@<Set initial values of key variables@>=
+for i:=0 to @'177 do lex_class[i] := other_lex;
+for i:=@'200 to @'377 do lex_class[i] := alpha;
+for i:=0 to @'37 do lex_class[i] := illegal;
+lex_class[invalid_code] := illegal;
+lex_class[tab] := white_space;
+lex_class[13] := white_space;
+lex_class[space] := white_space;
+lex_class[tie] := sep_char;
+lex_class[hyphen] := sep_char;
+for i:=@'60 to @'71 do lex_class[i] := numeric;
+for i:=@'101 to @'132 do lex_class[i] := alpha;
+for i:=@'141 to @'172 do lex_class[i] := alpha;
+@y
+@<Set initial values of key variables@>=
+for i:=0 to @'377 do lex_class[i] := other_lex;
+for i:=0 to @'37 do lex_class[i] := illegal;
+lex_class[invalid_code] := illegal;
+lex_class[tab] := white_space;
+lex_class[13] := white_space;
+lex_class[space] := white_space;
+lex_class[tie] := sep_char;
+lex_class[hyphen] := sep_char;
+for i:=@'60 to @'71 do lex_class[i] := numeric;
+for i:=@'101 to @'132 do lex_class[i] := alpha;
+for i:=@'141 to @'172 do lex_class[i] := alpha;
+for i:=@'200 to @'237 do lex_class[i] := illegal;
+for i:=@'240 to 255 do lex_class[i] := alpha;
+lex_class[@'33]:=alpha;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [33]
+@<Set initial values of key variables@>=
+for i:=0 to @'377 do id_class[i] := legal_id_char;
+for i:=0 to @'37 do id_class[i] := illegal_id_char;
+id_class[space] := illegal_id_char;
+id_class[tab] := illegal_id_char;
+id_class[double_quote] := illegal_id_char;
+id_class[number_sign] := illegal_id_char;
+id_class[comment] := illegal_id_char;
+id_class[single_quote] := illegal_id_char;
+id_class[left_paren] := illegal_id_char;
+id_class[right_paren] := illegal_id_char;
+id_class[comma] := illegal_id_char;
+id_class[equals_sign] := illegal_id_char;
+id_class[left_brace] := illegal_id_char;
+id_class[right_brace] := illegal_id_char;
+@y
+@<Set initial values of key variables@>=
+for i:=0 to @'377 do id_class[i] := legal_id_char;
+for i:=0 to @'37 do id_class[i] := illegal_id_char;
+for i:=@'200 to @'237 do id_class[i] := illegal_id_char;
+id_class[@'33] := legal_id_char;
+id_class[space] := illegal_id_char;
+id_class[tab] := illegal_id_char;
+id_class[double_quote] := illegal_id_char;
+id_class[number_sign] := illegal_id_char;
+id_class[comment] := illegal_id_char;
+id_class[single_quote] := illegal_id_char;
+id_class[left_paren] := illegal_id_char;
+id_class[right_paren] := illegal_id_char;
+id_class[comma] := illegal_id_char;
+id_class[equals_sign] := illegal_id_char;
+id_class[left_brace] := illegal_id_char;
+id_class[right_brace] := illegal_id_char;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [35]
+char_width[@'167] := 722;
+char_width[@'170] := 528;
+char_width[@'171] := 528;
+char_width[@'172] := 444;
+char_width[@'173] := 500;
+char_width[@'174] :=1000;
+char_width[@'175] := 500;
+char_width[@'176] := 500;
+@y
+char_width[@'167] := 722;
+char_width[@'170] := 528;
+char_width[@'171] := 528;
+char_width[@'172] := 444;
+char_width[@'173] := 500;
+char_width[@'174] :=1000;
+char_width[@'175] := 500;
+char_width[@'176] := 500;
+for i:=@'240 to 254 do char_width[i]:=514;
+@z
+
+@x [48] web2c doesn't understand f^. JBibTeX
+label loop_exit;
+@y
+label loop_exit;
+var i:c_int_type;
+@z
+@x [still 48] JBibTeX and dynamic buf_size.
+  while (not eoln(f)) do
+    begin
+    if (last >= buf_size) then
+        buffer_overflow;
+    buffer[last] := xord[getc (f)];
+    incr (last);
+    end;
+  vgetc (f); {skip the eol}
+@y
+  input_line_bib(f, address_of(i));
+  while (not eof(f)) and (last > 0) and (i <> 10) and (i <> 13) do
+  begin
+    buffer_overflow;
+    input_line_bib(f, address_of(i));
+  end;
+@z
+
+@x
+@<Procedures and functions for the reading and processing of input files@>=
+procedure get_the_top_level_aux_file_name;
+label aux_found,@!aux_not_found;
+begin
+  @<Process a possible command line@>
+@y
+@<Procedures and functions for the reading and processing of input files@>=
+procedure get_the_top_level_aux_file_name;
+label aux_found,@!aux_not_found;
+begin
+  @<Process a possible command line@>
+@z
+
+@x
+@<Process a possible command line@>=
+parse_arguments;
+@y
+@<Process a possible command line@>=
+parse_arguments;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [332]
+@!b_write : hash_loc;           {\.{write\$}}
+@!b_default : hash_loc;         {either \.{skip\$} or \.{default.type}}
+@y
+@!b_write : hash_loc;           {\.{write\$}}
+@!b_is_kanji_str : hash_loc;    {\.{is.kanji.str\$}}
+@!b_default : hash_loc;         {either \.{skip\$} or \.{default.type}}
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [334]
+@d n_write = 36         {\.{write\$}}
+
+@<Constants in the outer block@>=
+@!num_blt_in_fns = 37;  {one more than the previous number}
+@y
+@d n_write = 36         {\.{write\$}}
+@d n_is_kanji_str = 37  {\.{is.kanji.str\$}}
+
+@<Constants in the outer block@>=
+@!num_blt_in_fns = 38;  {one more than the previous number}
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [335]
+build_in('write$      ',6,b_write,n_write);
+@y
+build_in('write$      ',6,b_write,n_write);
+build_in('is.kanji.str$',13,b_is_kanji_str,n_is_kanji_str);
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [342]
+    n_write :           x_write;
+    othercases confusion ('Unknown built-in function')
+endcases;
+end
+@y
+    n_write :           x_write;
+    n_is_kanji_str:     x_is_kanji_str;
+    othercases confusion ('Unknown built-in function')
+endcases;
+end
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [343]
+@<|execute_fn|({\.{write\$}})@>@;
+@<|execute_fn| itself@>
+@y
+@<|execute_fn|({\.{write\$}})@>@;
+@<|execute_fn|({\.{is.kanji.str\$}})@>@;
+@<|execute_fn| itself@>
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui   --- add.period$ for ver. 0.30
+case (str_pool[sp_ptr]) of
+    period,
+    question_mark,
+    exclamation_mark :
+        repush_string;
+    othercases
+        @<Add the |period| (it's necessary) and push@>
+@y
+case (str_pool[sp_ptr]) of
+    period,
+    question_mark,
+    exclamation_mark :
+        repush_string;
+    zen_ten,
+    zen_period,
+    zen_question,
+    zen_exclamation:
+        if( str_pool[sp_ptr-1] = zen_pun_first ) then
+            repush_string
+        else
+            @<Add the |period| (it's necessary) and push@>;
+    othercases
+        @<Add the |period| (it's necessary) and push@>
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [377]
+else if (length(pop_lit1) <> 1) then
+    begin
+    print ('"');
+    print_pool_str (pop_lit1);
+    bst_ex_warn ('" isn''t a single character');
+    push_lit_stk (0, stk_int);
+    end
+@y
+else if (length(pop_lit1) <> 1) then
+    if(str_pool[str_start[pop_lit1]]>127) then { a KANJI char is 2byte long }
+        push_lit_stk(str_pool[str_start[pop_lit1]],stk_int)
+    else begin
+        print ('"');
+        print_pool_str (pop_lit1);
+        bst_ex_warn ('" isn''t a single character');
+        push_lit_stk (0, stk_int);
+    end
+@z
+
+@x by Shouichi Matsui for Zenkaku comma
+if (ex_buf_ptr < ex_buf_length) then            {remove the ``and''}
+    ex_buf_ptr := ex_buf_ptr - 4;
+@y
+if (ex_buf_ptr < ex_buf_length) then    {remove the ``and'', or Zenkau comma}
+ begin
+    if( (ex_buf[ex_buf_ptr-1]=zen_comma) or (ex_buf[ex_buf_ptr-1]=zen_kuten) )
+    then ex_buf_ptr := ex_buf_ptr - 2
+    else ex_buf_ptr := ex_buf_ptr - 4;
+ end;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui for Zenkaku comma
+    "a", "A" :
+        begin
+        incr(ex_buf_ptr);
+        if (preceding_white) then
+            @<See if we have an ``and''@>;      {if so, |and_found := true|}
+        preceding_white := false;
+        end;
+@y
+    "a", "A" :
+        begin
+        incr(ex_buf_ptr);
+        if (preceding_white) then
+            @<See if we have an ``and''@>;      {if so, |and_found := true|}
+        preceding_white := false;
+        end;
+     zen_pun_first:
+        begin
+          if((ex_buf[ex_buf_ptr+1]=zen_comma) or
+             (ex_buf[ex_buf_ptr+1]=zen_kuten) ) then
+                begin
+                  preceding_white := false;
+                  and_found  := true
+                end
+          else if(ex_buf[ex_buf_ptr+1]=zen_space) then
+               begin
+                  ex_buf[ex_buf_ptr]   := space;
+                  ex_buf[ex_buf_ptr+1] := space;
+                  preceding_white := true;
+               end;
+          ex_buf_ptr := ex_buf_ptr + 2;
+        end;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui for Zenkaku comma[385]
+    othercases
+        if (lex_class[ex_buf[ex_buf_ptr]] = white_space) then
+            begin
+            incr(ex_buf_ptr);
+            preceding_white := true;
+            end
+        else
+            begin
+            incr(ex_buf_ptr);
+            preceding_white := false;
+            end
+  endcases;
+check_brace_level (pop_lit_var);
+end;
+@y
+    othercases
+        if (lex_class[ex_buf[ex_buf_ptr]] = white_space) then
+            begin
+            incr(ex_buf_ptr);
+            preceding_white := true;
+            end
+        else
+            begin
+                if( ex_buf[ex_buf_ptr] > 127 ) then
+                        ex_buf_ptr := ex_buf_ptr +2
+                else
+                        incr(ex_buf_ptr);
+            preceding_white := false;
+            end
+  endcases;
+check_brace_level (pop_lit_var);
+end;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [415]
+    if (lex_class[name_buf[name_bf_ptr]] = alpha) then
+        begin
+        append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
+        goto loop_exit;
+        end
+    else if ((name_buf[name_bf_ptr] = left_brace) and
+@y
+    if (lex_class[name_buf[name_bf_ptr]] = alpha) then
+        begin
+            if name_buf[name_bf_ptr]>127 then begin
+                append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
+                incr(name_bf_ptr);
+                append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
+            end
+            else
+                append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
+        goto loop_exit;
+        end
+    else if ((name_buf[name_bf_ptr] = left_brace) and
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [437]
+@<|execute_fn|({\.{substring\$}})@>=
+procedure x_substring;
+label exit;
+begin
+@y
+@<|execute_fn|({\.{substring\$}})@>=
+procedure x_substring;
+label exit;
+var tps,tpe:pool_pointer; {temporary pointer}
+begin
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [438]
+str_room(sp_end - sp_ptr);
+while (sp_ptr < sp_end) do                      {shift the substring}
+    begin
+    append_char (str_pool[sp_ptr]);
+    incr(sp_ptr);
+    end;
+@y
+{ 2 bytes Kanji code break check }
+tps:=str_start[pop_lit3];
+while (tps < sp_ptr ) do
+    if str_pool[tps] > 127
+    then tps := tps + 2
+    else incr(tps);
+tpe:=tps;
+while (tpe < sp_end ) do begin
+    if str_pool[tpe] > 127
+    then tpe := tpe+2
+    else incr(tpe);
+end;
+if tps<>sp_ptr then begin
+    if tps>str_start[pop_lit3]
+    then decr(sp_ptr)
+    else incr(sp_ptr);
+end;
+if tpe<>sp_end then begin
+    if tpe<str_start[pop_lit3+1]
+    then incr(sp_end)
+    else decr(sp_end);
+end;
+
+str_room(sp_end - sp_ptr);
+while (sp_ptr < sp_end) do                      {shift the substring}
+    begin
+    if str_pool[sp_ptr] >127 then begin
+         append_char (str_pool[sp_ptr]); incr(sp_ptr);
+         append_char (str_pool[sp_ptr]); incr(sp_ptr);
+         end
+    else begin
+         append_char (str_pool[sp_ptr]); incr(sp_ptr); end;
+    end;
+@z
+
+@x Changes for JBibTeX by Shouichi Matsui [445]
+    else if (str_pool[sp_xptr1-1] = right_brace) then
+        begin
+        if (sp_brace_level > 0) then
+            decr(sp_brace_level);
+        end
+    else
+        incr(num_text_chars);
+    end;
+@y
+    else if (str_pool[sp_xptr1-1] = right_brace) then
+        begin
+        if (sp_brace_level > 0) then
+            decr(sp_brace_level);
+        end
+    else if (str_pool[sp_xptr1-1]>127) then begin {kanji char}
+            incr(sp_xptr1); num_text_chars:=num_text_chars+2;
+         end
+    else
+        incr(num_text_chars);
+    end;
+@z
+
+@x
+      print_version_and_exit (banner, 'Oren Patashnik', nil, nil);
+@y
+      print_version_and_exit (banner, 'Oren Patashnik', 'Shouichi Matsui', nil);
+@z
+
+@x
+begin kpse_set_program_name (argv[0], 'bibtex');
+@y
+begin kpse_set_program_name (argv[0], 'jbibtex');
+@z
+
+@x
+  until j_prime;
+  incr (k);
+  hash_prime := j;
+  primes[k] := hash_prime;
+  end;
+end;
+
+@y
+  until j_prime;
+  incr (k);
+  hash_prime := j;
+  primes[k] := hash_prime;
+  end;
+end;
+
+@ modules for JBibTeX
+
+@
+@<|execute_fn|({\.{is.kanji.str\$}})@>=
+procedure x_is_kanji_str;
+label exit;
+begin
+    pop_lit_stk(pop_lit1, pop_typ1);
+    if pop_typ1<> stk_str then
+    begin print_wrong_stk_lit(pop_lit1,pop_typ1,stk_str);
+          push_lit_stk(0,stk_int);
+    end else begin
+        sp_ptr := str_start[pop_lit1];
+        sp_end := str_start[pop_lit1+1];
+        while sp_ptr<sp_end do begin
+            if str_pool[sp_ptr]>127 then begin
+                push_lit_stk(1,stk_int);
+                return;
+            end else begin
+                incr(sp_ptr);
+            end;
+        end;
+        push_lit_stk(0,stk_int);
+    end;
+exit:end;
+@z
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jbibtex.test
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+# Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+test -d tests || mkdir -p tests
+
+cp $srcdir/../web2c/tests/exampl.aux tests/xexampl.aux
+
+TEXMFCNF=$srcdir/../kpathsea \
+  BSTINPUTS=$srcdir/../web2c/tests \
+  BIBINPUTS=$srcdir/../web2c/tests \
+  ./jbibtex tests/xexampl || exit 1
+
+cp $srcdir/tests/jexampl.aux tests/xjexampl.aux
+
+TEXMFCNF=$srcdir/../kpathsea \
+  BSTINPUTS=$srcdir/tests \
+  BIBINPUTS=$srcdir/tests \
+  BIBFILECODE=20 \
+  ./jbibtex tests/xjexampl || exit 1
+
+diff $srcdir/tests/jexampl.bbl tests/xjexampl.bbl
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jconvert
@@ -0,0 +1,110 @@
+#!/bin/sh
+# Convert WEB programs not needing special treatment to C.
+# 
+# $1 is the Pascal file to be converted.
+# $2 is the C file to be created.
+# $3, if present, is extended with .h, and #included in the C file, and
+# extended with .defines, and prepended along with the common
+# definitions.
+
+: ${srcdir=.}
+web2cdir=./web2c
+web2csrc=$srcdir/../web2c/web2c
+
+usage="Usage: $0 <basefile>."
+basefile=
+while test $# -gt 0; do
+  case $1 in
+    -*) echo "$1?" >&2; echo "$usage" >&2; exit 1;;
+     *) if test -n "$basefile"; then
+          echo "$1?" >&2; echo "$usage" >&2; exit 1; fi
+        basefile=$1;;
+  esac
+  shift
+done
+if test -z "$basefile"; then
+  echo "Missing basefile argument." >&2
+  echo "$usage" >&2
+  exit 1
+fi
+
+pascalfile=$basefile.p
+cfile=$basefile.c
+
+# This is for tangleboot if the build and source directories are different.
+test -r $pascalfile || pascalfile=$srcdir/$pascalfile
+
+# We use cpascal.h by default instead of config.h because straight C
+# routines can only be confused by the definitions for `chr', etc.
+hfile=cpascal.h
+more_defines=
+web2c_options=-c$basefile
+precmd=
+midcmd=
+fixwrites_options=
+splitup_options="-i -l 65000"
+postcmd=
+output="> $cfile"
+output_files="$cfile $basefile.h"
+
+case $basefile in
+  jbibtex)
+    more_defines="$srcdir/jtexdir/jbib.defines"
+    hfile=jtexdir/jbib.h
+    midcmd="| sed -f $srcdir/jtexdir/cvtbib.sed"
+    ;;
+  jtex)
+    more_defines="$web2csrc/texmf.defines"
+    prog_defines="$srcdir/jtexdir/jtex.defines"
+    if test -f $prog_defines; then
+      more_defines="$more_defines $prog_defines"
+    fi
+    web2c_options="-t -c${basefile}coerce"
+    hfile=jtexdir/texmfmp.h
+    fixwrites_options=-t
+    postcmd="| $web2cdir/splitup $splitup_options ${basefile}"
+    cfile=${basefile}0.c # last output file, or thereabouts
+    output=
+    output_files="$basefile[0-9]*.c ${basefile}ini.c ${basefile}d.h \
+${basefile}coerce.h"
+    ;;
+esac
+
+# Do it.
+eval "cat $web2csrc/common.defines $more_defines $pascalfile \
+  $precmd \
+  | $web2cdir/web2c -h$hfile $web2c_options \
+  $midcmd \
+  | $web2cdir/fixwrites $fixwrites_options $basefile \
+  $postcmd \
+  $output"
+
+# Using the above pipeline as the condition of an if does no good, since
+# typical sh's use the status of the first command as the pipeline result.
+# So check for an empty output file, or one with the error marker we put in.
+if test ! -s $cfile || grep @error@ $output_files >nul; then
+  : ${TMPDIR=/tmp}
+  # Don't just delete it, since it may be useful for debugging.
+  echo "$0: conversion of $pascalfile failed, moving dregs:" >&2
+  cmd="cp $output_files $TMPDIR"
+  (cd $TMPDIR && rm -f $output_files)
+  echo "$0:   $cmd" >&2
+  $cmd
+  rm -f $output_files
+  exit 1
+fi
+
+case $basefile in
+  jbibtex)
+    sed -e 's/(buftype)//g' -e 's/(pdstype)//g' <jbibtex.h >xbibtex.h
+    mv xbibtex.h jbibtex.h
+    ;;
+  jtex)
+    sleep 2 # so timestamps are definitely later, to avoid make weirdness
+    cat ${basefile}coerce.h $srcdir/web2c/coerce.h >x${basefile}coerce.h
+    mv x${basefile}coerce.h ${basefile}coerce.h
+    touch ${basefile}d.h
+    ;;
+esac
+
+exit 0
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jlib.c
@@ -0,0 +1,81 @@
+/* Trivial modification of usage.c and printversion.c in texk/web2c/lib.
+   The two files are in public domain. */
+
+#include "config.h"
+#include <lib/lib.h>
+#include <kpathsea/version.h>
+
+void
+usage(const_string str)
+{
+  fprintf (stderr, "Try `%s --help' for more information.\n", str);
+  uexit (1);
+}
+
+void
+usagehelp(const_string *message, const_string bug_email)
+{
+    if (!bug_email)
+        bug_email = "sakurai@math.s.chiba-u.ac.jp";
+    while (*message) {
+        fprintf(stdout, "%s\n", *message);
+        ++message;
+    }
+    fprintf(stdout, "\nEmail bug reports to %s.\n", bug_email);
+    fflush(stdout);
+    uexit(0);
+}
+
+void
+printversionandexit(const_string banner,
+                    const_string copyright_holder,  
+                    const_string author,
+                    const_string extra_info)
+{
+  string prog_name;
+  unsigned len;
+#ifdef BIBTEX
+  const_string base_prog_name = "BibTeX";
+#else
+  const_string base_prog_name = "TeX";
+#endif
+  const_string prog_name_end = strchr (banner, ',');
+  const_string prog_version = prog_name_end + sizeof("Version") + 2;
+  assert (prog_name_end && prog_version);
+  
+  len = prog_name_end - banner - sizeof ("This is");
+  prog_name = (string)xmalloc (len + 1);
+  strncpy (prog_name, banner + sizeof ("This is"), len);
+  prog_name[len] = 0;
+
+  /* The Web2c version string starts with a space.  */
+  fprintf (stdout,"%s %s%s\n", prog_name, prog_version, versionstring);
+  fputs (kpathsea_version_string, stdout); fputs("\n", stdout);
+
+  if (copyright_holder) {
+    printf ("Copyright 2016 %s.\n", copyright_holder);
+    if (!author)
+      author = copyright_holder;
+  }
+
+  fputs ("There is NO warranty.  Redistribution of this software is\n",
+         stdout);
+  fputs ("covered by the terms of ", stdout);
+  /* DVIcopy is GPL'd, so no additional words needed. */
+  if (/*copyright_holder && */!STREQ (prog_name, "DVIcopy")) {
+    fprintf (stdout, "both the %s copyright and\n", base_prog_name);
+  }
+  fputs ("the GNU General Public License.\n", stdout);
+  fputs ("For more information about these matters, see the files\n", stdout);
+  fprintf (stdout, "named COPYING and the %s and %s source.\n",
+	  base_prog_name, prog_name);
+  fprintf (stdout, "Primary author of %s: %s; %s author: %s.\n",
+          base_prog_name, copyright_holder, prog_name, author);
+  fflush(stdout);
+
+  if (extra_info) {
+    puts (extra_info);
+  }
+
+  uexit (0);
+}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jtex.ch
@@ -0,0 +1,3656 @@
+% JTeX change file by Takafumi Sakurai
+% The diff from tex.ch covered by the copyright:
+%   Copyright (C) 1988-1998 Takafumi Sakurai
+%
+% 1.0  (88 Dec) japanese subfont autoload by Takafumi Sakurai
+% 1.04 (89 Dec) by Takafumi Sakurai
+% 1.05 (90 Feb) by Takafumi Sakurai
+% 1.11 (90 May) delayed font by Takafumi Sakurai
+% 1.2  (91 Feb) To version 3.0, some new features added
+%	by Takafumi Sakurai
+% 1.21 (91 Sep) bug fixes by Takafumi Sakurai
+% 1.3  (92 Aug) To version 3.14 by Takafumi Sakurai
+% 1.33 (93 Jun) more than 256 fonts by Takafumi Sakurai
+% 1.4  (93 Jun) distiction of kanji and 8-bit char by Takafumi Sakurai
+% 1.5  (93 Sep) To version 3.141 by Takafumi Sakurai
+% 1.6  (94 Sep) To version 3.1415 (web2c 6.1) by Takafumi Sakurai
+% 1.61 (96 May) To version 3.1415 (web2c 6.1 / kp 2.6) by Takafumi Sakurai
+% 1.7  (97 Mar) To version 3.14159 (web2c 7.0) by Takafumi Sakurai
+% 1.8  (98 May) To version 3.14159 (web2c 7.2) by Takafumi Sakurai
+% 1.9  (99 Aug) To version 3.14159 (web2c 7.3.1) by Takafumi Sakurai
+% 2.0  (03 Jan) To version 3.14159 (web2c 7.4.3) by Takafumi Sakurai
+% 2.1  (05 Jul) To version 3.141592 (web2c 7.5.4) by Takafumi Sakurai
+% 2.2  (10 Jan) To version 3.1415926 (web2c 2009) by Takafumi Sakurai
+%
+% JTeX was originaly written by Yaski Saito
+% ported to UNIX by Takafumi Sakurai (inijtex.ch)
+% inijtex.ch and ctex.ch are merged to cjtex.ch by Shigeyuki Takagi
+% 0.96 (88 May) EUC/shift-jis code support and some new features added
+%	by Takafumi Sakurai and Shouichi Matsui
+
+% tex.ch for C compilation with web2c, derived from various other change files.
+% By Tim Morgan, UC Irvine ICS Department, and many others.
+%
+% Be very careful when making changes to this file, as it is used to
+% generate TeX, e-TeX, and pdfTeX, and most changes require similar
+% changes to be made to the Aleph sources.
+%
+% (05/28/86) ETM Started with TeX 2.0
+% (06/03/87) ETM Brought up to TeX 2.2
+% (09/26/87) ETM Brought up to TeX 2.3
+% (10/01/87) ETM Brought up to TeX 2.5
+% (12/21/87) ETM Brought up to TeX 2.7
+% (01/14/88) ETM Brought up to TeX 2.9
+% (02/20/88) PAM Revised format and module numbers
+% (03/01/88) ETM Eliminated some unused variables and unnecesary tests
+% (05/09/88) ETM Added yet another casting bug fix
+% (06/21/88) ETM Brought up to TeX version 2.93
+% (12/11/88) ETM Brought up to TeX version 2.94
+% (01/12/89) PAM Brought up to TeX version 2.95
+% (02/14/89) ETM Brought up to TeX version 2.96
+% (03/10/89) ETM Brought up to TeX version 2.98
+% (07/06/89) ETM Brought up to TeX version 2.991
+% (11/30/89) KB  To version 2.992 (8-bit).
+% (01/10/90) SR  To version 2.993.
+% (03/27/90) KY  To version 3.0.
+% (more recent changes in ChangeLog)
+%
+% The TeX program is copyright (C) 1982 by D. E. Knuth.
+% TeX is a trademark of the American Mathematical Society.
+%
+
+@x [1.2] l.187 - JTeX: banner line
+@d TeX_banner_k=='This is TeXk, Version 3.14159265' {printed when \TeX\ starts}
+@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts}
+@y
+@d TeX_banner=='This is JTeX, Version 2.2, based on TeX Version 3.14159265'
+						{printed when \TeX\ starts}
+@d TeX_banner_k==TeX_banner
+@z
+
+@x JTeX: [1.4]
+@t\4@>@<Basic printing procedures@>@/
+@t\4@>@<Error handling procedures@>@/
+@y
+@t\4@>@<Basic printing procedures@>@/
+@t\4@>@<Error handling procedures@>@/
+@t\4@>@<Utility functions and procedures for Japanese@>@/
+@z
+
+@x JTeX
+@d file_name_size == maxint
+@d ssup_error_line = 255
+@y
+@d file_name_size == maxint
+@d ssup_error_line = 255
+@d ssup_trick_line=ssup_error_line+ssup_error_line-1
+@^JTeX constant@>
+@z
+
+@x [1.18] JTeX: Internal representation of kanji and 8bit char
+@ Characters of text that have been converted to \TeX's internal form
+are said to be of type |ASCII_code|, which is a subrange of the integers.
+@y
+@ Characters of text that have been converted to \TeX's internal form
+are said to be of type |ASCII_code|, which is a subrange of the integers.
+
+In |buffer|, |str_pool|, and |trick_buf|, a japanese char (kanji) is
+represented by two bytes: |firstbyte+EXTCHARBIT| and |secondbyte|,
+where |firstbyte| and |secondbyte| is the JIS-code of the japanese char.
+Furthermore, the internal representation of an eighbit char (an ascii char
+with eighth bit on) is different from that of \TeX, that is, it is represented
+by two bytes: |EXTCHARBIT| and |thebyte-128|. The reason for this complication
+is to save memory needed for |str_pool|.
+
+@d EXTCHARBIT = 128
+@d is_ext_char(#) == ((#)>=EXTCHARBIT)
+@d is_ext_eightbit(#) == ((#)=EXTCHARBIT)
+@d ext_eightbit == EXTCHARBIT
+@d is_eightbit(#) == ((#)>=128)
+@d make_eightbit(#) == ((#)+128)
+@d de_eightbit(#) == ((#)-128)
+@d is_ext_kanji(#) == ((#)>EXTCHARBIT)
+@d make_ext_kanji(#) == ((#)+EXTCHARBIT)
+@d de_ext_kanji(#) == ((#)-EXTCHARBIT)
+
+@d repos_char(#) == begin
+  if (#>start) and (is_ext_char(buffer[#-1])) then decr(#);
+  end
+@d backward_onechar(#) == begin decr(#); repos_char(#) end
+@z
+
+@x JTeX: global variable
+@!max_print_line:integer;
+  {width of longest text lines output; should be at least 60}
+@y
+@!max_print_line:integer;
+  {width of longest text lines output; should be at least 60}
+@!trick_line:integer; {JTeX: for trick}
+@z
+
+@x [5.54] l.1422 - JTeX
+@!trick_buf:array[0..ssup_error_line] of ASCII_code; {circular buffer for
+  pseudoprinting}
+@y
+@!trick_buf:array[0..ssup_trick_line] of ASCII_code; {circular buffer for
+  pseudoprinting}
+@!tally_disp: integer;
+@!first_count_disp: integer;
+@z
+
+@x JTeX
+@ @<Initialize the output routines@>=
+selector:=term_only; tally:=0; term_offset:=0; file_offset:=0;
+@y
+@ @<Initialize the output routines@>=
+selector:=term_only; tally:=0; term_offset:=0; file_offset:=0;
+tally_disp:=0;
+@z
+
+@x JTeX: [5.58] Japanese two bytes code may overshoot max_print_line
+procedure print_char(@!s:ASCII_code); {prints a single character}
+label exit;
+begin if @<Character |s| is the current new-line character@> then
+ if selector<pseudo then
+  begin print_ln; return;
+  end;
+case selector of
+term_and_log: begin wterm(xchr[s]); wlog(xchr[s]);
+  incr(term_offset); incr(file_offset);
+  if term_offset=max_print_line then
+    begin wterm_cr; term_offset:=0;
+    end;
+  if file_offset=max_print_line then
+    begin wlog_cr; file_offset:=0;
+    end;
+  end;
+log_only: begin wlog(xchr[s]); incr(file_offset);
+  if file_offset=max_print_line then print_ln;
+  end;
+term_only: begin wterm(xchr[s]); incr(term_offset);
+  if term_offset=max_print_line then print_ln;
+  end;
+no_print: do_nothing;
+pseudo: if tally<trick_count then trick_buf[tally mod error_line]:=s;
+new_string: begin if pool_ptr<pool_size then append_char(s);
+  end; {we drop characters if the string space is full}
+othercases write(write_file[selector],xchr[s])
+endcases;@/
+incr(tally);
+exit:end;
+@y
+@<Declare procedures used by |print_char|@>
+procedure print_char(@!s:ASCII_code); {prints a single character}
+label exit;
+var is_newline:boolean;
+begin
+case selector of
+term_and_log: begin
+  if print_char_term(s) then do_nothing;
+  if print_char_log(s) then return;
+  end;
+log_only: if print_char_log(s) then return;
+term_only: if print_char_term(s) then return;
+no_print: do_nothing;
+pseudo: if tally_disp<trick_count then @<Store char in |trick_buf|@>;
+new_string: begin if pool_ptr<pool_size then append_char(s);
+  end; {we drop characters if the string space is full}
+othercases @<Print char to |write_file|@>
+endcases;@/
+incr(tally);
+exit:end;
+@z
+
+@x JTeX: [59] l.1514 (print)
+  else begin if selector>pseudo then
+      begin print_char(s); return; {internal strings are not expanded}
+      end;
+@y
+  else begin if selector>pseudo then
+      begin if (selector=new_string) and is_eightbit(s) then
+          begin print_char(ext_eightbit); print_char(de_eightbit(s)) end
+        else print_char(s);
+        return; {internal strings are not expanded}
+      end;
+@z
+
+@x JTeX: [60] l.1543 (slow_print)
+else begin j:=str_start[s];
+  while j<str_start[s+1] do
+    begin print(so(str_pool[j])); incr(j);
+    end;
+  end;
+@y
+else begin j:=str_start[s];
+  @<Print chars in |str_pool| in printable form@>;
+  end;
+@z
+
+@x [10.160] delayed
+@ In fact, there are still more types coming. When we get to math formula
+processing we will see that a |style_node| has |type=14|; and a number
+of larger type codes will also be defined, for use in math mode only.
+@y
+@ In fact, there are still more types coming. When we get to math formula
+processing we will see that a |style_node| has |type=14|; and a number
+of larger type codes will also be defined, for use in math mode only.
+So this is a good point for inserting definitios of new kinds of ref-type
+box.
+
+@p @<Define additional ref-type box@>
+@z
+
+@x JTeX: [12.174] show japanese |char_node| properly on kanji tty
+var n:integer; {for replacement counts}
+begin while p>mem_min do
+  begin if is_char_node(p) then
+    begin if p<=mem_end then
+      begin if font(p)<>font_in_short_display then
+        begin if (font(p)>font_max) then
+          print_char("*")
+@.*\relax@>
+        else @<Print the font identifier for |font(p)|@>;
+        print_char(" "); font_in_short_display:=font(p);
+        end;
+      print_ASCII(qo(character(p)));
+      end;
+    end
+  else @<Print a short indication of the contents of node |p|@>;
+  p:=link(p);
+  end;
+end;
+@y
+var n:integer; {for replacement counts}
+jfont_index:s_f_range0; {to hold return value of |j_font_p|}
+begin while p>mem_min do
+  begin if is_char_node(p) then
+    begin if p<=mem_end then
+     begin
+      jfont_index:=j_font_p(font(p));
+      if (jfont_index<>0)
+        then print_j_char(jfont_index,qo(character(p)))
+      else
+      begin
+      if font(p)<>font_in_short_display then
+        begin if (font(p)>font_max) then
+          print_char("*")
+@.*\relax@>
+        else @<Print the font identifier for |font(p)|@>;
+        print_char(" "); font_in_short_display:=font(p);
+        end;
+      print_ASCII(qo(character(p)));
+      end;
+     end
+    end
+  else begin
+    @<Print a short indication of the contents of node |p|@>;
+    end;
+  p:=link(p);
+  end;
+end;
+@z
+
+@x JTeX: [12.176] Printing of Japanese character in |show_node_list|
+begin if p>mem_end then print_esc("CLOBBERED.")
+else  begin if (font(p)>font_max) then print_char("*")
+@.*\relax@>
+  else @<Print the font identifier for |font(p)|@>;
+  print_char(" "); print_ASCII(qo(character(p)));
+  end;
+end;
+@y
+var jfont_index:s_f_range0; {to hold return value of |j_font_p|}
+begin if p>mem_end then print_esc("CLOBBERED.")
+else  begin if (font(p)>font_max) then print_char("*")
+@.*\relax@>
+  else @<Print the font identifier for |font(p)|@>;
+  print_char(" "); jfont_index:=j_font_p(font(p));
+  if (jfont_index<>0) then
+     print_j_char(jfont_index,qo(character(p)))
+  else print_ASCII(qo(character(p)));
+  end;
+end;
+@z
+
+@x JTeX:@x [13.201] delayed:
+@p procedure delete_glue_ref(@!p:pointer); {|p| points to a glue specification}
+fast_delete_glue_ref(p);
+@y
+@p procedure delete_glue_ref(@!p:pointer); {|p| points to a glue specification}
+fast_delete_glue_ref(p);
+@<Destroy additional ref-type box@>
+@z
+
+@x [14.203] delayed: Add reference count of additional ref-type box
+@d add_token_ref(#)==incr(token_ref_count(#)) {new reference to a token list}
+@d add_glue_ref(#)==incr(glue_ref_count(#)) {new reference to a glue spec}
+@y
+@d add_token_ref(#)==incr(token_ref_count(#)) {new reference to a token list}
+@d add_glue_ref(#)==incr(glue_ref_count(#)) {new reference to a glue spec}
+@d add_df_ref(#)==incr(df_ref_count(#)) {new reference to a df spec}
+@z
+
+@x [15.207] define new char code for jletter but not assignable
+@d max_char_code=15 {largest catcode for individual characters}
+@y
+@d jletter=16 {characters regarded as japanese letters}
+@d max_char_code=16 {largest catcode for individual characters}
+@z
+
+@x JTeX: [15.208] you must shift command code
+@d char_num=16 {character specified numerically ( \.{\\char} )}
+@d math_char_num=17 {explicit math code ( \.{\\mathchar} )}
+@d mark=18 {mark definition ( \.{\\mark} )}
+@d xray=19 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
+@d make_box=20 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
+@d hmove=21 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
+@d vmove=22 {vertical motion ( \.{\\raise}, \.{\\lower} )}
+@d un_hbox=23 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
+@d un_vbox=24 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
+@d remove_item=25 {nullify last item ( \.{\\unpenalty},
+  \.{\\unkern}, \.{\\unskip} )}
+@d hskip=26 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
+@d vskip=27 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
+@d mskip=28 {math glue ( \.{\\mskip} )}
+@d kern=29 {fixed space ( \.{\\kern})}
+@d mkern=30 {math kern ( \.{\\mkern} )}
+@d leader_ship=31 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
+@d halign=32 {horizontal table alignment ( \.{\\halign} )}
+@d valign=33 {vertical table alignment ( \.{\\valign} )}
+@d no_align=34 {temporary escape from alignment ( \.{\\noalign} )}
+@d vrule=35 {vertical rule ( \.{\\vrule} )}
+@d hrule=36 {horizontal rule ( \.{\\hrule} )}
+@d insert=37 {vlist inserted in box ( \.{\\insert} )}
+@d vadjust=38 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
+@d ignore_spaces=39 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
+@d after_assignment=40 {save till assignment is done ( \.{\\afterassignment} )}
+@d after_group=41 {save till group is done ( \.{\\aftergroup} )}
+@d break_penalty=42 {additional badness ( \.{\\penalty} )}
+@d start_par=43 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
+@d ital_corr=44 {italic correction ( \.{\\/} )}
+@d accent=45 {attach accent in text ( \.{\\accent} )}
+@d math_accent=46 {attach accent in math ( \.{\\mathaccent} )}
+@d discretionary=47 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
+@d eq_no=48 {equation number ( \.{\\eqno}, \.{\\leqno} )}
+@d left_right=49 {variable delimiter ( \.{\\left}, \.{\\right} )}
+@d math_comp=50 {component of formula ( \.{\\mathbin}, etc.~)}
+@d limit_switch=51 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
+@d above=52 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
+@d math_style=53 {style specification ( \.{\\displaystyle}, etc.~)}
+@d math_choice=54 {choice specification ( \.{\\mathchoice} )}
+@d non_script=55 {conditional math glue ( \.{\\nonscript} )}
+@d vcenter=56 {vertically center a vbox ( \.{\\vcenter} )}
+@d case_shift=57 {force specific case ( \.{\\lowercase}, \.{\\uppercase}~)}
+@d message=58 {send to user ( \.{\\message}, \.{\\errmessage} )}
+@d extension=59 {extensions to \TeX\ ( \.{\\write}, \.{\\special}, etc.~)}
+@d in_stream=60 {files for reading ( \.{\\openin}, \.{\\closein} )}
+@d begin_group=61 {begin local grouping ( \.{\\begingroup} )}
+@d end_group=62 {end local grouping ( \.{\\endgroup} )}
+@d omit=63 {omit alignment template ( \.{\\omit} )}
+@d ex_space=64 {explicit space ( \.{\\\ } )}
+@d no_boundary=65 {suppress boundary ligatures ( \.{\\noboundary} )}
+@d radical=66 {square root and similar signs ( \.{\\radical} )}
+@d end_cs_name=67 {end control sequence ( \.{\\endcsname} )}
+@d min_internal=68 {the smallest code that can follow \.{\\the}}
+@d char_given=68 {character code defined by \.{\\chardef}}
+@d math_given=69 {math code defined by \.{\\mathchardef}}
+@d last_item=70 {most recent item ( \.{\\lastpenalty},
+  \.{\\lastkern}, \.{\\lastskip} )}
+@d max_non_prefixed_command=70 {largest command code that can't be \.{\\global}}
+@y
+@d char_num=17 {character specified numerically ( \.{\\char} )}
+@d math_char_num=18 {explicit math code ( \.{\\mathchar} )}
+@d mark=19 {mark definition ( \.{\\mark} )}
+@d xray=20 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
+@d make_box=21 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
+@d hmove=22 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
+@d vmove=23 {vertical motion ( \.{\\raise}, \.{\\lower} )}
+@d un_hbox=24 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
+@d un_vbox=25 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
+@d remove_item=26 {nullify last item ( \.{\\unpenalty},
+  \.{\\unkern}, \.{\\unskip} )}
+@d hskip=27 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
+@d vskip=28 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
+@d mskip=29 {math glue ( \.{\\mskip} )}
+@d kern=30 {fixed space ( \.{\\kern})}
+@d mkern=31 {math kern ( \.{\\mkern} )}
+@d leader_ship=32 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
+@d halign=33 {horizontal table alignment ( \.{\\halign} )}
+@d valign=34 {vertical table alignment ( \.{\\valign} )}
+@d no_align=35 {temporary escape from alignment ( \.{\\noalign} )}
+@d vrule=36 {vertical rule ( \.{\\vrule} )}
+@d hrule=37 {horizontal rule ( \.{\\hrule} )}
+@d insert=38 {vlist inserted in box ( \.{\\insert} )}
+@d vadjust=39 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
+@d ignore_spaces=40 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
+@d after_assignment=41 {save till assignment is done ( \.{\\afterassignment} )}
+@d after_group=42 {save till group is done ( \.{\\aftergroup} )}
+@d break_penalty=43 {additional badness ( \.{\\penalty} )}
+@d start_par=44 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
+@d ital_corr=45 {italic correction ( \.{\\/} )}
+@d accent=46 {attach accent in text ( \.{\\accent} )}
+@d math_accent=47 {attach accent in math ( \.{\\mathaccent} )}
+@d discretionary=48 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
+@d eq_no=49 {equation number ( \.{\\eqno}, \.{\\leqno} )}
+@d left_right=50 {variable delimiter ( \.{\\left}, \.{\\right} )}
+@d math_comp=51 {component of formula ( \.{\\mathbin}, etc.~)}
+@d limit_switch=52 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
+@d above=53 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
+@d math_style=54 {style specification ( \.{\\displaystyle}, etc.~)}
+@d math_choice=55 {choice specification ( \.{\\mathchoice} )}
+@d non_script=56 {conditional math glue ( \.{\\nonscript} )}
+@d vcenter=57 {vertically center a vbox ( \.{\\vcenter} )}
+@d case_shift=58 {force specific case ( \.{\\lowercase}, \.{\\uppercase}~)}
+@d message=59 {send to user ( \.{\\message}, \.{\\errmessage} )}
+@d extension=60 {extensions to \TeX\ ( \.{\\write}, \.{\\special}, etc.~)}
+@d in_stream=61 {files for reading ( \.{\\openin}, \.{\\closein} )}
+@d begin_group=62 {begin local grouping ( \.{\\begingroup} )}
+@d end_group=63 {end local grouping ( \.{\\endgroup} )}
+@d omit=64 {omit alignment template ( \.{\\omit} )}
+@d ex_space=65 {explicit space ( \.{\\\ } )}
+@d no_boundary=66 {suppress boundary ligatures ( \.{\\noboundary} )}
+@d radical=67 {square root and similar signs ( \.{\\radical} )}
+@d end_cs_name=68 {end control sequence ( \.{\\endcsname} )}
+@d min_internal=68 {the smallest code that can follow \.{\\the}}
+@d char_given=69 {character code defined by \.{\\chardef}}
+@d math_given=70 {math code defined by \.{\\mathchardef}}
+@d last_item=71 {most recent item ( \.{\\lastpenalty},
+  \.{\\lastkern}, \.{\\lastskip} )}
+@d max_non_prefixed_command=71 {largest command code that can't be \.{\\global}}
+@z
+
+@x Changes for JTeX: [209] 
+@d toks_register=71 {token list register ( \.{\\toks} )}
+@d assign_toks=72 {special token list ( \.{\\output}, \.{\\everypar}, etc.~)}
+@d assign_int=73 {user-defined integer ( \.{\\tolerance}, \.{\\day}, etc.~)}
+@d assign_dimen=74 {user-defined length ( \.{\\hsize}, etc.~)}
+@d assign_glue=75 {user-defined glue ( \.{\\baselineskip}, etc.~)}
+@d assign_mu_glue=76 {user-defined muglue ( \.{\\thinmuskip}, etc.~)}
+@d assign_font_dimen=77 {user-defined font dimension ( \.{\\fontdimen} )}
+@d assign_font_int=78 {user-defined font integer ( \.{\\hyphenchar},
+  \.{\\skewchar} )}
+@d set_aux=79 {specify state info ( \.{\\spacefactor}, \.{\\prevdepth} )}
+@d set_prev_graf=80 {specify state info ( \.{\\prevgraf} )}
+@d set_page_dimen=81 {specify state info ( \.{\\pagegoal}, etc.~)}
+@d set_page_int=82 {specify state info ( \.{\\deadcycles},
+  \.{\\insertpenalties} )}
+@d set_box_dimen=83 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
+@d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
+@d def_code=85 {define a character code ( \.{\\catcode}, etc.~)}
+@d def_family=86 {declare math fonts ( \.{\\textfont}, etc.~)}
+@d set_font=87 {set current font ( font identifiers )}
+@d def_font=88 {define a font file ( \.{\\font} )}
+@d register=89 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
+@d max_internal=89 {the largest code that can follow \.{\\the}}
+@d advance=90 {advance a register or parameter ( \.{\\advance} )}
+@d multiply=91 {multiply a register or parameter ( \.{\\multiply} )}
+@d divide=92 {divide a register or parameter ( \.{\\divide} )}
+@d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
+@d let=94 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
+@d shorthand_def=95 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
+  {or \.{\\charsubdef}}
+@d read_to_cs=96 {read into a control sequence ( \.{\\read} )}
+@d def=97 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
+@d set_box=98 {set a box ( \.{\\setbox} )}
+@d hyph_data=99 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
+@d set_interaction=100 {define level of interaction ( \.{\\batchmode}, etc.~)}
+@d max_command=100 {the largest command code seen at |big_switch|}
+@y
+@d toks_register=72 {token list register ( \.{\\toks} )}
+@d assign_toks=73 {special token list ( \.{\\output}, \.{\\everypar}, etc.~)}
+@d assign_int=74 {user-defined integer ( \.{\\tolerance}, \.{\\day}, etc.~)}
+@d assign_dimen=75 {user-defined length ( \.{\\hsize}, etc.~)}
+@d assign_glue=76 {user-defined glue ( \.{\\baselineskip}, etc.~)}
+@d assign_mu_glue=77 {user-defined muglue ( \.{\\thinmuskip}, etc.~)}
+@d assign_font_dimen=78 {user-defined font dimension ( \.{\\fontdimen} )}
+@d assign_font_int=79 {user-defined font integer ( \.{\\hyphenchar},  \.{\\skewchar} )}
+@d set_aux=80 {specify state info ( \.{\\spacefactor}, \.{\\prevdepth} )}
+@d set_prev_graf=81 {specify state info ( \.{\\prevgraf} )}
+@d set_page_dimen=82 {specify state info ( \.{\\pagegoal}, etc.~)}
+@d set_page_int=83 {specify state info ( \.{\\deadcycles},  \.{\\insertpenalties} )}
+@d set_box_dimen=84 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
+@d set_shape=85 {specify fancy paragraph shape ( \.{\\parshape} )}
+@d def_code=86 {define a character code ( \.{\\catcode}, etc.~)}
+@d def_family=87 {declare math fonts ( \.{\\textfont}, etc.~)}
+@d set_font=88 {set current font ( font identifiers )}
+@d def_font=89 {define a font file ( \.{\\font} )}
+@d def_dfont=90 {define a on-demmand-load font file ( \.{\\delayedfont} )}
+@d def_jfont=91 {define japanese font file ( \.{\\jfont} )}
+@d register=92 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
+@d min_refbox=93 {the smallest code that have the refbox type value}
+@d demmand_font=93 {load demmanded font and set current font to it ( font identifiers )}
+@d set_jfont=94 {set current japanese font ( font identifiers )}
+@d max_internal=94 {the largest code that can follow \.{\\the}}
+@d max_refbox=94 {the largest code that have the refbox type value}
+@d advance=95 {advance a register or parameter ( \.{\\advance} )}
+@d multiply=96 {multiply a register or parameter ( \.{\\multiply} )}
+@d divide=97 {divide a register or parameter ( \.{\\divide} )}
+@d prefix=98 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
+@d let=99 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
+@d shorthand_def=100 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
+  {or \.{\\charsubdef}}
+@d read_to_cs=101 {read into a control sequence ( \.{\\read} )}
+@d def=102 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
+@d set_box=103 {set a box ( \.{\\setbox} )}
+@d hyph_data=104 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
+@d set_interaction=105 {define level of interaction ( \.{\\batchmode}, etc.~)}
+@d set_kinsoku_code=106 {set Kinsoku table data}
+@d set_burasage=107 {set burasage table data}
+@d set_jkern=108 {set jkern table data}
+@d set_asciipunct=109
+@d faker=110
+@d max_command=110 {the largest command code seen at |big_switch|}
+@z COMMAND END
+
+@x JTeX: [17.224] define new skip code for japanese interchar glue
+@d glue_pars=18 {total number of glue parameters}
+@y
+@d j_interchar_skip_code=18 {glue between japanese characters}
+@d j_ascii_kanji_skip_code=19 {glue between ascii string and kanji string}
+@d j_math_kanji_skip_code=20 {glue between ascii string and kanji string}
+@d j_space_skip_code=21 {glue corresponding to JIS space(!!)}
+@d def_j_interchar_skip_code=22 {will disappear in the future version}
+@d def_j_ascii_kanji_skip_code=23 {will disappear in the future version}
+@d def_j_math_kanji_skip_code=24 {will disappear in the future version}
+@d def_j_space_skip_code=25 {will disappear in the future version?}
+@d glue_pars=26 {total number of glue parameters}
+@z
+
+@x JTeX: [17.224]
+@d thick_mu_skip==glue_par(thick_mu_skip_code)
+@y
+@d thick_mu_skip==glue_par(thick_mu_skip_code)
+@d j_interchar_skip==glue_par(j_interchar_skip_code)
+@d j_ascii_kanji_skip==glue_par(j_ascii_kanji_skip_code)
+@d j_math_kanji_skip==glue_par(j_math_kanji_skip_code)
+@d j_space_skip==glue_par(j_space_skip_code)
+@z
+
+@x JTeX: [17.225] add new case for print_skip_param
+thick_mu_skip_code: print_esc("thickmuskip");
+@y
+thick_mu_skip_code: print_esc("thickmuskip");
+j_interchar_skip_code: print_esc("jintercharskip");
+j_ascii_kanji_skip_code: print_esc("jasciikanjiskip");
+j_math_kanji_skip_code: print_esc("jmathkanjiskip");
+j_space_skip_code: print_esc("jisspaceskip");
+def_j_interchar_skip_code: print_esc("@@@@jintercharskip");
+def_j_ascii_kanji_skip_code: print_esc("@@@@jasciikanjiskip");
+def_j_math_kanji_skip_code: print_esc("@@@@jmathkanjiskip");
+def_j_space_skip_code: print_esc("@@@@jisspaceskip");
+@z
+
+@x JTeX: [226] put new skip name into hash table
+primitive("thickmuskip",assign_mu_glue,glue_base+thick_mu_skip_code);@/
+@!@:thick_mu_skip_}{\.{\\thickmuskip} primitive@>
+@y
+primitive("thickmuskip",assign_mu_glue,glue_base+thick_mu_skip_code);@/
+@!@:thick_mu_skip_}{\.{\\thickmuskip} primitive@>
+primitive("jintercharskip",assign_glue,glue_base+j_interchar_skip_code);@/
+@!@:j_interchar_skip_}{\.{\\jintercharskip} primitive@>
+primitive("jasciikanjiskip",assign_glue,glue_base+j_ascii_kanji_skip_code);@/
+@!@:j_ascii_kanji_skip_}{\.{\\jasciikanjiskip} primitive@>
+primitive("jmathkanjiskip",assign_glue,glue_base+j_math_kanji_skip_code);@/
+@!@:j_math_kanji_skip_}{\.{\\jmathkanjiskip} primitive@>
+primitive("jisspaceskip",assign_glue,glue_base+j_space_skip_code);@/
+@!@:j_space_skip_}{\.{\\jisspaceskip} primitive@>
+primitive("@@@@jintercharskip",assign_glue,glue_base+def_j_interchar_skip_code);@/
+@!@:def_j_interchar_skip_}{\.{\\@@@@jintercharskip} primitive@>
+primitive("@@@@jasciikanjiskip",assign_glue,glue_base+def_j_ascii_kanji_skip_code);@/
+@!@:def_j_ascii_kanji_skip_}{\.{\\@@@@jasciikanjiskip} primitive@>
+primitive("@@@@jmathkanjiskip",assign_glue,glue_base+def_j_math_kanji_skip_code);@/
+@!@:def_j_math_kanji_skip_}{\.{\\@@@@jmathkanjiskip} primitive@>
+primitive("@@@@jisspaceskip",assign_glue,glue_base+def_j_space_skip_code);@/
+@!@:def_j_space_skip_}{\.{\\@@@@jisspaceskip} primitive@>
+@z
+
+@x JTeX: [17.236] new integer param for file and terminal type
+@d tex_int_pars=55 {total number of \TeX's integer parameters}
+@y
+@d kanji_terminal_type_code=55 {type code for kanji terminal}
+@d kanji_file_type_code=56 {type code for kanji file}
+@d jendline_type_code=57
+@d tex_int_pars=58 {total number of \TeX's integer parameters}
+@z
+
+@x JTeX: [17.236] 
+@d error_context_lines==int_par(error_context_lines_code)
+@y
+@d error_context_lines==int_par(error_context_lines_code)
+@d kanji_terminal_type==int_par(kanji_terminal_type_code)
+@d kanji_file_type==int_par(kanji_file_type_code)
+@d jendline_type==int_par(jendline_type_code)
+@z
+
+@x JTeX: [17.237] changes in print routine
+error_context_lines_code:print_esc("errorcontextlines");
+@y
+error_context_lines_code:print_esc("errorcontextlines");
+kanji_terminal_type_code:print_esc("kanjiterminaltype");
+kanji_file_type_code:print_esc("kanjifiletype");
+jendline_type_code:print_esc("jendlinetype");
+@z
+
+@x JTeX: [17.238] enter them into a hash table
+@!@:error_context_lines_}{\.{\\errorcontextlines} primitive@>
+@y
+@!@:error_context_lines_}{\.{\\errorcontextlines} primitive@>
+if mltex_p then
+  begin mltex_enabled_p:=true;  {enable character substitution}
+  if false then {remove the if-clause to enable \.{\\charsubdefmin}}
+  primitive("charsubdefmin",assign_int,int_base+char_sub_def_min_code);@/
+@!@:char_sub_def_min_}{\.{\\charsubdefmin} primitive@>
+  primitive("charsubdefmax",assign_int,int_base+char_sub_def_max_code);@/
+@!@:char_sub_def_max_}{\.{\\charsubdefmax} primitive@>
+  primitive("tracingcharsubdef",assign_int,int_base+tracing_char_sub_def_code);@/
+@!@:tracing_char_sub_def_}{\.{\\tracingcharsubdef} primitive@>
+  end;
+primitive("kanjiterminaltype",assign_int,int_base+kanji_terminal_type_code);@/
+@!@:kanji_terminal_type_}{\.{\\kanjiterminaltype} primitive@>
+primitive("kanjifiletype",assign_int,int_base+kanji_file_type_code);@/
+@!@:kanji_file_type_}{\.{\\kanjifiletype} primitive@>
+primitive("jendlinetype",assign_int,int_base+jendline_type_code);@/
+@!@:jendline_type_}{\.{\\jendlinetype} primitive@>
+@z
+
+@x [19.275] delayed, JTeX:
+box_ref: flush_node_list(equiv_field(w));
+othercases do_nothing
+@y
+box_ref: flush_node_list(equiv_field(w));
+@<Cases of |eq_destroy| for additional ref-type box in |equiv_field|@>
+othercases do_nothing
+@z
+
+@x [19.279] delayed, JTeX:
+Global definitions are done in almost the same way, but there is no need
+to save old values, and the new value is associated with |level_one|.
+@y
+Global definitions are done in almost the same way, but there is no need
+to save old values, and the new value is associated with |level_one|.
+We also introduce destructive definition |deq_define|.
+@z
+
+@x [19.279] delayed, JTeX:
+procedure geq_word_define(@!p:pointer;@!w:integer); {global |eq_word_define|}
+begin eqtb[p].int:=w; xeq_level[p]:=level_one;
+end;
+@y
+procedure geq_word_define(@!p:pointer;@!w:integer); {global |eq_word_define|}
+begin eqtb[p].int:=w; xeq_level[p]:=level_one;
+end;
+@#
+procedure deq_define(@!p:pointer;@!t:quarterword;@!e:halfword);
+begin eq_destroy(eqtb[p]);
+eq_type(p):=t; equiv(p):=e;
+end;
+@z
+
+@x JTeX: [20.289] new token flag for japanese character
+The following definitions take care of these token-oriented constants
+and a few others.
+
+@y
+The following definitions take care of these token-oriented constants
+and a few others.
+
+To represent a japanese character in a token list new token flag is introduced.
+The value of this |j_letter-token| is set to $2^{14}$ so that you can accomodate
+$2^8f+c$ (where $1\le f\le 33$ and $0\le c\le 255$) into a halfword without
+interferring other tokens.  Verify this by the following:
+\item{} $2^8m+c$ (where $1\le m\le 14$, $0\le c\le 255$) ranges from 256 to 3839
+\item{} $2^{12}+p$ (where $0\le p\le |undefined_control_sequence|$)
+ranges from 4096 to $4096+258+|hash_size|+267$
+\item{} $2^{14}+2^8f+c$ (where $1\le f\le 33$, $0\le c\le 255$) ranges from 16640
+to 25087 (which is less than $2^{16}$)
+
+@d j_letter_token_flag==@"8000000 {amount added to packed jletter ($2^8f+c$)}
+@d jchr_cons_end(#)==(#)
+@d jchr_cons(#)==(#)*256+jchr_cons_end
+@d jchr_subfont(#)==((#) div 256)
+@d jchr_char(#)==((#) mod 256)
+@z
+
+@x JTeX: [20.290]
+@ @<Check the ``constant''...@>=
+if cs_token_flag+eqtb_size+hash_extra>max_halfword then bad:=21;
+@y
+@ @<Check the ``constant''...@>=
+if cs_token_flag+undefined_control_sequence>=j_letter_token_flag then bad:=21;
+@z
+
+@x JTeX: [20.292] add a variable to be used in Japanese output
+var m,@!c:integer; {pieces of a token}
+@!match_chr:ASCII_code; {character used in a `|match|'}
+@!n:ASCII_code; {the highest parameter number, as an ASCII digit}
+@y
+var m,@!c:integer; {pieces of a token}
+@!match_chr:ASCII_code; {character used in a `|match|'}
+@!n:ASCII_code; {the highest parameter number, as an ASCII digit}
+@z
+
+@x JTeX: [20.292]
+begin match_chr:="#"; n:="0"; tally:=0;
+while (p<>null) and (tally<l) do
+  begin if p=q then @<Do magic computation@>;
+@y
+begin match_chr:="#"; n:="0"; tally:=0; tally_disp:=0;
+while (p<>null) and (tally<l) do
+  begin if p=q then @<Do magic computation@>;
+@z
+
+@x JTeX: [20.293] insert printing of japanese letter token
+@ @<Display token |p|...@>=
+if (p<hi_mem_min) or (p>mem_end) then
+  begin print_esc("CLOBBERED."); return;
+@.CLOBBERED@>
+  end;
+if info(p)>=cs_token_flag then print_cs(info(p)-cs_token_flag)
+@y
+@ @<Display token |p|...@>=
+if (p<hi_mem_min) or (p>mem_end) then
+  begin print_esc("CLOBBERED."); return;
+@.CLOBBERED@>
+  end;
+if info(p)>=j_letter_token_flag then
+  begin m:=jchr_subfont(info(p) mod j_letter_token_flag);
+        c:=jchr_char(info(p) mod j_letter_token_flag);
+        @<Display japanese letter $(|m|,|c|)$@>; end
+else if info(p)>=cs_token_flag then print_cs(info(p)-cs_token_flag)
+@z
+
+@x JTeX: [21.298] new cases for |print_cmd_chr|
+other_char: chr_cmd("the character ");
+@y
+other_char: chr_cmd("the character ");
+jletter: begin print("japanese letter ");
+  print_j_char(jchr_subfont(chr_code mod j_letter_token_flag),
+               jchr_char(chr_code mod j_letter_token_flag));
+  print_char("(");
+  print_esc(font_id_text(equiv(j_s_font_pointer
+                                 [jchr_subfont(chr_code mod j_letter_token_flag)])));
+  print_esc("char"); print_int(jchr_char(chr_code mod j_letter_token_flag));
+  print_char(")"); end;
+@z
+
+@x JTeX: [22.312]
+  begin tally:=0; {get ready to count characters}
+  old_setting:=selector;
+@y
+  begin tally:=0; tally_disp:=0; {get ready to count characters}
+  old_setting:=selector;
+@z
+
+@x JTeX: [22.315]
+@!p: integer; {starting or ending place in |trick_buf|}
+@!q: integer; {temporary index}
+@y
+@!p: integer; {starting or ending place in |trick_buf|}
+@!q,r: integer; {temporary index}
+@z
+
+@x JTeX: [22.316]
+@d set_trick_count==
+  begin first_count:=tally;
+  trick_count:=tally+1+error_line-half_error_line;
+  if trick_count<error_line then trick_count:=error_line;
+  end
+@y
+@d set_trick_count==
+  begin first_count:=tally; first_count_disp:=tally_disp;
+  trick_count:=tally_disp+1+error_line-half_error_line;
+  if trick_count<error_line then trick_count:=error_line;
+  end
+@z
+
+@x JTeX: [22.317]
+if tally<trick_count then m:=tally-first_count
+else m:=trick_count-first_count; {context on line 2}
+if l+first_count<=half_error_line then
+  begin p:=0; n:=l+first_count;
+  end
+else  begin print("..."); p:=l+first_count-half_error_line+3;
+  n:=half_error_line;
+  end;
+for q:=p to first_count-1 do print_char(trick_buf[q mod error_line]);
+print_ln;
+for q:=1 to n do print_char(" "); {print |n| spaces to begin line~2}
+if m+n<=error_line then p:=first_count+m else p:=first_count+(error_line-n-3);
+for q:=first_count to p-1 do print_char(trick_buf[q mod error_line]);
+if m+n>error_line then print("...")
+@y
+if tally_disp<trick_count then m:=tally_disp-first_count_disp
+else m:=trick_count-first_count_disp; {context on line 2}
+{l=displayed length of chars before first_count}
+if l+first_count_disp<=half_error_line then
+  begin n:=l+first_count_disp; r:=n-l;
+  end
+else  begin print("...");
+  n:=half_error_line; r:=n-3-l;
+  end;
+@<Print the first line of tricky pseudoprint@>;
+print_ln;
+for q:=1 to r do print_char(" "); {print |n| or |n-1| spaces to begin line~2}
+if m+n<=error_line then r:=m else r:=error_line-n-3;
+@<Print the second line of tricky pseudoprint@>;
+if m+n>error_line then print("...")
+@z
+
+@x JTeX: [22.318]
+@<Pseudoprint the line@>=
+begin_pseudoprint;
+if buffer[limit]=end_line_char then j:=limit
+else j:=limit+1; {determine the effective end of the line}
+if j>0 then for i:=start to j-1 do
+  begin if i=loc then set_trick_count;
+  print(buffer[i]);
+  end
+@y
+@<Pseudoprint the line@>=
+begin_pseudoprint; @<Reset |pseudo_kanji_stat|@>;
+@<Determin the effective end of the line@>;
+if j>0 then @<Pseudo print chars in |buffer| in printable form@>
+@z
+
+@x JTeX: [22.319]
+@ @<Pseudoprint the token list@>=
+begin_pseudoprint;
+@y
+@ @<Pseudoprint the token list@>=
+begin_pseudoprint; @<Reset |pseudo_kanji_stat|@>;
+@z
+
+@x JTeX: [24.341] procedure get_next (conflicts encTeX)
+var k:0..buf_size; {an index into |buffer|}
+@!t:halfword; {a token}
+@!cat:0..max_char_code; {|cat_code(cur_chr)|, usually}
+@!c,@!cc:ASCII_code; {constituents of a possible expanded code}
+@!d:2..3; {number of excess characters in an expanded code}
+@y
+var k:0..buf_size; {an index into |buffer|}
+@!t:halfword; {a token}
+@!cat:escape..max_char_code; {|cat_code(cur_chr)|, usually}
+@!c,@!cc:ASCII_code; {constituents of a possible expanded code}
+@!d:2..3; {number of excess characters in an expanded code}
+@!same_chr:boolean;
+@!e:0..1; {shift for eightbit sup_mark}
+@!jletter_endline:boolean; {true when a line ends with jletter}
+@z
+
+@x JTeX: [24.343] process delayed cat_ret
+begin switch: if loc<=limit then {current line not yet finished}
+  begin cur_chr:=buffer[loc]; incr(loc);
+  reswitch: cur_cmd:=cat_code(cur_chr);
+@y
+begin switch: if loc<=limit then {current line not yet finished}
+  begin cur_chr:=buffer[loc]; incr(loc);
+    @<Read an extended char and reset |cur_cmd| and |cur_chr| appropriately@>;
+    @<Restore delayed |cat_ret| and return, if appropriate@>;
+  reswitch:
+@z
+
+@x JTeX: [24.347] ignore or delay |car_ret|
+mid_line+car_ret:@<Finish line, emit a space@>;
+@y
+mid_line+car_ret:@<Check if the last character of the line is japanese,
+  change state, and finish line@>;
+@z
+
+@x JTeX: [24.352]
+begin if cur_chr=buffer[loc] then if loc<limit then
+  begin c:=buffer[loc+1]; @+if c<@'200 then {yes we have an expanded char}
+    begin loc:=loc+2; 
+    if is_hex(c) then if loc<=limit then
+      begin cc:=buffer[loc]; @+if is_hex(cc) then
+        begin incr(loc); hex_to_cur_chr; goto reswitch;
+        end;
+      end;
+    if c<@'100 then cur_chr:=c+@'100 @+else cur_chr:=c-@'100;
+    goto reswitch;
+@y
+begin if (not is_ext_char(buffer[loc]) and (buffer[loc]=cur_chr)) then begin
+  same_chr:=true; e:=0;
+  end
+else if (is_ext_eightbit(buffer[loc]) and
+         (make_eightbit(buffer[loc+1])=cur_chr)) then begin
+  same_chr:=true; e:=1;
+  end
+else same_chr:=false;
+if same_chr then if loc+e<limit then
+  begin c:=buffer[loc+e+1]; @+if c<@'200 then {yes we have an expanded char}
+    begin loc:=loc+e+2; 
+    if is_hex(c) then if loc<=limit then
+      begin cc:=buffer[loc]; @+if is_hex(cc) then
+        begin incr(loc); hex_to_cur_chr;
+          cur_cmd:=cat_code(cur_chr); goto reswitch;
+        end;
+      end;
+    if c<@'100 then cur_chr:=c+@'100 @+else cur_chr:=c-@'100;
+    cur_cmd:=cat_code(cur_chr); goto reswitch;
+@z
+
+@x JTeX: [24.354] allow japanese letters in control sequence name
+else  begin start_cs: k:=loc; cur_chr:=buffer[k]; cat:=cat_code(cur_chr);
+  incr(k);
+  if cat=letter then state:=skip_blanks
+  else if cat=spacer then state:=skip_blanks
+  else state:=mid_line;
+  if (cat=letter)and(k<=limit) then
+@y
+else  begin start_cs: k:=loc; cur_chr:=buffer[k];
+  @<Check an extended char in control sequence name@>;
+  if cat=jletter then repos_char(k)
+  else incr(k);
+  if (cat=letter) or (cat=jletter) then state:=skip_blanks
+  else if cat=spacer then state:=skip_blanks
+  else state:=mid_line;
+  if ((cat=letter) or (cat=jletter)) and (k<=limit) then
+@z
+
+@x 8bit: [24.354]
+  cur_cs:=single_base+buffer[loc]; incr(loc);
+@y
+  if is_ext_eightbit(buffer[loc]) then begin incr(loc);
+    cur_cs:=single_base+make_eightbit(buffer[loc]);
+    end
+  else
+    cur_cs:=single_base+buffer[loc];
+  incr(loc);
+@z
+
+@x 8bit: [24.355]
+begin if buffer[k]=cur_chr then @+if cat=sup_mark then @+if k<limit then
+  begin c:=buffer[k+1]; @+if c<@'200 then {yes, one is indeed present}
+    begin d:=2;
+    if is_hex(c) then @+if k+2<=limit then
+      begin cc:=buffer[k+2]; @+if is_hex(cc) then incr(d);
+      end;
+    if d>2 then
+      begin hex_to_cur_chr; buffer[k-1]:=cur_chr;
+      end
+    else if c<@'100 then buffer[k-1]:=c+@'100
+    else buffer[k-1]:=c-@'100;
+@y
+begin if (not is_ext_char(buffer[k]) and (buffer[k]=cur_chr)) then begin
+  same_chr:=true; e:=0;
+  end
+else if (is_ext_eightbit(buffer[k]) and
+         (make_eightbit(buffer[k+1])=cur_chr)) then begin
+  same_chr:=true; e:=1;
+  end
+else same_chr:=false;
+if same_chr then @+if cat=sup_mark then @+if k+e<limit then
+  begin c:=buffer[k+e+1]; @+if c<@'200 then {yes, one is indeed present}
+    begin d:=2;
+    if is_hex(c) then @+if k+e+2<=limit then
+      begin cc:=buffer[k+e+2]; @+if is_hex(cc) then incr(d);
+      end;
+    if d>2 then
+      begin hex_to_cur_chr; buffer[k-e-1]:=cur_chr;
+      end
+    else if c<@'100 then buffer[k-e-1]:=c+@'100
+    else buffer[k-e-1]:=c-@'100;
+    if is_eightbit(buffer[k-e-1]) then begin
+      buffer[k-e]:=de_eightbit(buffer[k-e-1]);
+      buffer[k-e-1]:=ext_eightbit;
+      incr(k); decr(d);
+      end;
+    k:=k-e;
+@z
+
+@x JTeX: [24.356] allow japanese letters in control sequence name
+begin repeat cur_chr:=buffer[k]; cat:=cat_code(cur_chr); incr(k);
+until (cat<>letter)or(k>limit);
+@<If an expanded...@>;
+if cat<>letter then decr(k);
+  {now |k| points to first nonletter}
+if k>loc+1 then {multiletter control sequence has been scanned}
+@y
+begin repeat cur_chr:=buffer[k];
+ @<Check an extended char in control sequence name@>;
+ incr(k);
+until ((cat<>letter) and (cat<>jletter)) or (k>limit);
+@<If an expanded...@>;
+if (cat<>letter) and (cat<>jletter) then backward_onechar(k);
+  {now |k| points to first nonletter}
+if (k>loc+1) and not ((k=loc+2) and is_ext_eightbit(buffer[loc])) then
+  {multiletter control sequence has been scanned}
+@z
+
+@x JTeX: [24.357] you must count for japanese letter token
+  begin t:=info(loc); loc:=link(loc); {move to next}
+  if t>=cs_token_flag then {a control sequence token}
+@y
+  begin t:=info(loc); loc:=link(loc); {move to next}
+  if t>=j_letter_token_flag then begin
+        cur_cmd:=jletter; cur_chr:=t mod j_letter_token_flag end
+  else if t>=cs_token_flag then {a control sequence token}
+@z
+
+@x JTeX: [24.358]
+begin cur_cs:=info(loc)-cs_token_flag; loc:=null;@/
+cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
+if cur_cmd>max_command then
+  begin cur_cmd:=relax; cur_chr:=no_expand_flag;
+  end;
+end
+@y
+begin t:=info(loc); loc:=null;@/
+if t>=j_letter_token_flag then begin
+      cur_cmd:=jletter; cur_chr:=t mod j_letter_token_flag end
+else begin cur_cs:=t-cs_token_flag;
+cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
+if cur_cmd>max_command then
+  begin cur_cmd:=relax; cur_chr:=no_expand_flag;
+  end;
+end
+end
+@z
+
+@x JTeX: [24.360]
+else  begin if not terminal_input then {\.{\\read} line has ended}
+    begin cur_cmd:=0; cur_chr:=0; return;
+    end;
+@y
+else  begin
+    if delayed_cat_ret then
+      @<Emit a space, |delayed_cat_ret:=false|, and return@>;
+    if not terminal_input then {\.{\\read} line has ended}
+    begin cur_cmd:=0; cur_chr:=0; return;
+    end;
+@z
+
+@x 8bit: [24.360]
+    if end_line_char_inactive then decr(limit)
+    else  buffer[limit]:=end_line_char;
+@y
+    @<Put the end-of-line-char if it is active@>;
+@z
+
+@x JTeX: [24.362]
+if not force_eof then
+  begin if input_ln(cur_file,true) then {not end of file}
+    firm_up_the_line {this sets |limit|}
+  else force_eof:=true;
+  end;
+@y
+if not force_eof then
+  begin if input_ln(cur_file,true) then {not end of file}
+    firm_up_the_line {this sets |limit|}
+  else if delayed_cat_ret {and (scanner_status=matching)} then begin
+    decr(line); loc:=limit+1;
+    @<Emit a space, |delayed_cat_ret:=false|, and return@>;
+    end
+  else force_eof:=true;
+  end;
+@z
+
+@x 8bit: [24.362]
+if end_line_char_inactive then decr(limit)
+else  buffer[limit]:=end_line_char;
+@y
+@<Put the end-of-line-char if it is active@>;
+@z
+
+@x JTeX: [24.365] modify the computation of |cur_tok|
+begin no_new_control_sequence:=false; get_next; no_new_control_sequence:=true;
+@^inner loop@>
+if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
+else cur_tok:=cs_token_flag+cur_cs;
+@y
+begin no_new_control_sequence:=false; get_next; no_new_control_sequence:=true;
+@^inner loop@>
+if cur_cs=0 then begin
+  if (cur_cmd=jletter)
+    then cur_tok:=j_letter_token_flag+cur_chr
+  else cur_tok:=(cur_cmd*@'400)+cur_chr end
+else cur_tok:=cs_token_flag+cur_cs;
+@z
+
+@x JTeX: [25.366] variable declarations for [374]
+var t:halfword; {token that is being ``expanded after''}
+@!p,@!q,@!r:pointer; {for list manipulation}
+@!j:0..buf_size; {index into |buffer|}
+@y
+var t:halfword; {token that is being ``expanded after''}
+@!p,@!q,@!r:pointer; {for list manipulation}
+@!j:0..buf_size; {index into |buffer|}
+@!fc:halfword;
+@!ku_ten:halfword;
+@z
+
+@x JTeX, 8bit: [25.374] take into account japanese letter csname
+while p<>null do
+  begin if j>=max_buf_stack then
+    begin max_buf_stack:=j+1;
+    if max_buf_stack=buf_size then
+      overflow("buffer size",buf_size);
+@:TeX capacity exceeded buffer size}{\quad buffer size@>
+    end;
+  buffer[j]:=info(p) mod @'400; incr(j); p:=link(p);
+  end;
+@y
+while p<>null do
+  begin if j+1>=max_buf_stack then
+    begin max_buf_stack:=j+2;
+    if max_buf_stack=buf_size then
+      overflow("buffer size",buf_size);
+@:TeX capacity exceeded buffer size}{\quad buffer size@>
+    end;
+  if info(p)>=j_letter_token_flag then begin
+    fc:=info(p) mod j_letter_token_flag;
+    @<Put the internal representation of |fc| in |buffer|@>;
+    end
+  else begin
+    buffer[j]:=info(p) mod @'400;
+    @<Put the internal representation of char in |buffer|@>;
+    end;
+  incr(j); p:=link(p);
+  end;
+@z
+
+@x JTeX: [25.380] take into account japanese letter token
+done: if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
+else cur_tok:=cs_token_flag+cur_cs;
+@y
+done: if cur_cs=0 then begin
+  if (cur_cmd=jletter)
+    then cur_tok:=j_letter_token_flag+cur_chr
+  else cur_tok:=(cur_cmd*@'400)+cur_chr end
+else cur_tok:=cs_token_flag+cur_cs;
+@z
+
+@x JTeX: [25.381] take into account japanese letter token
+  begin expand;
+  get_next;
+  end;
+if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
+else cur_tok:=cs_token_flag+cur_cs;
+@y
+  begin expand;
+  get_next;
+  end;
+if cur_cs=0 then begin
+  if (cur_cmd=jletter)
+    then cur_tok:=j_letter_token_flag+cur_chr
+  else cur_tok:=(cur_cmd*@'400)+cur_chr end
+else cur_tok:=cs_token_flag+cur_cs;
+@z
+
+@x [26.413] delayed:
+toks_register,assign_toks,def_family,set_font,def_font: @<Fetch a token list or
+  font identifier, provided that |level=tok_val|@>;
+@y
+toks_register,assign_toks,def_family,set_font,def_font,def_dfont:
+  @<Fetch a token list or font identifier, provided that |level=tok_val|@>;
+demmand_font: scanned_result(cur_cs)(ident_val);
+@z
+
+@x JTeX: [26.440]
+@!OK_so_far:boolean; {has an error message been issued?}
+@y
+@!OK_so_far:boolean; {has an error message been issued?}
+@!jletter_const:boolean;
+@z
+
+@x JTeX: [26.442] allow Japanese after `
+begin get_token; {suppress macro expansion}
+if cur_tok<cs_token_flag then
+  begin cur_val:=cur_chr;
+  if cur_cmd<=right_brace then
+    if cur_cmd=right_brace then incr(align_state)
+    else decr(align_state);
+  end
+else if cur_tok<cs_token_flag+single_base then
+  cur_val:=cur_tok-cs_token_flag-active_base
+else cur_val:=cur_tok-cs_token_flag-single_base;
+if cur_val>255 then
+  begin print_err("Improper alphabetic constant");
+@.Improper alphabetic constant@>
+  help2("A one-character control sequence belongs after a ` mark.")@/
+    ("So I'm essentially inserting \0 here.");
+  cur_val:="0"; back_error;
+  end
+else @<Scan an optional space@>;
+end
+@y
+begin get_token; {suppress macro expansion}
+jletter_const:=false;
+if cur_tok>=j_letter_token_flag then begin
+  cur_val:= cur_chr;
+  jletter_const:=true
+  end
+else if cur_tok<cs_token_flag then
+  begin cur_val:=cur_chr;
+  if cur_cmd<=right_brace then
+    if cur_cmd=right_brace then incr(align_state)
+    else decr(align_state);
+  end
+else if cur_tok<cs_token_flag+single_base then
+  cur_val:=cur_tok-cs_token_flag-active_base
+else cur_val:=cur_tok-cs_token_flag-single_base;
+if (not jletter_const) and (cur_val>255) then
+  begin print_err("Improper alphabetic or japanese constant");
+print_int(cur_val);
+@.Improper alphabetic or japanese constant@>
+  help2("A one-character control sequence belongs after a ` mark.")@/
+    ("So I'm essentially inserting \0 here.");
+  cur_val:="0"; back_error;
+  end
+else @<Scan an optional space@>;
+end
+@z
+
+@x JTeX: [26.455] zw, zh
+if scan_keyword("em") then v:=(@<The em width for |cur_font|@>)
+@.em@>
+else if scan_keyword("ex") then v:=(@<The x-height for |cur_font|@>)
+@.ex@>
+@y
+if scan_keyword("em") then v:=(@<The em width for |cur_font|@>)
+@.em@>
+else if scan_keyword("ex") then v:=(@<The x-height for |cur_font|@>)
+@.ex@>
+else if scan_keyword("zw") then v:=(@<The zw width for current jfont@>)
+@.zw@>
+else if scan_keyword("zh") then v:=(@<The zh height for current jfont@>)
+@.zh@>
+@z
+
+@x JTeX: [27.464] convert japanese string into a token list
+  if t=" " then t:=space_token
+  else t:=other_token+t;
+@y
+  @<get token of a char from |str_pool|@>;
+@z
+
+@x JTeX: [27.468] number returning primitives for JTeX
+@d job_name_code=5 {command code for \.{\\jobname}}
+
+@<Put each...@>=
+primitive("number",convert,number_code);@/
+@!@:number_}{\.{\\number} primitive@>
+primitive("romannumeral",convert,roman_numeral_code);@/
+@!@:roman_numeral_}{\.{\\romannumeral} primitive@>
+primitive("string",convert,string_code);@/
+@!@:string_}{\.{\\string} primitive@>
+primitive("meaning",convert,meaning_code);@/
+@!@:meaning_}{\.{\\meaning} primitive@>
+primitive("fontname",convert,font_name_code);@/
+@!@:font_name_}{\.{\\fontname} primitive@>
+primitive("jobname",convert,job_name_code);@/
+@!@:job_name_}{\.{\\jobname} primitive@>
+@y
+@d job_name_code=5 {command code for \.{\\jobname}}
+@d j_internal_code_code=6 {command code for \.{\\jinternalcode}}
+@d j_subfont_num_code=7 {command code for \.{\\jsubfontnum}}
+@d j_char_num_code=8 {command code for \.{\\jcharnum}}
+@d jis_code_code=9 {command code for \.{\\jiscode}}
+@d jis_ku_code=10 {command code for \.{\\jisku}}
+@d jis_ten_code=11 {command code for \.{\\jisten}}
+
+@<Put each...@>=
+primitive("number",convert,number_code);@/
+@!@:number_}{\.{\\number} primitive@>
+primitive("romannumeral",convert,roman_numeral_code);@/
+@!@:roman_numeral_}{\.{\\romannumeral} primitive@>
+primitive("string",convert,string_code);@/
+@!@:string_}{\.{\\string} primitive@>
+primitive("meaning",convert,meaning_code);@/
+@!@:meaning_}{\.{\\meaning} primitive@>
+primitive("fontname",convert,font_name_code);@/
+@!@:font_name_}{\.{\\fontname} primitive@>
+primitive("jobname",convert,job_name_code);@/
+@!@:job_name_}{\.{\\jobname} primitive@>
+primitive("jinternalcode",convert,j_internal_code_code);@/
+@!@:j_internal_code_}{\.{\\jinternalcode} primitive@>
+primitive("jsubfontnum",convert,j_subfont_num_code);@/
+@!@:j_subfont_num_}{\.{\\jsubfontnum} primitive@>
+primitive("jcharnum",convert,j_char_num_code);@/
+@!@:j_char_num_}{\.{\\jcharnum} primitive@>
+primitive("jiscode",convert,jis_code_code);@/
+@!@:jis_code_}{\.{\\jiscode} primitive@>
+primitive("jisku",convert,jis_ku_code);@/
+@!@:jis_ku_}{\.{\\jisku} primitive@>
+primitive("jisten",convert,jis_ten_code);@/
+@!@:jis_ten_}{\.{\\jisten} primitive@>
+@z
+
+@x JTeX: [27.469] print routine
+  othercases print_esc("jobname")
+@y
+  job_name_code: print_esc("jobname");
+  j_internal_code_code: print_esc("jinternalcode");
+  j_subfont_num_code: print_esc("jsubfontnum");
+  j_char_num_code: print_esc("jcharnum");
+  jis_code_code: print_esc("jiscode");
+  jis_ku_code: print_esc("jisku");
+  jis_ten_code: print_esc("jisten");
+  othercases print_esc("unknown")
+@z
+
+@x JTeX: [27.470] variable range change
+@!c:number_code..job_name_code; {desired type of conversion}
+@y
+@!c:number_code..jis_ten_code; {desired type of conversion}
+@z
+
+@x JTeX: [27.471] new addition to cases
+number_code,roman_numeral_code: scan_int;
+@y
+number_code,roman_numeral_code,j_internal_code_code,
+j_subfont_num_code,j_char_num_code,
+jis_code_code,jis_ku_code,jis_ten_code: scan_int;
+@z
+
+@x JTeX: [27.472] \string may be followed by a japanese letter
+string_code:if cur_cs<>0 then sprint_cs(cur_cs)
+  else print_char(cur_chr);
+@y
+string_code:if cur_cs<>0 then sprint_cs(cur_cs)
+  else if cur_cmd=jletter then
+    print_j_char(jchr_subfont(cur_chr mod j_letter_token_flag),
+                 jchr_char(cur_chr mod j_letter_token_flag))
+  else print_char(cur_chr);
+@z
+
+@x JTeX: [27.472] result of added command
+job_name_code: print(job_name);
+@y
+job_name_code: print(job_name);
+j_internal_code_code: print_int(cur_val);
+j_subfont_num_code: print_int(jchr_subfont(cur_val));
+j_char_num_code: print_int(jchr_char(cur_val));
+jis_code_code:
+  print_int(ku_ten_compute(jchr_subfont(cur_val),jchr_char(cur_val)));
+jis_ku_code:
+  print_int(ku_ten_compute(jchr_subfont(cur_val),jchr_char(cur_val)) div 256);
+jis_ten_code:
+  print_int(ku_ten_compute(jchr_subfont(cur_val),jchr_char(cur_val)) mod 256);
+@z
+
+@x 8bit: [483]
+if end_line_char_inactive then decr(limit)
+else  buffer[limit]:=end_line_char;
+@y
+@<Put the end-of-line-char if it is active@>;
+@z
+
+@x JTeX: [28.506] make \ifcat & \if work for kanji(added on 28-Jan-88)
+if (cur_cmd>active_char)or(cur_chr>255) then {not a character}
+  begin m:=relax; n:=256;
+  end
+else  begin m:=cur_cmd; n:=cur_chr;
+  end;
+get_x_token_or_active_char;
+if (cur_cmd>active_char)or(cur_chr>255) then
+  begin cur_cmd:=relax; cur_chr:=256;
+  end;
+@y
+if (cur_cmd<>jletter)and((cur_cmd>active_char)or(cur_chr>255)) then
+  begin m:=relax; n:=256;
+  end
+else  begin m:=cur_cmd; n:=cur_chr;
+  end;
+get_x_token_or_active_char;
+if (cur_cmd<>jletter)and((cur_cmd>active_char)or(cur_chr>255)) then
+  begin cur_cmd:=relax; cur_chr:=256;
+  end;
+@z
+
+@x JTeX: [29.526] filename and jendlinetype
+@p procedure scan_file_name;
+label done;
+begin name_in_progress:=true; begin_name;
+@y
+@p procedure scan_file_name;
+label done;
+var save_jendline_type:integer;
+begin name_in_progress:=true;
+save_jendline_type:=jendline_type; jendline_type:=jend_ascii;
+begin_name;
+@z
+
+@x JTeX: [29.526] filename and jendlinetype
+done: end_name; name_in_progress:=false;
+@y
+done: end_name; name_in_progress:=false; jendline_type:=save_jendline_type;
+@z
+
+@x JTeX: [29.534] l.10291
+while not a_open_out(log_file) do @<Try to get a different log file name@>;
+log_name:=a_make_name_string(log_file);
+@y
+while not a_open_out(log_file) do @<Try to get a different log file name@>;
+log_name:=a_make_name_string(log_file);
+@<Set kanji log type@>;
+@z
+
+@x 8bit: [29.534] l.10299
+if buffer[l]=end_line_char then decr(l);
+@y
+@<Remove the end-of-line-char@>;
+@z
+
+@x [29.537] l.10350 - start_input: string recycling, JTeX:
+full_source_filename_stack[in_open]:=make_full_name_string;
+@y
+full_source_filename_stack[in_open]:=make_full_name_string;
+@<Set kanji |cur_file| type@>;
+if name=str_ptr-1 then {we can try to conserve string pool space now}
+  begin temp_str:=search_string(name);
+  if temp_str>0 then
+    begin name:=temp_str; flush_string;
+    end;
+  end;
+@z
+
+@x 8bit: [29.538] l.10376
+if end_line_char_inactive then decr(limit)
+else  buffer[limit]:=end_line_char;
+@y
+@<Put the end-of-line-char if it is active@>;
+@z
+
+@x JTeX: [30.559] a variable used in reading header info ([568])
+@!z:scaled; {the design size or the ``at'' size}
+@!alpha:integer;@!beta:1..16;
+  {auxiliary quantities used in fixed-point multiplication}
+@y
+@!z:scaled; {the design size or the ``at'' size}
+@!alpha:integer;@!beta:1..16;
+  {auxiliary quantities used in fixed-point multiplication}
+@!temp:integer; {store possible japanese font identifying number}
+@z
+
+@x JTeX: [30.568] Read in extra header info for japanese fonts
+while lh>2 do
+  begin fget;fget;fget;fget;decr(lh); {ignore the rest of the header}
+  end;
+@y
+if lh>2 then begin fget; temp:=fbyte; fget; temp:=temp*@'400+fbyte;
+fget; temp:=temp*@'400+fbyte; fget; temp:=temp*@'400+fbyte; decr(lh); end;
+if temp=142857 then {this is a japanese sub fonts!}
+ begin fget; fget; fget; fget; j_font_table[f]:=fbyte; decr(lh); end
+	{sub font number in |j_font_table| if this is a japanese sub font}
+else j_font_table[f]:=0;
+while lh>2 do
+  begin fget;fget;fget;fget;decr(lh); {ignore the rest of the header}
+  end;
+@z
+
+@x [30.577] delayed:
+@<Declare procedures that scan font-related stuff@>=
+procedure scan_font_ident;
+@y
+@<Declare procedures that scan font-related stuff@>=
+procedure load_dfont_proc; forward;
+procedure scan_font_ident;
+@z
+
+@x [30.577] delayed:
+else if cur_cmd=def_family then
+  begin m:=cur_chr; scan_four_bit_int; f:=equiv(m+cur_val);
+  end
+@y
+else if cur_cmd=def_family then
+  begin m:=cur_chr; scan_four_bit_int; f:=equiv(m+cur_val);
+  end
+else if cur_cmd=def_dfont then f:=cur_font
+else if cur_cmd=demmand_font then
+  begin load_dfont_proc; f:=cur_chr;
+  end
+@z
+
+@x JTeX: [46.1030]
+@p @t\4@>@<Declare action procedures for use by |main_control|@>@;
+@y
+@p @t\4@>@<Declare subprocedures needed for delayed font@>@;@/
+@t\4@>@<Declare action procedures for use by |main_control|@>@;
+@z
+
+@x JTeX: [46.1030] new case for jletter
+var@!t:integer; {general-purpose temporary variable}
+begin if every_job<>null then begin_token_list(every_job,every_job_text);
+big_switch: get_x_token;@/
+reswitch: @<Give diagnostic information, if requested@>;
+case abs(mode)+cur_cmd of
+hmode+letter,hmode+other_char,hmode+char_given: goto main_loop;
+hmode+char_num: begin scan_char_num; cur_chr:=cur_val; goto main_loop;@+end;
+@y
+var@!t:integer; {general-purpose temporary variable}
+@!p:pointer; {general-purpose temporary variable}
+@!prev_cmd:eight_bits; {the previous command}
+@!temp_cmd:eight_bits; {to restore right |cur_cmd| after |scan_char_num|}
+begin if every_job<>null then begin_token_list(every_job,every_job_text);
+big_switch: get_x_token;@/
+reswitch: @<Give diagnostic information, if requested@>;
+case abs(mode)+cur_cmd of
+hmode+letter,hmode+jletter,hmode+other_char,hmode+char_given: goto main_loop;
+hmode+char_num: begin temp_cmd:=cur_cmd;
+ scan_j_char_num; if cur_val>=256 then cur_cmd:=jletter else
+ cur_cmd:=temp_cmd; cur_chr:=cur_val; goto main_loop;@+end;
+hmode+faker: goto main_loop_lookahead;
+vmode+faker,mmode+faker: do_nothing;
+@z
+
+@x JTeX: [46.1034] space factor for japanese
+  main_s:=sf_code(cur_chr);
+  if main_s=1000 then space_factor:=1000
+  else if main_s<1000 then
+    begin if main_s>0 then space_factor:=main_s;
+    end
+  else if space_factor<1000 then space_factor:=1000
+  else space_factor:=main_s
+@y
+  if cur_cmd=jletter then space_factor:=1000
+  else begin
+  main_s:=sf_code(cur_chr);
+  if main_s=1000 then space_factor:=1000
+  else if main_s<1000 then
+    begin if main_s>0 then space_factor:=main_s;
+    end
+  else if space_factor<1000 then space_factor:=1000
+  else space_factor:=main_s
+  end
+@z
+
+@x [46.1034] l.20074 - source specials
+@<Append character |cur_chr|...@>=
+@y
+@<Append character |cur_chr|...@>=
+if ((head=tail) and (mode>0)) then begin
+  if (insert_src_special_auto) then append_src_special;
+end;
+@z
+
+% The following cases are not considered.
+%	hyphen jletter (how we should treat this case?)
+%	jletter lig (where lig is kinsoku char)
+@x JTeX: [46.1034]
+main_f:=cur_font;
+bchar:=font_bchar[main_f]; false_bchar:=font_false_bchar[main_f];
+if mode>0 then if language<>clang then fix_language;
+fast_get_avail(lig_stack); font(lig_stack):=main_f; cur_l:=qi(cur_chr);
+character(lig_stack):=cur_l;@/
+@y
+if cur_cmd=jletter then begin
+  main_f:=font_jsubf(jchr_subfont(cur_chr));
+  cur_l:=jchr_char(cur_chr); main_c:=qo(cur_l);
+  @<Kinsoku shori; insert or omit glue before jletter@>;
+  end
+else begin
+  main_f:=cur_font; cur_l:=qi(cur_chr); main_c:=cur_chr;
+  @<Kinsoku shori; insert or omit glue after jletter@>;
+  end;
+bchar:=font_bchar[main_f]; false_bchar:=font_false_bchar[main_f];
+if mode>0 then if language<>clang then fix_language;
+fast_get_avail(lig_stack); font(lig_stack):=main_f;
+character(lig_stack):=cur_l;@/
+@z
+
+@x JTeX: [46.???]
+@d pack_lig(#)== {the parameter is either |rt_hit| or |false|}
+  begin main_p:=new_ligature(main_f,cur_l,link(cur_q));
+@y
+@d pack_lig(#)== {the parameter is either |rt_hit| or |false|}
+  begin main_p:=new_ligature(cur_font,cur_l,link(cur_q));
+@z
+
+@x JTeX: [46.???]
+main_loop_move+2:
+if(qo(effective_char(false,main_f,qi(cur_chr)))>font_ec[main_f])or
+  (qo(effective_char(false,main_f,qi(cur_chr)))<font_bc[main_f]) then
+  begin char_warning(main_f,cur_chr); free_avail(lig_stack); goto big_switch;
+  end;
+main_i:=effective_char_info(main_f,cur_l);
+if not char_exists(main_i) then
+  begin char_warning(main_f,cur_chr); free_avail(lig_stack); goto big_switch;
+  end;
+@y
+main_loop_move+2:
+if(qo(effective_char(false,main_f,qi(main_c)))>font_ec[main_f])or
+  (qo(effective_char(false,main_f,qi(main_c)))<font_bc[main_f]) then
+  if @<|cur_chr| is jis space@> then begin {treat JIS space (!!) specially}
+    @<Insert |jspaceskip|@>;
+    @<set |main_i| for JIS space@>;
+    free_avail(lig_stack);
+    goto main_loop_lookahead;
+    end
+  else begin char_warning(main_f,main_c); free_avail(lig_stack);
+    goto big_switch;
+    end;
+main_i:=effective_char_info(main_f,cur_l);
+if not char_exists(main_i) then
+  begin char_warning(main_f,main_c); free_avail(lig_stack); goto big_switch;
+  end;
+@z
+
+@x JTeX: [46.???] do not insert disc after 45th kanji subfont
+    if character(tail)=qi(hyphen_char[main_f]) then ins_disc:=true;
+@y
+    if (character(tail)=qi(hyphen_char[main_f]))
+       and j_font_p(font(tail))=0 then ins_disc:=true;
+@z
+
+@x JTeX: [46.???]
+get_next; {set only |cur_cmd| and |cur_chr|, for speed}
+if cur_cmd=letter then goto main_loop_lookahead+1;
+if cur_cmd=other_char then goto main_loop_lookahead+1;
+if cur_cmd=char_given then goto main_loop_lookahead+1;
+x_token; {now expand and set |cur_cmd|, |cur_chr|, |cur_tok|}
+if cur_cmd=letter then goto main_loop_lookahead+1;
+if cur_cmd=other_char then goto main_loop_lookahead+1;
+if cur_cmd=char_given then goto main_loop_lookahead+1;
+if cur_cmd=char_num then
+  begin scan_char_num; cur_chr:=cur_val; goto main_loop_lookahead+1;
+  end;
+if cur_cmd=no_boundary then bchar:=non_char;
+cur_r:=bchar; lig_stack:=null; goto main_lig_loop;
+main_loop_lookahead+1: adjust_space_factor;
+fast_get_avail(lig_stack); font(lig_stack):=main_f;
+cur_r:=qi(cur_chr); character(lig_stack):=cur_r;
+if cur_r=false_bchar then cur_r:=non_char {this prevents spurious ligatures}
+@y
+prev_cmd:=cur_cmd; prev_c:=cur_chr;
+get_next; {set only |cur_cmd| and |cur_chr|, for speed}
+if cur_cmd=letter then goto main_loop_lookahead+1;
+if cur_cmd=jletter then goto main_loop_lookahead+1;
+if cur_cmd=other_char then goto main_loop_lookahead+1;
+if cur_cmd=char_given then goto main_loop_lookahead+1;
+x_token; {now expand and set |cur_cmd|, |cur_chr|, |cur_tok|}
+if cur_cmd=letter then goto main_loop_lookahead+1;
+if cur_cmd=jletter then goto main_loop_lookahead+1;
+if cur_cmd=other_char then goto main_loop_lookahead+1;
+if cur_cmd=char_given then goto main_loop_lookahead+1;
+if cur_cmd=char_num then
+  begin scan_j_char_num; 
+    if cur_val>=256 then {japanese character specified by |char_num|}
+      begin cur_cmd:=jletter; cur_chr:=cur_val;
+      end
+    else begin cur_cmd:=letter; {any cmd but jletter is ok}
+       cur_chr:=cur_val;
+      end;
+    goto main_loop_lookahead+1;
+  end;
+if cur_cmd=no_boundary then bchar:=non_char;
+if prev_cmd=jletter then @<Right boundary of japanese char@>
+else if prev_cmd=faker then goto reswitch;
+cur_r:=bchar; lig_stack:=null; goto main_lig_loop;
+main_loop_lookahead+1: adjust_space_factor;
+fast_get_avail(lig_stack);
+if cur_cmd=jletter then begin
+    main_f:=font_jsubf(jchr_subfont(cur_chr));
+    cur_r:=jchr_char(cur_chr); main_c:=qo(cur_r);
+  end
+else begin
+    if (prev_cmd=jletter) or (prev_cmd=faker) then main_f:=cur_font;
+    cur_r:=qi(cur_chr); main_c:=cur_chr;
+  end;
+font(lig_stack):=main_f;
+character(lig_stack):=cur_r;
+if cur_r=false_bchar then cur_r:=non_char; {this prevents spurious ligatures}
+@<Kinsoku shori; insert or omit glue and |goto main_loop_move|,
+  if |prev_cmd=jletter| or |cur_cmd=jletter|@>
+@z
+
+@x JTeX: [47.1090] new case for vmode+jletter
+vmode+letter,vmode+other_char,vmode+char_num,vmode+char_given,
+@y
+vmode+letter,vmode+jletter,vmode+other_char,vmode+char_num,vmode+char_given,
+@z
+
+@x JTeX: [47.1123] l.21443 make accent workable for japanese char too
+begin scan_char_num; f:=cur_font; p:=new_character(f,cur_val);
+@y
+begin scan_j_char_num; if cur_val>=256 then begin
+f:=font_jsubf(jchr_subfont(cur_val));
+p:=new_character(f,jchr_char(cur_val)); end else begin
+f:=cur_font; p:=new_character(f,cur_val); end;
+@z
+
+@x JTeX: [47.1124] l.21459 make accent workable for japanese character
+if (cur_cmd=letter)or(cur_cmd=other_char)or(cur_cmd=char_given) then
+  q:=new_character(f,cur_chr)
+else if cur_cmd=char_num then
+  begin scan_char_num; q:=new_character(f,cur_val);
+  end
+else back_input
+@y
+if (cur_cmd=letter)or(cur_cmd=other_char)or(cur_cmd=char_given) then
+  q:=new_character(f,cur_chr)
+else if cur_cmd=jletter then begin
+    f:=font_jsubf(jchr_subfont(cur_chr));
+    q:=new_character(f,jchr_char(cur_chr)); end
+  else if cur_cmd=char_num then
+      begin scan_j_char_num;
+        if cur_val>=256 then begin
+          f:=font_jsubf(jchr_subfont(cur_val));
+	  q:=new_character(f,jchr_char(cur_val)); end
+        else q:=new_character(f,cur_val); end
+  else back_input
+@z
+
+@x JTeX: [48.???] l.21862 new case for mmode+jletter
+mmode+letter,mmode+other_char,mmode+char_given:
+  set_math_char(ho(math_code(cur_chr)));
+@y
+mmode+letter,mmode+other_char,mmode+char_given:
+  set_math_char(ho(math_code(cur_chr)));
+mmode+jletter:
+  if @<|cur_chr| is jis space@> then {treat JIS space (!!) specially}
+    @<Insert |jspaceskip|@>
+  else begin p:=new_noad;
+    math_type(nucleus(p)):=sub_box;
+    info(nucleus(p)):=
+      char_box(font_jsubf(jchr_subfont(cur_chr)),jchr_char(cur_chr));
+    tail_append(p);
+  end;
+@z
+
+@x JTeX: [48.1196] l.22356
+@<Finish math in text@>=
+begin tail_append(new_math(math_surround,before));
+@y
+@<Finish math in text@>=
+begin
+@<Kinsoku shori; insert or omit glue between jletter and math@>;
+tail_append(new_math(math_surround,before));
+@z
+
+@x [49.1210] delayed: hook for new prefixed commands
+any_mode(def_font),
+@y
+any_mode(def_font),
+@<New prefixed commands@>
+@z
+
+@x [49.1221] delayed: add ref count of box in let
+  if cur_cmd>=call then add_token_ref(cur_chr);
+  define(p,cur_cmd,cur_chr);
+@y
+  if cur_cmd>=call then add_token_ref(cur_chr)
+  else if cur_cmd=demmand_font then add_df_ref(cur_chr);
+  define(p,cur_cmd,cur_chr);
+@z
+
+@x JTeX: [49.1257] filename and jendlinetype
+procedure new_font(@!a:small_number);
+label common_ending;
+var u:pointer; {user's font identifier}
+@y
+procedure new_font(@!a:small_number);
+label common_ending;
+var u:pointer; {user's font identifier}
+@!save_jendline_type:integer;
+@z
+
+@x JTeX: [49.1258] filename and jendlinetype
+@ @<Scan the font size specification@>=
+name_in_progress:=true; {this keeps |cur_name| from being changed}
+@y
+@ @<Scan the font size specification@>=
+name_in_progress:=true; {this keeps |cur_name| from being changed}
+save_jendline_type:=jendline_type; jendline_type:=jend_ascii;
+@z
+@x JTeX: [49.1258] filename and jendlinetype
+else s:=-1000;
+name_in_progress:=false
+@y
+else s:=-1000;
+name_in_progress:=false; jendline_type:=save_jendline_type
+@z
+
+@x [49.1275] l.23441 - Same stuff as for \input, this time for \openin. JTeX
+  if kpse_in_name_ok(stringcast(name_of_file+1))
+     and a_open_in(read_file[n], kpse_tex_format) then
+    read_open[n]:=just_open;
+@y
+  if kpse_in_name_ok(stringcast(name_of_file+1))
+     and a_open_in(read_file[n], kpse_tex_format) then
+    begin k:=1;
+    name_in_progress:=true;
+    begin_name;
+    stop_at_space:=false;
+    while (k<=name_length)and(more_name(name_of_file[k])) do
+      incr(k);
+    stop_at_space:=true;
+    end_name;
+    name_in_progress:=false;
+    read_open[n]:=just_open;
+    @<Set kanji |read_file| type@>;
+    end;
+@z
+
+@x JTeX: [50.1302] you need to dump j_s_font_pointer too
+@<Dump the hyphenation tables@>;
+@y
+@<Dump the hyphenation tables@>;
+@<Dump the japanese sub font pointer@>;
+@<Dump the Kinsoku tables@>;
+@<Dump the |j_font_table|@>;
+@z
+
+@x JTeX: [50.1303] corresponding undump
+@<Undump the hyphenation tables@>;
+@y
+@<Undump the hyphenation tables@>;
+@<Undump the japanese sub font pointer@>;
+@<Undump the Kinsoku tables@>;
+@<Undump the |j_font_table|@>;
+@z
+
+@x [50.1308] l.23793 - texarray
+@+Init
+libc_free(font_info); libc_free(str_pool); libc_free(str_start);
+@y
+@+Init
+libc_free(j_font_table); {JTeX}
+libc_free(font_info); libc_free(str_pool); libc_free(str_start);
+@z
+
+
+@x [51.1332] l.24203 - make the main program a procedure, for eqtb hack.
+  if error_line > ssup_error_line then error_line := ssup_error_line;
+@y
+  if error_line > ssup_error_line then error_line := ssup_error_line;
+  trick_line := 2*error_line-1; {JTeX}
+@z
+
+@x [51.1332] l.24203 - make the main program a procedure, for eqtb hack.
+  font_info:=xmalloc_array (fmemory_word, font_mem_size);
+@y
+  font_info:=xmalloc_array (fmemory_word, font_mem_size);
+  j_font_table:=xmalloc_array (s_f_range0, font_max); {JTeX}
+@z
+
+
+@x JTeX: [51.1332]
+start_of_TEX: @<Initialize the output routines@>;
+@<Get the first line of input and prepare to start@>;
+@y
+{terminal kanji stat should be initialized before first output to terminal}
+start_of_TEX: @<Initialize default kanji stat@>;
+@<Initialize the output routines@>;
+@<Get the first line of input and prepare to start@>;
+{terminal kanji type may be changed by format file}
+@<Initialize kanji stat@>;
+@z
+
+@x 8bit: [1337]
+if end_line_char_inactive then decr(limit)
+else  buffer[limit]:=end_line_char;
+@y
+@<Put the end-of-line-char if it is active@>;
+@z
+
+@x JTeX: [1337]
+if (loc<limit)and(cat_code(buffer[loc])<>escape) then start_input;
+@y
+{kanjifiletype may be overriden from argument}
+@<Reset |kanjifiletype| from argument@>;
+if (loc<limit)and(cat_code(buffer[loc])<>escape) then start_input;
+@z
+
+@x JTeX: [53.????] l.24738 (special_out)
+@!k:pool_pointer; {index into |str_pool|}
+@y
+@!k:pool_pointer; {index into |str_pool|}
+@!ecount:integer;
+@z
+
+@x JTeX: [53.????] l.24744 (special_out) (conflicts [53.1368] - encTeX)
+if cur_length<256 then
+  begin dvi_out(xxx1); dvi_out(cur_length);
+  end
+else  begin dvi_out(xxx4); dvi_four(cur_length);
+  end;
+for k:=str_start[str_ptr] to pool_ptr-1 do dvi_out(so(str_pool[k]));
+@y
+@<Output chars in |str_pool| into dvi@>;
+@z
+
+@x [53.1374] Disallow certain \openout filenames, and log results. JTeX
+      write_open[j]:=true;
+@y
+      write_open[j]:=true;
+      @<Set kanji |write_file| type@>;
+@z
+
+% modules for JTeX and delayed
+@x [54.1376] l.24903 - Add editor-switch variables to globals.
+@* \[55] Index.
+@y
+@* \[54/delayed] System-dependent changes for delayed font.
+
+Various modules necessary for `delayed font'. The font defined as a delayed
+font is not loaded when defined, but it is loaded when the font is first used.
+In other words, it is an on-demmand-loaded font.
+
+We define a new box to express the status of the delayed font. We call such
+a box a df-box. It is similar to |glue_spec| but it can be an |equiv| value
+of the command.
+@d df_spec_size=4
+@d df_ref_count(#) == link(#)
+@d df_null=0
+@d df_font=1
+@d df_loaded=2
+@d df_share=3
+@d df_sharedelayed=4
+@d df_fname(#) == mem[#+1].hh.rh
+@d df_farea(#) == mem[#+1].hh.lh
+@d df_fidtext(#) == mem[#+2].hh.rh
+@d df_scaled(#) == mem[#+3].sc
+@d df_fnum(#) == mem[#+3].int
+@d df_dfref(#) == link(#+3)
+
+@ @<Define additional ref-type box@>=
+function new_df_spec(@!dt:small_number;@!fn,@!fa,@!t:str_number):pointer;
+var q:pointer; {the new spec}
+begin q:=get_node(df_spec_size);@/
+type(q):=dt; df_ref_count(q):=null;
+df_fname(q):=fn; df_farea(q):=fa; df_fidtext(q):=t;
+new_df_spec:=q;
+end;
+
+@ @<Destroy additional ref-type box@>=
+procedure delete_df_ref(@!p:pointer); {|p| points to a dfont specification}
+begin if df_ref_count(p)=null then begin
+  if type(p)=df_sharedelayed then delete_df_ref(df_dfref(p));
+  free_node(p,df_spec_size);
+  end
+else decr(df_ref_count(p));
+end;
+
+@ @<Cases of |eq_destroy| for additional ref-type box in |equiv_field|@>=
+demmand_font: delete_df_ref(equiv_field(w));
+
+@ @<Put each...@>=
+primitive("delayedfont",def_dfont,0);@/
+@!@:delayedfont_}{\.{\\delayedfont} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+def_dfont: print_esc("delayedfont");
+
+@ @<New prefixed commands@>=
+any_mode(def_dfont),
+
+@ The df-box is generated here. It contains the information for loading
+the font when it is used.
+
+@<Assignments@>=
+def_dfont: new_dfont(a);
+
+@ @<Declare subprocedures needed for delayed font@>=
+procedure new_dfont(@!a:small_number);
+label done,common_ending;
+var u:pointer; {user's font identifier}
+@!s:scaled; {stated ``at'' size, or negative of scaled magnification}
+@!f:internal_font_number; {runs through existing fonts}
+@!t:str_number; {name for the frozen font identifier}
+@!old_setting:0..max_selector; {holds |selector| setting}
+@!dftype:small_number;
+@!p,@!q:pointer;
+@!save_jendline_type:integer;
+begin if job_name=0 then open_log_file;
+  {avoid confusing \.{texput} with the font name}
+@.texput@>
+get_r_token; u:=cur_cs;
+if u>=hash_base then t:=text(u)
+else if u>=single_base then
+  if u=null_cs then t:="FONT"@+else t:=u-single_base
+else  begin old_setting:=selector; selector:=new_string;
+  print("FONT"); print(u-active_base); selector:=old_setting;
+@.FONTx@>
+  str_room(1); t:=make_string;
+  end;
+scan_optional_equals; scan_file_name;
+dftype:=df_font;
+@<Scan the font size spec or the font to share and set |dftype|@>;
+if dftype=df_font then begin
+  @<If this font has already been loaded, set |f| to the internal
+    font number and |goto common_ending|@>;
+  p:=new_df_spec(df_font,cur_name,cur_area,t); df_scaled(p):=s;
+  define(u,demmand_font,p);
+  goto done;
+ common_ending: define(u,set_font,f);
+  eqtb[font_id_base+f]:=eqtb[u]; font_id_text(f):=t;
+ done:
+  end
+else if dftype=df_share then begin
+  p:=new_df_spec(df_share,cur_name,cur_area,t); df_fnum(p):=cur_chr;
+  define(u,demmand_font,p);
+  end
+else if dftype=df_sharedelayed then begin
+  p:=new_df_spec(df_sharedelayed,cur_name,cur_area,t);
+  if type(cur_chr)=df_sharedelayed then q:=df_dfref(cur_chr)
+  else q:=cur_chr;
+  add_df_ref(q); df_dfref(p):=q;
+  define(u,demmand_font,p);
+  end
+else
+  define(u,set_font,null_font);
+end;
+
+@ @<Scan the font size spec or the font to share and set |dftype|@>=
+name_in_progress:=true; {this keeps |cur_name| from being changed}
+save_jendline_type:=jendline_type; jendline_type:=jend_ascii;
+if scan_keyword("at") then @<Put the \(p)(positive) `at' size into |s|@>
+@.at@>
+else if scan_keyword("scaled") then
+@.scaled@>
+  begin scan_int; s:=-cur_val;
+  if (cur_val<=0)or(cur_val>32768) then
+    begin print_err("Illegal magnification has been changed to 1000");@/
+@.Illegal magnification...@>
+    help1("The magnification ratio must be between 1 and 32768.");
+    int_error(cur_val); s:=-1000;
+    end;
+  end
+else if scan_keyword("share") then @<Get the font to share@>
+@.share@>
+else s:=-1000;
+name_in_progress:=false; jendline_type:=save_jendline_type
+
+@ @<Get the font to share@>=
+begin @<Get the next non-blank non-call token@>;
+if cur_cmd=set_font then dftype:=df_share
+else if cur_cmd=demmand_font then dftype:=df_sharedelayed
+else begin print_err("Improper `share' font");@/
+  help1("Delayed font can share tfm with font or delayed font");
+  error; dftype:=df_null;
+  end
+end
+
+@ @<Cases of |print_cmd_chr|...@>=
+demmand_font: begin print("delayed font ");
+  case type(chr_code) of
+  df_font: print("not loaded");
+  df_loaded: print("loaded");
+  df_share: print("share");
+  df_sharedelayed: print("sharedelayed");
+  othercases print("ERROR");
+  endcases;
+  end;
+
+@ @<New prefixed commands@>=
+any_mode(demmand_font),
+
+@ Execution of the df-box (|cur_chr|) changes the state of the box and
+yields the font number. It is assigned to |cur_cs|.
+
+@<Assignments@>=
+demmand_font: load_set_dfont(a,cur_cs,cur_chr);
+
+@ @<Declare subprocedures needed for delayed font@>=
+function load_dfont(@!u,@!p:pointer):internal_font_number;
+{|u| is used just to get command name in error reporting.}
+label done,done1,common_ending;
+var s:scaled;
+@!tfm_f,@!f:internal_font_number;
+@!nom,@!aire:str_number;
+@!q:pointer;
+begin
+case type(p) of
+df_font: begin cur_name:=df_fname(p); cur_area:=df_farea(p); s:=df_scaled(p);
+  @<If this font has already been loaded, set |f| to the internal
+    font number and |goto common_ending|@>;
+  f:=read_font_info(u,cur_name,cur_area,s);
+  end;
+df_loaded: begin f:=df_fnum(p); goto done1; end;
+df_share: begin tfm_f:=df_fnum(p);
+  cur_name:=df_fname(p); cur_area:=df_farea(p); s:=font_size[tfm_f];
+  @<If this font has already been loaded, set |f| to the internal
+    font number and |goto common_ending|@>;
+  nom:=cur_name; aire:=cur_area;
+  @<Copy TFM infomation from |tfm_f| to new font |f|@>;
+  end;
+df_sharedelayed: begin q:=df_dfref(p);
+  if type(q)=df_font then begin type(p):=df_font;
+    nom:=df_fname(p); aire:=df_farea(p);
+    df_fname(p):=df_fname(q); df_farea(p):=df_farea(q);
+    df_scaled(p):=df_scaled(q);
+    f:=load_dfont(u,p);
+    df_fname(p):=nom; df_farea(p):=aire;
+    font_name[f]:=nom; font_area[f]:=aire;
+    type(q):=df_share; df_fnum(q):=f;
+    end
+  else begin type(p):=df_share; df_fnum(p):=df_fnum(q);
+    f:=load_dfont(u,p);
+    end;
+  delete_df_ref(q); goto done;
+  end;
+endcases;
+common_ending: type(p):=df_loaded; df_fnum(p):=f;
+done1: eq_type(font_id_base+f):=set_font; equiv(font_id_base+f):=f;
+font_id_text(f):=df_fidtext(p);
+done: load_dfont:=f;
+end;
+
+@ @<Copy TFM infomation from |tfm_f| to new font |f|@>=
+if (font_ptr=font_max) then begin f:=null_font;
+  @<Apologize for not loading the font, |goto done|@>;
+  end;
+font_ptr:=font_ptr+1; f:=font_ptr; {new font pointer}
+char_base[f]:=char_base[tfm_f];
+width_base[f]:=width_base[tfm_f];
+height_base[f]:=height_base[tfm_f];
+depth_base[f]:=depth_base[tfm_f];
+italic_base[f]:=italic_base[tfm_f];
+lig_kern_base[f]:=lig_kern_base[tfm_f];
+kern_base[f]:=kern_base[tfm_f];
+exten_base[f]:=exten_base[tfm_f];
+param_base[f]:=param_base[tfm_f];
+font_check[f]:=font_check[tfm_f];
+font_size[f]:=font_size[tfm_f];
+font_dsize[f]:=font_dsize[tfm_f];
+font_params[f]:=font_params[tfm_f];
+font_name[f]:=nom; {This and area should be distinct from TFM file}
+font_area[f]:=aire;
+font_bc[f]:=font_bc[tfm_f];
+font_ec[f]:=font_ec[tfm_f];
+font_glue[f]:=font_glue[tfm_f];
+bchar_label[f]:=bchar_label[tfm_f];
+font_bchar[f]:=font_bchar[tfm_f];
+font_false_bchar[f]:=font_false_bchar[tfm_f];
+hyphen_char[f]:=hyphen_char[tfm_f];
+skew_char[f]:=skew_char[tfm_f];
+j_font_table[f]:=j_font_table[tfm_f];
+
+@ @<Declare subprocedures needed for delayed font@>=
+procedure load_set_dfont(@!a,@!u,@!p:pointer);
+var f:internal_font_number;
+begin
+  f:=load_dfont(u,p);
+  deq_define(u,set_font,f);
+  define(cur_font_loc,data,f);
+end;
+
+@ @<Declare subprocedures needed for delayed font@>=
+procedure load_dfont_proc;
+begin
+  cur_chr:=load_dfont(cur_cs,cur_chr);
+end;
+
+
+@* \[54/\JTeX] System-dependent changes for \JTeX.
+
+Various modules necessary for JTeX.
+From here to the end of the file, JTeX related modules are gathered.
+
+First of all we need an array which holds a correspondence between generic
+sub font identifier such as "jsy", "jhira", "ja" and the pointer to
+|eqtb| entry which contains the current corresponding font number.
+
+@d max_j_sub_font=33
+
+@<Types ...@>=
+s_f_range=1..max_j_sub_font;
+s_f_range0=0..max_j_sub_font;
+
+@ @<Glob...@>=
+@!j_s_font_pointer: array [s_f_range] of halfword;
+
+@ You need to initialize this array together with entering sub font identifier
+into \TeX's hash table.
+
+@d init_end(#) == j_s_font_pointer[#]:=cur_val
+@d enter_and_init(#) == primitive(#,set_font,null_font); init_end
+@d jsubfp_a = 8
+
+@<Put each...@>=
+enter_and_init("jsy")(1);@/
+enter_and_init("jroma")(2);@/
+enter_and_init("jhira")(3);@/
+enter_and_init("jkata")(4);@/
+enter_and_init("jgreek")(5);@/
+enter_and_init("jrussian")(6);@/
+enter_and_init("jkeisen")(7);@/
+enter_and_init("ja")(8);@/
+enter_and_init("jb")(9);@/
+enter_and_init("jc")(10);@/
+enter_and_init("jd")(11);@/
+enter_and_init("je")(12);@/
+enter_and_init("jf")(13);@/
+enter_and_init("jg")(14);@/
+enter_and_init("jh")(15);@/
+enter_and_init("ji")(16);@/
+enter_and_init("jj")(17);@/
+enter_and_init("jk")(18);@/
+enter_and_init("jl")(19);@/
+enter_and_init("jm")(20);@/
+enter_and_init("jn")(21);@/
+enter_and_init("jo")(22);@/
+enter_and_init("jp")(23);@/
+enter_and_init("jq")(24);@/
+enter_and_init("jr")(25);@/
+enter_and_init("js")(26);@/
+enter_and_init("jt")(27);@/
+enter_and_init("ju")(28);@/
+enter_and_init("jv")(29);@/
+enter_and_init("jw")(30);@/
+enter_and_init("jx")(31);@/
+enter_and_init("jy")(32);@/
+enter_and_init("jz")(33);@/
+
+@ To compute sub font number |f| and character number |c| from JIS code
+(ku and ten), we use the following function |compute_f_c|.  The result is
+packed into a halfword so that it can be stored as |cur_chr| and can be
+used in token list.
+
+@<Utility functions and procedures for Japanese@>=
+function compute_f_c(ku,ten:integer):halfword;
+label exit;
+var f:s_f_range;
+    c:eight_bits;
+    n:integer;
+begin ku:=ku-32; ten:=ten-32;
+ compute_f_c:=256+1; {treat invalid char as JIS space (1ku 1ten)}
+ if (ku<=0)or((ku>=9)and(ku<=15))or(ku>84) then
+   @<Report invalid ku in JIS code and |goto exit|@>;
+ if (ten<1)or(ten>94) then @<Report invalid ten in JIS code and |goto exit|@>;
+ if ku<=8 then begin case ku of
+                     1: begin f:=1; c:=ten end;
+                     2: begin f:=1; c:=ten+100 end;
+                     3: begin f:=2; c:=ten+32 end;
+                     othercases begin f:=ku-1; c:=ten end
+                     endcases end
+ else if ku<=47 then {Daiichi Suijun}
+  begin n:=(ku-16)*94+ten-1; f:=(n div 256)+8; c:=n-(f-8)*256 end
+ else {Daini Suijun}
+  begin n:=(ku-48)*94+ten-1; f:=(n div 256)+20; c:=n-(f-20)*256 end;
+ compute_f_c:=256*f+c;
+exit: end;
+
+@ @<Report invalid ku in JIS code and |goto exit|@>=
+begin print_err("Japanese text contains an invalid character");
+@.Japanese text...@>
+help1("First byte of two bytes JIS code is out of proper range (1<=ku<=94)");@/
+deletions_allowed:=false; error; deletions_allowed:=true;
+goto exit;
+end
+
+@ @<Report invalid ten in JIS code and |goto exit|@>=
+begin print_err("Japanese text contains an invalid character");
+@.Japanese text...@>
+help1("Second byte of two bytes JIS code is out of proper range (1<=ten<=94)");@/
+deletions_allowed:=false; error; deletions_allowed:=true;
+goto exit;
+end
+
+@ This is a function to compute ku and ten from internal font number and
+character number.
+
+@<Utility ...@>=
+function ku_ten_compute(f,c:integer):halfword;
+var ku:1..94;
+    ten:1..94;
+    n:integer;
+begin 
+ if f<=7 then begin case f of 
+                    1: if c>=100 then begin ku:=2; ten:=c-100 end
+                                 else begin ku:=1; ten:=c end;
+                    2: begin ku:=3; ten:=c-32 end;
+                    othercases begin ku:=f+1; ten:=c end
+                    endcases end
+ else if f<=19 then {Daiichi Suijun}
+  begin n:=(f-8)*256+c; ku:=(n div 94)+16; ten:=(n mod 94)+1 end
+ else {Daini Suijun}
+  begin n:=(f-20)*256+c; ku:=(n div 94)+48; ten:=(n mod 94)+1 end;
+ ku_ten_compute:=256*(ku+32)+(ten+32);
+end;
+
+@ We use the following table to get sub font number from the internal font
+number.
+
+@<Glob...@>=
+@!j_font_table: ^s_f_range0;
+
+@ @<Initialize table entries...@>=
+j_font_table[null_font]:=0;
+
+@ @<Utility ...@>=
+function j_font_p(f:integer): s_f_range0;
+begin
+j_font_p:=j_font_table[f];
+end;
+
+@ Following code is used to specify kanji terminal type and kanji file type.
+Kanji code of input and output is controlled by \.{\\kanjiterminaltype} and
+\.{\\kanjifiletype}.
+
+@d ascii_only = 0
+@d jis_1 = 1 {The third byte for enter kanji is at sign and that for exit
+                kanji is J}
+@d jis_2 = 2 {at sign and H}
+@d jis_3 = 3 {at sign and B}
+@d jis_4 = 4 {B and J}
+@d jis_5 = 5 {B and H}
+@d jis_6 = 6 {B and B}
+@d shift_jis = 10 {shift jis code}
+@d jis7_1 = 11 {jis_1 with 8bit through}
+@d jis7_2 = 12 {jis_2 with 8bit through}
+@d jis7_3 = 13 {jis_3 with 8bit through}
+@d jis7_4 = 14 {jis_4 with 8bit through}
+@d jis7_5 = 15 {jis_5 with 8bit through}
+@d jis7_6 = 16 {jis_6 with 8bit through}
+@d EUC = 20 {Extended Unix Code, eighth bit is on for both bytes}
+
+@d all_kanji_code == ascii_only,jis_1,jis_2,jis_3,jis_4,jis_5,jis_6,jis7_1,jis7_2,jis7_3,jis7_4,jis7_5,jis7_6,shift_jis,EUC
+
+@ @<Glob...@>=
+@!kanji_term_init : boolean;
+
+@ Initialize kanjiterminaltype and kanjifiletype.
+
+@<Initialize table entries...@>=
+kanji_terminal_type:=0; {|ascii_only|}
+kanji_file_type:=0; {|ascii_only|}
+
+@ @<Utility ...@>=
+procedure check_kanji_terminal_type;
+begin
+  case kanji_terminal_type of
+    all_kanji_code: do_nothing;
+    othercases begin
+      print_err("No such terminal type ");
+      print_int(kanji_terminal_type);
+      print(", I will change it to 1 (jis)");
+      kanji_terminal_type := jis_1;
+      help4("kanji terminal type code is one of the following:") @/
+           (" 0:[ascii], 1:[JIS,$$@@-$(J], 2:[JIS,$$@@-$(H], 3:[JIS,$$@@-$(B],")@/
+           (" 4:[JIS,$$B-$$(J], 5:[JIS,$$B-$(H], 6:[JIS,$$B-$(B],") @/
+           ("10:[shift JIS], 20:[Extended Unix Code].");@/
+@.kanji terminal type code...@>
+      error;
+      end;
+  endcases;
+end;
+@#
+procedure check_kanji_file_type;
+begin
+  case kanji_file_type of
+    all_kanji_code: do_nothing;
+    othercases begin
+      print_err("No such file type ");
+      print_int(kanji_file_type);
+      print(", I will change it to 1 (jis)");
+      kanji_file_type := jis_1;
+      help4("kanji file type code is one of the following:") @/	
+           (" 0:[ascii], 1:[JIS,$$@@-$(J], 2:[JIS,$$@@-$(H], 3:[JIS,$$@@-$(B],")@/
+           (" 4:[JIS,$$B-$$(J], 5:[JIS,$$B-$(H], 6:[JIS,$$B-$(B],") @/
+           ("10:[shift JIS], 20:[Extended Unix Code].");@/
+@.kanji file type code...@>
+      error;
+      end;
+  endcases;
+end;
+
+@ The following two functions are called from the external C functions.
+
+@<Utility ...@>=
+function get_kanji_terminal_type: integer;
+begin
+  if kanji_term_init then begin
+    check_kanji_terminal_type;
+    get_kanji_terminal_type := kanji_terminal_type;
+    end
+  else
+    get_kanji_terminal_type := ascii_only;
+end;
+@#
+function get_kanji_file_type: integer;
+begin
+  check_kanji_file_type;
+  get_kanji_file_type := kanji_file_type;
+end;
+
+@ Printing Japanese.
+
+We need to know whether we have printed the first byte of KANJI
+or the second.
+
+@d KAN_ASCII = 0
+@d KAN_FIRST = 1
+@d KAN_SECOND = 2
+@d KAN_EIGHT1 = 3
+@d KAN_EIGHT2 = 4
+
+@<Types...@>=
+@!kan_stat=KAN_ASCII..KAN_EIGHT2;
+
+@ @<Glob...@>=
+@!term_kanji_stat : kan_stat;
+@!log_kanji_stat : kan_stat;
+@!write_kanji_stat : array[0..15] of kan_stat;
+
+@ @<Initialize default kanji stat@>=
+kanji_term_init := false;
+term_kanji_stat := KAN_ASCII; log_kanji_stat := KAN_ASCII;
+setoutkanjitype(term_out, ascii_only);
+setinkanjitype(term_in, ascii_only);
+
+@ @<Initialize kanji stat@>=
+kanji_term_init := true;
+term_kanji_stat := KAN_ASCII; log_kanji_stat := KAN_ASCII;
+@<Set kanji terminal type@>;
+
+@ @<Set init...@>=
+for k:=0 to 15 do write_kanji_stat[k] := KAN_ASCII;
+
+@ @<Declare procedures used by |print_char|@>=
+procedure check_kanji_terminal_type; forward;
+@#
+procedure check_kanji_file_type; forward;
+@#
+function print_char_term(@!s:ASCII_code):boolean;
+label exit;
+var is_newline:boolean;
+begin
+  is_newline:=false;
+  @<Change term kanji state@>;
+  if is_newline then begin
+    wterm_cr; term_offset:=0; print_char_term:=true; return;
+    end;
+  print_char_term:=false;
+  if (term_kanji_stat=KAN_FIRST) and
+     (term_offset>=max_print_line-1) then begin
+    wterm_cr; term_offset:=0;
+    end
+  else if term_kanji_stat=KAN_EIGHT1 then return
+  else if term_kanji_stat=KAN_EIGHT2 then begin
+    wterm(xchr[ext_eightbit]);
+    term_kanji_stat:=KAN_ASCII;
+    end;
+  wterm(xchr[s]); incr(term_offset);
+  if term_offset>=max_print_line then begin
+    wterm_cr; term_offset:=0;
+    end;
+exit:end;
+@#
+function print_char_log(@!s:ASCII_code):boolean;
+label exit;
+var is_newline:boolean;
+begin
+  is_newline:=false;
+  @<Change log kanji state@>;
+  if is_newline then begin
+    wlog_cr; file_offset:=0; print_char_log:=true; return;
+    end;
+  print_char_log:=false;
+  if (log_kanji_stat=KAN_FIRST) and
+     (file_offset>=max_print_line-1) then begin
+    wlog_cr; file_offset:=0;
+    end
+  else if log_kanji_stat=KAN_EIGHT1 then return
+  else if log_kanji_stat=KAN_EIGHT2 then begin
+    wlog(xchr[ext_eightbit]);
+    log_kanji_stat:=KAN_ASCII;
+    end;
+  wlog(xchr[s]); incr(file_offset);
+  if file_offset>=max_print_line then begin
+    wlog_cr; file_offset:=0;
+    end;
+exit:end;
+
+@ @<Change term kanji state@>=
+begin
+if term_kanji_stat=KAN_FIRST then
+  term_kanji_stat:=KAN_SECOND
+else if term_kanji_stat=KAN_EIGHT1 then begin
+  is_newline:= make_eightbit(s)=new_line_char;
+  term_kanji_stat:=KAN_EIGHT2;
+  end
+else if is_ext_kanji(s) then begin
+  if term_kanji_stat=KAN_ASCII then @<Set kanji terminal type@>;
+  term_kanji_stat:=KAN_FIRST;
+  end
+else if is_ext_eightbit(s) then
+  term_kanji_stat:=KAN_EIGHT1
+else begin
+  is_newline:=@<Character |s| is the current new-line character@>;
+  term_kanji_stat:=KAN_ASCII;
+  end;
+end
+
+@ @<Change log kanji state@>=
+begin
+if log_kanji_stat=KAN_FIRST then
+  log_kanji_stat:=KAN_SECOND
+else if log_kanji_stat=KAN_EIGHT1 then begin
+  is_newline:= make_eightbit(s)=new_line_char;
+  log_kanji_stat:=KAN_EIGHT2;
+  end
+else if is_ext_kanji(s) then begin
+  if log_kanji_stat=KAN_ASCII then @<Set kanji log type@>;
+  log_kanji_stat:=KAN_FIRST;
+  end
+else if is_ext_eightbit(s) then
+  log_kanji_stat:=KAN_EIGHT1
+else begin
+  is_newline:=@<Character |s| is the current new-line character@>;
+  log_kanji_stat:=KAN_ASCII;
+  end;
+end
+
+@ @<Print char to |write_file|@>=
+begin
+is_newline:=false;
+if write_kanji_stat[selector]=KAN_FIRST then
+  write_kanji_stat[selector]:=KAN_SECOND
+else if write_kanji_stat[selector]=KAN_EIGHT1 then begin
+  is_newline:= make_eightbit(s)=new_line_char;
+  write_kanji_stat[selector]:=KAN_EIGHT2;
+  end
+else if is_ext_kanji(s) then
+  write_kanji_stat[selector]:=KAN_FIRST
+else if is_ext_eightbit(s) then
+  write_kanji_stat[selector]:=KAN_EIGHT1
+else begin
+  is_newline:=@<Character |s| is the current new-line character@>;
+  write_kanji_stat[selector]:=KAN_ASCII;
+  end;
+if is_newline then begin
+  write_ln(write_file[selector]); return;
+  end
+else if write_kanji_stat[selector]=KAN_EIGHT1 then
+else if write_kanji_stat[selector]=KAN_EIGHT2 then begin
+  write(write_file[selector],xchr[ext_eightbit]);
+  write_kanji_stat[selector]:=KAN_ASCII;
+  end
+else
+  write(write_file[selector],xchr[s])
+end
+
+@ @<Set kanji terminal type@>=
+begin
+check_kanji_terminal_type;
+setoutkanjitype(term_out, kanji_terminal_type);
+end
+
+@ @<Reset |kanjifiletype| from argument@>=
+begin
+if hasargcode then kanji_file_type:=getargcode;
+if hasargterm then kanji_terminal_type:=getargterm;
+end
+
+@ @<Set kanji |cur_file| type@>=
+begin
+check_kanji_file_type;
+setinkanjitype(cur_file, kanji_file_type);
+end
+
+@ @<Set kanji |read_file| type@>=
+begin
+check_kanji_file_type;
+setinkanjitype(read_file[n], kanji_file_type);
+end
+
+@ @<Set kanji log type@>=
+begin
+check_kanji_file_type;
+setoutkanjitype(log_file, kanji_file_type);
+end
+
+@ @<Set kanji |write_file| type@>=
+begin
+check_kanji_file_type;
+setoutkanjitype(write_file[j], kanji_file_type);
+end
+
+@ @<Print chars in |str_pool| in printable form@>=
+while j<str_start[s+1] do begin
+  if is_ext_kanji(so(str_pool[j])) then begin
+    print_char(so(str_pool[j])); incr(j);
+    print_char(so(str_pool[j]));
+    end
+  else if is_ext_eightbit(so(str_pool[j])) then begin incr(j);
+    print(make_eightbit(so(str_pool[j])));
+    end
+  else
+    print(so(str_pool[j]));
+  incr(j);
+  end
+
+@ @<Utility ...@>=
+procedure print_j_char(sub_font:s_f_range;char_no:eight_bits);      
+var ku_ten:integer; {to hold ku*256+ten in japanese output}
+begin
+  ku_ten:=ku_ten_compute(sub_font,char_no);
+  print_char(make_ext_kanji(ku_ten div 256));
+  print_char(ku_ten mod 256);
+end;
+
+@ @<Utility ...@>=
+procedure display_j_char(sub_font:s_f_range;char_no:eight_bits);
+begin
+ if kanji_terminal_type<>0 then print_j_char(sub_font,char_no)
+ else begin
+  print_char("{");
+  print_esc(text(j_s_font_pointer[sub_font]));
+  print_esc("char");
+  print_int(char_no);
+  print_char("}"); end
+end;
+
+@ @<Display japanese letter $(|m|,|c|)$@>=
+begin {|m| contains sub font number and |c| contains character number}
+ display_j_char(m,c)
+end
+
+@ Pseudo printing.
+
+@ @<Glob...@>=
+@!pseudo_kanji_stat : kan_stat; {|KAN_ASCII..KAN_EIGHT2|}
+
+@ @<Reset |pseudo_kanji_stat|@>=
+pseudo_kanji_stat:=KAN_ASCII
+
+@ @<Store char in |trick_buf|@>=
+begin
+  if pseudo_kanji_stat=KAN_FIRST then begin
+    trick_buf[tally mod trick_line] := s;
+    tally_disp:=tally_disp+2;
+    pseudo_kanji_stat:=KAN_ASCII;
+    end
+  else if pseudo_kanji_stat=KAN_EIGHT1 then begin
+    trick_buf[tally mod trick_line] := s;
+    incr(tally_disp);
+    pseudo_kanji_stat:=KAN_ASCII;
+    end
+  else if is_ext_kanji(s) then begin
+    trick_buf[tally mod trick_line] := s;
+    pseudo_kanji_stat:=KAN_FIRST;
+    end
+  else if is_ext_eightbit(s) then
+    pseudo_kanji_stat:=KAN_EIGHT1
+  else begin
+    trick_buf[tally mod trick_line] := s;
+    incr(tally_disp);
+    end
+end
+
+@ @<Print the first line of tricky pseudoprint@>=
+begin
+p:=first_count;
+while r>0 do begin
+  decr(p);
+  if is_ext_eightbit(trick_buf[(p-1) mod trick_line]) then decr(p);
+  decr(r);
+  end;
+if is_ext_char(trick_buf[(p-1) mod trick_line]) then begin
+  incr(p); r:=n-1;
+  end
+else r:=n;
+for q:=p to first_count-1 do print_char(trick_buf[q mod trick_line]);
+end
+
+@ @<Print the second line of tricky pseudoprint@>=
+begin
+q:=first_count;
+while r>1 do begin
+  if is_ext_kanji(trick_buf[q mod trick_line]) then begin
+    print_char(trick_buf[q mod trick_line]); decr(r); incr(q);
+    end
+  else if is_ext_eightbit(trick_buf[q mod trick_line]) then incr(q);
+  print_char(trick_buf[q mod trick_line]);
+  decr(r); incr(q);
+  end;
+if (r>0) and not is_ext_char(trick_buf[q mod trick_line]) then
+  print_char(trick_buf[q mod trick_line]);
+end
+
+@ @<Pseudo print chars in |buffer| in printable form@>=
+begin
+i:=start;
+while i<j do begin
+  if i=loc then set_trick_count;
+  if is_ext_kanji(buffer[i]) then begin
+    print_char(buffer[i]); incr(i);
+    print_char(buffer[i]);
+    end
+  else if is_ext_eightbit(buffer[i]) then begin incr(i);
+    print(make_eightbit(buffer[i]));
+    end
+  else
+    print(buffer[i]);
+  incr(i);
+  end;
+end
+
+@ The kanji code of kanji in dvi special is EUC (not custumizable for now).
+
+@<Output chars in |str_pool| into dvi@>=
+k:=str_start[str_ptr]; ecount:=0;
+while k<pool_ptr do begin
+  if is_ext_eightbit(so(str_pool[k])) then begin
+    incr(ecount); incr(k);
+    end;
+  incr(k);
+  end;
+if cur_length-ecount<256 then
+  begin dvi_out(xxx1); dvi_out(cur_length-ecount);
+  end
+else  begin dvi_out(xxx4); dvi_four(cur_length-ecount);
+  end;
+k:=str_start[str_ptr];
+while k<pool_ptr do begin
+  if is_ext_kanji(so(str_pool[k])) then begin
+    dvi_out(so(str_pool[k])); incr(k);
+    dvi_out(make_ext_kanji(so(str_pool[k])));
+    end
+  else if is_ext_eightbit(so(str_pool[k])) then begin incr(k);
+    dvi_out(make_eightbit(so(str_pool[k])));
+    end
+  else
+    dvi_out(so(str_pool[k]));
+  incr(k);
+  end
+
+@ Reading Japanese.
+
+Find the possibly 8bit char in current position.
+
+@d char_in_cur_pos(#) == begin
+  end
+
+@ @<Glob...@>=
+@!cur_ext_chr : ASCII_code;
+
+@ @<Determin the effective end of the line@>=
+begin
+if is_ext_eightbit(buffer[limit-1]) and (limit>1) then
+  if make_eightbit(buffer[limit])=end_line_char then j:=limit-1
+  else j:=limit+1
+else if buffer[limit]=end_line_char then j:=limit
+else j:=limit+1
+end
+
+@ @<Put the end-of-line-char if it is active@>=
+begin
+if end_line_char_inactive then decr(limit)
+else if is_eightbit(end_line_char) then begin
+  buffer[limit]:=ext_eightbit; incr(limit);
+  buffer[limit]:=de_eightbit(end_line_char);
+  end
+else
+  buffer[limit]:=end_line_char
+end
+
+@ @<Remove the end-of-line-char@>=
+begin
+if is_ext_eightbit(buffer[l-1]) and (l>1) then begin
+  if make_eightbit(buffer[l])=end_line_char then l:=l-2
+  end
+else if buffer[l]=end_line_char then decr(l)
+end
+
+@ Following routine reset |cur_cmd| and |cur_chr| appropriately so that
+japanese letters can readily be made into a token.
+
+@<Read an extended char and reset |cur_cmd| and |cur_chr| appropriately@>=
+if is_ext_kanji(cur_chr) then begin cur_cmd := jletter;
+  cur_chr:=compute_f_c(de_ext_kanji(cur_chr),buffer[loc]);
+  incr(loc);
+  state:=mid_line; {while you are reading japanese letter, you are in |mid_line|}
+  end
+else begin if is_ext_eightbit(cur_chr) then begin
+    cur_chr:=make_eightbit(buffer[loc]);
+    incr(loc);
+    end;
+  cur_cmd:=cat_code(cur_chr);
+  end
+
+@ Whether the carriage return is regarded as space or not is controlled
+by \.{\\jendlinetype}.
+
+@d jend_ascii==0
+@d jend_comment_bit==1
+@d jend_ignore_bit==2
+@d is_jend_comment(#)==odd(#)  {dirty}
+@d is_jend_ignore(#)==((#)>=jend_ignore_bit)   {dirty}
+
+@ @<Glob...@>=
+@!delayed_cat_ret:boolean; {used to ignore CR after/before jletter}
+
+@ @<Set init...@>=
+delayed_cat_ret:=false;
+
+@ @<Check if the last character of the line is japanese,
+    change state, and finish line@>=
+begin
+if jendline_type>jend_ascii then begin
+  k:=loc; backward_onechar(k); backward_onechar(k);
+  jletter_endline:=is_ext_kanji(buffer[k]);
+  if is_jend_comment(jendline_type) and jletter_endline then
+    @<Finish line, |goto switch|@>;
+  if is_jend_ignore(jendline_type) then begin
+    if @<The last character is not ascii punctuation@> then begin
+      delayed_cat_ret:=true;
+      @<Finish line, |goto switch|@>;
+      end;
+    end;
+  end;
+@<Finish line, emit a space@>;
+end
+
+@ @<Restore delayed |cat_ret| and return, if appropriate@>=
+if delayed_cat_ret then begin {|state=new_line| now}
+  delayed_cat_ret:=false;
+  if ({jletter_endline and} cur_cmd=spacer) or
+     ((not jletter_endline) and cur_cmd<>jletter) then begin
+    cur_cmd:=spacer; cur_chr:=" ";
+    backward_onechar(loc); return;
+    end
+  end
+
+@ @<Emit a space, |delayed_cat_ret:=false|, and return@>=
+begin cur_cmd:=spacer; cur_chr:=" "; delayed_cat_ret:=false; return;
+end
+
+@ @<Check an extended char in control sequence name@>=
+if is_ext_char(cur_chr) then begin incr(k);
+  if is_ext_kanji(cur_chr) then cat:=jletter
+  else cat:=cat_code(make_eightbit(buffer[k]));
+  end
+else
+  cat:=cat_code(cur_chr)
+
+@ @<Put the internal representation of |fc| in |buffer|@>=
+ku_ten:=ku_ten_compute(jchr_subfont(fc),jchr_char(fc));
+buffer[j]:=make_ext_kanji(ku_ten div 256);
+incr(j);
+buffer[j]:=ku_ten mod 256;
+
+@ @<Put the internal representation of char in |buffer|@>=
+if is_eightbit(buffer[j]) then begin
+  buffer[j+1]:=de_eightbit(buffer[j]); buffer[j]:=ext_eightbit; incr(j);
+  end
+
+@ ascii cat_ret japanese
+
+@d ascii_norm=0
+@d ascii_punct=1
+
+@<Glob...@>=
+@!ascii_punct_table: array [0..max_ascii_tab] of 0..1;
+
+@ @<Initialize table entries...@>=
+for k:=0 to max_ascii_tab do ascii_punct_table[k]:=ascii_norm;
+
+@ New primitive \.{\\asciipunct}.
+
+@<Put each...@>=
+primitive("asciipunct",set_asciipunct,0);@/
+@!@:asciipunct_}{\.{\\asciipunct} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+set_asciipunct: print_esc("asciipunct");
+
+@ @<Cases of |main_control| that don't...@>=
+any_mode(set_asciipunct): set_asciipunct_table;
+
+@ Read a japanese or ascii char and set its asciipunct code.
+
+@<Declare act...@>=
+procedure set_asciipunct_table;
+var c:halfword;
+begin scan_char_num; c:=cur_val; scan_int; ascii_punct_table[c]:=cur_val;
+end;
+
+@ @<The last character is not ascii punctuation@>=
+  (ascii_punct_table[buffer[loc-2]]<>ascii_punct)
+
+
+@ This procedure is similar to |scan_chr_num| ([435]).
+
+@<Declare procedures that scan restricted classes of integers@>=
+procedure scan_j_char_num;
+begin scan_int;
+  if (cur_val<0) or (cur_val>8703) then {8703="21FF, subfont 33, char 255}
+  begin print_err("Bad japanese character code");
+  help3("Japanese character number (including ascii character) must be")@/
+("less than 8703(=21FF in hexadecimal).")@/
+("I changed this on to zero."); @/
+int_error(cur_val); cur_val:=0; end;
+end;
+
+@ width and height+depth of japanese zenkaku character.
+
+@<The zw width for current jfont@>=
+param(16)(equiv(j_s_font_pointer[jsubfp_a]))
+
+@ @<The zh height for current jfont@>=
+param(17)(equiv(j_s_font_pointer[jsubfp_a]))
+
+@ \.{\\string} and a japanese char ([464]).
+
+@<get token of a char from |str_pool|@>=
+if is_ext_char(t) then begin incr(k);
+  if is_ext_kanji(t) then
+    t:=j_letter_token_flag+compute_f_c(de_ext_kanji(t),so(str_pool[k]))
+  else
+    t:=other_token+make_eightbit(so(str_pool[k]));
+  end
+else if t=" " then t:=space_token
+else t:=other_token+t
+
+
+@ Pretend to autoload japanese subfonts.
+
+@<Declare subprocedures needed for delayed font@>=
+function font_jsubf(@!sf:s_f_range):internal_font_number;
+var f:internal_font_number;
+@!jsubf:pointer;
+begin
+jsubf := j_s_font_pointer[sf];
+if eq_type(jsubf) = set_font then font_jsubf := equiv(jsubf)
+else if eq_type(jsubf) = demmand_font then begin
+  f := load_dfont(jsubf,equiv(jsubf));
+  deq_define(jsubf,set_font,f);
+  j_font_table[f] := sf;
+  font_jsubf := f;
+  end
+else begin
+  print_err("Improper japanese subfont "); print_cs(jsubf);
+  help2("Commands that have the same name as japanese subfont")@/
+  ("should not be defined");
+  error; font_jsubf := null_font;
+  end
+end;
+
+@ @<|cur_chr| is jis space@>=
+cur_chr=256+1
+
+@ @<set |main_i| for JIS space@>=
+main_i.b2:=no_tag
+
+
+@ Kinsoku shori.
+
+Insertion of nobreak (maximum penalty) is forced when a japanese character
+cannot appear at the beginning of a line or at the end of a line. (This is
+called ``Kinsoku shori'' in japanese.
+|jintercharskip| is inserted when both previous character and the current
+character are japanese characters.
+
+@ Some japanese characters cannot appear at the beginning of a line
+(This is called "gyoutou-kinsoku") and several other characters cannot
+appear at the end of a line ("gyoumatsu-kinsoku").  Special processing
+of these characters is "Kinsoku shori".
+This effect is realized by omitting the insertion of |jintercharskip| or
+|jasciikanjiskip| before
+gyoutou-kinsoku character and after a gyoumatsu-kinsoku character.
+
+Following constants and Kinsoku table are used in Kinsoku shori.
+
+@d no_kinsoku==0 {You don't need to worry about Kinsoku shori}
+@d pre_kinsoku==1 {This character shouldn't appear at the beginning of a line}
+@d post_kinsoku==2 {This shouldn't be the last character of a line}
+
+@d max_ascii_tab==127
+@d max_jsy_tab==255
+@d max_jhira_tab==95
+@d max_jkata_tab==95
+
+@<Glob...@>=
+@!ascii_kinsoku_table: array [0..max_ascii_tab] of 0..2; 
+@!jsy_kinsoku_table: array [0..max_jsy_tab] of 0..2;
+@!jhira_kinsoku_table: array [0..max_jhira_tab] of 0..2;
+@!jkata_kinsoku_table: array [0..max_jkata_tab] of 0..2;
+
+@ Initialization of Kinsoku table (temporary).  You must be able to change the
+data in this table from plain file or on line using new primitive.
+Also you need to dump the info when the primitive is introduced and used in
+jplain.tex.
+
+@<Initialize table entries...@>=
+for k:=0 to max_ascii_tab do ascii_kinsoku_table[k]:=no_kinsoku;
+for k:=0 to max_jsy_tab do jsy_kinsoku_table[k]:=no_kinsoku;
+for k:=0 to max_jhira_tab do jhira_kinsoku_table[k]:=no_kinsoku;
+for k:=0 to max_jkata_tab do jkata_kinsoku_table[k]:=no_kinsoku;
+
+{These will be done in jplain.tex
+|ascii_kinsoku_table[34]:=post_kinsoku|; {"}
+|ascii_kinsoku_table[39]:=post_kinsoku|; {'}
+|ascii_kinsoku_table[40]:=post_kinsoku|; {(}
+|ascii_kinsoku_table[41]:=pre_kinsoku|; {)}
+|ascii_kinsoku_table[44]:=pre_kinsoku|; {,}
+|ascii_kinsoku_table[46]:=pre_kinsoku|; {.}
+|ascii_kinsoku_table[58]:=pre_kinsoku|; {:}
+|ascii_kinsoku_table[59]:=pre_kinsoku|; {;}
+|ascii_kinsoku_table[60]:=post_kinsoku|; {<}
+|ascii_kinsoku_table[62]:=pre_kinsoku|; {>}
+|ascii_kinsoku_table[63]:=pre_kinsoku|; {?}
+|ascii_kinsoku_table[91]:=post_kinsoku|; {[}
+|ascii_kinsoku_table[93]:=pre_kinsoku|; {]}
+|ascii_kinsoku_table[96]:=post_kinsoku|; {`}
+|ascii_kinsoku_table[123]:=post_kinsoku|; {curly open bracket}
+|ascii_kinsoku_table[125]:=pre_kinsoku|; {curly close bracket}
+
+|jsy_kinsoku_table[38]:=post_kinsoku|;
+|jsy_kinsoku_table[40]:=post_kinsoku|;
+|jsy_kinsoku_table[42]:=post_kinsoku|;
+|jsy_kinsoku_table[44]:=post_kinsoku|;
+|jsy_kinsoku_table[46]:=post_kinsoku|;
+|jsy_kinsoku_table[48]:=post_kinsoku|;
+|jsy_kinsoku_table[50]:=post_kinsoku|;
+|jsy_kinsoku_table[52]:=post_kinsoku|;
+|jsy_kinsoku_table[54]:=post_kinsoku|;
+|jsy_kinsoku_table[56]:=post_kinsoku|;
+|jsy_kinsoku_table[58]:=post_kinsoku|;
+|jsy_kinsoku_table[79]:=post_kinsoku|;
+|jsy_kinsoku_table[80]:=post_kinsoku|;
+|jsy_kinsoku_table[81]:=post_kinsoku|;
+|jsy_kinsoku_table[82]:=post_kinsoku|;
+|jsy_kinsoku_table[87]:=post_kinsoku|;
+|jsy_kinsoku_table[88]:=post_kinsoku|;
+
+|jsy_kinsoku_table[2]:=pre_kinsoku|;
+|jsy_kinsoku_table[3]:=pre_kinsoku|;
+|jsy_kinsoku_table[4]:=pre_kinsoku|;
+|jsy_kinsoku_table[5]:=pre_kinsoku|;
+|jsy_kinsoku_table[6]:=pre_kinsoku|;
+|jsy_kinsoku_table[7]:=pre_kinsoku|;
+|jsy_kinsoku_table[8]:=pre_kinsoku|;
+|jsy_kinsoku_table[9]:=pre_kinsoku|;
+|jsy_kinsoku_table[10]:=pre_kinsoku|;
+|jsy_kinsoku_table[11]:=pre_kinsoku|;
+|jsy_kinsoku_table[12]:=pre_kinsoku|;
+|jsy_kinsoku_table[19]:=pre_kinsoku|;
+|jsy_kinsoku_table[20]:=pre_kinsoku|;
+|jsy_kinsoku_table[21]:=pre_kinsoku|;
+|jsy_kinsoku_table[22]:=pre_kinsoku|;
+|jsy_kinsoku_table[23]:=pre_kinsoku|;
+|jsy_kinsoku_table[25]:=pre_kinsoku|;
+|jsy_kinsoku_table[28]:=pre_kinsoku|;
+|jsy_kinsoku_table[29]:=pre_kinsoku|;
+|jsy_kinsoku_table[30]:=pre_kinsoku|;
+|jsy_kinsoku_table[39]:=pre_kinsoku|;
+|jsy_kinsoku_table[41]:=pre_kinsoku|;
+|jsy_kinsoku_table[43]:=pre_kinsoku|;
+|jsy_kinsoku_table[45]:=pre_kinsoku|;
+|jsy_kinsoku_table[47]:=pre_kinsoku|;
+|jsy_kinsoku_table[49]:=pre_kinsoku|;
+|jsy_kinsoku_table[51]:=pre_kinsoku|;
+|jsy_kinsoku_table[53]:=pre_kinsoku|;
+|jsy_kinsoku_table[55]:=pre_kinsoku|;
+|jsy_kinsoku_table[57]:=pre_kinsoku|;
+|jsy_kinsoku_table[59]:=pre_kinsoku|;
+|jsy_kinsoku_table[75]:=pre_kinsoku|;
+|jsy_kinsoku_table[76]:=pre_kinsoku|;
+|jsy_kinsoku_table[77]:=pre_kinsoku|;
+|jsy_kinsoku_table[78]:=pre_kinsoku|;
+
+|jhira_kinsoku_table[1]:=pre_kinsoku|;
+|jhira_kinsoku_table[3]:=pre_kinsoku|;
+|jhira_kinsoku_table[5]:=pre_kinsoku|;
+|jhira_kinsoku_table[7]:=pre_kinsoku|;
+|jhira_kinsoku_table[9]:=pre_kinsoku|;
+|jhira_kinsoku_table[35]:=pre_kinsoku|;
+|jhira_kinsoku_table[67]:=pre_kinsoku|;
+|jhira_kinsoku_table[69]:=pre_kinsoku|;
+|jhira_kinsoku_table[71]:=pre_kinsoku|;
+|jhira_kinsoku_table[78]:=pre_kinsoku|;
+
+|jkata_kinsoku_table[1]:=pre_kinsoku|;
+|jkata_kinsoku_table[3]:=pre_kinsoku|;
+|jkata_kinsoku_table[5]:=pre_kinsoku|;
+|jkata_kinsoku_table[7]:=pre_kinsoku|;
+|jkata_kinsoku_table[9]:=pre_kinsoku|;
+|jkata_kinsoku_table[35]:=pre_kinsoku|;
+|jkata_kinsoku_table[67]:=pre_kinsoku|;
+|jkata_kinsoku_table[69]:=pre_kinsoku|;
+|jkata_kinsoku_table[71]:=pre_kinsoku|;
+|jkata_kinsoku_table[78]:=pre_kinsoku|;
+|jkata_kinsoku_table[85]:=pre_kinsoku|;
+|jkata_kinsoku_table[86]:=pre_kinsoku|;}
+
+@ New primitive \.{\\kinsokucode}.
+
+@<Put each...@>=
+primitive("kinsokucode",set_kinsoku_code,0);@/
+@!@:kinsokucode_}{\.{\\kinsokucode} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+set_kinsoku_code: print_esc("kinsokucode");
+
+@ @<Cases of |main_control| that don't...@>=
+any_mode(set_kinsoku_code): set_kinsoku_table;
+
+@ Read a japanese or ascii char and set its kinsoku code.
+
+@<Declare act...@>=
+procedure set_kinsoku_table;
+var @!p,@!q:pointer; {for temporary short-term use}
+@!n:integer; {ditto}
+begin
+scan_j_char_num; p:=cur_val; scan_optional_equals; scan_int;
+if ((cur_val<0) or (cur_val>2)) then begin
+ print_err("Invalid Kinsoku code ("); print_int(cur_val); print_char(")");@/
+ help2("Kinsoku code must be 0(no kinsoku), 1(pre kinsoku) or 2(post kinsoku).")@/
+("I'm going to use 0 instead of that illegal code value.");@/
+ error; cur_val:=0; end;
+if p<=max_ascii_tab then {set Kinsoku code for an ASCII character}
+ ascii_kinsoku_table[p]:=cur_val
+else begin
+ n:=p div 256; q:=p mod 256; {subfont number in n and character number in q}
+ if ((n<=0)or(n=2)or(n>4)) then begin
+  print_err("You cannot set Kinsoku code for this character:");
+  display_j_char(n,q);
+  help2("Kinsoku code can be set only for ascii character, japanese symbols,")@/
+       ("hiragana and katakana.  So I will ignore this.");@/
+  error; end
+ else if n=1 then jsy_kinsoku_table[q]:=cur_val
+        else if n=3 then jhira_kinsoku_table[q]:=cur_val
+          else if n=4 then jkata_kinsoku_table[q]:=cur_val;
+ end;
+end;
+
+@ Fake chars.
+
+@d no_fake==0
+@d fake_jchar==1
+@d fake_char==2
+@d fake_math==3
+
+@ New primitive \.{\\fakejchar}, \.{\\fakechar}.
+
+@<Put each...@>=
+primitive("fakejchar",faker,fake_jchar);@/
+@!@:fakejchar_}{\.{\\fakejchar} primitive@>
+primitive("fakechar",faker,fake_char);@/
+@!@:fakechar_}{\.{\\fakechar} primitive@>
+primitive("fakemath",faker,fake_math);@/
+@!@:fakemath_}{\.{\\fakemath} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+faker: case chr_code of
+  fake_jchar: print_esc("fakejchar");
+  fake_char: print_esc("fakechar");
+  fake_math: print_esc("fakemath");
+  endcases;
+
+@ Kinsoku shori.
+
+@<Glob...@>=
+@!main_c:halfword;
+@!prev_sf:s_f_range0; {subfont of the previous character}
+@!prev_c:halfword; {the previous character}
+@!kinsoku_shori:boolean; {used in Kinsoku shori routine}
+@!burasage_shori:boolean; {used in Burasage shori routine}
+@!prev_jkern,cur_jkern:eight_bits;
+@!prev_jkern_info:integer;
+
+@ @<Kinsoku shori; insert or omit glue before jletter@>=
+begin
+if tail <> head then
+  if is_char_node(tail) then
+    if j_font_p(font(tail)) <> 0 then begin
+      prev_sf:=j_font_p(font(tail)); prev_c:=character(tail);
+      @<Insert or omit |jintercharskip| using Kinsoku table@>;
+      end
+    else begin prev_sf:=0; prev_c:=character(tail);
+      @<Insert or omit |jasciikanjiskip| before jletter using Kinsoku table@>;
+      end
+  else if type(tail) = math_node then
+    @<Insert or omit |jmathkanjiskip| before jletter using Kinsoku table@>
+else {or the case tail is space}
+  @<Left boundary of japanese char@>
+end
+
+@ @<Kinsoku shori; insert or omit glue after jletter@>=
+begin
+if tail <> head then
+  if is_char_node(tail) and j_font_p(font(tail)) <> 0 then  begin
+    prev_sf:=j_font_p(font(tail)); prev_c:=character(tail);
+    @<Insert or omit |jasciikanjiskip| after jletter using Kinsoku table@>;
+    end
+end
+
+@ @<Kinsoku shori; insert or omit glue and |goto main_loop_move|,...@>=
+if prev_cmd=faker then begin
+  if prev_c=fake_jchar then begin
+    if cur_cmd=jletter then begin
+      kinsoku_shori:=false;
+      @<Test of jletter pre-kinsoku@>;
+      if not kinsoku_shori then @<Insert |jintercharskip|@>;
+      end
+    else begin
+      kinsoku_shori:=false;
+      if ascii_kinsoku_table[cur_chr]=pre_kinsoku then kinsoku_shori:=true;
+      if not kinsoku_shori then @<Insert |jasciikanjiskip|@>;
+      end;
+    goto main_loop_move;
+    end
+  else if prev_c=fake_char then begin
+    if cur_cmd=jletter then begin
+      kinsoku_shori:=false;
+      @<Test of jletter pre-kinsoku@>;
+      if not kinsoku_shori then @<Insert |jasciikanjiskip|@>;
+      goto main_loop_move;
+      end
+    end
+  else if prev_c=fake_math then begin
+    if cur_cmd=jletter then begin
+      kinsoku_shori:=false;
+      @<Test of jletter pre-kinsoku@>;
+      if not kinsoku_shori then @<Insert |jmathkanjiskip|@>;
+      goto main_loop_move;
+      end
+    end
+  end
+else if cur_cmd=jletter then begin
+  if prev_cmd=jletter then begin
+    prev_sf:=jchr_subfont(prev_c); prev_c:=jchr_char(prev_c);
+    @<Insert or omit |jintercharskip| using Kinsoku table@>;
+    end
+  else begin wrapup(rt_hit); prev_sf:=0;
+    @<Insert or omit |jasciikanjiskip| before jletter using Kinsoku table@>;
+    end;
+  goto main_loop_move;
+  end
+else if prev_cmd=jletter then begin
+  prev_sf:=jchr_subfont(prev_c); prev_c:=jchr_char(prev_c);
+  @<Insert or omit |jasciikanjiskip| after jletter using Kinsoku table@>;
+  goto main_loop_move;
+  end
+
+@ Insertion of glue between jletter and math is done in |after_math| ([1196]).
+
+@<Kinsoku shori; insert or omit glue between jletter and math@>=
+if tail <> head then begin
+  if is_char_node(tail) and j_font_p(font(tail))<>0 then begin
+    prev_sf:=j_font_p(font(tail)); prev_c:=character(tail);
+    @<Insert or omit |jmathkanjiskip| after jletter using Kinsoku table@>;
+    end
+end
+
+@ Kinsoku shori (between jletter and jletter)
+
+@<Insert or omit |jintercharskip| using Kinsoku table@>=
+begin
+  kinsoku_shori:=false; burasage_shori:=false;
+  prev_jkern:=no_jkern; cur_jkern:=no_jkern;
+  @<Test of jletter post-kinsoku@>;
+  @<Test of burasage and jkern@>;
+  @<Test of jletter pre-kinsoku@>;
+  if @<interchar jkern@> then @<Do interchar jkern@>
+  else if burasage_shori then @<Burasage shori@>;
+  if not kinsoku_shori then @<Insert |jintercharskip|@>;
+end
+
+@ Kinsoku shori (between jletter and ascii)
+
+@<Insert or omit |jasciikanjiskip| after jletter using Kinsoku table@>=
+begin
+  kinsoku_shori:=false; burasage_shori:=false;
+  prev_jkern:=no_jkern; cur_jkern:=no_jkern;
+  @<Test of jletter post-kinsoku@>;
+  @<Test of burasage and jkern@>;
+  if ascii_kinsoku_table[cur_chr]=pre_kinsoku then kinsoku_shori:=true;
+  if @<interchar jkern@> then @<Do interchar jkern@>
+  else if burasage_shori then @<Burasage shori@>;
+  if not kinsoku_shori then @<Insert |jasciikanjiskip|@>;
+end
+
+@ Kinsoku shori (between ascii and jletter)
+
+@<Insert or omit |jasciikanjiskip| before jletter using Kinsoku table@>=
+begin
+  kinsoku_shori:=ascii_kinsoku_table[prev_c]=post_kinsoku;
+  @<Test of jletter pre-kinsoku@>;
+  if not kinsoku_shori then @<Insert |jasciikanjiskip|@>;
+end
+
+@ Kinsoku shori (between jletter and math)
+
+@<Insert or omit |jmathkanjiskip| after jletter using Kinsoku table@>=
+begin
+  kinsoku_shori:=false;
+  @<Test of jletter post-kinsoku@>;
+  if not kinsoku_shori then @<Insert |jmathkanjiskip|@>;
+end
+
+@ Kinsoku shori (between math and jletter)
+
+@<Insert or omit |jmathkanjiskip| before jletter using Kinsoku table@>=
+begin
+  kinsoku_shori:=false;
+  @<Test of jletter pre-kinsoku@>;
+  if not kinsoku_shori then @<Insert |jmathkanjiskip|@>;
+end
+
+@ @<Test of jletter pre-kinsoku@>=
+case jchr_subfont(cur_chr) of
+ 1: if main_c<=255 then
+      if jsy_kinsoku_table[main_c]=pre_kinsoku then kinsoku_shori:=true;
+ 3: if main_c<=94 then
+      if jhira_kinsoku_table[main_c]=pre_kinsoku then kinsoku_shori:=true;
+ 4: if main_c<=94 then
+      if jkata_kinsoku_table[main_c]=pre_kinsoku then kinsoku_shori:=true;
+ othercases do_nothing
+endcases
+
+@ @<Test of jletter post-kinsoku@>=
+case prev_sf of 
+ 1: if prev_c<=255 then
+      if jsy_kinsoku_table[prev_c]=post_kinsoku then kinsoku_shori:=true;
+ 3: if prev_c<=94 then
+      if jhira_kinsoku_table[prev_c]=post_kinsoku then kinsoku_shori:=true;
+ 4: if prev_c<=94 then
+      if jkata_kinsoku_table[prev_c]=post_kinsoku then kinsoku_shori:=true;
+ othercases do_nothing
+endcases
+
+@ @<Insert |jintercharskip|@>=
+begin
+if j_interchar_skip=zero_glue then
+  tail_append(new_param_glue(def_j_interchar_skip_code))
+else
+  tail_append(new_param_glue(j_interchar_skip_code))
+end
+
+@ @<Insert |jasciikanjiskip|@>=
+begin
+if j_ascii_kanji_skip=zero_glue then
+  tail_append(new_param_glue(def_j_ascii_kanji_skip_code))
+else
+  tail_append(new_param_glue(j_ascii_kanji_skip_code))
+end
+
+@ @<Insert |jmathkanjiskip|@>=
+begin
+if j_math_kanji_skip=zero_glue then
+  tail_append(new_param_glue(def_j_math_kanji_skip_code))
+else
+  tail_append(new_param_glue(j_math_kanji_skip_code))
+end
+
+@ @<Insert |jspaceskip|@>=
+begin
+if j_space_skip=zero_glue then
+  tail_append(new_param_glue(def_j_space_skip_code))
+else
+  tail_append(new_param_glue(j_space_skip_code))
+end
+
+
+@ Burasage shori.
+This is an experimental hack.
+
+@d no_burasage==0
+@d burasage==1
+
+@<Glob...@>=
+@!jsy_burasage_table: array [0..max_jsy_tab] of 0..1;
+
+@ @<Initialize table entries...@>=
+for k:=0 to max_jsy_tab do jsy_burasage_table[k]:=no_burasage;
+
+@ New primitive \.{\\burasage}.
+
+@<Put each...@>=
+primitive("burasage",set_burasage,0);@/
+@!@:burasage_}{\.{\\burasage} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+set_burasage: print_esc("burasage");
+
+@ @<Cases of |main_control| that don't...@>=
+any_mode(set_burasage): set_burasage_table;
+
+@ Read a japanese or ascii char and set its burasage code.
+
+@<Declare act...@>=
+procedure set_burasage_table;
+var p:halfword;
+f:s_f_range;
+c:eight_bits;
+begin
+scan_j_char_num; p:=cur_val; scan_optional_equals; scan_int;
+if ((cur_val<0) or (cur_val>1)) then begin
+ print_err("Invalid Burasage code ("); print_int(cur_val); print_char(")");@/
+ help2("Burasage code must be 0(no burasage) or 1(burasage).")@/
+      ("I'm going to use 0 instead of that illegal code value.");@/
+ error; cur_val:=0; end;
+if p<=max_ascii_tab then {set Burasage code for an ASCII character}
+ print_err("You cannot set Burasage code for ascii character.")
+else begin
+ f:=jchr_subfont(p); c:= jchr_char(p);
+ if f<>1 then begin
+  print_err("You cannot set Burasage code for this character:");
+  display_j_char(f,c);
+  help2("Burasage code can be set only for japanese symbols.")@/
+       ("So I will ignore this.");@/
+  error;
+  end
+ else jsy_burasage_table[c]:=cur_val;
+ end;
+end;
+
+@ burasage flag
+@d br_kin==0
+@d br_norm==1
+@d br_bnd==2
+@<Types...@>=
+@!br_stat=br_kin..br_bnd;
+
+@ @<Declare act...@>=
+procedure burasage_char(@!p:pointer;@!br:br_stat);
+var q:four_quarters;
+@!b:pointer; {the new box and its character node}
+@!f:internal_font_number;
+@!c:quarterword;
+begin c:=character(p); f:=font(p);
+q:=char_info(f)(c);
+tail_append(p);
+if br=br_kin then
+else begin tail_append(new_kern(-char_width(f)(q)));
+  tail_append(new_penalty(1));
+  b:=new_spec(zero_glue);
+  width(b):=char_width(f)(q);
+  tail_append(new_glue(b));
+  if br=br_norm then tail_append(new_penalty(0));
+  end;
+end;
+
+
+@ Kerning for japanese char.
+This is an experimental hack.
+
+@d no_jkern==0
+@d pre_jkern==1
+@d post_jkern==2
+@d inter_jkern==3
+@d bpre_jkern==4
+@d bpost_jkern==5
+@d pre_jkern_bit==1
+@d post_jkern_bit==2
+@d inter_jkern_bit==4
+@d bpre_jkern_bit==8
+@d bpost_jkern_bit==16
+@d is_pre_jkern(#)==odd((#) div  pre_jkern_bit)
+@d is_post_jkern(#)==odd((#) div  post_jkern_bit)
+@d is_inter_jkern(#)==odd((#) div  inter_jkern_bit)
+@d is_bpre_jkern(#)==odd((#) div  bpre_jkern_bit)
+@d is_bpost_jkern(#)==odd((#) div  bpost_jkern_bit)
+@d max_jkern_info=100
+
+@<Glob...@>=
+@!jsy_jkern_table: array [0..max_jsy_tab] of eight_bits;
+@!jsy_bpre_jkern: array [0..max_jsy_tab] of pointer;
+@!jkern_info: array [0..max_jkern_info] of integer;
+@!jkern_inter_glue1: array [0..max_jkern_info] of pointer;
+@!jkern_inter_glue2: array [0..max_jkern_info] of pointer;
+@!last_jkern_info: integer;
+
+@ @<Initialize table entries...@>=
+for k:=0 to max_jsy_tab do jsy_jkern_table[k]:=no_jkern;
+last_jkern_info:=0;
+
+@ New primitive \.{\\jkern}.
+
+@<Put each...@>=
+primitive("jkern",set_jkern,0);@/
+@!@:jkern_}{\.{\\jkern} primitive@>
+
+@ @<Cases of |print_cmd_chr|...@>=
+set_jkern: print_esc("jkern");
+
+@ @<Cases of |main_control| that don't...@>=
+any_mode(set_jkern): set_jkern_table;
+
+@ Read a japanese or ascii char and set its jkern code.
+
+@<Declare act...@>=
+procedure set_jkern_table;
+label exit;
+var c1,c2:halfword;
+cc:integer;
+p,q:pointer;
+begin scan_int;
+if (cur_val<no_jkern) or (bpost_jkern<cur_val) then begin
+  print_err("Invalid jkern code ("); print_int(cur_val); print_char(")");@/
+  error; help0; return;
+  end;
+case cur_val of
+no_jkern: begin scan_j_char_num;
+  if jchr_subfont(cur_val)=1 then
+    jsy_jkern_table[jchr_char(cur_val)]:=no_jkern;
+  end;
+inter_jkern: begin scan_j_char_num; c1:=cur_val;
+  scan_glue(glue_val); p:=cur_val;
+  scan_j_char_num; c2:=cur_val;
+  scan_glue(glue_val); q:=cur_val;
+  if jchr_subfont(c1)=1 then begin cc:=(256*256)*c1+c2;
+    c1:=jchr_char(c1);
+    jsy_jkern_table[c1]:=inter_jkern_bit;
+    jkern_info[last_jkern_info]:=cc;
+    jkern_inter_glue1[last_jkern_info]:=p;
+    jkern_inter_glue2[last_jkern_info]:=q;
+    incr(last_jkern_info);
+    end;
+  end;
+bpre_jkern: begin scan_glue(glue_val); p:=cur_val;
+  scan_j_char_num;
+  if jchr_subfont(cur_val)=1 then begin c1:=jchr_char(cur_val);
+    jsy_jkern_table[c1]:=bpre_jkern_bit;
+    jsy_bpre_jkern[c1]:=p;
+    end;
+  end;
+othercases begin
+  print_err("Sorry, this case of jkern not implemented");
+  help0; error
+  end
+endcases;
+exit: end;
+
+@ @<Declare act...@>=
+function get_jkern_info_index(cc:integer):integer;
+label exit;
+var i:integer;
+begin i:=last_jkern_info-1;
+  while i>=0 do begin
+    if jkern_info[i]=cc then begin
+      get_jkern_info_index:=i; return;
+      end;
+    decr(i)
+  end;
+  get_jkern_info_index:=-1;
+exit: end;
+
+@ @<Burasage shori@>=
+begin tail:=cur_q;
+  {|link(cur_q)| points prev char}
+  if kinsoku_shori then burasage_char(link(cur_q),br_kin)
+  else burasage_char(link(cur_q),br_norm);
+  if is_bpre_jkern(cur_jkern) then begin
+    tail_append(new_glue(jsy_bpre_jkern[main_c]));
+    goto main_loop_move;
+  end;
+end
+
+@ @<Test of burasage and jkern@>=
+begin
+if prev_sf=1 then
+  if prev_c<=255 then begin
+    if jsy_burasage_table[prev_c]=burasage then burasage_shori:=true;
+    prev_jkern:=jsy_jkern_table[prev_c];
+    if @<interchar jkern@> then begin
+      prev_jkern_info:=
+        get_jkern_info_index((prev_sf*256+prev_c)*(256*256)+cur_chr);
+      if prev_jkern_info<0 then prev_jkern:=prev_jkern-inter_jkern_bit;
+      end;
+    end;
+if jchr_subfont(cur_chr)=1 then
+  if main_c<=255 then begin
+    cur_jkern:=jsy_jkern_table[main_c];
+    end;
+end
+
+@ @<interchar jkern@>=is_inter_jkern(prev_jkern)
+
+@ @<Do interchar jkern@>=
+begin
+  tail_append(new_glue(jkern_inter_glue1[prev_jkern_info]));
+  tail_append(lig_stack);
+  tail_append(new_glue(jkern_inter_glue2[prev_jkern_info]));
+  goto big_switch;
+end
+
+@ @<Left boundary of japanese char@>=
+begin
+if jchr_subfont(cur_chr)=1 then
+  if is_bpre_jkern(jsy_jkern_table[jchr_char(cur_chr)]) then
+    tail_append(new_glue(jsy_bpre_jkern[jchr_char(cur_chr)]))
+end
+
+@ @<Right boundary of japanese char@>=
+begin
+if jchr_subfont(prev_c)=1 then
+if jsy_burasage_table[jchr_char(prev_c)]=burasage then begin
+  tail:=cur_q;
+  {|link(cur_q)| points prev char}
+  if cur_cmd=par_end then burasage_char(link(cur_q),br_bnd)
+  else burasage_char(link(cur_q),br_norm);
+  goto reswitch;
+  end
+end
+
+
+@ Dump.
+
+@<Dump the japanese sub font pointer@>=
+dump_things(j_s_font_pointer[1], max_j_sub_font)
+
+@ @<Undump the japanese sub font pointer@>=
+undump_things(j_s_font_pointer[1], max_j_sub_font)
+
+@ @<Dump the Kinsoku tables@>=
+dump_things(ascii_punct_table[0], max_ascii_tab+1);
+dump_things(ascii_kinsoku_table[0], max_ascii_tab+1);
+dump_things(jsy_kinsoku_table[0], max_jsy_tab+1);
+dump_things(jhira_kinsoku_table[0], max_jhira_tab+1);
+dump_things(jkata_kinsoku_table[0], max_jkata_tab+1);
+dump_things(jsy_burasage_table[0], max_jsy_tab+1);
+dump_things(jsy_jkern_table[0], max_jsy_tab+1);
+
+@ @<Undump the Kinsoku tables@>=
+undump_things(ascii_punct_table[0], max_ascii_tab+1);
+undump_things(ascii_kinsoku_table[0], max_ascii_tab+1);
+undump_things(jsy_kinsoku_table[0], max_jsy_tab+1);
+undump_things(jhira_kinsoku_table[0], max_jhira_tab+1);
+undump_things(jkata_kinsoku_table[0], max_jkata_tab+1);
+undump_things(jsy_burasage_table[0], max_jsy_tab+1);
+undump_things(jsy_jkern_table[0], max_jsy_tab+1);
+
+@ @<Dump the |j_font_table|@>=
+dump_things(j_font_table[null_font], font_ptr+1-null_font)
+
+@ @<Undump the |j_font_table|@>=
+j_font_table:=xmalloc_array(s_f_range0, font_max);
+undump_things(j_font_table[null_font], font_ptr+1-null_font)
+
+@* \[55] Index.
+@z
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/jtex.defines
@@ -0,0 +1,6 @@
+@define var hasargcode;
+@define function getargcode;
+@define var hasargterm;
+@define function getargterm;
+@define procedure setinkanjitype();
+@define procedure setoutkanjitype();
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/kanji.c
@@ -0,0 +1,524 @@
+/* Copyright (C) 1988-1998 Takafumi Sakurai
+ * Permission to use, copy, modify, and distribute this file for any
+ * purpose is hereby granted without fee, provided that both the above
+ * copyright notice and this permission appear in all copies.
+*/
+
+#define NO_BIBTEX_HELP
+#define	NOFIXPUTC
+#define	EXTERN extern
+#include "TEX-OR-BIB.h"
+
+#define	MAXOPEN		64
+kaninfo kanjiinfo[MAXOPEN];
+static int (*in_ln_tab[])(FILE *, kaninfo *) = {
+    in_ln_ascii,
+    in_ln_jis,
+    in_ln_jis,
+    in_ln_jis,
+    in_ln_jis,
+    in_ln_jis,
+    in_ln_jis,
+    0, 0, 0,
+    in_ln_sjis,
+    in_ln_jis7,
+    in_ln_jis7,
+    in_ln_jis7,
+    in_ln_jis7,
+    in_ln_jis7,
+    in_ln_jis7,
+    0, 0, 0,
+    in_ln_jis
+};
+static int (*out_ch_tab[])(textchar, FILE *, kaninfo *) = {
+    out_ch_ascii,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    0, 0, 0,
+    out_ch_sjis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    out_ch_jis,
+    0, 0, 0,
+    out_ch_euc
+};
+struct {
+    char esc_in, esc_out;
+} jis_esc_tab[] = {
+    {'\0', '\0'}, /* dummy */
+    {'@', 'J'},
+    {'@', 'H'},
+    {'@', 'B'},
+    {'B', 'J'},
+    {'B', 'H'},
+    {'B', 'B'},
+    {'\0', '\0'}, {'\0', '\0'}, {'\0', '\0'},
+    {'\0', '\0'},
+    {'@', 'J'},
+    {'@', 'H'},
+    {'@', 'B'},
+    {'B', 'J'},
+    {'B', 'H'},
+    {'B', 'B'}
+};
+
+int tbstrict = false;
+
+int in_ln_ascii(FILE *f, kaninfo *ki)
+{
+    int i=0;
+    while (last < bufsize - 30 && ((i = getc(f)) != EOF) && i != '\n' && i != '\r')
+	if (is_eightbit(i)) {
+	    buffer[last++] = ext_eightbit;
+	    buffer[last++] = de_eightbit(i);
+	} else
+	    buffer[last++] = i;
+    return (i);
+}
+
+int in_ln_jis(FILE *f, kaninfo *ki)
+{
+    return (in_ln_gen(f, ki, check_euc_kanji, euc2TeXkanji));
+}
+
+int in_ln_jis7(FILE *f, kaninfo *ki)
+{
+    return (in_ln_gen(f, ki, check_eightbit, error_makekanji));
+}
+
+int in_ln_sjis(FILE *f, kaninfo *ki)
+{
+    return (in_ln_gen(f, ki, check_sj_kanji, sj2TeXkanji));
+}
+
+int check_eightbit(textchar c, kaninfo *ki)
+{
+    if (is_eightbit(c)) {
+	buffer[last++] = ext_eightbit;
+	buffer[last++] = de_eightbit(c);
+    } else
+	buffer[last++] = c;
+   return 0;
+}
+
+int check_euc_kanji(textchar c, kaninfo *ki)
+{
+    if (is_eightbit(c)) {
+	ki->kpend = c;
+	ki->kstat = KAN_ASCII_KAN;
+    } else
+	buffer[last++] = c;
+   return 0;
+}
+
+int check_sj_kanji(textchar c, kaninfo *ki)
+{
+    if (c >= 0xe0 || (c >= 0x80 && c < 0xa0)) {
+	ki->kpend = c;
+	ki->kstat = KAN_ASCII_KAN;
+    } else if (c < 0x80)
+	buffer[last++] = c;
+    else {
+	if (!tbstrict) {
+	    /* We allow 8bit char here. */
+	    buffer[last++] = ext_eightbit;
+	    buffer[last++] = de_eightbit(c);
+	} else {
+	    /* Web procedure should be called for a better error handling. */
+	    /*fprintf(stderr, "\n1-byte kana (shift-jis) ignored.\n");*/
+	    /*buffer[last++] = '?';*/
+	}
+    }
+   return 0;
+}
+
+void get_onechar(textchar c)
+{
+    if (is_eightbit(c)) {
+	if (!tbstrict) {
+	    buffer[last++] = ext_eightbit;
+	    buffer[last++] = de_eightbit(c);
+	}
+    } else
+	buffer[last++] = c;
+}
+
+int in_ln_gen(FILE *f, kaninfo *ki, int (*checkkanji)(textchar, kaninfo *),
+  boolean (*makekanji)(textchar i1, textchar i2, textchar *c1, textchar *c2))
+{
+    int i=0;
+    textchar c1, c2;
+
+    while (last < bufsize - 30 &&
+	   ((i = getc(f)) != EOF) && i != '\n' && i != '\r') {
+	if (ki->kstat == KAN_ASCII) {
+	    if (i == ESC) {
+		if ((i = getc(f)) == '$') {
+		    getc(f);
+		    ki->kstat = KAN_JIS_SECOND;
+		} else if (i == '(') {
+		    getc(f);
+		    /* ki->kstat = KAN_ASCII; */
+		} else {
+		    /* Web procedure should be called for a better error handling. */
+		    fprintf(stderr,"\nText line contains an invalid escape sequence\n");
+		    exit(1);
+		}
+	    } else
+		(*checkkanji)(i, ki);
+	} else if (ki->kstat == KAN_JIS_FIRST) {
+	    if (last >= bufsize-1)
+		return(i);
+	    if (jis2TeXkanji(ki->kpend, i, &c1, &c2)) {
+		buffer[last++] = make_ext_kanji(c1);
+		buffer[last++] = c2;
+	    } else {
+		get_onechar(c1);
+		get_onechar(c2);
+	    }
+	    ki->kstat = KAN_JIS_SECOND;
+	} else if (ki->kstat == KAN_JIS_SECOND) {
+	    if (i == ESC) {
+		if ((i = getc(f)) == '$') {
+		    getc(f);
+		    /* ki->kstat = KAN_JIS_SECOND; */
+		} else if (i == '(') {
+		    getc(f);
+		    ki->kstat = KAN_ASCII;
+		} else {
+		    /* Web procedure should be called for a better error handling. */
+		    fprintf(stderr,"\nText line contains an invalid escape sequence\n");
+		    exit(1);
+		}
+	    } else if (i < ' ') {
+		buffer[last++] = i;
+	    } else {
+		ki->kpend = i;
+		ki->kstat = KAN_JIS_FIRST;
+	    }
+	} else /*if (ki->kstat == KAN_ASCII_KAN)*/ {
+	    if (last >= bufsize-1)
+		return (i);
+	    if ((*makekanji)(ki->kpend, i, &c1, &c2)) {
+		buffer[last++] = make_ext_kanji(c1);
+		buffer[last++] = c2;
+	    } else {
+		get_onechar(c1);
+		get_onechar(c2);
+	    }
+	    ki->kstat = KAN_ASCII;
+	}
+    }
+    return (i);
+}
+
+int Fputc(textchar c, FILE *f)
+{
+    kaninfo *ki;
+
+    ki = &kanjiinfo[fileno(f)];
+    (*(ki->out_ch))(c, f, ki);
+    return 0;
+}
+
+int Fputs(FILE *f, const char *s)
+{
+    kaninfo *ki;
+    ki = &kanjiinfo[fileno(f)];
+    for (; *s; s++)
+	(*(ki->out_ch))(*s, f, ki);
+    return 0;
+}
+
+int out_ch_ascii(textchar c, FILE *f, kaninfo *ki)
+{
+    if (ki->kstat == KAN_EIGHT) {
+	putc(make_eightbit(c), f);
+	ki->kstat = KAN_ASCII;
+    } else if (is_ext_eightbit(c)) {
+	ki->kstat = KAN_EIGHT;
+    } else
+	putc(c, f);
+    return 0;
+}
+
+int out_ch_jis(textchar c, FILE *f, kaninfo *ki)
+{
+    textchar c1, c2;
+
+    if (ki->kstat == KAN_FIRST) {
+	TeXkanji2jis(ki->kpend, c, &c1, &c2);
+	putc(c1, f); putc(c2, f);
+	ki->kstat = KAN_SECOND;
+    } else if (ki->kstat == KAN_EIGHT) {
+	putc(make_eightbit(c), f);
+	ki->kstat = KAN_ASCII;
+    } else if (is_ext_kanji(c)) {
+	if (ki->kstat == KAN_ASCII) {
+	    putc(ESC, f); putc('$', f);
+	    putc(jis_esc_tab[ki->ktype].esc_in, f);
+	}
+	ki->kpend = de_ext_kanji(c);
+	ki->kstat = KAN_FIRST;
+    } else {
+	if (ki->kstat == KAN_SECOND) {
+	    putc(ESC, f); putc('(', f);
+	    putc(jis_esc_tab[ki->ktype].esc_out, f);
+	}
+	if (is_ext_eightbit(c)) {
+	    ki->kstat = KAN_EIGHT;
+	} else {
+	    putc(c, f);
+	    ki->kstat = KAN_ASCII;
+	}
+    }
+    return 0;
+}
+
+int out_ch_euc(textchar c, FILE *f, kaninfo *ki)
+{
+    textchar c1, c2;
+
+    if (ki->kstat == KAN_FIRST) {
+	TeXkanji2euc(ki->kpend, c, &c1, &c2);
+	putc(c1, f); putc(c2, f);
+	ki->kstat = KAN_SECOND;
+    } else if (is_ext_kanji(c)) {
+	ki->kpend = de_ext_kanji(c);
+	ki->kstat = KAN_FIRST;
+    } else {
+	putc(c, f);
+	ki->kstat = KAN_ASCII;
+    }
+    return 0;
+}
+
+int out_ch_sjis(textchar c, FILE *f, kaninfo *ki)
+{
+    textchar c1, c2;
+
+    if (ki->kstat == KAN_FIRST) {
+	TeXkanji2sj(ki->kpend, c, &c1, &c2);
+	putc(c1, f); putc(c2, f);
+	ki->kstat = KAN_SECOND;
+    } else if (is_ext_kanji(c)) {
+	ki->kpend = de_ext_kanji(c);
+	ki->kstat = KAN_FIRST;
+    } else {
+	putc(c, f);
+	ki->kstat = KAN_ASCII;
+    }
+    return 0;
+}
+
+/*
+ * Kanji conversion functions
+ */
+boolean jis2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    if (!is_eightbit(i2)) {
+	*c1 = i1;
+	*c2 = i2;
+	if (fix_kanji_range(c1, c2)) {
+#ifndef	TeX
+	    *c2 = *c2|0x80;
+#endif
+	    return true;
+	} else {
+	    *c1 = i1;
+	    *c2 = i2;
+	    return false;
+	}
+    } else {
+	*c1 = i1;
+	*c2 = i2;
+	return false;
+    }
+}
+
+void TeXkanji2jis(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    *c1 = i1;
+#ifdef	TeX
+    *c2 = i2;
+#else
+    *c2 = i2&0x7f;
+#endif
+}
+
+boolean euc2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    if (is_eightbit(i2)) {
+	*c1 = i1&0x7f;
+	*c2 = i2&0x7f;
+	if (fix_kanji_range(c1, c2)) {
+#ifndef	TeX
+	    *c2 = *c2|0x80;
+#endif
+	    return true;
+	} else {
+	    *c1 = i1;
+	    *c2 = i2;
+	    return false;
+	}
+    } else {
+	*c1 = i1;
+	*c2 = i2;
+	return false;
+    }
+}
+
+void TeXkanji2euc(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    *c1 = i1|0x80;
+    *c2 = i2|0x80;
+}
+
+boolean sj2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    if (i2 >= 0x9f) {
+	if (i1 >= 0xe0) *c1 = (i1 - 0xb0) * 2;
+	else *c1 = (i1 - 0x70) * 2;
+	*c2 = i2 - 0x7e;
+    } else {
+	if (i1 >= 0xe0) *c1 = (i1 - 0xb0) * 2 - 1;
+	else *c1 = (i1 - 0x70) * 2 - 1;
+	if (i2 >= 0x7f) *c2 = i2 - 0x20;
+	else *c2 = i2 -  0x1f;
+    }
+    if (fix_kanji_range(c1, c2)) {
+#ifndef	TeX
+	*c2 = *c2|0x80;
+#endif
+	return true;
+    } else {
+	*c1 = i1;
+	*c2 = i2;
+	return false;
+    }
+}
+
+void TeXkanji2sj(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+#ifndef	TeX
+    i2 &= 0x7f;
+#endif
+    if (i1 & 1) {
+	if (i1 < 0x5f) *c1 = i1/2 + 0x71;
+	else *c1 = i1/2 + 0xb1;
+	if (i2 >= 0x60) *c2 = i2 + 0x20;
+	else *c2 = i2 + 0x1f;
+    } else {
+	if (i1 < 0x5f) *c1 = i1/2 + 0x70;
+	else  *c1 = i1/2 + 0xb0;
+	*c2 = i2 + 0x7e;
+    }
+}
+
+boolean fix_kanji_range(textchar *c1, textchar *c2)
+{
+    if (*c1 < 0x21 || (*c1 >= 0x29 && *c1 <= 0x2f) || *c1 >= 0x75) {
+	*c1 = 0x22;
+	*c2 = 0x23;
+	return false;
+    }
+    return true;
+}
+
+boolean error_makekanji(textchar i1, textchar i2, textchar *c1, textchar *c2)
+{
+    fprintf(stderr, "\nImplementation error (eight-bit char).\n");
+    return false;
+}
+
+/*
+ * Initialize
+ */
+int str2code(char *code, int *iscode)
+{
+    *iscode = true;
+    if (strcmp(code, "ascii") == 0)
+	return ascii_only;
+    else if (strcmp(code, "jis") == 0)
+	return jis_6;
+    else if (strcmp(code, "jis7") == 0)
+	return jis7_6;
+    else if (strcmp(code, "euc") == 0)
+	return EUC;
+    else if (strcmp(code, "sjis") == 0)
+	return shift_jis;
+    else if ((strlen(code) == 1 && '0' <= *code && *code <= '6') ||
+	     strcmp(code, "10") == 0 ||
+	     (strlen(code) == 2 && *code == '1' &&
+	     '1' <= *(code+1) && *(code+1) <= '6') ||
+	     strcmp(code, "20") == 0)
+	return atoi(code);
+    else {
+	*iscode = false;
+	return ascii_only;
+    }
+}
+
+int hasargcode = false;
+static int argcode;
+
+void argkanjicode(char *code)
+{
+    int iscode;
+
+    hasargcode = true;
+    argcode = str2code(code, &iscode);
+    if (!iscode) {
+	argcode = jis_6;
+	fprintf(stderr, "No such file type %s, I will change it to jis (6).\n",
+		code);
+    }
+}
+
+int getargcode()
+{
+    return argcode;
+}
+
+int hasargterm = false;
+static int argterm;
+
+void argtermcode(code)
+char *code;
+{
+    int iscode;
+
+    hasargterm = true;
+    argterm = str2code(code, &iscode);
+    if (!iscode) {
+	argterm = jis_6;
+	fprintf(stderr, "No such terminal type %s, I will change it to jis (6).\n",
+		code);
+    }
+}
+
+int getargterm(void)
+{
+    return argterm;
+}
+
+void setinkanjitype(FILE *f, int ktype)
+{
+    kanjiinfo[fileno(f)].ktype = ktype;
+    kanjiinfo[fileno(f)].kstat = KAN_ASCII;
+    kanjiinfo[fileno(f)].in_ln = in_ln_tab[ktype];
+}
+
+void setoutkanjitype(FILE *f, int ktype)
+{
+    kanjiinfo[fileno(f)].ktype = ktype;
+    kanjiinfo[fileno(f)].kstat = KAN_ASCII;
+    kanjiinfo[fileno(f)].out_ch = out_ch_tab[ktype];
+}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/kanji.h
@@ -0,0 +1,107 @@
+/* Copyright (C) 1988-1998 Takafumi Sakurai
+ * Permission to use, copy, modify, and distribute this file for any
+ * purpose is hereby granted without fee, provided that both the above
+ * copyright notice and this permission appear in all copies.
+*/
+
+/* kanji type */
+#define	ascii_only	0
+#define	jis_1		1	/* The third byte for enter kanji is at sign
+				   and that for exit kanji is J */
+#define	jis_2		2	/* at sign and H */
+#define	jis_3		3	/* at sign and B */
+#define	jis_4		4	/* B and J */
+#define	jis_5		5	/* B and H */
+#define	jis_6		6	/* B and B */
+#define	shift_jis	10	/* shift jis code */
+#define	jis7_1		11	/* jis_1 with 8bit through */
+#define	jis7_2		12	/* jis_2 with 8bit through */
+#define	jis7_3		13	/* jis_3 with 8bit through */
+#define	jis7_4		14	/* jis_4 with 8bit through */
+#define	jis7_5		15	/* jis_5 with 8bit through */
+#define	jis7_6		16	/* jis_6 with 8bit through */
+#define	EUC		20	/* Extended Unix Code,
+				   eighth bit is on for both bytes */
+/* kanji state */
+/* input */
+#define	KAN_ASCII	0
+#define	KAN_JIS_FIRST	1
+#define	KAN_JIS_SECOND	2
+#define	KAN_ASCII_KAN	3
+/* output */
+#define	KAN_FIRST	1
+#define	KAN_SECOND	2
+#define	KAN_EIGHT	3
+
+#define	ESC		'\033'
+/*
+#define	KANJIBIT	0x80
+#define	isTeXkanji(c)	((c)&KANJIBIT)
+#define	makeTeXkanji(c)	((c)|KANJIBIT)
+#define	deTeXkanji(c)	((c)&~KANJIBIT)
+*/
+
+#define	EXTCHARBIT		0x80
+#define	is_ext_char(c)		((c)&EXTCHARBIT)
+#define	is_ext_eightbit(c)	((c)==EXTCHARBIT)
+#define	ext_eightbit		EXTCHARBIT
+#define	is_eightbit(c)		((c)&0x80)
+#define	make_eightbit(c)	((c)|0x80)
+#define	de_eightbit(c)		((c)&0x7f)
+#define	is_ext_kanji(c)		((c)>EXTCHARBIT)
+#define	make_ext_kanji(c)	((c)|EXTCHARBIT)
+#define	de_ext_kanji(c)		((c)&~EXTCHARBIT)
+
+typedef	unsigned char textchar;
+
+struct kan_info {
+    char ktype, kstat;
+    textchar kpend;
+    int (*in_ln)(FILE *, struct kan_info *);
+    int (*out_ch)(textchar, FILE *, struct kan_info *);
+};
+typedef struct kan_info  kaninfo;
+
+extern int hasargcode;
+extern int hasargterm;
+extern kaninfo kanjiinfo[];
+
+int in_ln_ascii(FILE *f, kaninfo *ki);
+int in_ln_jis(FILE *f, kaninfo *ki);
+int in_ln_jis7(FILE *f, kaninfo *ki);
+int in_ln_sjis(FILE *f, kaninfo *ki);
+int in_ln_gen(FILE *, kaninfo *, int (*checkkanji)(textchar, kaninfo *),
+  boolean (*makekanji)(textchar, textchar, textchar *, textchar *));
+
+int out_ch_ascii(textchar, FILE *, kaninfo *);
+int out_ch_jis(textchar, FILE *, kaninfo *);
+int out_ch_sjis(textchar, FILE *, kaninfo *);
+int out_ch_euc(textchar, FILE *, kaninfo *);
+
+int check_eightbit(textchar, kaninfo *);
+int check_euc_kanji(textchar, kaninfo *);
+int check_sj_kanji(textchar, kaninfo *);
+
+void get_onechar(textchar);
+
+boolean jis2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2);
+boolean euc2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2);
+boolean sj2TeXkanji(textchar i1, textchar i2, textchar *c1, textchar *c2);
+boolean error_makekanji(textchar i1, textchar i2, textchar *c1, textchar *c2);
+void TeXkanji2jis(textchar i1, textchar i2, textchar *c1, textchar *c2);
+void TeXkanji2euc(textchar i1, textchar i2, textchar *c1, textchar *c2);
+void TeXkanji2sj(textchar i1, textchar i2, textchar *c1, textchar *c2);
+
+int Fputc(textchar, FILE *);
+int Fputs(FILE *f, const char *s);
+boolean fix_kanji_range(textchar *c1, textchar *c2);
+int str2code(char *, int *);
+void argkanjicode(char *);
+void argtermcode(char *);
+
+void setoutkanjitype(FILE *, int);
+void setinkanjitype(FILE *, int);
+
+int getargcode(void);
+int getargterm(void);
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jbib-new.tex
@@ -0,0 +1,17 @@
+%\documentstyle{jarticle}
+%\documentstyle[jipsjcite]{jarticle}
+\documentstyle[ipsjcite]{jarticle}
+
+
+\begin{document}
+\nocite{*}
+
+\bibliography{xampl}
+%\bibliographystyle{jplain}
+%\bibliographystyle{junsrt}
+%\bibliographystyle{jalpha}
+%\bibliographystyle{jabbrv}
+\bibliographystyle{tipsj}
+%\bibliographystyle{jipsj}
+\end{document}
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jbib-sin.tex
@@ -0,0 +1,12 @@
+\documentstyle[jtwocolumn,tieiccite]{jarticle}	   % tipsj.bst
+
+\begin{document}
+\section{Ϥ}
+
+ϥƥȤΤΤΤǤꡢƤϤɤǤ褤
+ʸϤǤ\nocite{*}
+
+\bibliography{sin}
+\bibliographystyle{tieic}
+\end{document}
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jexampl.aux
@@ -0,0 +1,6 @@
+\relax 
+\citation{EUCܸTeX}
+\citation{JSAI-1}
+\citation{*}
+\bibdata{jxampl}
+\bibstyle{jplain}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jexampl.bbl
@@ -0,0 +1,525 @@
+\newcommand{\noopsort}[1]{} \newcommand{\printfirst}[2]{#1}
+  \newcommand{\singleletter}[1]{#1} \newcommand{\switchargs}[2]{#2#1}
+\begin{thebibliography}{10}
+
+\bibitem{article-minimal}
+L[eslie]~A. Aamport.
+\newblock The gnats and gnus document preparation system.
+\newblock {\em \mbox{G-Animal's} Journal}, 1986.
+
+\bibitem{article-full}
+L[eslie]~A. Aamport.
+\newblock The gnats and gnus document preparation system.
+\newblock {\em \mbox{G-Animal's} Journal}, Vol.~41, No.~7, pp. 73+, July 1986.
+\newblock This is a full ARTICLE entry.
+
+\bibitem{article-crossref}
+L[eslie]~A. Aamport.
+\newblock The gnats and gnus document preparation system.
+\newblock In {\em \mbox{G-Animal's} Journal\/} \cite{whole-journal}, pp. 73+.
+\newblock This is a cross-referencing ARTICLE entry.
+
+\bibitem{maru}
+̣Ϻ.
+\newblock 񤭤ʸ񤱤мȥޥˤʤ.
+\newblock ȤϤɴƹ, ̴37, p.~25, 1986.
+
+\bibitem{ama}
+M.~Amamiya, R.~Hasegawa, and H.~Mikami.
+\newblock List processing with data flow machine.
+\newblock In E.~Goto, Oozei Sonota, et~al., editors, {\em RIMS Symposium on
+  Software Science and Engineering}, pp. 165--190. Springer-Verlag, 1982.
+
+\bibitem{Arv}
+Kathall~V. Arvind and K.~Pingali.
+\newblock A data flow architecture with tagged tokens.
+\newblock MIT LCS Momo TM174, 1980.
+
+\bibitem{whole-journal-j}
+Big TomorrowǤʤSmall Yesterday, Vol.~41, No.~7, July 1986.
+\newblock ˤƼȴƽ뤫٤뤫ý桪
+
+\bibitem{cha}
+V.~Chachra, P.~M. Chare, and J.~M. Moore.
+\newblock {\em Applications of Graph Theory Algorithms}.
+\newblock Elsevier North Holland, 1979.
+
+\bibitem{costa}
+J.~M. Costa and A.~N. Venetsanopoulos.
+\newblock Design of circularly symmetric two-demensional recursive filters.
+\newblock {\em IEEE Trans. Acoust., Speech \& Signal Process.}, Vol. ASSP-22,
+  No.~6, pp. 432--443, 1974.
+
+\bibitem{dav}
+D.~Davidson, D.~Landskov, B.~D. Shriver, and P.~W. Maliett.
+\newblock Some experiments in local microcodes compaction for horizontal
+  machines.
+\newblock {\em IEEE Transactions on Computers}, Vol. C-30, No.~7, pp. 460--477,
+  July 1981.
+
+\bibitem{den}
+J.~B. Dennis and D.~P. Misunas.
+\newblock A preliminary architecture for a basic data flow processor.
+\newblock In {\em Proc. of the 2nd Int'l Symp. on Computer Architecture}, pp.
+  126--132, January 1975.
+
+\bibitem{inbook-full-j}
+ɥʥɡå.
+\newblock ܻˡ, 󤷷׻΢, 1, 1.2, pp. 10--119.
+\newblock , , Ĵۻ, 2, 41 1963.
+\newblock .
+
+\bibitem{dug}
+D.~E. Dudgen and R.~M. Mersereau.
+\newblock {\em Multideimensional digital signal processing}.
+\newblock Prentice-Hall, 1984.
+
+\bibitem{fis}
+J.~A. Fisher.
+\newblock Trace scheduling: A techinique for global microcode compaction.
+\newblock {\em IEEE Transactions on Computers}, Vol. C-30, No.~7, pp. 478--490,
+  1981.
+
+\bibitem{whole-journal}
+{\em \mbox{G-Animal's} Journal}, Vol.~41, No.~7, July 1986.
+\newblock The entire issue is devoted to gnats and gnus (this entry is a
+  cross-referenced ARTICLE (journal)).
+
+\bibitem{gajski}
+D.~D. Gajski, D.~A. Padua, D.~J. Kuck, and R.~H. Kuhn.
+\newblock A second optinion on data flow machines and languages.
+\newblock {\em Computer}, Vol.~15, No.~2, pp. 58--69, February 1982.
+
+\bibitem{reduce}
+ƣѰ, 쾾, ɸԡ.
+\newblock ׻ˤΤ.
+\newblock ԥ塼\ {\bf bit}\ ̺. Ω, 1986.
+
+\bibitem{goto}
+ƣѰ.
+\newblock ׻ˤȤ.
+\newblock  ƣѰ, 쾾, ɸԡ, ׻ˤΤ,
+  ԥ塼\ {\bf bit}\ ̺, pp. 4--6. Ω, 61-4.
+
+\bibitem{grosz}
+B.~Grosz.
+\newblock The representation and use of focus in a system for understanding
+  dialog.
+\newblock In B.~Grosz, K.~S. Jones, and B.~L. Webber, editors, {\em Natural
+  Language Processing}, pp. 353--362. Morgan Kaufram Publisher, 1979, in part
+  1986.
+
+\bibitem{inbook-crossref-j-1}
+ɥʥɡϥå.
+\newblock {ϤƤJBibTeXing}, 3.5.
+\newblock Ǥ狼뤫ʡֺ, 13 \cite{whole-set-j}, 1,
+  {\noopsort{1973b}}1973.
+\newblock ʸꥹ⻲Ȥ򤷤ƤINBOOK㡪
+
+\bibitem{incol-full-j-1}
+ɥʥɡϥå.
+\newblock  {ˤJBibTeXing}, Ǥ狼뤫ʡֺ, No.~1, 6.2, p. 321.
+  ˭, , ϶, 1, 117 1991.
+\newblock ƥ.
+
+\bibitem{whole-set-j}
+ɥʥɡϥå.
+\newblock Ǥ狼뤫ʡֺ, 13.
+\newblock ˭, , ϶, 1991.
+\newblock
+  13ͽϤƤ뤬ڤʤԤΤȤ顩ϥ꡼Τ%
+ȤƤ㡥
+
+\bibitem{inbook-crossref-j}
+ɥʥɡϥå.
+\newblock {ˤJBibTeXing}, 3.5.
+\newblock Ǥ狼뤫ʡֺ, 1 \cite{whole-set-j}, 1, 1991.
+\newblock ʸꥹ⻲Ȥ򤷤ƤINBOOK㡣
+
+\bibitem{ha}
+;˧, ľ, ϰ.
+\newblock ̵ƻ͢ƥཽϩնΥǥ벽Ȥβ.
+\newblock ŻҾ̿زʸ(A), Vol. J64-A, No.~10, pp. 835--842, 1982.
+
+\bibitem{dss}
+Clyde~W. Holsapple and Andrew~B. Whinston, editors.
+\newblock {\em Decision Support Systems: Theory and Application}.
+\newblock North-Holland, 1987.
+
+\bibitem{la}
+Masao Iri, Kazuo Murota, and Shouichi Matsui.
+\newblock Linear-time approximation algorithms for finding the minimum-weight
+  perfect matching on a plane.
+\newblock {\em Information Processing Letters}, Vol.~12, pp. 206--209, 1981.
+
+\bibitem{}
+꽨.
+\newblock How to use {\JLaTeX}.
+\newblock memo for {\JLaTeX}, 1987.
+
+\bibitem{JSAI-1}
+͹ǽز, Vol.~5, No.~4, July 1990.
+\newblock ýʬ͹ǽ.
+
+\bibitem{cvs}
+.
+\newblock {CVSѥݡ}, 52.
+
+\bibitem{whole-set}
+Donald~E. Knuth.
+\newblock {\em The Art of Computer Programming}.
+\newblock Four volumes. Addison-Wesley,
+  {\noopsort{1973a}}{\switchargs{--90}{1968}}.
+\newblock Seven volumes planned (this is a cross-referenced set of BOOKs).
+
+\bibitem{inbook-minimal}
+Donald~E. Knuth.
+\newblock {\em Fundamental Algorithms}, chapter 1.2.
+\newblock Addison-Wesley, {\noopsort{1973b}}1973.
+
+\bibitem{inbook-full}
+Donald~E. Knuth.
+\newblock {\em Fundamental Algorithms}, Vol.~1 of {\em The Art of Computer
+  Programming}, section 1.2, pp. 10--119.
+\newblock Addison-Wesley, Reading, Massachusetts, second edition, 10~January
+  {\noopsort{1973b}}1973.
+\newblock This is a full INBOOK entry.
+
+\bibitem{inbook-crossref}
+Donald~E. Knuth.
+\newblock {\em Fundamental Algorithms}, section 1.2.
+\newblock Vol.~1 of {\em The Art of Computer Programming\/} \cite{whole-set},
+  second edition, {\noopsort{1973b}}1973.
+\newblock This is a cross-referencing INBOOK entry.
+
+\bibitem{book-minimal}
+Donald~E. Knuth.
+\newblock {\em Seminumerical Algorithms}.
+\newblock Addison-Wesley, {\noopsort{1973c}}1981.
+
+\bibitem{book-full}
+Donald~E. Knuth.
+\newblock {\em Seminumerical Algorithms}, Vol.~2 of {\em The Art of Computer
+  Programming}.
+\newblock Addison-Wesley, Reading, Massachusetts, second edition, 10~January
+  {\noopsort{1973c}}1981.
+\newblock This is a full BOOK entry.
+
+\bibitem{book-crossref}
+Donald~E. Knuth.
+\newblock {\em Seminumerical Algorithms}.
+\newblock Vol.~2 of {\em The Art of Computer Programming\/} \cite{whole-set},
+  second edition, {\noopsort{1973c}}1981.
+\newblock This is a cross-referencing BOOK entry.
+
+\bibitem{booklet-minimal}
+The programming of computer art.
+
+\bibitem{booklet-full}
+Jill~C. Knvth.
+\newblock The programming of computer art.
+\newblock Vernier Art Center, Stanford, California, February 1988.
+\newblock This is a full BOOKLET entry.
+
+\bibitem{ƣ}
+ƣ, ¼.
+\newblock ϩˡ˴ŤͳֻˡѤ㳲ʪưײ.
+\newblock ܥܥåȳز, Vol.~5, No.~4, pp. 263--272, 1987.
+
+\bibitem{sym}
+Janusz~S. Kowalik, editor.
+\newblock {\em Coupling Symbolic and Numerical Computing in Expert Systems}.
+\newblock North-Holland, 1986.
+
+\bibitem{incollection-minimal}
+Daniel~D. Lincoll.
+\newblock Semigroups of recurrences.
+\newblock In {\em High Speed Computer and Algorithm Organization}. Academic
+  Press, 1977.
+
+\bibitem{incollection-full}
+Daniel~D. Lincoll.
+\newblock Semigroups of recurrences.
+\newblock In David~J. Lipcoll, D.~H. Lawrie, and A.~H. Sameh, editors, {\em
+  High Speed Computer and Algorithm Organization}, No.~23 in Fast Computers,
+  part~3, pp. 179--183. Academic Press, New York, third edition, September
+  1977.
+\newblock This is a full INCOLLECTION entry.
+
+\bibitem{incollection-crossref}
+Daniel~D. Lincoll.
+\newblock Semigroups of recurrences.
+\newblock In Lipcoll, et~al. \cite{whole-collection}, pp. 179--183.
+\newblock This is a cross-referencing INCOLLECTION entry.
+
+\bibitem{whole-collection}
+David~J. Lipcoll, D.~H. Lawrie, and A.~H. Sameh, editors.
+\newblock {\em High Speed Computer and Algorithm Organization}.
+\newblock No.~23 in Fast Computers. Academic Press, New York, third edition,
+  September 1977.
+\newblock This is a cross-referenced BOOK (collection) entry.
+
+\bibitem{manual-minimal}
+{\em The Definitive Computer Manual}.
+
+\bibitem{manual-full}
+Larry Manmaker.
+\newblock {\em The Definitive Computer Manual}.
+\newblock Chips-R-Us, Silicon Valley, silver edition, April-May 1986.
+\newblock This is a full MANUAL entry.
+
+\bibitem{mastersthesis-minimal}
+{\'{E}}douard Masterly.
+\newblock Mastering thesis writing.
+\newblock Master's thesis, Stanford University, 1988.
+
+\bibitem{mastersthesis-full}
+{\'{E}}douard Masterly.
+\newblock Mastering thesis writing.
+\newblock Master's project, Stanford University, English Department,
+  June-August 1988.
+\newblock This is a full MASTERSTHESIS entry.
+
+\bibitem{EUCܸTeX}
+.
+\newblock {NTT}ܸ{\TeX}: {\JTeX}λȤ, May 1988.
+\newblock  󥷥ƥ .
+
+\bibitem{դ̵}
+, .
+\newblock դΤʤưɽ.
+\newblock زʸ, Vol.~21, No.~4, pp. 306--313, 1980.
+
+\bibitem{fp}
+Shouichi Matsui and Masao Iri.
+\newblock An overflow/underflow-free floating-point representation of numbers.
+\newblock {\em Journal of Information Processing}, Vol.~4, No.~3, pp. 123--133,
+  November 1981.
+
+\bibitem{multi}
+, ĸ, 粰δ, ⶶ.
+\newblock ޥǥѤջ׷ٱ祷ƥγȯ.
+\newblock  ѼԻָξ󥷥ƥץݥͽƽ, pp. 39--48.
+  ز, July 1986.
+
+\bibitem{mcclella}
+J.~H. McClellan.
+\newblock The design of two-dimensional digital filters by transformation.
+\newblock In {\em Proc. 7th Annu. Princeton Conf. Inform. Sci. \& Systm.}, pp.
+  247--251, 1973.
+
+\bibitem{misc-minimal}
+This is a minimal MISC entry.
+
+\bibitem{misc-full}
+Joe-Bob Missilany.
+\newblock Handing out random pamphlets in airports.
+\newblock Handed out at O'Hare, October 1984.
+\newblock This is a full MISC entry.
+
+\bibitem{}
+¼, , , δͺ.
+\newblock μŪˡ˴ŤϹݹ¤ʪμ̿ͽ¬.
+\newblock ڳزʸ, No. 368/I-5, pp. 301--310, April 1986.
+
+\bibitem{newman}
+J.~R. Norman.
+\newblock {\em The World of Mathematics, 4 vols.}
+\newblock Simon and Schuster, 1956.
+\newblock (~:  ͺϯ~: ``ؤ'', ޽(1970)).
+
+\bibitem{inproceedings-minimal}
+Alfred~V. Oaho, Jeffrey~D. Ullman, and Mihalis Yannakakis.
+\newblock On notions of information transfer in {VLSI} circuits.
+\newblock In {\em Proc. Fifteenth Annual ACM Symposium on the Theory of
+  Computing}, 1983.
+
+\bibitem{inproceedings-full}
+Alfred~V. Oaho, Jeffrey~D. Ullman, and Mihalis Yannakakis.
+\newblock On notions of information transfer in {VLSI} circuits.
+\newblock In Wizard~V. Oz and Mihalis Yannakakis, editors, {\em Proc. Fifteenth
+  Annual ACM Symposium on the Theory of Computing}, No.~17 in All ACM
+  Conferences, pp. 133--139, Boston, March 1983. The OX Association for
+  Computing Machinery, Academic Press.
+\newblock This is a full INPROCEDINGS entry.
+
+\bibitem{inproceedings-crossref}
+Alfred~V. Oaho, Jeffrey~D. Ullman, and Mihalis Yannakakis.
+\newblock On notions of information transfer in {VLSI} circuits.
+\newblock In OX{\singleletter{stoc}} \cite{whole-proceedings}, pp. 133--139.
+\newblock This is a cross-referencing INPROCEEDINGS entry.
+
+\bibitem{onda}
+H.~Onda, T.~Hasegawa, and T.~Matsui.
+\newblock Collision avoidance for a 6-dof manipulator based on empty space
+  analysis of 3-d real world.
+\newblock In {\em IEEE Int. Workshop on Intelligent Robots and Systems},
+  Ibaraki, 1990.
+
+\bibitem{whole-proceedings}
+The OX Association for Computing Machinery.
+\newblock {\em Proc. Fifteenth Annual Symposium on the Theory of Computing},
+  Boston, 1983.
+\newblock This is a cross-referenced PROCEEDINGS.
+
+\bibitem{proceedings-minimal}
+{\em Proc. Fifteenth Annual Symposium on the Theory of Computing}, 1983.
+
+\bibitem{proceedings-full}
+Wizard~V. Oz and Mihalis Yannakakis, editors.
+\newblock {\em Proc. Fifteenth Annual Symposium on the Theory of Computing},
+  No.~17 in All ACM Conferences, Boston, March 1983. The OX Association for
+  Computing Machinery, Academic Press.
+\newblock This is a full PROCEEDINGS entry.
+
+\bibitem{̾ɽ}
+ޡԡ.
+\newblock ܿͤαѸ.
+\newblock ȿ() 18. ȽŹ, April 1988.
+\newblock pp. 187--189 ѸǤܿͤ̾ν,
+  ܤιݲΤˤ夫ιͤ򤳤ΤǤ᤿ɤ
+  Shouichi Matsui Ǥʤ Matsui Shouichi.
+
+\bibitem{phdthesis-minimal}
+F.~Phidias Phony-Baloney.
+\newblock {\em Fighting Fire with Fire: Festooning {F}rench Phrases}.
+\newblock PhD thesis, Fanstord University, 1988.
+
+\bibitem{phdthesis-full}
+F.~Phidias Phony-Baloney.
+\newblock {\em Fighting Fire with Fire: Festooning {F}rench Phrases}.
+\newblock {PhD} dissertation, Fanstord University, Department of French,
+  June-August 1988.
+\newblock This is a full PHDTHESIS entry.
+
+\bibitem{Rich}
+Elaine~A. Rich.
+\newblock {\em Artificial Intelligence}.
+\newblock McGraw-Hill Series in Artificial Intelligence. McGraw-Hill Book
+  Company, 1983.
+\newblock (~: ע, ¼ ~: ``͹ǽ I, II'',ޥҥ(1984)).
+
+\bibitem{ƣ}
+ƣ.
+\newblock ܸ{\TeX}:~{\JTeX}.
+\newblock DECUS7󥷥ݥջ, 1987.
+
+\bibitem{sakawa}
+M.~Sakawa and H.~Yano.
+\newblock Interactive decision making for multiobjective linear programming
+  problems with fuzzy parameters.
+\newblock In G.~Fandel, M.~Grauer, A.~Kurzhanski, and A.~P. Wierzbiki, editors,
+  {\em Large-Scale Modeling and Interactive Decision Analysis, Proceedings,
+  Eisenach, GDR}, pp. 88--96. Springer-Verlag, 1986.
+
+\bibitem{cm}
+Amilcar Sernads and Cristina Sernads.
+\newblock Conceptual modeling for knowledge-based dss development.
+\newblock In Clyde~W. Holsapple and Andrew~B. Whinston, editors, {\em Decision
+  Support Systems: Theory and Application}, pp. 91--135. North-Holland, 1987.
+
+\bibitem{eda}
+F.~N. Springsteel.
+\newblock A multilevel expert system for explaratory data analysis.
+\newblock In Janusz~S. Kowalik, editor, {\em Coupling Symbolic and Numerical
+  Computing in Expert Systems}, pp. 295--306. North-Holland, 1986.
+
+\bibitem{suna86}
+H.~Sunahara and M.~Tokoro.
+\newblock On the working set concept for data-flow machines: Policies and their
+  evaluation.
+\newblock In J.~V. Woods, editor, {\em Fifth Generation Computer
+  Architectures}, pp. 147--160. North-Holland, 1986.
+
+\bibitem{suna1}
+, 꿿ͺ.
+\newblock ǡư׻μ¹˴ؤͻ.
+\newblock  ǡեå'86, pp. 83--89, May 1986.
+
+\bibitem{suna2}
+Hideki Sunahara and Mario Tokoro.
+\newblock Half-dynamic scheduling with data-flow control.
+\newblock In {\em Presented at Int'l Conf. on SuperComputing}, Athens, Greece,
+  June 8--12 1987.
+
+\bibitem{techreport-minimal}
+Tom Terrific.
+\newblock An {$O(n \log n / \! \log\log n)$} sorting algorithm.
+\newblock Technical report, Fanstord University, 1988.
+
+\bibitem{techreport-full}
+Tom T{\'{e}}rrific.
+\newblock An {$O(n \log n / \! \log\log n)$} sorting algorithm.
+\newblock Wishful Research Result~7, Fanstord University, Computer Science
+  Department, Fanstord, California, October 1988.
+\newblock This is a full TECHREPORT entry.
+
+\bibitem{toko2}
+M.~Tokoro, J.~R. Jagannathan, and H.~Sunahara.
+\newblock On the working set concepts for data-flow machines.
+\newblock In {\em Proc. of the 10th Int'l Symp. on Computer Architecture}, pp.
+  90--97, June 1983.
+
+\bibitem{toko1}
+M.~Tokoro, E.~Tamura, and T.~Takizuka.
+\newblock Optimization of microprograms.
+\newblock {\em IEEE Transactions on Computers}, Vol. C-30, No.~7, pp. 491--504,
+  July 1981.
+
+\bibitem{article-crossref-j}
+ƿ̾˾.
+\newblock ʸ¤΢ޤ.
+\newblock  Big TomorrowǤʤSmall Yesterday \cite{whole-journal-j}, pp. 73+.
+\newblock ʸꥹ⻲ȤƤARTICLE.
+
+\bibitem{article-crossref-jj}
+ƿ̾˾.
+\newblock ʸ¤΢ޤΣ.
+\newblock  Big TomorrowǤʤSmall Yesterday \cite{whole-journal-j}, pp. 83+.
+\newblock ʸꥹ⻲ȤƤARTICLE.
+
+\bibitem{unpublished-minimal}
+Ulrich {\"{U}}nderwood, Ned {\~N}et, and Paul {\={P}}ot.
+\newblock Lower bounds for wishful research results.
+\newblock Talk at Fanstord University (this is a minimal UNPUBLISHED entry).
+
+\bibitem{unpublished-full}
+Ulrich {\"{U}}nderwood, Ned {\~N}et, and Paul {\={P}}ot.
+\newblock Lower bounds for wishful research results.
+\newblock Talk at Fanstord University (this is a full UNPUBLISHED entry),
+  November, December 1988.
+
+\bibitem{random-note-crossref}
+Volume~2 is listed under Knuth \cite{book-full}.
+
+\bibitem{marumoji}
+쿿.
+\newblock ξʸθ.
+\newblock ̼, 1986.
+
+\bibitem{-h}
+꽨.
+\newblock How to use {\JLaTeX}.
+\newblock memo for {\JLaTeX}, 1987.
+
+\bibitem{goto-h}
+ƣѰ.
+\newblock ׻ˤȤ.
+\newblock  ƣۤ \cite{reduce}, pp. 4--6.
+
+\bibitem{ƣ-h}
+ƣ.
+\newblock ܸ{\TeX}:~{\JTeX}.
+\newblock DECUS7󥷥ݥջ, 1987.
+
+\bibitem{multi-h}
+, ĸ, 粰δ, ⶶ.
+\newblock ޥǥѤջ׷ٱ祷ƥγȯ.
+\newblock  ѼԻָξ󥷥ƥץݥͽƽ, pp. 39--48.
+  ز, July 1986.
+
+\bibitem{ssl}
+ٻ.
+\newblock SSL~IIѼ, 1980.
+
+\end{thebibliography}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jexampl.tex
@@ -0,0 +1,36 @@
+\documentclass{j-article}
+%\documentstyle{j-article}
+%\documentstyle{jarticle}
+%\documentstyle[jtwocolumn,jipsjcite]{jarticle}    % jipsj.bst
+%\documentstyle[jtwocolumn,ipsjcite]{jarticle}	   % tipsj.bst
+%\documentstyle[jtwocolumn,tieicecite]{jarticle}   % tieice.bst
+%\documentstyle[jtwocolumn,jssstcite]{jarticle}    % jssst.bst
+%\documentstyle[jtwocolumn,jsaicite]{jarticle}	   % jsai.bst
+%
+\def\JTeX{\leavevmode\lower .5ex\hbox{J}\kern-.17em\TeX}
+\def\JLaTeX{\leavevmode\lower.5ex\hbox{J}\kern-.17em\LaTeX}
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+\def\JBibTeX{\leavevmode\lower .6ex\hbox{J}\kern-0.15em\BibTeX}
+%
+\begin{document}
+ƥѤΥɥȤǤ \cite{EUCܸTeX,JSAI-1}
+
+\nocite{*}
+
+\bibliography{jxampl}
+
+\bibliographystyle{jplain}
+%\bibliographystyle{junsrt}
+%\bibliographystyle{jalpha}
+%\bibliographystyle{jabbrv}
+%\bibliographystyle{tipsj}
+%\bibliographystyle{jipsj}
+%\bibliographystyle{tieice}
+%\bibliographystyle{jorsj}
+%\bibliographystyle{jname}
+%\bibliographystyle{jssst}
+%\bibliographystyle{jsai}
+
+\end{document}
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jplain.bst
@@ -0,0 +1,1392 @@
+	% version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+	% Copyright (C) 1990, all rights reserved.
+	%
+	% This file is derived from btxbst.doc of BibTeX 0.99c
+	%
+	% Copying of this file is authorized only if either
+	% (1) you make absolutely no changes to your copy, including name, or
+	% (2) if you do make changes, you name it something other than
+	% jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+	% tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+	%
+	% This restriction helps ensure that all standard styles are identical.
+	% The file jbtxbst.doc has the documentation for this style.
+	%
+	% Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+	% these standard styles or in this documentation file.
+	%    () ꡡ󸦵  ʳ
+	% Last update 1994-10-25
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+    yomi
+  }
+  {is.kanji.entry}
+
+  { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+
+    { ", " * write$ }
+
+    { output.state after.block =
+	{ 
+
+          add.period$ write$
+
+	  newline$
+	  "\newblock " write$
+	}
+
+	{ output.state before.all =
+	    'write$
+
+	    { add.period$ " " * write$ }
+
+	  if$
+	}
+
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+  "\bibitem{" write$
+
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{ 
+
+  add.period$
+
+  write$
+  newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+    'skip$
+    { after.block 'output.state := }
+
+  if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+	'skip$
+	{ after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { duplicate$ is.kanji.str$
+	'skip$
+	{ "{\em " swap$ * "}" * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+
+    { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+	{s nameptr "{ff}{ll}" format.name$ 't :=}
+ 	{s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+      if$
+
+      nameptr #1 >
+	{ namesleft #1 >
+
+	    {", " * t * }
+
+
+	    { t "others" =
+
+ 		{ s is.kanji.str$
+
+ 			{"ۤ" * }
+
+
+ 			{", et~al." * }
+
+ 		  if$
+ 		}
+ 		{ s is.kanji.str$
+
+ 		    {", " * t * }
+
+
+
+		    { numnames #2 =
+ 			{" and " * t * }
+ 			{", and " * t * }
+		      if$
+		    }
+
+
+ 		   if$
+ 		}
+	      if$
+	    }
+	  if$
+	}
+	't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+
+    { author format.names }
+
+  if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+
+    { editor format.names
+
+      editor num.names$ #1 >
+ 	{ editor is.kanji.str$
+
+ 		{"ԡ" * } {", editors" * } if$
+
+ 	}
+ 	{ editor is.kanji.str$
+
+ 		{"ԡ" *} {", editor" * } if$
+
+ 	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+
+{ title empty$
+
+    { "" }
+
+
+    { title "t" change.case$ }
+
+
+  if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+	{ t #1 #2 substring$ "--" = not
+	    { "--" *
+	      t #2 global.max$ substring$ 't :=
+	    }
+	    {   { t #1 #1 substring$ "-" = }
+		{ "-" *
+		  t #2 global.max$ substring$ 't :=
+		}
+	      while$
+	    }
+	  if$
+	}
+	{ t #1 #1 substring$ is.kanji.str$
+	  { t #1 #2 substring$ *
+	    t #3 global.max$ substring$ 't :=
+	  }
+	  { t #1 #1 substring$ *
+	    t #2 global.max$ substring$ 't :=
+	  }
+	  if$
+	}
+      if$
+    }
+  while$
+}
+FUNCTION {format.date}
+
+{ year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+	  month
+	}
+      if$
+    }
+    { month empty$
+	'year
+	{ month " " * year * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.btitle}
+
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { volume is.kanji.str$
+	{ volume }
+	{ is.kanji.entry
+	    {"" volume * "" *}
+	    {"Vol." volume tie.or.space.connect}
+	  if$
+	}
+      if$
+      series empty$
+	'skip$
+	{ series is.kanji.str$
+	    { volume empty$
+		{series swap$ * }
+
+		{series ", " * swap$ * }
+
+	      if$
+	    }
+	    { " of " * series emphasize * }
+	  if$
+	}
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+	{ series field.or.null }
+	{ number is.kanji.str$ 
+	    { number }
+	    {"No." number tie.or.space.connect}
+	  if$
+	  series empty$
+	    { "there's a number but no series in " cite$ * warning$ }
+	    { series is.kanji.str$
+
+	        { series ", " * swap$ * }
+
+	        { " in " * series * }
+	      if$
+	    }
+	  if$
+	}
+      if$
+    }
+    { "" }
+  if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { edition is.kanji.str$
+	{ edition }
+        { is.kanji.entry
+	    {"" edition * "" *}
+	    { output.state mid.sentence =
+	      { edition "l" change.case$ " edition" * }
+	      { edition "t" change.case$ " edition" * }
+              if$
+	    }
+	  if$
+        }
+      if$
+    }
+  if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+	{ #1 'multiresult := }
+	{ t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+
+ 	{ "pp." pages n.dashify tie.or.space.connect }
+	{ "p." pages tie.or.space.connect }
+
+      if$
+    }
+  if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+     {""}
+
+
+     { volume is.kanji.str$
+        {volume  ", " * }
+        {"Vol." volume tie.or.space.connect ", " * }
+       if$
+     }
+
+
+  if$
+  number empty$
+    'skip$
+
+    { number is.kanji.str$
+        {number *}
+        {"No." number tie.or.space.connect *}
+      if$
+
+      volume empty$
+	{ "there's a number but no volume in " cite$ * warning$ }
+	'skip$
+      if$
+    }
+  if$
+  pages empty$
+    'skip$
+    { duplicate$ empty$
+	{ pop$ format.pages }
+	{ number empty$
+
+ 	    { format.pages * }
+ 	    { ", " * format.pages * }
+
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+	{ chapter is.kanji.str$
+	    { "" }
+	    { is.kanji.entry
+		{""}
+		{"chapter"}
+	      if$
+	    }
+	  if$
+	}
+	{ type "l" change.case$ }
+      if$
+      chapter is.kanji.str$ not is.kanji.entry and
+          {"" chapter * swap$ *}
+          { chapter is.kanji.str$
+		{chapter *}
+		{chapter tie.or.space.connect}
+	    if$
+	  }
+      if$
+      pages empty$
+	'skip$
+
+	{ ", " * format.pages * }
+
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+ 	{ booktitle is.kanji.str$
+ 	    { " " booktitle emphasize * }
+
+ 	    { "In " booktitle emphasize * }
+
+ 	  if$
+ 	}
+ 	{ booktitle is.kanji.str$
+
+ 	    { " " format.editors * ", " * booktitle * }
+
+
+ 	    { "In " format.editors * ", " * booktitle emphasize * }
+
+ 	  if$
+ 	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+
+  key empty$ not and
+
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+ 	{ title is.kanji.str$
+ 	    { " " journal *  }
+
+  	    { "In {\em " journal * "\/}" * }
+
+          if$
+	}
+      if$
+    }
+    { title is.kanji.str$
+ 	{ " " key * }
+
+  	{ "In " key * }
+
+      if$
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+     {editor #1 "{ff}" format.name$ duplicate$
+
+      empty$
+ 	{pop$ editor #1 "{ll}" format.name$}
+ 	'skip$
+      if$
+      }
+
+      {editor #1 "{vv~}{ll}" format.name$}
+
+  if$
+  editor num.names$ duplicate$
+  #2 >
+    { editor is.kanji.str$
+
+	  {pop$ "ۤ" *} {pop$ ", et~al." * } if$
+
+    }
+    { #2 <
+	'skip$
+
+	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ 	    { editor is.kanji.str$
+
+ 		{"ۤ" *} {", et~al." * } if$
+
+ 	    }
+ 	    { editor is.kanji.str$
+ 		{
+
+		  ", " *
+
+ 		   editor #2 "{ff}" format.name$ duplicate$
+ 		   empty$
+ 			{pop$ editor #2 "{ll}" format.name$}
+ 			'skip$
+ 		   if$
+ 		 *
+ 		}
+ 		{" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ 	      if$
+ 	    }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+       title is.kanji.str$
+
+ 	{"  "} {"In "} if$
+
+    }
+    { volume is.kanji.str$
+	{ volume }
+	{ is.kanji.entry
+	    {"" volume * "" *}
+	    {"Vol." volume tie.or.space.connect " of " *  }
+	  if$
+	}
+      if$
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+	{ series empty$
+	    { "need editor, key, or series for " cite$ * " to crossref " *
+	      crossref * warning$
+	      "" *
+	    }
+
+	    { series is.kanji.str$
+
+		{ series ", " * swap$ * }
+
+	        { "{\em " * series * "\/}" * }
+	      if$
+	    }
+
+	  if$
+	}
+	{ key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+	{ booktitle empty$
+	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
+	      crossref * warning$
+	      ""
+	    }
+ 	    { booktitle is.kanji.str$
+ 		{ booktitle }
+
+ 		{"In {\em " booktitle * "\/}" * }
+
+ 	       if$
+ 	    }
+	  if$
+	}
+
+	{ "In " key * }
+
+      if$
+    }
+    { title is.kanji.str$
+ 	{" " format.crossref.editor * }
+
+ 	{"In " format.crossref.editor * }
+
+      if$
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+
+      format.vol.num.pages output
+      format.date "year" output.check
+
+}
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+
+      new.sentence
+
+      publisher "publisher" output.check
+      address output
+    }
+    { new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+
+  format.date "year" output.check
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  new.block
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address output
+  format.date output
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+
+      format.chapter.pages "chapter and pages" output.check
+
+      new.block
+      format.number.series output
+
+      new.sentence
+
+      publisher "publisher" output.check
+      address output
+    }
+
+    { format.chapter.pages "chapter and pages" output.check
+
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+
+
+      format.chapter.pages output
+
+
+
+      new.sentence
+
+      publisher "publisher" output.check
+      address output
+      format.edition output
+
+      format.date "year" output.check
+
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+
+
+      format.pages output
+
+
+
+      address empty$
+	{ organization publisher new.sentence.checkb
+
+	  organization output
+
+	  publisher output
+
+	  format.date "year" output.check
+
+	}
+	{ address output.nonnull
+
+	  format.date "year" output.check
+
+
+	  new.sentence
+
+	  organization output
+
+	  publisher output
+
+	}
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+	'skip$
+	{ organization output.nonnull
+	  address output
+	}
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+	{ address new.block.checka
+	  address output
+	}
+	'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.date output
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title howpublished new.block.checkb
+  format.title output
+  howpublished new.block.checka
+  howpublished output
+  format.date output
+
+  new.block
+  note output
+  fin.entry
+  empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address empty$
+    { editor empty$
+	{ publisher new.sentence.checka }
+	{ organization publisher new.sentence.checkb
+	  organization output
+	}
+      if$
+      publisher output
+      format.date "year" output.check
+
+    }
+    { address output.nonnull
+      format.date "year" output.check
+
+
+      new.sentence
+
+      editor empty$
+	'skip$
+	{ organization output }
+      if$
+      publisher output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.date "year" output.check
+
+  new.block
+  note output
+  fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date output
+  fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+MACRO {acta} {"Acta Informatica"}
+MACRO {cacm} {"Communications of the ACM"}
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+MACRO {ibmsj} {"IBM Systems Journal"}
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+MACRO {ipl} {"Information Processing Letters"}
+MACRO {jacm} {"Journal of the ACM"}
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+MACRO {scp} {"Science of Computer Programming"}
+MACRO {sicomp} {"SIAM Journal on Computing"}
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+MACRO {tods} {"ACM Transactions on Database Systems"}
+MACRO {tog} {"ACM Transactions on Graphics"}
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+MACRO {tcs} {"Theoretical Computer Science"}
+MACRO {tieice} {"ŻҾ̿زʸ"}
+MACRO {tipsj}  {"زʸ"}
+MACRO {jipsj}  {"Journal of Informatin Processing Society of Japan"}
+MACRO {jorsj}  {"Journal of the Operations Research Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+  author    field.or.null is.kanji.str$
+  title     field.or.null is.kanji.str$ or
+  editor    field.or.null is.kanji.str$ or
+  journal   field.or.null is.kanji.str$ or
+  booktitle field.or.null is.kanji.str$ or
+  series    field.or.null is.kanji.str$ or
+  'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+  yomi empty$
+     'skip$
+     { yomi 's := }
+  if$
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+	{ ", " * }
+	'skip$
+      if$
+
+      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
+
+      nameptr numnames = t "others" = and
+ 	{ s is.kanji.str$
+
+ 		{"ۤ" * }
+
+ 		{"et~al." *}
+	  if$
+ 	}
+	{ t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+	{ "to sort, need author or key in " cite$ * warning$
+	  ""
+	}
+	{ key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+	{ key empty$
+	    { "to sort, need author, editor, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+	{ key empty$
+	    { "to sort, need author, organization, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+	{ key empty$
+	    { "to sort, need editor, organization, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+FUNCTION {presort}
+
+{ type$ "book" =
+
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+	'editor.organization.sort
+	{ type$ "manual" =
+	    'author.organization.sort
+	    'author.sort
+	  if$
+	}
+      if$
+    }
+  if$
+
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/tests/jxampl.bib
@@ -0,0 +1,798 @@
+@preamble{ "\newcommand{\noopsort}[1]{} "
+	# "\newcommand{\printfirst}[2]{#1} "
+	# "\newcommand{\singleletter}[1]{#1} "
+	# "\newcommand{\switchargs}[2]{#2#1} " }
+
+@ARTICLE{article-minimal,
+   author = {L[eslie] A. Aamport},
+   title = {The Gnats and Gnus Document Preparation System},
+   journal = {\mbox{G-Animal's} Journal},
+   year = 1986,
+}
+
+@ARTICLE{article-full,
+   author = {L[eslie] A. Aamport},
+   title = {The Gnats and Gnus Document Preparation System},
+   journal = {\mbox{G-Animal's} Journal},
+   year = 1986,
+   volume = 41,
+   number = 7,
+   pages = "73+",
+   month = jul,
+   note = "This is a full ARTICLE entry",
+}
+
+The KEY field is here to override the KEY field in the journal being
+cross referenced (so is the NOTE field, in addition to its imparting
+information).
+
+@ARTICLE{article-crossref,
+   crossref = {WHOLE-JOURNAL},
+   key = "",
+   author = {L[eslie] A. Aamport},
+   title = {The Gnats and Gnus Document Preparation System},
+   pages = "73+",
+   note = "This is a cross-referencing ARTICLE entry",
+}
+
+@ARTICLE{whole-journal,
+   key = "GAJ",
+   journal = {\mbox{G-Animal's} Journal},
+   year = 1986,
+   volume = 41,
+   number = 7,
+   month = jul,
+   note = {The entire issue is devoted to gnats and gnus
+		(this entry is a cross-referenced ARTICLE (journal))},
+}
+
+@INBOOK{inbook-minimal,
+   author = "Donald E. Knuth",
+   title = "Fundamental Algorithms",
+   publisher = "Addison-Wesley",
+   year = "{\noopsort{1973b}}1973",
+   chapter = "1.2",
+}
+
+@INBOOK{inbook-full,
+   author = "Donald E. Knuth",
+   title = "Fundamental Algorithms",
+   volume = 1,
+   series = "The Art of Computer Programming",
+   publisher = "Addison-Wesley",
+   address = "Reading, Massachusetts",
+   edition = "Second",
+   month = "10~" # jan,
+   year = "{\noopsort{1973b}}1973",
+   type = "Section",
+   chapter = "1.2",
+   pages = "10--119",
+   note = "This is a full INBOOK entry",
+}
+
+@INBOOK{inbook-crossref,
+   crossref = "whole-set",
+   title = "Fundamental Algorithms",
+   volume = 1,
+   series = "The Art of Computer Programming",
+   edition = "Second",
+   year = "{\noopsort{1973b}}1973",
+   type = "Section",
+   chapter = "1.2",
+   note = "This is a cross-referencing INBOOK entry",
+}
+
+@BOOK{book-minimal,
+   author = "Donald E. Knuth",
+   title = "Seminumerical Algorithms",
+   publisher = "Addison-Wesley",
+   year = "{\noopsort{1973c}}1981",
+}
+
+@BOOK{book-full,
+   author = "Donald E. Knuth",
+   title = "Seminumerical Algorithms",
+   volume = 2,
+   series = "The Art of Computer Programming",
+   publisher = "Addison-Wesley",
+   address = "Reading, Massachusetts",
+   edition = "Second",
+   month = "10~" # jan,
+   year = "{\noopsort{1973c}}1981",
+   note = "This is a full BOOK entry",
+}
+
+@BOOK{book-crossref,
+   crossref = "whole-set",
+   title = "Seminumerical Algorithms",
+   volume = 2,
+   series = "The Art of Computer Programming",
+   edition = "Second",
+   year = "{\noopsort{1973c}}1981",
+   note = "This is a cross-referencing BOOK entry",
+}
+
+@BOOK{whole-set,
+   author = "Donald E. Knuth",
+   publisher = "Addison-Wesley",
+   title = "The Art of Computer Programming",
+   series = "Four volumes",
+   year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}",
+   note = "Seven volumes planned (this is a cross-referenced set of BOOKs)",
+}
+
+@BOOKLET{booklet-minimal,
+   key = "Kn{\printfirst{v}{1987}}",
+   title = "The Programming of Computer Art",
+}
+
+@BOOKLET{booklet-full,
+   author = "Jill C. Knvth",
+   title = "The Programming of Computer Art",
+   howpublished = "Vernier Art Center",
+   address = "Stanford, California",
+   month = feb,
+   year = 1988,
+   note = "This is a full BOOKLET entry",
+}
+
+@INCOLLECTION{incollection-minimal,
+   author = "Daniel D. Lincoll",
+   title = "Semigroups of Recurrences",
+   booktitle = "High Speed Computer and Algorithm Organization",
+   publisher = "Academic Press",
+   year = 1977,
+}
+
+@INCOLLECTION{incollection-full,
+   author = "Daniel D. Lincoll",
+   title = "Semigroups of Recurrences",
+   editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+   booktitle = "High Speed Computer and Algorithm Organization",
+   number = 23,
+   series = "Fast Computers",
+   chapter = 3,
+   type = "Part",
+   pages = "179--183",
+   publisher = "Academic Press",
+   address = "New York",
+   edition = "Third",
+   month = sep,
+   year = 1977,
+   note = "This is a full INCOLLECTION entry",
+}
+
+@INCOLLECTION{incollection-crossref,
+   crossref = "whole-collection",
+   author = "Daniel D. Lincoll",
+   title = "Semigroups of Recurrences",
+   pages = "179--183",
+   note = "This is a cross-referencing INCOLLECTION entry",
+}
+
+@BOOK{whole-collection,
+   editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+   title = "High Speed Computer and Algorithm Organization",
+   booktitle = "High Speed Computer and Algorithm Organization",
+   number = 23,
+   series = "Fast Computers",
+   publisher = "Academic Press",
+   address = "New York",
+   edition = "Third",
+   month = sep,
+   year = 1977,
+   note = "This is a cross-referenced BOOK (collection) entry",
+}
+
+@MANUAL{manual-minimal,
+   key = "Manmaker",
+   title = "The Definitive Computer Manual",
+}
+
+@MANUAL{manual-full,
+   author = "Larry Manmaker",
+   title = "The Definitive Computer Manual",
+   organization = "Chips-R-Us",
+   address = "Silicon Valley",
+   edition = "Silver",
+   month = apr # "-" # may,
+   year = 1986,
+   note = "This is a full MANUAL entry",
+}
+
+@MASTERSTHESIS{mastersthesis-minimal,
+   author = "{\'{E}}douard Masterly",
+   title = "Mastering Thesis Writing",
+   school = "Stanford University",
+   year = 1988,
+}
+
+@MASTERSTHESIS{mastersthesis-full,
+   author = "{\'{E}}douard Masterly",
+   title = "Mastering Thesis Writing",
+   school = "Stanford University",
+   type = "Master's project",
+   address = "English Department",
+   month = jun # "-" # aug,
+   year = 1988,
+   note = "This is a full MASTERSTHESIS entry",
+}
+
+@MISC{misc-minimal,
+   key = "Missilany",
+   note = "This is a minimal MISC entry",
+}
+
+@MISC{misc-full,
+   author = "Joe-Bob Missilany",
+   title = "Handing out random pamphlets in airports",
+   howpublished = "Handed out at O'Hare",
+   month = oct,
+   year = 1984,
+   note = "This is a full MISC entry",
+}
+
+@STRING{STOC-key = "OX{\singleletter{stoc}}"}
+
+@STRING{ACM = "The OX Association for Computing Machinery"}
+
+@STRING{STOC = " Symposium on the Theory of Computing"}
+
+@INPROCEEDINGS{inproceedings-minimal,
+   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+   title = "On Notions of Information Transfer in {VLSI} Circuits",
+   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+   year = 1983,
+}
+
+@INPROCEEDINGS{inproceedings-full,
+   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+   title = "On Notions of Information Transfer in {VLSI} Circuits",
+   editor = "Wizard V. Oz and Mihalis Yannakakis",
+   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+   number = 17,
+   series = "All ACM Conferences",
+   pages = "133--139",
+   month = mar,
+   year = 1983,
+   address = "Boston",
+   organization = ACM,
+   publisher = "Academic Press",
+   note = "This is a full INPROCEDINGS entry",
+}
+
+@INPROCEEDINGS{inproceedings-crossref,
+   crossref = "whole-proceedings",
+   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+   title = "On Notions of Information Transfer in {VLSI} Circuits",
+   organization = "",
+   pages = "133--139",
+   note = "This is a cross-referencing INPROCEEDINGS entry",
+}
+
+@PROCEEDINGS{proceedings-minimal,
+   key = STOC-key,
+   title = "Proc. Fifteenth Annual" # STOC,
+   year = 1983,
+}
+
+@PROCEEDINGS{proceedings-full,
+   editor = "Wizard V. Oz and Mihalis Yannakakis",
+   title = "Proc. Fifteenth Annual" # STOC,
+   number = 17,
+   series = "All ACM Conferences",
+   month = mar,
+   year = 1983,
+   address = "Boston",
+   organization = ACM,
+   publisher = "Academic Press",
+   note = "This is a full PROCEEDINGS entry",
+}
+
+@PROCEEDINGS{whole-proceedings,
+   key = STOC-key,
+   organization = ACM,
+   title = "Proc. Fifteenth Annual" # STOC,
+   address = "Boston",
+   year = 1983,
+   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+   note = "This is a cross-referenced PROCEEDINGS",
+}
+
+@PHDTHESIS{phdthesis-minimal,
+   author = "F. Phidias Phony-Baloney",
+   title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+   school = "Fanstord University",
+   year = 1988,
+}
+
+@PHDTHESIS{phdthesis-full,
+   author = "F. Phidias Phony-Baloney",
+   title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+   school = "Fanstord University",
+   type = "{PhD} Dissertation",
+   address = "Department of French",
+   month = jun # "-" # aug,
+   year = 1988,
+   note = "This is a full PHDTHESIS entry",
+}
+
+@TECHREPORT{techreport-minimal,
+   author = "Tom Terrific",
+   title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+   institution = "Fanstord University",
+   year = 1988,
+}
+
+@TECHREPORT{techreport-full,
+   author = "Tom T{\'{e}}rrific",
+   title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+   institution = "Fanstord University",
+   type = "Wishful Research Result",
+   number = "7",
+   address = "Computer Science Department, Fanstord, California",
+   month = oct,
+   year = 1988,
+   note = "This is a full TECHREPORT entry",
+}
+
+@UNPUBLISHED{unpublished-minimal,
+   author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+   title = "Lower Bounds for Wishful Research Results",
+   note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)",
+}
+
+@UNPUBLISHED{unpublished-full,
+   author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+   title = "Lower Bounds for Wishful Research Results",
+   month = nov # ", " # dec,
+   year = 1988,
+   note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)",
+}
+
+@MISC{random-note-crossref,
+   key = {Volume-2},
+   note = "Volume~2 is listed under Knuth \cite{book-full}"
+}
+
+ʲܸΥΥƥѤΥǡ
+
+@INBOOK{inbook-full-j,
+   author = "ɥʥɡå",
+   yomi = "Donald Duck",
+   title = "ܻˡ",
+   volume = 1,
+   series = "󤷷׻΢",
+   publisher = "",
+   address = ", Ĵۻ",
+   edition = "2",
+   month = "41",
+   year = 1963,
+   chapter = "1.2",
+   pages = "10--119",
+   note = ""
+}
+
+@INCOLLECTION{incol-full-j-1,
+   author = "ɥʥɡϥå",
+   yomi = "Donald Hack",
+   booktitle = "{ˤJBibTeXing}",
+   number = 1,
+   series = "Ǥ狼뤫ʡֺ",
+   publisher = "˭",
+   address = ", ϶",
+   edition = "1",
+   month = "117",
+   year = 1991,
+   chapter = "6.2",
+   pages = 321,
+   note = "ƥ"
+}
+
+@ARTICLE{article-crossref-j,
+   crossref = {WHOLE-JOURNAL-J},
+   key = "",
+   author = "ƿ̾˾",
+   yomi ="Kibou Tokumei",
+   title = {ʸ¤΢ޤ},
+   pages = "73+",
+   note = "ʸꥹ⻲ȤƤARTICLE"
+}
+
+@ARTICLE{article-crossref-jj,
+   crossref = {WHOLE-JOURNAL-J},
+   key = "",
+   author = "ƿ̾ ˾",
+   yomi ="Kibou Tokumei",
+   title = {ʸ¤΢ޤΣ},
+   pages = "83+",
+   note = "ʸꥹ⻲ȤƤARTICLE"
+}
+
+@ARTICLE{whole-journal-j,
+   key = "Big",
+   journal = {Big TomorrowǤʤSmall Yesterday},
+   year = 1986,
+   volume = 41,
+   number = 7,
+   month = jul,
+   note = {ˤƼȴƽ뤫٤뤫ý桪}
+}
+
+@INBOOK{inbook-crossref-j,
+   crossref = "whole-set-j",
+   title = "{ˤJBibTeXing}",
+   volume = "1",
+   series = "Ǥ狼뤫ʡֺ",
+   edition = "1",
+   year = 1991,
+   chapter = "3.5",
+   note = "ʸꥹ⻲Ȥ򤷤ƤINBOOK㡣"
+}
+
+@BOOK{whole-set-j,
+   author = "ɥʥɡϥå",
+   yomi = "Donald Hack",
+   title = "Ǥ狼뤫ʡֺ",
+   volume = "13",
+   publisher = "˭",
+   address = ", ϶",
+   year = 1991,
+   note = "13ͽϤƤ뤬ڤʤԤΤȤ顩ϥ꡼ΤȤƤ㡥"
+}
+
+@INBOOK{inbook-crossref-j-1,
+   crossref = "whole-set-j",
+   title = "{ϤƤJBibTeXing}",
+   series = "Ǥ狼뤫ʡֺ",
+   edition = 1,
+   year = "{\noopsort{1973b}}1973",
+   chapter = "3.5",
+   type = "",
+   note = "ʸꥹ⻲Ȥ򤷤ƤINBOOK㡪"
+}
+
+@string(ieeeassp={IEEE Trans. Acoust., Speech \& Signal Process.})
+
+@booklet{cvs,
+   title="{CVSѥݡ}",
+   author="",
+   yomi="KikaiSinkouKyoukai",
+   year="52"}
+
+@article{ha,
+   title="̵ƻ͢ƥཽϩնΥǥ벽Ȥβ",
+   author="; ˧ and   and  ",
+   yomi="Yoshio Hamamatsu and Katsuji Nakata and Ikuo Kaji",
+   journal= tieice # "(A)", volume="J64-A", number=10, pages="835-842",
+   year=1982}
+@article{costa,
+   author="J. M. Costa and A. N. Venetsanopoulos",
+   title="Design of circularly symmetric two-demensional recursive filters",
+   journal=ieeeassp,
+   volume="ASSP-22",number=6,pages="432-443",year=1974}
+@inproceedings{mcclella,
+   author="J. H. McClellan",
+   title="The design of two-dimensional digital filters by transformation",
+   booktitle="Proc. 7th Annu. Princeton Conf. Inform. Sci. \& Systm.",
+   pages="247-251", year=1973}
+@book{dug,
+   author="D. E. Dudgen and R. M. Mersereau",
+   title="Multideimensional digital signal processing",
+   publisher="Prentice-Hall",year=1984}
+@inproceedings{sakawa,
+   author="M. Sakawa and H. Yano",
+   title="Interactive decision making for multiobjective linear
+           programming problems with fuzzy parameters",
+   booktitle="Large-Scale Modeling and Interactive Decision Analysis,
+              Proceedings, Eisenach, GDR",
+   editor="G. Fandel and M. Grauer and A. Kurzhanski and A. P. Wierzbiki",
+   publisher="Springer-Verlag", pages="88-96",year=1986}
+@manual{ssl,
+	title="SSL~IIѼ",year=1980,
+        organization="ٻ",
+	yomi="Fujitsu"}
+@book{newman,
+     author="J. R. Norman",
+     title="The World of Mathematics, 4 vols.",
+     publisher="Simon and Schuster",
+     year=1956,
+     note="(~:  ͺϯ~: ``ؤ'', ޽(1970))"
+     }
+@book{Rich,
+    author="Elaine A. Rich",
+    title="Artificial Intelligence",
+    series="McGraw-Hill Series in Artificial Intelligence",
+    publisher="McGraw-Hill Book Company", year=1983,
+    note="(~: ע, ¼ ~: ``͹ǽ I, II'',ޥҥ(1984))"}
+
+@STRING(GIH={ƣ Ѱ졢쾾  ɸ})
+@STRING(ز={ز})
+
+@INCOLLECTION{goto,
+	author="ƣѰ",
+	title="׻ˤȤ",
+	pages="4--6",
+	editor=GIH,
+	booktitle="׻ˤΤ",
+	series="ԥ塼\ {\bf bit}\ ̺",
+	publisher="Ω",
+	yomi="Eiichi Goto",
+	year="61-4" }
+@UNPUBLISHED{,
+	author=" ",
+	title="How To Use {\JLaTeX}",
+	note="memo for {\JLaTeX}",
+	yomi="Hideki Isozaki",
+	year=1987}
+@MANUAL{ƣ,
+     author="ƣ ",
+	title="ܸ{\TeX}:~{\JTeX}",
+	yomi="Yasuki Saitoh",
+	organization="DECUS7󥷥ݥջ", year=1987}
+@BOOK{sym,
+	editor="Janusz S. Kowalik",
+	title="Coupling Symbolic and Numerical Computing in Expert Systems",
+	publisher="North-Holland",year=1986}
+@INCOLLECTION{eda,
+	author="F. N. Springsteel",
+	title="A Multilevel Expert System for Explaratory Data Analysis",
+	pages="295--306",
+	editor="Janusz S. Kowalik",
+	booktitle="Coupling Symbolic and Numerical
+		   Computing in Expert Systems",
+	publisher="North-Holland",year=1986}
+	}
+@BOOK{dss,
+	editor="Clyde W. Holsapple and Andrew B. Whinston",
+	title="Decision Support Systems: Theory and Application",
+	publisher="North-Holland",year=1987}
+@INCOLLECTION{cm,
+	author="Amilcar Sernads and Cristina Sernads",
+	title="Conceptual Modeling for Knowledge-Based DSS Development",
+	editor="Clyde W. Holsapple and Andrew B. Whinston",
+	booktitle="Decision Support Systems: Theory and Application",
+	pages="91--135",year=1987,
+	publisher="North-Holland"}
+@BOOK{reduce,
+	editor=GIH,
+	yomi="E. Goto and S. Hitotsumatsu and R. Hirota",
+	title="׻ˤΤ",
+	series="ԥ塼\ {\bf bit}\ ̺",
+	publisher="Ω",
+	year="1986"}
+@ARTICLE{fp,
+	author="Shouichi Matsui and Masao Iri",
+	title="An Overflow/Underflow-Free Floating-Point Representation of Numbers",
+	journal="Journal of Information Processing",
+	volume=4,number=3,pages="123--133",
+	month=nov,year=1981}
+@ARTICLE{la,
+	author="Masao Iri and Kazuo Murota and Shouichi Matsui",
+	title="Linear-time approximation algorithms for finding the
+        minimum-weight perfect matching on a plane",
+	journal=ipl,volume=12,pages="206-209",year=1981
+}
+@ARTICLE{դ̵,
+	author="  and  ",
+	title="դΤʤưɽ",
+	journal="زʸ", volume=21, number=4, pages="306--313",
+	yomi="Shouichi Matsui and Masao Iri",
+	year=1980}
+@ARTICLE{,
+	title="μŪˡ˴ŤϹݹ¤ʪμ̿ͽ¬",
+	author="¼   졢    and   δͺ",
+	journal="ڳزʸ",number="368/I-5",
+	pages="301--310",
+	yomi="Hideharu Nakamura and Shinichi Matsuura and Shouichi Matsui and
+		Takao Terano",
+	year=1986,month=apr}
+@BOOK{̾ɽ,
+	author="ޡԡ",
+	title="ܿͤαѸ",
+	publisher="ȽŹ",
+	year=1988, month=apr,
+	pages=196,
+	yomi="Mark Petersen",
+	series="ȿ() 18",
+	note="pp. 187--189
+	ѸǤܿͤ̾ν,
+	ܤιݲΤˤ夫ιͤ򤳤ΤǤ᤿ɤ
+	Shouichi Matsui Ǥʤ Matsui Shouichi"
+}
+
+@MISC{EUCܸTeX,
+	author="桡",yomi="Matsui, Shouichi",
+	title="{NTT}ܸ{\TeX}: {\JTeX}λȤ",
+	year=1988, month=may,
+	note=" 󥷥ƥ "
+}
+
+@INPROCEEDINGS{multi,
+	author="桡졤ĸ֡粰δⶶ ",
+	yomi="Shouichi Matsui and Yasusi Sinohara and Takao Ohya and
+		Makoto Takahashi",
+	title="ޥǥѤջ׷ٱ祷ƥγȯ",
+	booktitle="ѼԻָξ󥷥ƥץݥͽƽ",
+	publisher=ز,pages="39--48",year=1986,month=jul
+}
+
+@BOOK{marumoji,
+	author="쿿", yomi="K. Yamane",
+	title="ξʸθ",publisher="̼",
+	year=1986,pages=230
+}
+
+@ARTICLE{maru,
+	author="̣Ϻ", yomi="Taro Ajioka",
+	title="񤭤ʸ񤱤мȥޥˤʤ",
+	journal="ȤϤɴƹ",number="̴37",
+	pages=25,publisher="찦οʹ",year=1986
+}
+
+yomi ʿ̾Ȥ
+
+@INCOLLECTION{goto-h,
+	author="ƣ Ѱ",
+	title="׻ˤȤ",
+	pages="4--6",
+	crossref="reduce",
+	yomi="{\noop{Ȥ}}ƣ",
+	year=1986 }
+@UNPUBLISHED{-h,
+	author=" ",
+	title="How To Use {\JLaTeX}",
+	note="memo for {\JLaTeX}",
+	yomi="{\noop{}}",
+	year=1987}
+@MANUAL{ƣ-h,
+     author="ƣ ",
+	title="ܸ{\TeX}:~{\JTeX}",
+	yomi="{\noop{Ȥ}}ƣ",
+	organization="DECUS7󥷥ݥջ", year=1987}
+@INPROCEEDINGS{multi-h,
+	author=" 졢ĸ ֡粰 δⶶ ",
+	yomi="{\noop{ޤĤ}}",
+	title="ޥǥѤջ׷ٱ祷ƥγȯ",
+	booktitle="ѼԻָξ󥷥ƥץݥͽƽ",
+	publisher=ز,pages="39--48",year=1986,month=jul
+	}
+
+եȥʳزѤΥƥȥǡ
+
+@INPROCEEDINGS{ama,
+	author="M. Amamiya and R. Hasegawa and H. Mikami",
+	title="List Processing with Data Flow Machine",
+	booktitle="RIMS Symposium on Software Science and Engineering",
+	editor="E. Goto and Oozei Sonota and others",
+	publisher="Springer-Verlag",
+	year=1982,
+	pages="165--190"
+}
+
+@TECHREPORT{Arv,
+	author="Kathall V. Arvind and K. Pingali",
+	title="A Data Flow Architecture with Tagged Tokens",
+	type="MIT LCS Momo",
+	number="TM174",
+	year=1980
+}
+
+@BOOK{cha,
+	author="V. Chachra and P. M. Chare and J. M. Moore",
+	title="Applications of Graph Theory Algorithms",
+	publisher="Elsevier North Holland",
+	year=1979
+}
+
+@ARTICLE{dav,
+	author="D. Davidson and D. Landskov and B. D. Shriver and
+                P. W. Maliett",
+	title="Some experiments in Local Microcodes Compaction for
+	       Horizontal Machines",
+	journal=ieeetc,
+	volume="C-30", number=7, month=jul, year=1981,
+	pages="460-477"
+}
+
+@inproceedings{den,
+	author="J. B. Dennis and D. P. Misunas",
+	title ="A Preliminary Architecture for a Basic Data Flow Processor",
+	booktitle="Proc. of the 2nd Int'l Symp. on Computer Architecture",
+	month=jan,year=1975,pages="126-132"
+}
+
+@article{fis,
+	author="J. A. Fisher",
+	title="Trace Scheduling: A Techinique for Global Microcode Compaction",
+	journal=ieeetc, volume="C-30",number=7,year=1981,pages="478-490"
+}
+
+@article{gajski,
+	author="D. D. Gajski and D. A. Padua and D. J. Kuck and Kuhn, R. H.",
+	title="A Second Optinion on Data Flow Machines and Languages",
+	journal="Computer",
+	volume=15, number=2, month=feb, year=1982, pages="58-69"
+}
+
+@inproceedings{suna1,
+	author="ꡡͺ",
+	yomi="Hideki Sunahara and Mario Tokoro",
+	title="ǡư׻μ¹˴ؤͻ",
+	booktitle="ǡեå'86",
+	month=may, year=1986,
+	pages="83--89"
+}
+
+@inproceedings{suna2,
+	author="Hideki Sunahara and Mario Tokoro",
+	title="Half-Dynamic Scheduling with Data-flow Control",
+	booktitle="Presented at Int'l Conf. on SuperComputing",
+	address="Athens, Greece",
+	month="June 8--12",year=1987
+}
+
+@article{toko1,
+	author="M. Tokoro and E. Tamura and T. Takizuka",
+	title="Optimization of Microprograms",
+	journal=ieeetc,
+	month=jul,year=1981,
+	volume="C-30",number=7,pages="491--504"
+}
+
+@inproceedings{toko2,
+	author="M. Tokoro and J. R. Jagannathan and H. Sunahara",
+	title="On the Working Set Concepts for Data-flow Machines",
+	booktitle="Proc. of the 10th Int'l Symp. on Computer Architecture",
+	month=jun,year=1983,
+	pages="90-97"
+}
+
+@incollection{suna86,
+	author="Sunahara, H. and Tokoro, M.",
+	title="On the Working Set Concept for Data-flow Machines: Policies
+	       and Their Evaluation",
+	booktitle="Fifth Generation Computer Architectures",
+	editor="Woods, J. V.",
+	publisher="North-Holland", year=1986, pages="147-160"
+}
+	
+͹ǽزѥƥȥǡ
+
+@inproceedings{onda,
+	author="Onda, H. and Hasegawa, T. and Matsui, T.",
+	title="Collision Avoidance for a 6-DOF Manipulator Based on Empty
+	       Space Analysis of 3-D Real World",
+	booktitle="IEEE Int. Workshop on Intelligent Robots and Systems",
+	address="Ibaraki",
+	year=1990
+}
+
+@article{ƣ,
+	author="ƣ¼",
+	yomi="Kondoh and Kimura",
+	title="ϩˡ˴ŤͳֻˡѤ㳲ʪưײ",
+	journal="ܥܥåȳز",
+	volume=5,number=4,pages="263--272",
+	year=1987
+}
+
+@article{JSAI-1,
+	journal="͹ǽز",
+	key="JinkouTinouGakkai",
+	volume=5, number=4,
+	year=1990, month=jul,
+	note="ýʬ͹ǽ"
+}
+
+@incollection{grosz,
+	author="Grosz, B.",
+	title="The Representation and Use of Focus in a System For
+		Understanding Dialog",
+	booktitle="Natural Language Processing",
+	editor="B. Grosz and K. S. Jones and B. L. Webber",
+	publisher="Morgan Kaufram Publisher",
+	year="1979, in part 1986",
+	pages="353--362"
+}
+	
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/texmfmp-help.h
@@ -0,0 +1,59 @@
+#ifndef TEXMFHELP_H
+#define TEXMFHELP_H
+
+#ifdef TeX
+const_string TEXHELP[] = {
+"Usage: jtex [OPTION]... [TEXNAME[.tex]] [COMMANDS]",
+"   or: jtex [OPTION]... \\FIRST-LINE",
+"   or: jtex [OPTION]... &FMT ARGS",
+"  Run JTeX on TEXNAME, usually creating TEXNAME.dvi.",
+"  Any remaining COMMANDS are processed as JTeX input, after TEXNAME is read.",
+"  If the first line of TEXNAME is %&FMT, and FMT is an existing .fmt file,",
+"  use it.  Else use `NAME.fmt', where NAME is the program invocation name,",
+"  most commonly `jtex'.",
+"",
+"  Alternatively, if the first non-option argument begins with a backslash,",
+"  interpret all non-option arguments as a line of JTeX input.",
+"",
+"  Alternatively, if the first non-option argument begins with a &, the",
+"  next word is taken as the FMT to read, overriding all else.  Any",
+"  remaining arguments are processed as above.",
+"",
+"  If no arguments or options are specified, prompt for input.",
+"",
+"-code=CODE              specify the default code (CODE=ascii/jis/euc/sjis)",
+"-fmt=FMTNAME            use FMTNAME instead of program name or a %& line",
+"-halt-on-error          stop processing at the first error",
+"[-no]-file-line-error   disable/enable file:line:error style messages",
+"-ini                    be inijtex, for dumping formats; this is implicitly",
+"                          true if the program name is `inijtex'",
+"-interaction=STRING     set interaction mode (STRING=batchmode/nonstopmode/",
+"                          scrollmode/errorstopmode)",
+#ifdef IPC
+"-ipc                    send DVI output to a socket as well as the usual",
+"                          output file",
+"-ipc-start              as -ipc, and also start the server at the other end",
+#endif /* IPC */
+"-jobname=STRING         set the job name to STRING",
+"-kpathsea-debug=NUMBER  set path searching debugging flags according to",
+"                          the bits of NUMBER",
+"[-no]-mktex=FMT         disable/enable mktexFMT generation (FMT=tex/tfm)",
+"-mltex                  enable MLTeX extensions such as \\charsubdef",
+"-output-comment=STRING  use STRING for DVI file comment instead of date",
+"-output-directory=DIR   use existing DIR as the directory to write files in",
+"[-no]-parse-first-line  disable/enable parsing of first line of input file",
+"-progname=STRING        set program (and fmt) name to STRING",
+"-recorder               enable filename recorder",
+"[-no]-shell-escape      disable/enable \\write18{SHELL COMMAND}",
+"-shell-restricted       enable restricted \\write18",
+"-src-specials           insert source specials into the DVI file",
+"-src-specials=WHERE     insert source specials in certain places of",
+"                          the DVI file. WHERE is a comma-separated value",
+"                          list: cr display hbox math par parend vbox",
+"-help                   display this help and exit",
+"-version                output version information and exit",
+NULL
+};
+#endif /* TeX */
+
+#endif
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/texmfmp.c
@@ -0,0 +1,2396 @@
+/* Modified by Takafumi Sakurai for JTeX. The modification is also
+ * in public domain. */
+
+/* texmf.c: Hand-coded routines for TeX or Metafont in C.  Originally
+   written by Tim Morgan, drawing from other Unix ports of TeX.  This is
+   a collection of miscellany, everything that's easier (or only
+   possible) to do in C.
+   
+   This file is public domain.  */
+
+#define	EXTERN /* Instantiate data from {tex,mf,mp}d.h here.  */
+
+/* This file is used to create texextra.c etc., with this line
+   changed to include texd.h or mfd.h.  The ?d.h file is what
+   #defines TeX or MF, which avoids the need for a special
+   Makefile rule.  */
+#include "jtexd.h"
+
+#include <kpathsea/config.h>
+#include <kpathsea/c-ctype.h>
+#include <kpathsea/line.h>
+#include <kpathsea/readable.h>
+#include <kpathsea/variable.h>
+#include <kpathsea/absolute.h>
+#ifdef WIN32
+#include <kpathsea/concatn.h>
+#endif
+
+#if defined (HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#elif defined (HAVE_SYS_TIMEB_H)
+#include <sys/timeb.h>
+#endif
+
+#include <time.h> /* For `struct tm'.  Moved here for Visual Studio 2005.  */
+
+#if defined(__STDC__)
+#include <locale.h>
+#endif
+
+#include <signal.h> /* Catch interrupts.  */
+
+#include <jtexdir/texmfmp-help.h>
+
+/* {tex,mf}d.h defines TeX, MF, INI, and other such symbols.
+   Unfortunately there's no way to get the banner into this code, so
+   just repeat the text.  */
+#ifdef TeX
+#define BANNER "This is JTeX, Version 3.14159265-2.2"
+#define COPYRIGHT_HOLDER "D.E. Knuth"
+#define AUTHOR "T. Sakurai"
+#define PROGRAM_HELP TEXHELP
+#define BUG_ADDRESS "sakurai@math.s.chiba-u.ac.jp"
+#define DUMP_VAR TEXformatdefault
+#define DUMP_LENGTH_VAR formatdefaultlength
+#define DUMP_OPTION "fmt"
+#define DUMP_EXT ".fmt"
+#define INPUT_FORMAT kpse_tex_format
+#define INI_PROGRAM "inijtex"
+#define VIR_PROGRAM "virjtex"
+#define edit_var "TEXEDIT"
+#endif /* TeX */
+
+
+#if defined(__SyncTeX__)
+/* 
+   SyncTeX file name should be full path in the case where
+   --output-directory option is given.
+   Borrowed from LuaTeX.
+*/
+char *generic_synctex_get_current_name (void)
+{
+  char *pwdbuf, *ret;
+  if (kpse_absolute_p(fullnameoffile, false)) {
+     return xstrdup(fullnameoffile);
+  }
+  pwdbuf = xgetcwd();
+  ret = concat3(pwdbuf, DIR_SEP_STRING, fullnameoffile);
+  free(pwdbuf) ;
+  return ret;
+}
+#endif
+
+static int
+Isspace (char c)
+{
+  return (c == ' ' || c == '\t');
+}
+/* Shell escape.
+
+   If shellenabledp == 0, all shell escapes are forbidden.
+   If (shellenabledp == 1 && restrictedshell == 0), any command
+     is allowed for a shell escape.
+   If (shellenabledp == 1 && restrictedshell == 1), only commands
+     given in the configuration file as
+   shell_escape_commands = kpsewhich,ebb,extractbb,mpost,metafun,...
+     (no spaces between commands) in texmf.cnf are allowed for a shell
+     escape in a restricted form: command name and arguments should be
+     separated by a white space. The first word should be a command
+     name. The quotation character for an argument with spaces,
+     including a pathname, should be ".  ' should not be used.
+
+     Internally, all arguments are quoted by ' (Unix) or " (Windows)
+     before calling the system() function in order to forbid execution
+     of any embedded command.
+
+   If the --shell-escape option is given, we set
+     shellenabledp = 1 and restrictedshell = 0, i.e., any command is allowed.
+   If the --shell-restricted option is given, we set
+     shellenabledp = 1 and restrictedshell = 1, i.e., only given cmds allowed.
+   If the --no-shell-escape option is given, we set
+     shellenabledp = -1 (and restrictedshell is irrelevant).
+   If none of these option are given, there are three cases:
+   (1) In the case where
+       shell_escape = y or
+       shell_escape = t or
+       shell_escape = 1
+       it becomes shellenabledp = 1 and restrictedshell = 0,
+       that is, any command is allowed.
+   (2) In the case where
+       shell_escape = p
+       it becomes shellenabledp = 1 and restrictedshell = 1,
+       that is, restricted shell escape is allowed.
+   (3) In all other cases, shellenabledp = 0, that is, shell
+       escape is forbidden. The value of restrictedshell is
+       irrelevant if shellenabledp == 0.
+*/
+
+#ifdef TeX
+
+/* cmdlist is a list of allowed commands which are given like this:
+   shell_escape_commands = kpsewhich,ebb,extractbb,mpost,metafun
+   in texmf.cnf. */
+
+static char **cmdlist = NULL;
+
+void 
+mk_shellcmdlist (char *v)
+{
+  char **p;
+  char *q;
+  char *r;
+  int  n;
+
+  q = v;
+  n = 0;
+
+/* analyze the variable shell_escape_commands = foo,bar,...
+   spaces before and after (,) are not allowed. */
+
+  while ((r = strchr (q, ',')) != 0) {
+    n++;
+    r++;
+    q = r;
+  }
+  if (*q)
+    n++;
+  cmdlist = xmalloc ((n + 1) * sizeof (char *));
+  p = cmdlist;
+  q = v;
+  while ((r = strchr (q, ',')) != 0) {
+    *r = '\0';
+    *p = xmalloc (strlen (q) + 1);
+    strcpy (*p, q);
+    *r = ',';
+    r++;
+    q = r;
+    p++;
+  }
+  if (*q) {
+    *p = xmalloc (strlen (q) + 1);
+    strcpy (*p, q);
+    p++;
+    *p = NULL;
+  } else
+    *p = NULL;
+}
+
+void
+init_shell_escape (void)
+{
+  if (shellenabledp < 0) {  /* --no-shell-escape on cmd line */
+    shellenabledp = 0;
+
+  } else {
+    if (shellenabledp == 0) {  /* no shell options on cmd line, check cnf */
+      char *v1 = kpse_var_value ("shell_escape");
+      if (v1) {
+        if (*v1 == 't' || *v1 == 'y' || *v1 == '1') {
+          shellenabledp = 1;
+        } else if (*v1 == 'p') {
+          shellenabledp = 1;
+          restrictedshell = 1;
+        }
+        free (v1);
+      }
+    }
+
+    /* If shell escapes are restricted, get allowed cmds from cnf.  */   
+    if (shellenabledp && restrictedshell == 1) {
+      char *v2 = kpse_var_value ("shell_escape_commands");
+      if (v2) {
+        mk_shellcmdlist (v2);
+        free (v2);
+      }
+    }
+  }
+}
+
+#ifdef WIN32
+#define QUOTE '"'
+#else
+#define QUOTE '\''
+#endif
+
+#if 0
+#ifdef WIN32
+static int
+char_needs_quote (int c)
+{
+/* special characters of cmd.exe */
+
+  return (c == '&' || c == '|' || c == '%' || c == '<' ||
+          c == '>' || c == ';' || c == ',' || c == '(' ||
+          c == ')');
+}
+#endif
+#endif
+
+/* return values:
+  -1 : invalid quotation of an argument
+   0 : command is not allowed
+   2 : restricted shell escape, CMD is allowed.
+   
+   We set *SAFECMD to a safely-quoted version of *CMD; this is what
+   should get executed.  And we set CMDNAME to its first word; this is
+   what is checked against the shell_escape_commands list.  */
+
+int
+shell_cmd_is_allowed (const char *cmd, char **safecmd, char **cmdname)
+{
+  char **p;
+  char *buf;
+  char *c, *d;
+  const char *s;
+  int  pre, spaces;
+  int  allow = 0;
+
+  /* pre == 1 means that the previous character is a white space
+     pre == 0 means that the previous character is not a white space */
+  buf = xmalloc (strlen (cmd) + 1);
+  strcpy (buf, cmd);
+  c = buf;
+  while (Isspace (*c))
+    c++;
+  d = c;
+  while (!Isspace(*d) && *d)
+    d++;
+  *d = '\0';
+
+  /* *cmdname is the first word of the command line.  For example,
+     *cmdname == "kpsewhich" for
+     \write18{kpsewhich --progname=dvipdfm --format="other text files" config}
+  */
+  *cmdname = xstrdup (c);
+  free (buf);
+
+  /* Is *cmdname listed in a texmf.cnf vriable as
+     shell_escape_commands = foo,bar,... ? */
+  p = cmdlist;
+  if (p) {
+    while (*p) {
+      if (strcmp (*p, *cmdname) == 0) {
+      /* *cmdname is found in the list, so restricted shell escape
+          is allowed */
+        allow = 2;
+        break;
+      }
+      p++;
+    }
+  }
+  if (allow == 2) {
+    spaces = 0;
+    for (s = cmd; *s; s++) {
+      if (Isspace (*s))
+        spaces++;
+    }
+
+    /* allocate enough memory (too much?) */
+#ifdef WIN32
+    *safecmd = xmalloc (2 * strlen (cmd) + 3 + 2 * spaces);
+#else
+    *safecmd = xmalloc (strlen (cmd) + 3 + 2 * spaces);
+#endif
+
+    /* make a safe command line *safecmd */
+    s = cmd;
+    while (Isspace (*s))
+      s++;
+    d = *safecmd;
+    while (!Isspace (*s) && *s)
+      *d++ = *s++;
+
+    pre = 1;
+    while (*s) {
+      /* Quotation given by a user.  " should always be used; we
+         transform it below.  If ' is used, simply immediately
+         return a quotation error.  */
+      if (*s == '\'') {
+        return -1;
+      }
+         
+      if (*s == '"') {
+        /* All arguments are quoted as 'foo' (Unix) or "foo" (Windows)
+           before calling system(). Therefore closing QUOTE is necessary
+           if the previous character is not a white space.
+           example:
+           --format="other text files" becomes
+           '--format=''other text files' (Unix)
+           "--format"="other text files" (Windows) */
+
+        if (pre == 0) {
+#ifdef WIN32
+          if (*(s-1) == '=') {
+            *(d-1) = QUOTE;
+            *d++ = '=';
+          } else {
+            *d++ = QUOTE;
+          }
+#else
+          *d++ = QUOTE;
+#endif
+        }
+        pre = 0;
+        /* output the quotation mark for the quoted argument */
+        *d++ = QUOTE;
+        s++;
+
+        while (*s != '"') {
+          /* Illegal use of ', or closing quotation mark is missing */
+          if (*s == '\'' || *s == '\0')
+            return -1;
+#if 0
+/*
+  The following in WIN32 may not be necessary, because
+  all arguments are quoted.
+*/
+#ifdef WIN32
+          if (char_needs_quote (*s))
+            *d++ = '^';
+#endif
+#endif
+          *d++ = *s++;
+        }
+
+        /* Closing quotation mark will be output afterwards, so
+           we do nothing here */
+        s++;
+
+        /* The character after the closing quotation mark
+           should be a white space or NULL */
+        if (!Isspace (*s) && *s)
+          return -1;
+
+      /* Beginning of a usual argument */
+      } else if (pre == 1 && !Isspace (*s)) {
+        pre = 0;
+        *d++ = QUOTE;
+#if 0
+/*
+  The following in WIN32 may not be necessary, because
+  all arguments are quoted.
+*/
+#ifdef WIN32
+        if (char_needs_quote (*s))
+          *d++ = '^';
+#endif
+#endif
+        *d++ = *s++;
+        /* Ending of a usual argument */
+
+      } else if (pre == 0 && Isspace (*s)) {
+        pre = 1;
+        /* Closing quotation mark */
+        *d++ = QUOTE;
+        *d++ = *s++;
+      } else {
+        /* Copy a character from cmd to *safecmd. */
+#if 0
+/*
+  The following in WIN32 may not be necessary, because
+  all arguments are quoted.
+*/
+#ifdef WIN32
+        if (char_needs_quote (*s))
+          *d++ = '^';
+#endif
+#endif
+        *d++ = *s++;
+      }
+    }
+    /* End of the command line */
+    if (pre == 0) {
+      *d++ = QUOTE;
+    }
+    *d = '\0';
+#ifdef WIN32
+    {
+      char *p, *q, *r;
+      p = *safecmd;
+      if (strlen (p) > 2 && p[1] == ':' && !IS_DIR_SEP (p[2])) {
+        q = xmalloc (strlen (p) + 2);
+        q[0] = p[0];
+        q[1] = p[1];
+        q[2] = '/';
+        q[3] = '\0';
+        strcat (q, (p + 2));
+        free (*safecmd);
+        *safecmd = q;
+      } else if (!IS_DIR_SEP (p[0]) && !(p[1] == ':' && IS_DIR_SEP (p[2]))) { 
+        p = (char *) kpse_var_value ("SELFAUTOLOC");
+        if (p) {
+          r = *safecmd;
+          while (*r && !Isspace(*r))
+            r++;
+          if (*r == '\0')
+            q = concatn ("\"", p, "/", *safecmd, "\"", NULL);
+          else {
+            *r = '\0';
+            r++;
+            while (*r && Isspace(*r))
+              r++;
+            if (*r)
+              q = concatn ("\"", p, "/", *safecmd, "\" ", r, NULL);
+            else
+              q = concatn ("\"", p, "/", *safecmd, "\"", NULL);
+          }
+          free (p);
+          free (*safecmd);
+          *safecmd = q;
+        }
+      }
+    }
+#endif
+  }
+
+  return allow;
+}
+
+/* We should only be called with shellenabledp == 1.
+   Return value:
+   -1 if a quotation syntax error.
+   0 if CMD is not allowed; given shellenabledp==1, this is because
+      shell escapes are restricted and CMD is not allowed.
+   1 if shell escapes are not restricted, hence any command is allowed.
+   2 if shell escapes are restricted and CMD is allowed (possibly after
+      quoting).  */
+   
+int
+runsystem (const char *cmd)
+{
+  int allow = 0;
+  char *safecmd = NULL;
+  char *cmdname = NULL;
+  int status = 0;
+
+  if (shellenabledp <= 0) {
+    return 0;
+  }
+  
+  /* If restrictedshell == 0, any command is allowed. */
+  if (restrictedshell == 0)
+    allow = 1;
+  else
+    allow = shell_cmd_is_allowed (cmd, &safecmd, &cmdname);
+
+  if (allow == 1)
+    status = system (cmd);
+  else if (allow == 2)
+    status =  system (safecmd);
+
+  /* Not really meaningful, but we have to manage the return value of system. */
+  if (status != 0)
+    fprintf(stderr,"system returned with code %d\n", status); 
+
+  if (safecmd)
+    free (safecmd);
+  if (cmdname)
+    free (cmdname);
+
+  return allow;
+}
+
+/* Like runsystem(), the runpopen() function is called only when
+   shellenabledp == 1.   Unlike runsystem(), here we write errors to
+   stderr, since we have nowhere better to use; and of course we return
+   a file handle (or NULL) instead of a status indicator.  */
+
+static FILE *
+runpopen (char *cmd, const char *mode)
+{
+  FILE *f = NULL;
+  char *safecmd = NULL;
+  char *cmdname = NULL;
+  int allow;
+
+#ifdef WIN32
+  char *pp;
+
+  for (pp = cmd; *pp; pp++) {
+    if (*pp == '\'') *pp = '"';
+  }
+#endif
+
+  /* If restrictedshell == 0, any command is allowed. */
+  if (restrictedshell == 0)
+    allow = 1;
+  else
+    allow = shell_cmd_is_allowed (cmd, &safecmd, &cmdname);
+
+  if (allow == 1)
+    f = popen (cmd, mode);
+  else if (allow == 2)
+    f = popen (safecmd, mode);
+  else if (allow == -1)
+    fprintf (stderr, "\nrunpopen quotation error in command line: %s\n",
+             cmd);
+  else
+    fprintf (stderr, "\nrunpopen command not allowed: %s\n", cmdname);
+
+  if (safecmd)
+    free (safecmd);
+  if (cmdname)
+    free (cmdname);
+  return f;
+}
+#endif /* TeX */
+
+/* The main program, etc.  */
+
+/* What we were invoked as and with.  */
+char **argv;
+int argc;
+
+/* If the user overrides argv[0] with -progname.  */
+static const_string user_progname;
+
+/* The C version of the jobname, if given. */
+static const_string c_job_name;
+
+/* The filename for dynamic character translation, or NULL.  */
+string translate_filename;
+string default_translate_filename;
+
+#if defined(TeX)
+/* Needed for --src-specials option. */
+static char *last_source_name;
+static int last_lineno;
+static boolean srcspecialsoption = false;
+static void parse_src_specials_option (const_string);
+#endif
+
+/* Parsing a first %&-line in the input file. */
+static void parse_first_line (const_string);
+
+/* Parse option flags. */
+static void parse_options (int, string *);
+
+/* Try to figure out if we have been given a filename. */
+static string get_input_file_name (void);
+
+/* Get a true/false value for a variable from texmf.cnf and the environment. */
+static boolean
+texmf_yesno(const_string var)
+{
+  string value = kpse_var_value (var);
+  return value && (*value == 't' || *value == 'y' || *value == '1');
+}
+
+#ifdef WIN32
+/* forward declaration */
+static string
+normalize_quotes (const_string name, const_string mesg);
+#ifndef TeX
+int srcspecialsp = 0;
+#endif
+
+/* Support of 8.3-name convention. If *buffer == NULL, nothing is done. */
+static void change_to_long_name (char **buffer)
+{
+  if (*buffer) {
+    char inbuf[260];
+    char outbuf[260];
+
+    memset (outbuf, 0, 260);
+    strcpy (inbuf, *buffer);
+    if (GetLongPathName (inbuf, outbuf, 260)) {
+      *buffer = (char *)realloc(*buffer, strlen(outbuf) + 1);
+      strcpy (*buffer, outbuf);
+    }
+  }
+}
+#endif /* WIN32 */
+
+/* The entry point: set up for reading the command line, which will
+   happen in `topenin', then call the main body.  */
+void
+maininit (int ac, string *av)
+{
+  string main_input_file;
+
+  /* Save to pass along to topenin.  */
+  argc = ac;
+  argv = av;
+
+  /* Must be initialized before options are parsed.  */
+  interactionoption = 4;
+
+  /* Have things to record as we go along.  */
+  kpse_record_input = recorder_record_input;
+  kpse_record_output = recorder_record_output;
+
+#if defined(__SyncTeX__)
+  /* 0 means "disable Synchronize TeXnology".
+     synctexoption is a *.web variable.
+     We initialize it to a weird value to catch the -synctex command line flag.
+     At runtime, if synctexoption is not INT_MAX, then it contains the
+     command line option provided; otherwise, no such option was given
+     by the user.  */
+# define SYNCTEX_NO_OPTION INT_MAX
+  synctexoption = SYNCTEX_NO_OPTION;
+#endif
+
+  /* If the user says --help or --version, we need to notice early.  And
+     since we want the --ini option, have to do it before getting into
+     the web (which would read the base file, etc.).  */
+  parse_options (ac, av);
+
+  /* If -progname was not specified, default to the dump name.  */
+  if (!user_progname)
+    user_progname = dump_name;
+  
+  /* Do this early so we can inspect kpse_invocation_name and
+     kpse_program_name below, and because we have to do this before
+     any path searching.  */
+  kpse_set_program_name (argv[0], user_progname);
+
+  /* If the program name is "mf-nowin", then reset the name as "mf". */
+  if (strncasecmp (kpse_invocation_name, "mf-nowin", 8) == 0)
+    kpse_reset_program_name ("mf");
+
+  /* FIXME: gather engine names in a single spot. */
+  xputenv ("engine", TEXMFENGINENAME);
+  
+  /* Were we given a simple filename? */
+  main_input_file = get_input_file_name();
+
+#ifdef WIN32
+  if (main_input_file == NULL) {
+    string name;
+    boolean quoted;
+    name = argv[argc-1];
+    if (name && name[0] != '-' && name[0] != '&' && name[0] != '\\') {
+      if (strlen (name) > 2 && isalpha (name[0]) && name[1] == ':' &&
+          name[2] == '\\') {
+        string pp;
+        for (pp = name; *pp; pp++) {
+          if (IS_KANJI (pp))
+            pp++;
+          else if (*pp == '\\')
+            *pp = '/';
+        }
+      }
+      name = NULL;    
+      name = normalize_quotes(argv[argc-1], "argument");
+      quoted = (name[0] == '"');
+      if (quoted) {
+        /* Overwrite last quote and skip first quote. */
+        name[strlen(name)-1] = '\0';
+        name++;
+      }
+      main_input_file = kpse_find_file(name, INPUT_FORMAT, false);
+      if (!srcspecialsp)
+        change_to_long_name (&main_input_file);
+      if (quoted) {
+        /* Undo modifications */
+        name[strlen(name)] = '"';
+        name--;
+      }
+      if (!srcspecialsp) {
+        if (main_input_file)
+          name = normalize_quotes(main_input_file, "argument");
+      }
+      argv[argc-1] = name;
+    }
+  }
+#endif
+
+  /* Second chance to activate file:line:error style messages, this
+     time from texmf.cnf. */
+  if (filelineerrorstylep < 0) {
+    filelineerrorstylep = 0;
+  } else if (!filelineerrorstylep) {
+    filelineerrorstylep = texmf_yesno ("file_line_error_style");
+  }
+
+  /* If no dump default yet, and we're not doing anything special on
+     this run, we may want to look at the first line of the main input
+     file for a %&<dumpname> specifier.  */
+  if (parsefirstlinep < 0) {
+    parsefirstlinep = 0;
+  } else if (!parsefirstlinep) {
+    parsefirstlinep = texmf_yesno ("parse_first_line");
+  }
+  if (parsefirstlinep && (!dump_name || !translate_filename)) {
+    parse_first_line (main_input_file);
+  }
+  /* Check whether there still is no translate_filename known.  If so,
+     use the default_translate_filename. */
+  /* FIXME: deprecated. */
+  if (!translate_filename) {
+    translate_filename = default_translate_filename;
+  }
+  /* If we're preloaded, I guess everything is set up.  I don't really
+     know any more, it's been so long since anyone preloaded.  */
+  if (readyalready != 314159) {
+    /* The `ini_version' variable is declared/used in the change files.  */
+    boolean virversion = false;
+    if (FILESTRCASEEQ (kpse_program_name, INI_PROGRAM)) {
+      iniversion = true;
+    } else if (FILESTRCASEEQ (kpse_program_name, VIR_PROGRAM)) {
+      virversion = true;
+    } else if (FILESTRCASEEQ (kpse_program_name, "mltex")) {
+      mltexp = true;
+    }
+
+    if (!dump_name) {
+      /* If called as *vir{mf,tex,mpost} use `plain'.  Otherwise, use the
+         name we were invoked under.  */
+      dump_name = (virversion ? "plain" : kpse_program_name);
+    }
+  }
+  
+#ifdef TeX
+  /* Sanity check: -mltex, -enc, -etex only work in combination with -ini. */
+  if (!iniversion) {
+    if (mltexp) {
+      fprintf(stderr, "-mltex only works with -ini\n");
+    }
+  }
+#endif
+  
+  /* If we've set up the fmt/base default in any of the various ways
+     above, also set its length.  */
+  if (dump_name) {
+    const_string with_ext = NULL;
+    unsigned name_len = strlen (dump_name);
+    unsigned ext_len = strlen (DUMP_EXT);
+    
+    /* Provide extension if not there already.  */
+    if (name_len > ext_len
+        && FILESTRCASEEQ (dump_name + name_len - ext_len, DUMP_EXT)) {
+      with_ext = dump_name;
+    } else {
+      with_ext = concat (dump_name, DUMP_EXT);
+    }
+    DUMP_VAR = concat (" ", with_ext); /* adjust array for Pascal */
+    DUMP_LENGTH_VAR = strlen (DUMP_VAR + 1);
+  } else {
+    /* For dump_name to be NULL is a bug.  */
+    abort();
+  }
+
+  /* Additional initializations.  No particular reason for doing them
+     here instead of first thing in the change file; less symbols to
+     propagate through Webc, that's all.  */
+#ifdef TeX
+  kpse_set_program_enabled (kpse_tfm_format, MAKE_TEX_TFM_BY_DEFAULT,
+                            kpse_src_compile);
+  kpse_set_program_enabled (kpse_tex_format, MAKE_TEX_TEX_BY_DEFAULT,
+                            kpse_src_compile);
+  kpse_set_program_enabled (kpse_fmt_format, MAKE_TEX_FMT_BY_DEFAULT,
+                            kpse_src_compile);
+
+  init_shell_escape ();
+
+  if (!outputcomment) {
+    outputcomment = kpse_var_value ("output_comment");
+  }
+#if defined(MuLTeX)||defined(JTeX)
+  if (!hasargcode) {
+    string code = kpse_var_value ("jtex_filetype");
+    if (code)
+      argmlcode(code);
+  }
+#endif /* MuLTeX || JTeX */
+#endif /* TeX */
+}
+
+/* The entry point: set up for reading the command line, which will
+   happen in `topenin', then call the main body.  */
+
+int main(int ac, string *av)
+{
+#ifdef __EMX__
+  _wildcard (&ac, &av);
+  _response (&ac, &av);
+#endif
+
+#ifdef WIN32
+  _setmaxstdio(2048);
+  setmode(fileno(stdin), _O_BINARY);
+#endif
+
+  maininit (ac, av);
+
+  /* Call the real main program.  */
+  mainbody ();
+
+  return EXIT_SUCCESS;
+}
+
+/* This is supposed to ``open the terminal for input'', but what we
+   really do is copy command line arguments into TeX's or Metafont's
+   buffer, so they can handle them.  If nothing is available, or we've
+   been called already (and hence, argc==0), we return with
+   `last=first'.  */
+
+void
+topenin (void)
+{
+  int i;
+
+  buffer[first] = 0; /* In case there are no arguments.  */
+
+  if (optind < argc) { /* We have command line arguments.  */
+    int k = first;
+    for (i = optind; i < argc; i++) {
+      char *ptr = &(argv[i][0]);
+      /* Don't use strcat, since in Aleph the buffer elements aren't
+         single bytes.  */
+      while (*ptr) {
+        buffer[k++] = *(ptr++);
+      }
+      buffer[k++] = ' ';
+    }
+    argc = 0;	/* Don't do this again.  */
+    buffer[k] = 0;
+  }
+
+  /* Find the end of the buffer.  */
+  for (last = first; buffer[last]; ++last)
+    ;
+
+  /* Make `last' be one past the last non-blank character in `buffer'.  */
+  /* ??? The test for '\r' should not be necessary.  */
+  for (--last; last >= first
+       && ISBLANK (buffer[last]) && buffer[last] != '\r'; --last) 
+    ;
+  last++;
+
+  /* One more time, this time converting to TeX's internal character
+     representation.  */
+  for (i = first; i < last; i++)
+    buffer[i] = xord[buffer[i]];
+}
+
+/* IPC for TeX.  By Tom Rokicki for the NeXT; it makes TeX ship out the
+   DVI file in a pipe to TeXView so that the output can be displayed
+   incrementally.  Shamim Mohamed adapted it for Web2c.  */
+#if defined (TeX) && defined (IPC)
+
+#ifdef WIN32
+#undef _WINSOCKAPI_
+#include <winsock2.h>
+#else
+#include <sys/socket.h>
+#include <fcntl.h>
+#ifndef O_NONBLOCK /* POSIX */
+#ifdef O_NDELAY    /* BSD */
+#define O_NONBLOCK O_NDELAY
+#elif defined(O_FNDELAY)     /* NeXT */
+#define O_NONBLOCK O_FNDELAY
+#else
+what the fcntl? cannot implement IPC without equivalent for O_NONBLOCK.
+#endif
+#endif /* no O_NONBLOCK */
+#endif /* !WIN32 */
+
+#ifdef WIN32
+# define IPC_AF AF_INET
+# ifndef IPC_LOCAL_HOST
+#  define IPC_LOCAL_HOST "127.0.0.1"
+#  define FIXED_PORT     (unsigned short)4242
+# endif
+#else
+# define IPC_AF AF_UNIX
+# ifndef IPC_PIPE_NAME /* $HOME is prepended to this.  */
+#  define IPC_PIPE_NAME "/.TeXview_Pipe"
+# endif
+#endif
+#ifndef IPC_SERVER_CMD /* Command to run to start the server.  */
+# ifdef WIN32
+#  define IPC_SERVER_CMD "texview.exe"
+# else
+#  define IPC_SERVER_CMD "open `which TeXview`"
+# endif
+#endif
+
+struct msg
+{
+  int   namelength; /* length of auxiliary data */
+  int   eof;        /* new eof for dvi file */
+#if 0  /* see usage of struct msg below */
+  char more_data[0]; /* where the rest of the stuff goes */ 
+#endif
+};
+
+static struct sockaddr *ipc_addr;
+static int ipc_addr_len;
+
+static int
+ipc_make_name (void)
+{
+  if (ipc_addr_len == 0) {
+#ifdef WIN32
+    unsigned long remote_addr = inet_addr(IPC_LOCAL_HOST);
+    if (remote_addr != INADDR_NONE) {
+      struct sockaddr_in *ipc_sin_addr = xmalloc (sizeof (struct sockaddr_in));
+      ipc_sin_addr->sin_family = AF_INET;
+      ipc_sin_addr->sin_addr.s_addr = remote_addr;
+      ipc_sin_addr->sin_port = htons (FIXED_PORT);
+      ipc_addr = ((struct sockaddr *) ipc_sin_addr);
+      ipc_addr_len = sizeof(struct sockaddr_in);
+    }
+#else
+    string s = getenv ("HOME");
+    if (s) {
+      char *ipc_name;
+      ipc_addr = xmalloc (strlen (s) + 40);
+      ipc_addr->sa_family = 0;
+      ipc_name = ipc_addr->sa_data;
+      strcpy (ipc_name, s);
+      strcat (ipc_name, IPC_PIPE_NAME);
+      ipc_addr_len = strlen (ipc_name) + 3;
+    }
+#endif
+  }
+  return ipc_addr_len;
+}
+
+#ifndef INVALID_SOCKET
+# define INVALID_SOCKET (-1)
+#endif
+static int sock = INVALID_SOCKET;
+
+#ifdef WIN32
+# define CLOSE_SOCKET(s) closesocket (s); WSACleanup ()
+#else
+# define CLOSE_SOCKET(s) close (s)
+#endif
+
+static int
+ipc_is_open (void)
+{
+   return sock != INVALID_SOCKET;
+}
+
+static void
+ipc_open_out (void) {
+#ifdef WIN32
+  struct WSAData wsaData;
+  int nCode;
+  unsigned long mode = 1;
+#endif
+#ifdef IPC_DEBUG
+  fputs ("tex: Opening socket for IPC output ...\n", stderr);
+#endif
+  if (sock != INVALID_SOCKET) {
+    return;
+  }
+
+#ifdef WIN32
+  if ((nCode = WSAStartup(MAKEWORD(1, 1), &wsaData)) != 0) {
+    fprintf(stderr,"WSAStartup() returned error code %d.\n", nCode);
+    return;
+  }
+#endif
+
+  if (ipc_make_name () <= 0)
+    return;
+
+  sock = socket (IPC_AF, SOCK_STREAM, 0);
+#ifdef IPC_DEBUG
+  if(sock != INVALID_SOCKET)
+    fprintf(stderr, "tex: Socket handle is %d\n", sock);
+  else
+    fprintf(stderr, "tex: Socket is invalid.\n");
+#endif
+
+  if (sock != INVALID_SOCKET) {
+    if (connect (sock, ipc_addr, ipc_addr_len) != 0 ||
+#ifdef WIN32
+        ioctlsocket (sock, FIONBIO, &mode) < 0
+#else
+        fcntl (sock, F_SETFL, O_NONBLOCK) < 0
+#endif
+        ) {
+      CLOSE_SOCKET (sock);
+      sock = INVALID_SOCKET;
+#ifdef IPC_DEBUG
+      fputs ("tex: IPC socket cannot be connected.\n", stderr);
+      fputs ("tex: Socket is closed.\n", stderr);
+#endif
+      return;
+    }
+#ifdef IPC_DEBUG
+    fputs ("tex: Successfully opened IPC socket.\n", stderr);
+#endif
+  }
+}
+
+static void
+ipc_close_out (void)
+{
+#ifdef IPC_DEBUG
+  fputs ("tex: Closing output socket ...\n", stderr);
+#endif
+  if (ipc_is_open ()) {
+    CLOSE_SOCKET (sock);
+    sock = INVALID_SOCKET;
+  }
+}
+
+static void
+ipc_snd (int n, int is_eof, char *data)
+{
+  struct
+  {
+    struct msg msg;
+    char more_data[1024];
+  } ourmsg;
+
+  if (!ipc_is_open ()) {
+    return;
+  }
+
+#ifdef IPC_DEBUG
+  fprintf(stderr, "%d\t%d\n", ourmsg.msg.namelength, ourmsg.msg.eof);
+  fputs ("tex: Sending message to socket ...\n", stderr);
+#endif
+  ourmsg.msg.namelength = n;
+  ourmsg.msg.eof = is_eof;
+  if (n) {
+    strcpy (ourmsg.more_data, data);
+  }
+  n += sizeof (struct msg);
+#ifdef IPC_DEBUG
+  fprintf(stderr, "%d\t%d\n", ourmsg.msg.namelength, ourmsg.msg.eof);
+  fputs ("tex: Writing to socket...\n", stderr);
+#endif
+#if defined(WIN32)
+  if (send (sock, (char *)&ourmsg, n, 0) != n) {
+#else
+  if (write (sock, &ourmsg, n) != n) {
+#endif
+    ipc_close_out ();
+  }
+#ifdef IPC_DEBUG
+  fputs ("tex: IPC message sent.\n", stderr);
+#endif
+}
+
+/* This routine notifies the server if there is an eof, or the filename
+   if a new DVI file is starting.  This is the routine called by TeX.
+   Aleph defines str_start(#) as str_start_ar[# - too_big_char], with
+   too_big_char = biggest_char + 1 = 65536 (omstr.ch).  */
+
+void
+ipcpage (int is_eof)
+{
+  static boolean begun = false;
+  unsigned len = 0;
+  string p = NULL;
+
+  if (!begun) {
+    string name; /* Just the filename.  */
+    string cwd = xgetcwd ();
+    
+    ipc_open_out ();
+    len = strstart[outputfilename + 1] - strstart[outputfilename];
+    name = xmalloc (len + 1);
+    strncpy (name, (string)&strpool[strstart[outputfilename]], len);
+    name[len] = 0;
+
+    /* Have to pass whole filename to the other end, since it may have
+       been started up and running as a daemon, e.g., as with the NeXT
+       preview program.  */
+    p = concat3 (cwd, DIR_SEP_STRING, name);
+    free (cwd);
+    free (name);
+
+#if defined (WIN32)
+    { char *q;
+      for (q = p; *q; q++) {
+        if (*q == '\\')
+          *q = '/';
+        else if (IS_KANJI(q))
+          q++;
+      }
+    }
+#endif
+    len = strlen(p);
+    begun = true;
+  }
+  ipc_snd (len, is_eof, p);
+  
+  if (p)
+    free (p);
+}
+#endif /* TeX && IPC */
+
+
+#if defined (TeX)
+  /* TCX and Aleph&Co get along like sparks and gunpowder. */
+
+/* Return the next number following START, setting POST to the following
+   character, as in strtol.  Issue a warning and return -1 if no number
+   can be parsed.  */
+
+static int
+tcx_get_num (int upb,
+             unsigned line_count,
+             string start,
+             string *post)
+{
+  int num = strtol (start, post, 0);
+  assert (post && *post);
+  if (*post == start) {
+    /* Could not get a number. If blank line, fine. Else complain.  */
+    string p = start;
+    while (*p && ISSPACE (*p))
+      p++;
+    if (*p != 0)
+      fprintf (stderr, "%s:%d: Expected numeric constant, not `%s'.\n",
+               translate_filename, line_count, start);
+    num = -1;
+  } else if (num < 0 || num > upb) {
+    fprintf (stderr, "%s:%d: Destination charcode %d <0 or >%d.\n",
+             translate_filename, line_count, num, upb);
+    num = -1;
+  }  
+
+  return num;
+}
+
+/* Update the xchr, xord, and xprn arrays for TeX, allowing a
+   translation table specified at runtime via an external file.
+   Look for the character translation file FNAME along the same path as
+   tex.pool.  If no suffix in FNAME, use .tcx (don't bother trying to
+   support extension-less names for these files).  */
+
+/* FIXME: A new format ought to be introduced for these files. */
+
+void
+readtcxfile (void)
+{
+  string orig_filename;
+  if (!find_suffix (translate_filename)) {
+    translate_filename = concat (translate_filename, ".tcx");
+  }
+  orig_filename = translate_filename;
+  translate_filename
+    = kpse_find_file (translate_filename, kpse_web2c_format, true);
+  if (translate_filename) {
+    string line;
+    unsigned line_count = 0;
+    FILE *translate_file = xfopen (translate_filename, FOPEN_R_MODE);
+    while ((line = read_line (translate_file))) {
+      int first;
+      string start2;
+      string comment_loc = strchr (line, '%');
+      if (comment_loc)
+        *comment_loc = 0;
+
+      line_count++;
+
+      first = tcx_get_num (255, line_count, line, &start2);
+      if (first >= 0) {
+        string start3;
+        int second;
+        int printable;
+        
+        second = tcx_get_num (255, line_count, start2, &start3);
+        if (second >= 0) {
+            /* I suppose we could check for nonempty junk following the
+               "printable" code, but let's not bother.  */
+          string extra;
+            
+          /* If they mention a second code, make that the internal number.  */
+          xord[first] = second;
+          xchr[second] = first;
+
+          printable = tcx_get_num (1, line_count, start3, &extra);
+          /* Not-a-number, may be a comment. */
+          if (printable == -1)
+            printable = 1;
+          /* Don't allow the 7bit ASCII set to become unprintable. */
+          if (32 <= second && second <= 126)
+            printable = 1;
+        } else {
+          second = first; /* else make internal the same as external */
+          /* If they mention a charcode, call it printable.  */
+          printable = 1;
+        }
+
+        xprn[second] = printable;
+      }
+      free (line);
+    }
+    xfclose(translate_file, translate_filename);
+  } else {
+    WARNING1 ("Could not open char translation file `%s'", orig_filename);
+  }
+}
+
+void
+setupcharset (void)
+{
+  unsigned c;
+  
+  /* Set up defaults.  Doing this first means the tcx file doesn't have
+     to boringly specify all the usual stuff.  It also means it can't
+     override the usual stuff.  This is a good thing, because of the way
+     we handle the string pool. */
+  for (c = 0; c <= 255; c++) {
+    xchr[c] = xord[c] = c;
+    xprn[c] = (32 <= c && c <= 126);
+  }
+}
+#endif /* TeX [character translation] */
+
+
+/* Normalize quoting of filename -- that is, only quote if there is a space,
+   and always use the quote-name-quote style. */
+static string
+normalize_quotes (const_string name, const_string mesg)
+{
+    boolean quoted = false;
+    boolean must_quote = (strchr(name, ' ') != NULL);
+    /* Leave room for quotes and NUL. */
+    string ret = xmalloc(strlen(name)+3);
+    string p;
+    const_string q;
+    p = ret;
+    if (must_quote)
+        *p++ = '"';
+    for (q = name; *q; q++) {
+        if (*q == '"')
+            quoted = !quoted;
+        else
+            *p++ = *q;
+    }
+    if (must_quote)
+        *p++ = '"';
+    *p = '\0';
+    if (quoted) {
+        fprintf(stderr, "! Unbalanced quotes in %s %s\n", mesg, name);
+        uexit(1);
+    }
+    return ret;
+}
+
+/* Getting the input filename. */
+string
+get_input_file_name (void)
+{
+  string input_file_name = NULL;
+
+  if (argv[optind] && argv[optind][0] != '&' && argv[optind][0] != '\\') {
+    /* Not &format, not \input, so assume simple filename. */    
+    string name;
+    boolean quoted;
+
+#ifdef WIN32
+    if (strlen (argv[optind]) > 2 && isalpha (argv[optind][0]) &&
+        argv[optind][1] == ':' && argv[optind][2] == '\\') {
+      char *pp;
+      for (pp = argv[optind]; *pp; pp++) {
+        if (*pp == '\\')
+          *pp = '/';
+        else if (IS_KANJI(pp))
+          pp++;
+      }
+    }
+#endif
+
+    name = normalize_quotes(argv[optind], "argument");
+    quoted = (name[0] == '"');
+    if (quoted) {
+        /* Overwrite last quote and skip first quote. */
+        name[strlen(name)-1] = '\0';
+        name++;
+    }
+    input_file_name = kpse_find_file(name, INPUT_FORMAT, false);
+#ifdef WIN32
+    if (!srcspecialsp)
+      change_to_long_name (&input_file_name);
+#endif
+    if (quoted) {
+        /* Undo modifications */
+        name[strlen(name)] = '"';
+        name--;
+    }
+#ifdef WIN32
+    if (!srcspecialsp) {
+      if (input_file_name)
+        name = normalize_quotes (input_file_name, "argument");
+    }
+#endif
+    argv[optind] = name;
+  }
+  return input_file_name;
+}
+
+/* Reading the options.  */
+
+/* Test whether getopt found an option ``A''.
+   Assumes the option index is in the variable `option_index', and the
+   option table in a variable `long_options'.  */
+#define ARGUMENT_IS(a) STREQ (long_options[option_index].name, a)
+
+/* SunOS cc can't initialize automatic structs, so make this static.  */
+static struct option long_options[]
+  = { { DUMP_OPTION,                 1, 0, 0 },
+      { "help",                      0, 0, 0 },
+      { "ini",                       0, &iniversion, 1 },
+      { "interaction",               1, 0, 0 },
+      { "halt-on-error",             0, &haltonerrorp, 1 },
+      { "kpathsea-debug",            1, 0, 0 },
+      { "progname",                  1, 0, 0 },
+      { "version",                   0, 0, 0 },
+      { "recorder",                  0, &recorder_enabled, 1 },
+#ifdef TeX
+#ifdef IPC
+      { "ipc",                       0, &ipcon, 1 },
+      { "ipc-start",                 0, &ipcon, 2 },
+#endif /* IPC */
+      { "mltex",                     0, &mltexp, 1 },
+      { "output-comment",            1, 0, 0 },
+      { "shell-escape",              0, &shellenabledp, 1 },
+      { "no-shell-escape",           0, &shellenabledp, -1 },
+      { "enable-write18",            0, &shellenabledp, 1 },
+      { "disable-write18",           0, &shellenabledp, -1 },
+      { "shell-restricted",          0, 0, 0 },
+      { "debug-format",              0, &debugformatfile, 1 },
+      { "src-specials",              2, 0, 0 },
+#if defined(MuLTeX) || defined(JTeX)
+      { "code",			1, 0, 0 },
+#endif /* MuLTeX || JTeX */
+      { "file-line-error-style",     0, &filelineerrorstylep, 1 },
+      { "no-file-line-error-style",  0, &filelineerrorstylep, -1 },
+      /* Shorter option names for the above. */
+      { "file-line-error",           0, &filelineerrorstylep, 1 },
+      { "no-file-line-error",        0, &filelineerrorstylep, -1 },
+      { "jobname",                   1, 0, 0 },
+      { "output-directory",          1, 0, 0 },
+      { "parse-first-line",          0, &parsefirstlinep, 1 },
+      { "no-parse-first-line",       0, &parsefirstlinep, -1 },
+#if defined(__SyncTeX__)
+      /* Synchronization: just like "interaction" above */
+      { "synctex",                   1, 0, 0 },
+#endif
+      { "translate-file",            1, 0, 0 },
+      { "default-translate-file",    1, 0, 0 },
+      { "8bit",                      0, &eightbitp, 1 },
+      { "mktex",                     1, 0, 0 },
+      { "no-mktex",                  1, 0, 0 },
+#endif /* TeX */
+      { 0, 0, 0, 0 } };
+
+static void
+parse_options (int argc,  string *argv)
+{
+  int g;   /* `getopt' return code.  */
+  int option_index;
+
+  for (;;) {
+    g = getopt_long_only (argc, argv, "+", long_options, &option_index);
+
+    if (g == -1) /* End of arguments, exit the loop.  */
+      break;
+
+    if (g == '?') { /* Unknown option.  */
+      /* FIXME: usage (argv[0]); replaced by continue. */
+      continue;
+    }
+
+    assert (g == 0); /* We have no short option names.  */
+
+    if (ARGUMENT_IS ("kpathsea-debug")) {
+      kpathsea_debug |= atoi (optarg);
+
+    } else if (ARGUMENT_IS ("progname")) {
+      user_progname = optarg;
+
+    } else if (ARGUMENT_IS ("jobname")) {
+      c_job_name = normalize_quotes (optarg, "jobname");
+      
+    } else if (ARGUMENT_IS (DUMP_OPTION)) {
+      dump_name = optarg;
+      dumpoption = true;
+
+    } else if (ARGUMENT_IS ("output-directory")) {
+      output_directory = optarg;
+      
+#ifdef TeX
+    } else if (ARGUMENT_IS ("output-comment")) {
+      unsigned len = strlen (optarg);
+      if (len < 256) {
+        outputcomment = optarg;
+      } else {
+        WARNING2 ("Comment truncated to 255 characters from %d. (%s)",
+                  len, optarg);
+        outputcomment = xmalloc (256);
+        strncpy (outputcomment, optarg, 255);
+        outputcomment[255] = 0;
+      }
+#if defined(MuLTeX) || defined(JTeX)
+    } else if (ARGUMENT_IS ("code")) {
+	argmlcode (optarg);
+#endif /* MuLTeX || JTeX */
+
+#ifdef IPC
+    } else if (ARGUMENT_IS ("ipc-start")) {
+      ipc_open_out ();
+      /* Try to start up the other end if it's not already.  */
+      if (!ipc_is_open ()) {
+#ifdef WIN32
+        if (spawnlp (_P_NOWAIT, IPC_SERVER_CMD, IPC_SERVER_CMD, NULL) != -1) {
+#else
+        if (system (IPC_SERVER_CMD) == 0) {
+#endif
+          unsigned i;
+          for (i = 0; i < 20 && !ipc_is_open (); i++) {
+#ifdef WIN32
+            Sleep (100); /* 2000ms is too long for a simple w32 example */
+#else
+            sleep (2);
+#endif
+            ipc_open_out ();
+          }
+        }
+      }
+#endif /* IPC */
+
+    } else if (ARGUMENT_IS ("shell-restricted")) {
+      shellenabledp = 1;
+      restrictedshell = 1;
+      
+    } else if (ARGUMENT_IS ("src-specials")) {
+       last_source_name = xstrdup("");
+       /* Option `--src" without any value means `auto' mode. */
+       if (optarg == NULL) {
+         insertsrcspecialeverypar = true;
+         insertsrcspecialauto = true;
+         srcspecialsoption = true;
+         srcspecialsp = true;
+       } else {
+          parse_src_specials_option(optarg);
+       }
+    } else if (ARGUMENT_IS ("translate-file")) {
+      translate_filename = optarg;
+
+    } else if (ARGUMENT_IS ("default-translate-file")) {
+      default_translate_filename = optarg;
+
+    } else if (ARGUMENT_IS ("mktex")) {
+      kpse_maketex_option (optarg, true);
+
+    } else if (ARGUMENT_IS ("no-mktex")) {
+      kpse_maketex_option (optarg, false);
+#endif /* TeX */
+    } else if (ARGUMENT_IS ("interaction")) {
+        /* These numbers match @d's in *.ch */
+      if (STREQ (optarg, "batchmode")) {
+        interactionoption = 0;
+      } else if (STREQ (optarg, "nonstopmode")) {
+        interactionoption = 1;
+      } else if (STREQ (optarg, "scrollmode")) {
+        interactionoption = 2;
+      } else if (STREQ (optarg, "errorstopmode")) {
+        interactionoption = 3;
+      } else {
+        WARNING1 ("Ignoring unknown argument `%s' to --interaction", optarg);
+      }
+      
+    } else if (ARGUMENT_IS ("help")) {
+        usagehelp (PROGRAM_HELP, BUG_ADDRESS);
+
+#if defined(__SyncTeX__)
+    } else if (ARGUMENT_IS ("synctex")) {
+		/* Synchronize TeXnology: catching the command line option as a long  */
+		synctexoption = (int) strtol(optarg, NULL, 0);
+#endif
+    } else if (ARGUMENT_IS ("version")) {
+      printversionandexit (BANNER, COPYRIGHT_HOLDER, AUTHOR, NULL);
+
+    } /* Else it was a flag; getopt has already done the assignment.  */
+  }
+}
+
+#if defined(TeX)
+void 
+parse_src_specials_option (const_string opt_list)
+{
+  char * toklist = xstrdup(opt_list);
+  char * tok;
+  insertsrcspecialauto = false;
+  tok = strtok (toklist, ", ");
+  while (tok) {
+    if (strcmp (tok, "everypar") == 0
+        || strcmp (tok, "par") == 0
+        || strcmp (tok, "auto") == 0) {
+      insertsrcspecialauto = true;
+      insertsrcspecialeverypar = true;
+    } else if (strcmp (tok, "everyparend") == 0
+               || strcmp (tok, "parend") == 0)
+      insertsrcspecialeveryparend = true;
+    else if (strcmp (tok, "everycr") == 0
+             || strcmp (tok, "cr") == 0)
+      insertsrcspecialeverycr = true;
+    else if (strcmp (tok, "everymath") == 0
+             || strcmp (tok, "math") == 0)
+      insertsrcspecialeverymath = true;
+    else if (strcmp (tok, "everyhbox") == 0
+             || strcmp (tok, "hbox") == 0)
+      insertsrcspecialeveryhbox = true;
+    else if (strcmp (tok, "everyvbox") == 0
+             || strcmp (tok, "vbox") == 0)
+      insertsrcspecialeveryvbox = true;
+    else if (strcmp (tok, "everydisplay") == 0
+             || strcmp (tok, "display") == 0)
+      insertsrcspecialeverydisplay = true;
+    else if (strcmp (tok, "none") == 0) {
+      /* This one allows to reset an option that could appear in texmf.cnf */
+      insertsrcspecialauto = insertsrcspecialeverypar = 
+        insertsrcspecialeveryparend = insertsrcspecialeverycr = 
+        insertsrcspecialeverymath =  insertsrcspecialeveryhbox =
+        insertsrcspecialeveryvbox = insertsrcspecialeverydisplay = false;
+    } else {
+      WARNING1 ("Ignoring unknown argument `%s' to --src-specials", tok);
+    }
+    tok = strtok(0, ", ");
+  }
+  free(toklist);
+  srcspecialsp=insertsrcspecialauto | insertsrcspecialeverypar |
+    insertsrcspecialeveryparend | insertsrcspecialeverycr |
+    insertsrcspecialeverymath |  insertsrcspecialeveryhbox |
+    insertsrcspecialeveryvbox | insertsrcspecialeverydisplay;
+  srcspecialsoption = true;
+}
+#endif
+
+/* If the first thing on the command line (we use the globals `argv' and
+   `optind') is a normal filename (i.e., does not start with `&' or
+   `\'), and if we can open it, and if its first line is %&FORMAT, and
+   FORMAT is a readable dump file, then set DUMP_VAR to FORMAT.
+   Also call kpse_reset_program_name to ensure the correct paths for the
+   format are used.  */
+static void
+parse_first_line (const_string filename)
+{
+  FILE *f = filename ? fopen (filename, FOPEN_R_MODE) : NULL;
+  if (f) {
+    string first_line = read_line (f);
+    xfclose (f, filename);
+
+    /* We deal with the general format "%&fmt --translate-file=tcx" */
+    /* The idea of using this format came from Wlodzimierz Bzyl
+       <matwb@monika.univ.gda.pl> */
+    if (first_line && first_line[0] == '%' && first_line[1] == '&') {
+      /* Parse the first line into at most three space-separated parts. */
+      char *s;
+      char *part[4];
+      int npart;
+      char **parse;
+
+      for (s = first_line+2; ISBLANK(*s); ++s)
+        ;
+      npart = 0;
+      while (*s && npart != 3) {
+        part[npart++] = s;
+        while (*s && *s != ' ') s++;
+        while (*s == ' ') *s++ = '\0';
+      }
+      part[npart] = NULL;
+      parse = part;
+      /* Look at what we've got.  Very crude! */
+      if (*parse && **parse != '-') {
+        /* A format name */
+        if (dump_name) {
+          /* format already determined, do nothing. */
+        } else {
+          string f_name = concat (part[0], DUMP_EXT);
+          string d_name = kpse_find_file (f_name, DUMP_FORMAT, false);
+          if (d_name && kpse_readable_file (d_name)) {
+            dump_name = xstrdup (part[0]);
+            kpse_reset_program_name (dump_name);
+            /* Tell TeX/MF/MP we have a %&name line... */
+            dumpline = true;
+          }
+          free (f_name);
+        }
+        parse++;
+      }
+      /* The tcx stuff, if any.  Should we support the -translate-file
+         form as well as --translate-file?  */
+      if (*parse) {
+        s = NULL;
+        if (translate_filename) {
+          /* TCX file already set, do nothing. */
+        } else if (STREQ (*parse, "--translate-file")) {
+          s = *(parse+1);
+        } else if (STREQ (*parse, "-translate-file")) {
+          s = *(parse+1);
+        } else if (STRNEQ (*parse, "--translate-file=", 17)) {
+          s = *parse+17;
+        } else if (STRNEQ (*parse, "-translate-file=", 16)) {
+          s = *parse+16;
+        }
+        /* Just set the name, no sanity checks here. */
+        /* FIXME: remove trailing spaces. */
+        if (s && *s) {
+          translate_filename = xstrdup(s);
+        }
+      }
+    }
+    if (first_line)
+      free (first_line);
+  }
+}
+
+/* 
+  piped I/O
+ */
+
+/* The code that implements popen() needs an array for tracking 
+   possible pipe file pointers, because these need to be
+   closed using pclose().
+*/
+
+#if defined(TeX)
+
+#define NUM_PIPES 16
+
+static FILE *pipes [NUM_PIPES];
+
+boolean
+open_in_or_pipe (FILE **f_ptr,  int filefmt,  const_string fopen_mode)
+{
+    string fname = NULL;
+    int i; /* iterator */
+
+    /* opening a read pipe is straightforward, only have to
+       skip past the pipe symbol in the file name. filename
+       quoting is assumed to happen elsewhere (it does :-)) */
+
+    if (shellenabledp && *(nameoffile+1) == '|') {
+      /* the user requested a pipe */
+      *f_ptr = NULL;
+      fname = xmalloc(strlen((const_string)(nameoffile+1))+1);
+      strcpy(fname,(const_string)(nameoffile+1));
+      if (fullnameoffile)
+        free(fullnameoffile);
+      fullnameoffile = xstrdup(fname);
+      recorder_record_input (fname + 1);
+      *f_ptr = runpopen(fname+1,"r");
+      free(fname);
+      for (i=0; i<NUM_PIPES; i++) {
+        if (pipes[i]==NULL) {
+          pipes[i] = *f_ptr;
+          break;
+        }
+      }
+      if (*f_ptr)
+        setvbuf (*f_ptr,NULL,_IONBF,0);
+
+      return *f_ptr != NULL;
+    }
+
+    return open_input(f_ptr,filefmt,fopen_mode) ;
+}
+
+
+boolean
+open_out_or_pipe (FILE **f_ptr,  const_string fopen_mode)
+{
+    string fname;
+    int i; /* iterator */
+
+    /* opening a write pipe takes a little bit more work, because TeX
+       will perhaps have appended ".tex".  To avoid user confusion as
+       much as possible, this extension is stripped only when the command
+       is a bare word.  Some small string trickery is needed to make
+       sure the correct number of bytes is free()-d afterwards */
+	
+    if (shellenabledp && *(nameoffile+1) == '|') {
+      /* the user requested a pipe */
+      fname = xmalloc(strlen((const_string)(nameoffile+1))+1);
+      strcpy(fname,(const_string)(nameoffile+1));
+      if (strchr (fname,' ')==NULL && strchr(fname,'>')==NULL) {
+        /* mp and mf currently do not use this code, but it 
+           is better to be prepared */
+        if (STREQ((fname+strlen(fname)-4),".tex"))
+          *(fname+strlen(fname)-4) = 0;
+        *f_ptr = runpopen(fname+1,"w");
+        *(fname+strlen(fname)) = '.';
+      } else {
+        *f_ptr = runpopen(fname+1,"w");
+      }
+      recorder_record_output (fname + 1);
+      free(fname);
+
+      for (i=0; i<NUM_PIPES; i++) {
+        if (pipes[i]==NULL) {
+          pipes[i] = *f_ptr;
+          break;
+        }
+      }
+
+      if (*f_ptr)
+        setvbuf(*f_ptr,NULL,_IONBF,0);
+
+      return *f_ptr != NULL;
+    }
+
+    return open_output(f_ptr,fopen_mode);
+}
+
+
+void
+close_file_or_pipe (FILE *f)
+{
+  int i; /* iterator */
+
+  if (shellenabledp) {
+    /* if this file was a pipe, pclose() it and return */    
+    for (i=0; i<NUM_PIPES; i++) {
+      if (pipes[i] == f) {
+        if (f) {
+          pclose (f);
+	}
+        pipes[i] = NULL;
+        return;
+      }
+    }
+  }
+  close_file(f);
+}
+#endif
+
+/* All our interrupt handler has to do is set TeX's or Metafont's global
+   variable `interrupt'; then they will do everything needed.  */
+#ifdef WIN32
+/* Win32 doesn't set SIGINT ... */
+static BOOL WINAPI
+catch_interrupt (DWORD arg)
+{
+  switch (arg) {
+  case CTRL_C_EVENT:
+  case CTRL_BREAK_EVENT:
+    interrupt = 1;
+    return TRUE;
+  default:
+    /* No need to set interrupt as we are exiting anyway */
+    return FALSE;
+  }
+}
+#else /* not WIN32 */
+static RETSIGTYPE
+catch_interrupt (int arg)
+{
+  interrupt = 1;
+#ifdef OS2
+  (void) signal (SIGINT, SIG_ACK);
+#else
+  (void) signal (SIGINT, catch_interrupt);
+#endif /* not OS2 */
+}
+#endif /* not WIN32 */
+
+#if defined(_MSC_VER)
+#define strtoull _strtoui64
+#endif
+
+static boolean start_time_set = false;
+static time_t start_time = 0;
+
+void init_start_time() {
+    char *source_date_epoch;
+    unsigned long long epoch;
+    char *endptr;
+    if (!start_time_set) {
+        start_time_set = true;
+        source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+        if (source_date_epoch) {
+            errno = 0;
+            epoch = strtoull(source_date_epoch, &endptr, 10);
+            if (epoch < 0 || *endptr != '\0' || errno != 0) {
+FATAL1 ("invalid epoch-seconds-timezone value for environment variable $SOURCE_DATE_EPOCH: %s",
+                      source_date_epoch);
+            }
+#if defined(_MSC_VER)
+            if (epoch > 32535291599ULL)
+                epoch = 32535291599ULL;
+#endif
+            start_time = epoch;
+        } else {
+            start_time = time((time_t *) NULL);
+        }
+    }
+}
+
+/* Besides getting the date and time here, we also set up the interrupt
+   handler, for no particularly good reason.  It's just that since the
+   `fix_date_and_time' routine is called early on (section 1337 in TeX,
+   ``Get the first line of input and prepare to start''), this is as
+   good a place as any.  */
+
+void
+get_date_and_time (integer *minutes,  integer *day,
+                   integer *month,  integer *year)
+{
+  struct tm *tmptr;
+  string sde_texprim = getenv ("FORCE_SOURCE_DATE");
+  if (sde_texprim && STREQ (sde_texprim, "1")) {
+    init_start_time ();
+    tmptr = gmtime (&start_time);
+  } else {
+    /* whether the envvar was not set (usual case) or invalid,
+       use current time.  */
+    time_t myclock = time ((time_t *) 0);
+    tmptr = localtime (&myclock);
+
+    /* warn if they gave an invalid value, empty (null string) ok.  */
+    if (sde_texprim && strlen (sde_texprim) > 0
+        && !STREQ (sde_texprim, "0")) {
+WARNING1 ("invalid value (expected 0 or 1) for environment variable $FORCE_SOURCE_DATE: %s", 
+          sde_texprim);
+    }
+  }
+
+  *minutes = tmptr->tm_hour * 60 + tmptr->tm_min;
+  *day = tmptr->tm_mday;
+  *month = tmptr->tm_mon + 1;
+  *year = tmptr->tm_year + 1900;
+
+  {
+#ifdef SA_INTERRUPT
+    /* Under SunOS 4.1.x, the default action after return from the
+       signal handler is to restart the I/O if nothing has been
+       transferred.  The effect on TeX is that interrupts are ignored if
+       we are waiting for input.  The following tells the system to
+       return EINTR from read() in this case.  From ken@cs.toronto.edu.  */
+
+    struct sigaction a, oa;
+
+    a.sa_handler = catch_interrupt;
+    sigemptyset (&a.sa_mask);
+    sigaddset (&a.sa_mask, SIGINT);
+    a.sa_flags = SA_INTERRUPT;
+    sigaction (SIGINT, &a, &oa);
+    if (oa.sa_handler != SIG_DFL)
+      sigaction (SIGINT, &oa, (struct sigaction *) 0);
+#else /* no SA_INTERRUPT */
+#ifdef WIN32
+    SetConsoleCtrlHandler(catch_interrupt, TRUE);
+#else /* not WIN32 */
+    RETSIGTYPE (*old_handler)(int);
+    
+    old_handler = signal (SIGINT, catch_interrupt);
+    if (old_handler != SIG_DFL)
+      signal (SIGINT, old_handler);
+#endif /* not WIN32 */
+#endif /* no SA_INTERRUPT */
+  }
+}
+
+/*
+ Getting a high resolution time.
+ */
+void
+get_seconds_and_micros (integer *seconds,  integer *micros)
+{
+#if defined (HAVE_GETTIMEOFDAY)
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+  *seconds = tv.tv_sec;
+  *micros  = tv.tv_usec;
+#elif defined (HAVE_FTIME)
+  struct timeb tb;
+  ftime(&tb);
+  *seconds = tb.time;
+  *micros  = tb.millitm*1000;
+#else
+  time_t myclock = time((time_t*)NULL);
+  *seconds = myclock;
+  *micros  = 0;
+#endif
+}
+
+/*
+  Generating a better seed numbers
+  */
+integer
+getrandomseed(void)
+{
+#if defined (HAVE_GETTIMEOFDAY)
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+  return (tv.tv_usec + 1000000 * tv.tv_usec);
+#elif defined (HAVE_FTIME)
+  struct timeb tb;
+  ftime(&tb);
+  return (tb.millitm + 1000 * tb.time);
+#else
+  time_t myclock = time ((time_t*)NULL);
+  struct tm *tmptr = localtime(&myclock);
+  return (tmptr->tm_sec + 60*(tmptr->tm_min + 60*tmptr->tm_hour));
+#endif
+}
+
+/* Read a line of input as efficiently as possible while still looking
+   like Pascal.  We set `last' to `first' and return `false' if we get
+   to eof.  Otherwise, we return `true' and set last = first +
+   length(line except trailing whitespace).  */
+
+boolean
+input_line (FILE *f)
+{
+  int i;
+#if defined(MuLTeX)||defined(JTeX)
+  mlcinfo *mi = &mlcodeinfo[fileno(f)];
+#ifdef	JTeX
+  /* In JTeX, kanji type of input line is checked
+     at the beginning of each line. */
+  int kt;
+
+  kt = (f==stdin) ? getkanjiterminaltype() : getkanjifiletype();
+  if (kt != mi->ktype)
+      setinkanjitype(f, kt);
+#endif
+#endif
+
+  /* Recognize either LF or CR as a line terminator.  */
+  last = first;
+#if defined(MuLTeX)||defined(JTeX)
+  i = (*(mi->in_ln))(f, mi);
+#else
+  while (last < bufsize && (i = getc (f)) != EOF && i != '\n' && i != '\r')
+    buffer[last++] = i;
+#endif
+
+  if (i == EOF && errno != EINTR && last == first)
+    return false;
+
+  /* We didn't get the whole line because our buffer was too small.  */
+  if (i != EOF && i != '\n' && i != '\r') {
+    fprintf (stderr, "! Unable to read an entire line---bufsize=%u.\n",
+                     (unsigned) bufsize);
+    fputs ("Please increase buf_size in texmf.cnf.\n", stderr);
+    uexit (1);
+  }
+
+  buffer[last] = ' ';
+  if (last >= maxbufstack)
+    maxbufstack = last;
+
+  /* If next char is LF of a CRLF, read it.  */
+  if (i == '\r') {
+    while ((i = getc (f)) == EOF && errno == EINTR)
+      ;
+    if (i != '\n')
+      ungetc (i, f);
+  }
+  
+  /* Trim trailing whitespace.  */
+  while (last > first && ISBLANK (buffer[last - 1]))
+    --last;
+
+  /* Don't bother using xord if we don't need to.  */
+#if !defined(MuLTeX)
+  for (i = first; i <= last; i++)
+     buffer[i] = xord[buffer[i]];
+#endif
+
+    return true;
+}
+
+/* This string specifies what the `e' option does in response to an
+   error message.  */ 
+static const_string edit_value = EDITOR;
+
+/* This procedure originally due to sjc@s1-c.  TeX & Metafont call it when
+   the user types `e' in response to an error, invoking a text editor on
+   the erroneous source file.  FNSTART is how far into FILENAME the
+   actual filename starts; FNLENGTH is how long the filename is.  */
+   
+void
+calledit (packedASCIIcode *filename,
+          poolpointer fnstart,
+          integer fnlength,
+          integer linenumber)
+{
+  char *temp, *command, *fullcmd;
+  char c;
+  int sdone, ddone, i;
+
+#ifdef WIN32
+  char *fp, *ffp, *env, editorname[256], buffer[256];
+  int cnt = 0;
+  int dontchange = 0;
+#endif
+
+  sdone = ddone = 0;
+  filename += fnstart;
+
+  /* Close any open input files, since we're going to kill the job.  */
+  for (i = 1; i <= inopen; i++)
+#ifdef XeTeX
+    xfclose (inputfile[i]->f, "inputfile");
+#else
+    xfclose (inputfile[i], "inputfile");
+#endif
+
+  /* Replace the default with the value of the appropriate environment
+     variable or config file value, if it's set.  */
+  temp = kpse_var_value (edit_var);
+  if (temp != NULL)
+    edit_value = temp;
+
+  /* Construct the command string.  The `11' is the maximum length an
+     integer might be.  */
+  command = xmalloc (strlen (edit_value) + fnlength + 11);
+
+  /* So we can construct it as we go.  */
+  temp = command;
+
+#ifdef WIN32
+  fp = editorname;
+  if ((isalpha(*edit_value) && *(edit_value + 1) == ':'
+        && IS_DIR_SEP (*(edit_value + 2)))
+      || (*edit_value == '"' && isalpha(*(edit_value + 1))
+        && *(edit_value + 2) == ':'
+        && IS_DIR_SEP (*(edit_value + 3)))
+     )
+    dontchange = 1;
+#endif
+
+  while ((c = *edit_value++) != 0)
+    {
+      if (c == '%')
+        {
+          switch (c = *edit_value++)
+            {
+	    case 'd':
+	      if (ddone)
+                FATAL ("call_edit: `%%d' appears twice in editor command");
+              sprintf (temp, "%ld", (long int)linenumber);
+              while (*temp != '\0')
+                temp++;
+              ddone = 1;
+              break;
+
+	    case 's':
+              if (sdone)
+                FATAL ("call_edit: `%%s' appears twice in editor command");
+              for (i =0; i < fnlength; i++)
+		*temp++ = Xchr (filename[i]);
+              sdone = 1;
+              break;
+
+	    case '\0':
+              *temp++ = '%';
+              /* Back up to the null to force termination.  */
+	      edit_value--;
+	      break;
+
+	    default:
+	      *temp++ = '%';
+	      *temp++ = c;
+	      break;
+	    }
+	}
+      else {
+#ifdef WIN32
+        if (dontchange)
+          *temp++ = c;
+        else { if(Isspace(c) && cnt == 0) {
+            cnt++;
+            temp = command;
+            *temp++ = c;
+            *fp = '\0';
+	  } else if(!Isspace(c) && cnt == 0) {
+            *fp++ = c;
+	  } else {
+            *temp++ = c;
+	  }
+        }
+#else
+        *temp++ = c;
+#endif
+      }
+    }
+
+  *temp = 0;
+
+#ifdef WIN32
+  if (dontchange == 0) {
+    if(editorname[0] == '.' ||
+       editorname[0] == '/' ||
+       editorname[0] == '\\') {
+      fprintf(stderr, "%s is not allowed to execute.\n", editorname);
+      uexit(1);
+    }
+    env = (char *)getenv("PATH");
+    if(SearchPath(env, editorname, ".exe", 256, buffer, &ffp)==0) {
+      if(SearchPath(env, editorname, ".bat", 256, buffer, &ffp)==0) {
+        fprintf(stderr, "I cannot find %s in the PATH.\n", editorname);
+        uexit(1);
+      }
+    }
+    fullcmd = (char *)xmalloc(strlen(buffer)+strlen(command)+5);
+    strcpy(fullcmd, "\"");
+    strcat(fullcmd, buffer);
+    strcat(fullcmd, "\"");
+    strcat(fullcmd, command);
+  } else
+#endif
+  fullcmd = command;
+
+  /* Execute the command.  */
+  if (system (fullcmd) != 0)
+    fprintf (stderr, "! Trouble executing `%s'.\n", command);
+
+  /* Quit, since we found an error.  */
+  uexit (1);
+}
+
+/* Read and write dump files.  As distributed, these files are
+   architecture dependent; specifically, BigEndian and LittleEndian
+   architectures produce different files.  These routines always output
+   BigEndian files.  This still does not guarantee them to be
+   architecture-independent, because it is possible to make a format
+   that dumps a glue ratio, i.e., a floating-point number.  Fortunately,
+   none of the standard formats do that.  */
+
+#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE) /* this fn */
+
+/* This macro is always invoked as a statement.  It assumes a variable
+   `temp'.  */
+   
+#define SWAP(x, y) temp = (x); (x) = (y); (y) = temp
+
+
+/* Make the NITEMS items pointed at by P, each of size SIZE, be the
+   opposite-endianness of whatever they are now.  */
+
+static void
+swap_items (char *p,  int nitems,  int size)
+{
+  char temp;
+
+  /* Since `size' does not change, we can write a while loop for each
+     case, and avoid testing `size' for each time.  */
+  switch (size)
+    {
+    /* 16-byte items happen on the DEC Alpha machine when we are not
+       doing sharable memory dumps.  */
+    case 16:
+      while (nitems--)
+        {
+          SWAP (p[0], p[15]);
+          SWAP (p[1], p[14]);
+          SWAP (p[2], p[13]);
+          SWAP (p[3], p[12]);
+          SWAP (p[4], p[11]);
+          SWAP (p[5], p[10]);
+          SWAP (p[6], p[9]);
+          SWAP (p[7], p[8]);
+          p += size;
+        }
+      break;
+
+    case 8:
+      while (nitems--)
+        {
+          SWAP (p[0], p[7]);
+          SWAP (p[1], p[6]);
+          SWAP (p[2], p[5]);
+          SWAP (p[3], p[4]);
+          p += size;
+        }
+      break;
+
+    case 4:
+      while (nitems--)
+        {
+          SWAP (p[0], p[3]);
+          SWAP (p[1], p[2]);
+          p += size;
+        }
+      break;
+
+    case 2:
+      while (nitems--)
+        {
+          SWAP (p[0], p[1]);
+          p += size;
+        }
+      break;
+
+    case 1:
+      /* Nothing to do.  */
+      break;
+
+    default:
+      FATAL1 ("Can't swap a %d-byte item for (un)dumping", size);
+  }
+}
+#endif /* not WORDS_BIGENDIAN and not NO_DUMP_SHARE */
+
+
+/* Here we write NITEMS items, each item being ITEM_SIZE bytes long.
+   The pointer to the stuff to write is P, and we write to the file
+   OUT_FILE.  */
+
+void
+do_dump (char *p, int item_size, int nitems,  FILE *out_file)
+{
+#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE)
+  swap_items (p, nitems, item_size);
+#endif
+
+  if (fwrite (p, item_size, nitems, out_file) != nitems)
+    {
+      fprintf (stderr, "! Could not write %d %d-byte item(s) to %s.\n",
+               nitems, item_size, nameoffile+1);
+      uexit (1);
+    }
+
+  /* Have to restore the old contents of memory, since some of it might
+     get used again.  */
+#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE)
+  swap_items (p, nitems, item_size);
+#endif
+}
+
+
+/* Here is the dual of the writing routine.  */
+
+void
+do_undump (char *p, int item_size, int nitems, FILE *in_file)
+{
+  if (fread (p, item_size, nitems, in_file) != (size_t) nitems)
+    FATAL3 ("Could not undump %d %d-byte item(s) from %s",
+            nitems, item_size, nameoffile+1);
+
+#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE)
+  swap_items (p, nitems, item_size);
+#endif
+}
+
+/* FIXME -- some (most?) of this can/should be moved to the Pascal/WEB side. */
+#if defined(TeX)
+static void
+checkpoolpointer (poolpointer poolptr, size_t len)
+{
+  if (poolptr + len >= poolsize) {
+    fprintf (stderr, "\nstring pool overflow [%i bytes]\n", 
+            (int)poolsize); /* fixme */
+    exit(1);
+  }
+}
+
+static int
+maketexstring (const_string s)
+{
+  size_t len;
+#if defined(TeX) && !defined(Aleph)
+  if (s == NULL || *s == 0)
+    return getnullstr();
+#else
+  assert (s != 0);
+#endif
+  len = strlen(s);
+  checkpoolpointer (poolptr, len);
+  while (len-- > 0)
+    strpool[poolptr++] = *s++;
+  return (makestring());
+}
+
+strnumber
+makefullnamestring(void)
+{
+  return maketexstring(fullnameoffile);
+}
+
+/* Get the job name to be used, which may have been set from the
+   command line. */
+strnumber
+getjobname(strnumber name)
+{
+    strnumber ret = name;
+    if (c_job_name != NULL)
+      ret = maketexstring(c_job_name);
+    return ret;
+}
+#endif
+
+#if defined(TeX)
+static int
+compare_paths (const_string p1, const_string p2)
+{
+  int ret;
+  while (
+#ifdef MONOCASE_FILENAMES
+                (((ret = (toupper(*p1) - toupper(*p2))) == 0) && (*p2 != 0))
+#else
+         (((ret = (*p1 - *p2)) == 0) && (*p2 != 0))
+#endif
+                || (IS_DIR_SEP(*p1) && IS_DIR_SEP(*p2))) {
+       p1++, p2++;
+  }
+  ret = (ret < 0 ? -1 : (ret > 0 ? 1 : 0));
+  return ret;
+}
+
+string
+gettexstring (strnumber s)
+{
+  poolpointer len;
+  string name;
+  len = strstart[s + 1] - strstart[s];
+  name = (string)xmalloc (len + 1);
+  strncpy (name, (string)&strpool[strstart[s]], len);
+  name[len] = 0;
+  return name;
+}
+
+boolean
+isnewsource (strnumber srcfilename, int lineno)
+{
+  char *name = gettexstring(srcfilename);
+  return (compare_paths(name, last_source_name) != 0 || lineno != last_lineno);
+}
+
+void
+remembersourceinfo (strnumber srcfilename, int lineno)
+{
+  if (last_source_name)
+       free(last_source_name);
+  last_source_name = gettexstring(srcfilename);
+  last_lineno = lineno;
+}
+
+poolpointer
+makesrcspecial (strnumber srcfilename, int lineno)
+{
+  poolpointer oldpoolptr = poolptr;
+  char *filename = gettexstring(srcfilename);
+  /* FIXME: Magic number. */
+  char buf[40];
+  char *s = buf;
+
+  /* Always put a space after the number, which makes things easier
+   * to parse.
+   */
+  sprintf (buf, "src:%d ", lineno);
+
+  if (poolptr + strlen(buf) + strlen(filename) >= (size_t)poolsize) {
+       fprintf (stderr, "\nstring pool overflow\n"); /* fixme */
+       exit (1);
+  }
+  s = buf;
+  while (*s)
+    strpool[poolptr++] = *s++;
+
+  s = filename;
+  while (*s)
+    strpool[poolptr++] = *s++;
+
+  return (oldpoolptr);
+}
+#endif
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/texmfmp.h
@@ -0,0 +1,584 @@
+/* Modified for JTeX by Takafumi Sakurai. */
+
+/* texmf.h: Main include file for TeX and Metafont in C. This file is
+   included by {tex,mf}d.h, which is the first include in the C files
+   output by web2c.  */
+
+#include "cpascal.h"
+#include <kpathsea/c-pathch.h> /* for IS_DIR_SEP, used in the change files */
+#include <kpathsea/tex-make.h> /* for kpse_make_tex_discard_errors */
+
+#ifdef XeTeX
+#include <zlib.h>
+#endif
+
+#ifdef XeTeX
+/* added typedefs for unicodefile and voidpointer */
+#define XETEX_UNICODE_FILE_DEFINED	1
+typedef struct {
+  FILE *f;
+  long  savedChar;
+  short skipNextLF;
+  short encodingMode;
+  void *conversionData;
+} UFILE;
+typedef UFILE* unicodefile;
+
+typedef void* voidpointer;
+#endif
+
+/* If we have these macros, use them, as they provide a better guide to
+   the endianess when cross-compiling. */
+#if defined (BYTE_ORDER) && defined (BIG_ENDIAN) && defined (LITTLE_ENDIAN)
+#ifdef WORDS_BIGENDIAN
+#undef WORDS_BIGENDIAN
+#endif
+#if BYTE_ORDER == BIG_ENDIAN
+#define WORDS_BIGENDIAN
+#endif
+#endif
+/* More of the same, but now NeXT-specific. */
+#ifdef NeXT
+#ifdef WORDS_BIGENDIAN
+#undef WORDS_BIGENDIAN
+#endif
+#ifdef __BIG_ENDIAN__
+#define WORDS_BIGENDIAN
+#endif
+#endif
+
+#ifndef luaTeX /* everything */
+
+/* Some things are the same except for the name.  */
+#ifdef TeX
+#if defined (pdfTeX)
+#define TEXMFPOOLNAME "pdftex.pool"
+#define TEXMFENGINENAME "pdftex"
+#elif defined (eTeX)
+#define TEXMFPOOLNAME "etex.pool"
+#define TEXMFENGINENAME "etex"
+#elif defined (XeTeX)
+#define TEXMFPOOLNAME "xetex.pool"
+#define TEXMFENGINENAME "xetex"
+#elif defined (Aleph)
+#define TEXMFPOOLNAME "aleph.pool"
+#define TEXMFENGINENAME "aleph"
+#elif defined (JTeX)
+#define TEXMFPOOLNAME "jtex.pool"
+#define TEXMFENGINENAME "jtex"
+#else
+#define TEXMFPOOLNAME "tex.pool"
+#define TEXMFENGINENAME "tex"
+#endif
+#define DUMP_FILE fmtfile
+#define DUMP_FORMAT kpse_fmt_format
+#define writedvi WRITE_OUT
+#define flushdvi flush_out
+#define OUT_FILE dvifile
+#define OUT_BUF dvibuf
+#endif /* TeX */
+#ifdef MF
+#define TEXMFPOOLNAME "mf.pool"
+#define TEXMFENGINENAME "metafont"
+#define DUMP_FILE basefile
+#define DUMP_FORMAT kpse_base_format
+#define writegf WRITE_OUT
+#define OUT_FILE gffile
+#define OUT_BUF gfbuf
+#endif /* MF */
+#ifdef MP
+#define TEXMFPOOLNAME "mp.pool"
+#define TEXMFENGINENAME "metapost"
+#define DUMP_FILE memfile
+#define DUMP_FORMAT kpse_mem_format
+#endif /* MP */
+
+/* Restore underscores.  */
+#define dumpname dump_name
+#define kpsedvipsconfigformat kpse_dvips_config_format
+#define kpsefontmapformat kpse_fontmap_format
+#define kpsemfpoolformat kpse_mfpool_format
+#define kpsempformat kpse_mp_format
+#define kpsemppoolformat kpse_mppool_format
+#define kpsetexpoolformat kpse_texpool_format
+#define kpsetexformat kpse_tex_format
+
+/* Hacks for TeX that are better not to #ifdef, see texmfmp.c.  */
+extern int tfmtemp, texinputtype;
+
+/* TeX, MF and MetaPost use this.  */
+extern boolean openinnameok (const_string);
+extern boolean openoutnameok (const_string);
+
+/* TeX uses these for pipe support */
+#if defined(TeX)
+extern boolean open_in_or_pipe (FILE **, int, const_string fopen_mode);
+extern boolean open_out_or_pipe (FILE **, const_string fopen_mode);
+extern void close_file_or_pipe (FILE *);
+#endif
+
+extern int runsystem (const char *cmd);
+
+/* All but the Omega family use this. */
+#if !defined(Aleph)
+extern void setupcharset (void);
+extern void readtcxfile (void);
+extern string translate_filename;
+#define translatefilename translate_filename
+#endif
+
+#ifdef TeX
+/* The type `glueratio' should be a floating point type which won't
+   unnecessarily increase the size of the memoryword structure.  This is
+   the basic requirement.  On most machines, if you're building a
+   normal-sized TeX, then glueratio must probably meet the following
+   restriction: sizeof(glueratio) <= sizeof(integer).  Usually, then,
+   glueratio must be `float'.  But if you build a big TeX, you can (on
+   most machines) and should make it `double' to avoid loss of precision
+   and conversions to and from double during calculations.  (All this
+   also goes for Metafont.)  Furthermore, if you have enough memory, it
+   won't hurt to have this defined to be `double' for running the
+   trip/trap tests.
+   
+   This type is set automatically to `float' by configure if a small TeX
+   is built.  */
+#ifndef GLUERATIO_TYPE
+#define GLUERATIO_TYPE double
+#endif
+typedef GLUERATIO_TYPE glueratio;
+
+#if defined(__DJGPP__) && defined (IPC)
+#undef IPC
+#endif
+
+#ifdef IPC
+extern void ipcpage (int);
+#endif /* IPC */
+#endif /* TeX */
+
+/* How to output to the GF or DVI file.  */
+#define WRITE_OUT(a, b)							\
+  if ((size_t) fwrite ((char *) &OUT_BUF[a], sizeof (OUT_BUF[a]),       \
+                    (size_t) ((size_t)(b) - (size_t)(a) + 1), OUT_FILE) \
+      != (size_t) ((size_t) (b) - (size_t) (a) + 1))                    \
+    FATAL_PERROR ("fwrite");
+
+#define flush_out() fflush (OUT_FILE)
+
+/* Used to write to a TFM file.  */
+#define put2bytes(f, h) do { \
+    integer v = (integer) (h); putbyte (v >> 8, f);  putbyte (v & 0xff, f); \
+  } while (0)
+#define put4bytes(f, w) do { \
+    integer v = (integer) (w); \
+    putbyte (v >> 24, f); putbyte (v >> 16, f); \
+    putbyte (v >> 8, f);  putbyte (v & 0xff, f); \
+  } while (0)
+
+/* Read a line of input as quickly as possible.  */
+#define	inputln(stream, flag) input_line (stream)
+#ifdef XeTeX
+extern boolean input_line (UFILE *);
+#else
+extern boolean input_line (FILE *);
+#endif
+
+/* This routine has to return four values.  */
+#define	dateandtime(i,j,k,l) get_date_and_time (&(i), &(j), &(k), &(l))
+extern void get_date_and_time (integer *, integer *, integer *, integer *);
+
+/* Get high-res time info. */
+#define secondsandmicros(i,j) get_seconds_and_micros (&(i), &(j))
+extern void get_seconds_and_micros (integer *, integer *);
+
+/* This routine has to return a scaled value. */
+extern integer getrandomseed (void);
+
+/* Copy command-line arguments into the buffer, despite the name.  */
+extern void topenin (void);
+
+/* Can't prototype this since it uses poolpointer and ASCIIcode, which
+   are defined later in mfd.h, and mfd.h uses stuff from here.  */
+/* Therefore the department of ugly hacks decided to move this declaration
+   to the *coerce.h files. */
+/* extern void calledit (); */
+
+/* Set an array size from texmf.cnf.  */
+extern void setupboundvariable (integer *, const_string, integer);
+
+/* These defines reroute the file i/o calls to the new pipe-enabled 
+   functions in texmfmp.c*/
+
+#if defined(TeX)
+#undef aopenin
+#undef aopenout
+#undef aclose
+#define aopenin(f,p)  open_in_or_pipe(&(f),p,FOPEN_RBIN_MODE)
+#define aopenout(f)   open_out_or_pipe(&(f),FOPEN_W_MODE)
+#define aclose(f)     close_file_or_pipe(f)
+#endif
+
+/* `bopenin' (and out) is used only for reading (and writing) .tfm
+   files; `wopenin' (and out) only for dump files.  The filenames are
+   passed in as a global variable, `nameoffile'.  */
+#define bopenin(f)	open_input (&(f), kpse_tfm_format, FOPEN_RBIN_MODE)
+#define ocpopenin(f)	open_input (&(f), kpse_ocp_format, FOPEN_RBIN_MODE)
+#define ofmopenin(f)	open_input (&(f), kpse_ofm_format, FOPEN_RBIN_MODE)
+
+#define bopenout(f)	open_output (&(f), FOPEN_WBIN_MODE)
+#define bclose		aclose
+#ifdef XeTeX
+/* f is declared as gzFile (typedef'd as void *), but we temporarily
+   use it for a FILE * so that we can use the standard open calls */
+#define wopenin(f)	(open_input ((FILE**)&(f), DUMP_FORMAT, FOPEN_RBIN_MODE) \
+						&& (f = gzdopen(fileno((FILE*)f), FOPEN_RBIN_MODE)))
+#define wopenout(f)	(open_output ((FILE**)&(f), FOPEN_WBIN_MODE) \
+						&& (f = gzdopen(fileno((FILE*)f), FOPEN_WBIN_MODE)) \
+						&& (gzsetparams(f, 1, Z_DEFAULT_STRATEGY) == Z_OK))
+#define wclose(f)	gzclose(f)
+#define weof(f)		gzeof(f)
+#else
+#define wopenin(f)	open_input (&(f), DUMP_FORMAT, FOPEN_RBIN_MODE)
+#define wopenout	bopenout
+#define wclose		aclose
+#endif
+
+#ifdef XeTeX
+#define uopenin(f,p,m,d) u_open_in(&(f), p, FOPEN_RBIN_MODE, m, d)
+#endif
+
+/* Used in tex.ch (section 1338) to get a core dump in debugging mode.  */
+#ifdef unix
+#define dumpcore abort
+#else
+#define dumpcore uexit (1)
+#endif
+
+#ifdef	JTeX
+#undef	Fputs
+#if !defined(NOFIXPUTC)
+#undef	putc
+#define	putc	Fputc
+#endif
+#include "kanji.h"
+
+/* Definitions to adapt MuLTeX modules to JTeX */
+#define	mlchar		textchar
+#define	mlcinfo		kaninfo
+#define	mlcodeinfo	kanjiinfo
+#define	argmlcode	argkanjicode
+#endif
+
+#ifdef MP
+extern boolean callmakempx (string, string);
+#endif
+
+#ifdef MF
+extern boolean initscreen (void);
+extern void updatescreen (void);
+/* Can't prototype these for same reason as `calledit' above.  */
+#if 0  /* Therefore the real declaration is found in the coerce.h files.  */
+extern void blankrectangle (/*screencol, screencol, screenrow, screenrow*/);
+extern void paintrow (/*screenrow, pixelcolor, transspec, screencol*/);
+#endif
+#endif /* MF */
+
+
+/* (Un)dumping.  These are called from the change file.  */
+#define	dumpthings(base, len) \
+  do_dump ((char *) &(base), sizeof (base), (int) (len), DUMP_FILE)
+#define	undumpthings(base, len) \
+  do_undump ((char *) &(base), sizeof (base), (int) (len), DUMP_FILE)
+
+#ifndef PRIdPTR
+#define PRIdPTR "ld"
+#endif
+#ifndef PRIxPTR
+#define PRIxPTR "lx"
+#endif
+
+/* Like do_undump, but check each value against LOW and HIGH.  The
+   slowdown isn't significant, and this improves the chances of
+   detecting incompatible format files.  In fact, Knuth himself noted
+   this problem with Web2c some years ago, so it seems worth fixing.  We
+   can't make this a subroutine because then we lose the type of BASE.  */
+#define undumpcheckedthings(low, high, base, len)			\
+  do {                                                                  \
+    unsigned i;                                                         \
+    undumpthings (base, len);                                           \
+    for (i = 0; i < (len); i++) {                                       \
+      if ((&(base))[i] < (low) || (&(base))[i] > (high)) {              \
+        FATAL5 ("Item %u (=%" PRIdPTR ") of .fmt array at %" PRIxPTR    \
+                " <%" PRIdPTR " or >%" PRIdPTR,                         \
+                i, (uintptr_t) (&(base))[i], (uintptr_t) &(base),       \
+                (uintptr_t) low, (uintptr_t) high);                     \
+      }                                                                 \
+    }									\
+  } while (0)
+
+/* Like undump_checked_things, but only check the upper value. We use
+   this when the base type is unsigned, and thus all the values will be
+   greater than zero by definition.  */
+#define undumpuppercheckthings(high, base, len)				\
+  do {                                                                  \
+    unsigned i;                                                         \
+    undumpthings (base, len);                                           \
+    for (i = 0; i < (len); i++) {                                       \
+      if ((&(base))[i] > (high)) {              			\
+        FATAL4 ("Item %u (=%" PRIdPTR ") of .fmt array at %" PRIxPTR    \
+                " >%" PRIdPTR,                                          \
+                i, (uintptr_t) (&(base))[i], (uintptr_t) &(base),       \
+                (uintptr_t) high);                         		\
+      }                                                                 \
+    }									\
+  } while (0)
+
+/* We define the routines to do the actual work in texmf.c.  */
+#ifdef XeTeX
+extern void do_dump (char *, int, int, gzFile);
+extern void do_undump (char *, int, int, gzFile);
+#else
+extern void do_dump (char *, int, int, FILE *);
+extern void do_undump (char *, int, int, FILE *);
+#endif
+
+/* Use the above for all the other dumping and undumping.  */
+#define generic_dump(x) dumpthings (x, 1)
+#define generic_undump(x) undumpthings (x, 1)
+
+#define dumpwd   generic_dump
+#define dumphh   generic_dump
+#define dumpqqqq generic_dump
+#define undumpwd   generic_undump
+#define undumphh   generic_undump
+#define	undumpqqqq generic_undump
+
+/* `dump_int' is called with constant integers, so we put them into a
+   variable first.  */
+#define	dumpint(x)							\
+  do									\
+    {									\
+      integer x_val = (x);						\
+      generic_dump (x_val);						\
+    }									\
+  while (0)
+
+/* web2c/regfix puts variables in the format file loading into
+   registers.  Some compilers aren't willing to take addresses of such
+   variables.  So we must kludge.  */
+#if defined(REGFIX) || defined(WIN32)
+#define undumpint(x)							\
+  do									\
+    {									\
+      integer x_val;							\
+      generic_undump (x_val);						\
+      x = x_val;							\
+    }									\
+  while (0)
+#else
+#define	undumpint generic_undump
+#endif
+
+
+#else  /* this is for luaTeX */
+
+/* Some things are the same except for the name.  */
+
+#define TEXMFPOOLNAME "luatex.pool"
+#define TEXMFENGINENAME "luatex"
+
+#define DUMP_FILE fmt_file
+#define DUMP_FORMAT kpse_fmt_format
+#define write_dvi WRITE_OUT
+#define flush_dvi flush_out
+#define OUT_FILE dvi_file
+#define OUT_BUF dvi_buf
+
+/* Restore underscores.  */
+#define kpsetexformat kpse_tex_format
+#define mainbody main_body
+#define t_open_in topenin
+
+/* Hacks for TeX that are better not to #ifdef, see texmfmp.c.  */
+extern int tfmtemp, texinputtype;
+
+/* TeX, MF and MetaPost use this.  */
+extern boolean openinnameok (const_string);
+extern boolean openoutnameok (const_string);
+
+/* pdfTeX uses these for pipe support */
+extern boolean open_in_or_pipe (FILE **, int, const_string fopen_mode);
+extern boolean open_out_or_pipe (FILE **, const_string fopen_mode);
+extern void close_file_or_pipe (FILE *);
+
+/* Executing shell commands.  */
+extern void mk_shellcmdlist (char *);
+extern void init_shell_escape (void);
+extern int shell_cmd_is_allowed (char **cmd, char **safecmd, char **cmdname);
+extern int runsystem (char *cmd);
+
+#ifndef GLUERATIO_TYPE
+#define GLUERATIO_TYPE double
+#endif
+typedef GLUERATIO_TYPE glueratio;
+
+#if defined(__DJGPP__) && defined (IPC)
+#undef IPC
+#endif
+
+#ifdef IPC
+extern void ipcpage (int);
+#endif /* IPC */
+
+
+/* How to output to the GF or DVI file.  */
+#define	WRITE_OUT(a, b)							\
+  if (fwrite ((char *) &OUT_BUF[a], sizeof (OUT_BUF[a]),		\
+                 (int) ((b) - (a) + 1), OUT_FILE) 			\
+      != (int) ((b) - (a) + 1))						\
+    FATAL_PERROR ("fwrite");
+
+#define flush_out() fflush (OUT_FILE)
+
+/* Read a line of input as quickly as possible.  */
+#define	input_ln(stream, flag) input_line (stream)
+
+extern boolean input_line (FILE *);
+
+/* This routine has to return four values.  */
+#define	dateandtime(i,j,k,l) get_date_and_time (&(i), &(j), &(k), &(l))
+extern void get_date_and_time (integer *, integer *, integer *, integer *);
+
+/* Get high-res time info. */
+#define seconds_and_micros(i,j) get_seconds_and_micros (&(i), &(j))
+extern void get_seconds_and_micros (integer *, integer *);
+
+/* This routine has to return a scaled value. */
+extern integer getrandomseed (void);
+
+/* Copy command-line arguments into the buffer, despite the name.  */
+extern void topenin (void);
+
+/* Can't prototype this since it uses poolpointer and ASCIIcode, which
+   are defined later in mfd.h, and mfd.h uses stuff from here.  */
+/* Therefore the department of ugly hacks decided to move this declaration
+   to the *coerce.h files. */
+/* extern void calledit (); */
+
+/* Set an array size from texmf.cnf.  */
+extern void setupboundvariable (integer *, const_string, integer);
+
+/* These defines reroute the file i/o calls to the new pipe-enabled 
+   functions in texmfmp.c*/
+
+#undef aopenin
+#undef aopenout
+#undef aclose
+#define a_open_in(f,p)  open_in_or_pipe(&(f),p,FOPEN_RBIN_MODE)
+#define a_open_out(f)   open_out_or_pipe(&(f),FOPEN_W_MODE)
+#define a_close(f)     close_file_or_pipe(f)
+
+/* `bopenin' (and out) is used only for reading (and writing) .tfm
+   files; `wopenin' (and out) only for dump files.  The filenames are
+   passed in as a global variable, `nameoffile'.  */
+#define b_open_in(f)	open_input (&(f), kpse_tfm_format, FOPEN_RBIN_MODE)
+#define ocp_open_in(f)	open_input (&(f), kpse_ocp_format, FOPEN_RBIN_MODE)
+#define ofm_open_in(f)	open_input (&(f), kpse_ofm_format, FOPEN_RBIN_MODE)
+#define b_open_out(f)	open_output (&(f), FOPEN_WBIN_MODE)
+
+/* Used in tex.ch (section 1338) to get a core dump in debugging mode.  */
+#ifdef unix
+#define dumpcore abort
+#else
+#define dumpcore uexit (1)
+#endif
+
+#define b_close close_file
+/* (Un)dumping.  These are called from the change file.  */
+#define        dump_things(base, len) \
+  do_zdump ((char *) &(base), sizeof (base), (int) (len), DUMP_FILE)
+#define        undump_things(base, len) \
+  do_zundump ((char *) &(base), sizeof (base), (int) (len), DUMP_FILE)
+/* We define the routines to do the actual work in texmf.c.  */
+#define w_open_in(f)     zopen_w_input (&(f), DUMP_FORMAT, FOPEN_RBIN_MODE)
+#define w_open_out(f)    zopen_w_output (&(f), FOPEN_WBIN_MODE)
+#define w_close         zwclose
+
+extern boolean zopen_w_input (FILE **, int, const_string fopen_mode);
+extern boolean zopen_w_output (FILE **, const_string fopen_mode);
+extern void do_zdump (char *, int, int, FILE *);
+extern void do_zundump (char *, int, int, FILE *);
+extern void zwclose (FILE *);
+
+/* Like do_undump, but check each value against LOW and HIGH.  The
+   slowdown isn't significant, and this improves the chances of
+   detecting incompatible format files.  In fact, Knuth himself noted
+   this problem with Web2c some years ago, so it seems worth fixing.  We
+   can't make this a subroutine because then we lose the type of BASE.  */
+#define undump_checked_things(low, high, base, len)						\
+  do {                                                                  \
+    unsigned i;                                                         \
+    undump_things (base, len);                                           \
+    for (i = 0; i < (len); i++) {                                       \
+      if ((&(base))[i] < (low) || (&(base))[i] > (high)) {              \
+        FATAL5 ("Item %u (=%ld) of .fmt array at %lx <%ld or >%ld",     \
+                i, (unsigned long) (&(base))[i], (unsigned long) &(base),     \
+                (unsigned long) low, (integer) high);                         \
+      }                                                                 \
+    }																	\
+  } while (0)
+
+/* Like undump_checked_things, but only check the upper value. We use
+   this when the base type is unsigned, and thus all the values will be
+   greater than zero by definition.  */
+#define undump_upper_check_things(high, base, len)							\
+  do {                                                                  \
+    unsigned i;                                                         \
+    undump_things (base, len);                                           \
+    for (i = 0; i < (len); i++) {                                       \
+      if ((&(base))[i] > (high)) {										\
+        FATAL4 ("Item %u (=%ld) of .fmt array at %lx >%ld",				\
+                i, (unsigned long) (&(base))[i], (unsigned long) &(base),		\
+                (unsigned long) high);										\
+      }                                                                 \
+    }																	\
+  } while (0)
+
+/* Use the above for all the other dumping and undumping.  */
+#define generic_dump(x) dump_things (x, 1)
+#define generic_undump(x) undump_things (x, 1)
+
+#define dump_wd   generic_dump
+#define dump_hh   generic_dump
+#define dump_qqqq generic_dump
+#define undump_wd   generic_undump
+#define undump_hh   generic_undump
+#define	undump_qqqq generic_undump
+
+/* `dump_int' is called with constant integers, so we put them into a
+   variable first.  */
+#define	dump_int(x)							\
+  do									\
+    {									\
+      integer x_val = (x);						\
+      generic_dump (x_val);						\
+    }									\
+  while (0)
+
+/* web2c/regfix puts variables in the format file loading into
+   registers.  Some compilers aren't willing to take addresses of such
+   variables.  So we must kludge.  */
+#if defined(REGFIX) || defined(WIN32)
+#define undump_int(x)							\
+  do									\
+    {									\
+      integer x_val;							\
+      generic_undump (x_val);						\
+      x = x_val;							\
+    }									\
+  while (0)
+#else
+#define	undump_int generic_undump
+#endif /* not (REGFIX || WIN32) */
+
+#endif /* luaTeX */
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/trip.test
@@ -0,0 +1,51 @@
+#! /bin/sh
+
+# Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+testdir=$srcdir/triptrap
+
+TEXMFCNF=$testdir; export TEXMFCNF
+
+dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
+
+echo ">>> Running TRIP test for TeX." >&2
+echo ">>> See $testdir/trip.diffs for example of acceptable diffs." >&2
+
+rm -f trip.tfm trip.pl trip.tex trip.fmt tripin.fot tripin.log \
+  trip.fot trip.log trip.dvi trip.typ tripos.tex 8terminal.tex
+rm -rf tfm
+
+is_OK=:
+
+set -x
+
+../web2c/pltotf $testdir/trip.pl trip.tfm || exit 1
+
+../web2c/tftopl ./trip.tfm trip.pl || exit 1
+
+diff $testdir/trip.pl trip.pl || is_OK=false
+
+# get same filename in log
+$LN_S $testdir/trip.tex .
+
+./jtex --progname=initex --ini <$testdir/trip1.in >tripin.fot
+mv trip.log tripin.log || exit 1
+diff $testdir/tripin.log tripin.log
+
+# May as well test non-ini second time through.
+./jtex --progname=tex <$testdir/trip2.in >trip.fot
+diff $testdir/trip.fot trip.fot
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $testdir/trip.log trip.log
+
+eval ../web2c/dvitype $dvitype_args trip.dvi >trip.typ || exit 1
+$DIFF $DIFFFLAGS $testdir/trip.typ trip.typ
+
+$is_OK || {
+  echo ">>> There were some errors." >&2
+  exit 1
+}
+
--- /dev/null
+++ texlive-bin/texk/web2c/jtexdir/triptrap-j/texmf.cnf
@@ -0,0 +1,97 @@
+% triptrap/texmf.cnf -- configuration for the trip and trap tests.
+
+% These values apply to all the programs, and they are necessary for any
+% kind of reasonable diff.
+error_line = 64
+half_error_line = 32
+max_print_line = 72
+		
+% TeX, Metafont, and MetaPost.
+main_memory.tex      = 2999 % can't change mem_bot, it stays 0
+main_memory.jtex     = 2999 % can't change mem_bot, it stays 0
+main_memory.multex   = 2999 % can't change mem_bot, it stays 0
+main_memory.mf       = 3000 % Knuth's log has 3001, and it changes the capsules.
+main_memory.mpost    = 4500
+
+% In case you happen to run an ini* link by hand.
+main_memory.initex   = 2999 % can't change mem_bot, it stays 0
+main_memory.inijtex  = 2999 % can't change mem_bot, it stays 0
+main_memory.inimultex= 2999 % can't change mem_bot, it stays 0
+main_memory.inimf    = 3000 % Knuth's log has 3001, and the capsules change.
+main_memory.inimpost = 4500
+
+% Actually, Metafont currently ignores the settings for max_strings,
+% string_vacancies and pool_size specified here, but it doesn't hurt
+% to supply the correct values, just in case this changes one day.
+
+max_strings.tex      = 3000
+max_strings.jtex     = 3000
+max_strings.multex   = 3000
+max_strings.mf       = 2000
+max_strings.mpost    = 2500
+
+% In case you happen to run an ini* link by hand.
+max_strings.initex   = 3000
+max_strings.inijtex  = 3000
+max_strings.inimultex= 3000
+max_strings.inimf    = 2000
+max_strings.inimpost = 2500
+
+string_vacancies = 8000
+pool_size = 40000
+
+% TeX only.
+font_mem_size = 20000
+font_max = 75
+stack_size = 200
+nest_size = 40
+buf_size = 500
+save_size = 600
+dvi_buf_size = 800
+% Although hyph_size is settable, it can't be <hyph_prime, which is 607,
+% and the original trip setting is 307, so no point in changing the default.
+
+% Metafont only.
+gf_buf_size = 8   % trapman.tex says to use this.
+MFTERM = trap     % get the right screen output
+% trapman.tex says these values will help reduce the diffs, but it
+% actually only gives us one extra hunk (a BLANKRECTANGLE), so they
+% don't seem worth dynamicizing.
+%screen_width = 100
+%screen_depth = 200
+
+% MetaPost only.  Turn off callmakempx, i.e., makempx,
+% since we can only test tex and dvitomp, and we'll test those in other
+% places anyway.  (mpto fails because of the unending string constant
+% check in trap.mp.)
+MPXCOMMAND = 0
+
+% Avoid running any MakeTeX* program.
+MAKETEXTFM = 0
+MAKETEXTEX = 0
+MAKETEXMF = 0
+
+% Avoid reading any texfonts.map:
+TEXFONTMAPS = triptrap
+
+% Search paths. 
+% trip.tex:
+TEXINPUTS = .
+% trap.mf:
+MFINPUTS = .
+% trap.mp, mtrap.mp:
+MPINPUTS = .
+% trip.tfm, trap.tfm, trapf.tfm:
+TFMFONTS = .
+% trip.fmt:
+TEXFORMATS = .
+% trap.base:
+MFBASES = .
+% trap.mem:
+MPMEMS = .
+% tex.pool:
+TEXPOOL = .
+% mf.pool:
+MFPOOL = .
+% mp.pool:
+MPPOOL = .
--- texlive-bin.orig/texk/web2c/web2c/splitup.c
+++ texlive-bin/texk/web2c/web2c/splitup.c
@@ -138,6 +138,9 @@
   } else if (STREQ (output_name, "pdftex")) {
     fputs ("#define INITEX\n#define TeX\n#define pdfTeX\n", out);
     coerce = "pdftexcoerce.h";
+  } else if (STREQ (output_name, "jtex")) {
+    fputs ("#define INITEX\n#define TeX\n#define JTeX\n", out);
+    coerce = "jtexcoerce.h";
   } else if (STREQ (output_name, "ptex")) {
     fputs ("#define INITEX\n#define TeX\n#define pTeX\n", out);
     coerce = "ptexcoerce.h";
--- texlive-bin.orig/utils/configure
+++ texlive-bin/utils/configure
@@ -721,6 +721,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
+enable_jtex
 enable_ptex
 enable_ptex_synctex
 enable_eptex
@@ -1522,6 +1523,7 @@
   --enable-tex-synctex        build TeX with SyncTeX support
   --enable-etex             compile and install e-TeX
   --disable-etex-synctex      build e-TeX without SyncTeX support
+  --disable-jtex            do not compile and install JTeX
   --disable-ptex            do not compile and install pTeX
   --disable-ptex-synctex      build pTeX without SyncTeX support
   --disable-eptex           do not compile and install e-pTeX
@@ -3739,6 +3741,16 @@
 if test "${enable_etex_synctex+set}" = set; then :
   enableval=$enable_etex_synctex;
 fi
+# Check whether --enable-jtex was given.
+if test "${enable_jtex+set}" = set; then :
+  enableval=$enable_jtex;
+fi
+case $enable_jtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_jtex=yes ;;
+esac
 # Check whether --enable-ptex was given.
 if test "${enable_ptex+set}" = set; then :
   enableval=$enable_ptex;
