From 001b7975ce276ec6e72bf2b317cef8afe92c2948 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 11 Apr 2010 00:28:06 +0000 Subject: add ptex from Akira, Norbert, and jTeX group; ptex not actually built by default yet git-svn-id: svn://tug.org/texlive/trunk@17797 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/ptexdir/ptex.mk | 272 ++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 Build/source/texk/web2c/ptexdir/ptex.mk (limited to 'Build/source/texk/web2c/ptexdir/ptex.mk') diff --git a/Build/source/texk/web2c/ptexdir/ptex.mk b/Build/source/texk/web2c/ptexdir/ptex.mk new file mode 100644 index 00000000000..9f49847db6b --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/ptex.mk @@ -0,0 +1,272 @@ +# *ATTENTION* : This file is not used in TeX Live 2009. See am/ptex.am. +# Makefile fragment for pTeX and web2c. -- tutimura(a)nn.iij4u.or.jp. Public domain. +# This fragment contains the parts of the makefile that are most likely to +# differ between releases of pTeX and derived from e-TeX. + +Makefile: $(srcdir)/ptexdir/ptex.mk + +# We build ptex. +ptex = @JPTEX@ ptex pbibtex ptftopl ppltotf pdvitype + +# Extract ptex version +ptexdir/ptex.version: ptexdir/ptex-base.ch + grep "^@d TeX_banner=='This is pTeX" $(srcdir)/ptexdir/ptex-base.ch \ + | sed "s/^.*-//;s/'.*$$//" >ptexdir/ptex.version + +# The C sources. +ptex_c = ptexini.c ptex0.c ptex1.c ptex2.c +ptex_o = ptexini.o ptex0.o ptex1.o ptex2.o ptex-pool.o ptexextra.o ptexdir/kanji.o +plib_o = ptexdir/printversion.o ptexdir/usage.o ptexdir/openclose.o +plib = ptexdir/plib.a + +# Making ptex. +ptex: $(ptex_o) $(plib) $(ptexenc) + $(kpathsea_link) $(ptex_o) $(plib) $(ptexenc) $(socketlibs) $(LOADLIBES) + +# C file dependencies +$(ptex_c) ptexcoerce.h ptexd.h: ptex.p $(web2c_texmf) + $(web2c) ptex +ptexextra.c: ptexdir/ptexextra.h lib/texmfmp.c + sed s/TEX-OR-MF-OR-MP/ptex/ $(srcdir)/lib/texmfmp.c >$@ +ptexdir/ptexextra.h: ptexdir/ptexextra.in ptexdir/ptex.version + test -d ptexdir || mkdir ptexdir + sed s/PTEX-VERSION/`cat ptexdir/ptex.version`/ \ + $(srcdir)/ptexdir/ptexextra.in >$@ + +# Tangling +ptex.p ptex.pool: tangle ptex.web ptex.ch + $(TANGLE) ptex.web ptex.ch + +# Generation of the web and ch file. +# Sources for ptex.web: +ptex_web_srcs = $(srcdir)/tex.web \ + $(srcdir)/tex.ch +# Sources for ptex.ch: +ptex_ch_srcs = ptex.web \ + $(srcdir)/ptexdir/ptex-base.ch \ + $(srcdir)/ptexdir/ptex-include.ch \ + $(srcdir)/tex-binpool.ch +# Rules: +ptex.web: tie $(srcdir)/ptexdir/ptex.mk $(ptex_web_srcs) + $(TIE) -m ptex.web $(ptex_web_srcs) +ptex.ch: $(ptex_ch_srcs) + $(TIE) -c ptex.ch $(ptex_ch_srcs) + +ptex-pool.c: ptex.pool $(makecpool) tmf-pool.h + $(makecpool) ptex.pool $(srcdir)/tmf-pool.h >$@ || rm -f $@ + +$(plib): $(plib_o) + rm -f $@ + $(AR) $(ARFLAGS) $@ $(plib_o) + $(RANLIB) $@ + +### pTFtoPL +ptftopl: ptftopl.o $(plib) $(kpathsea) $(ptexenc) $(proglib) + $(kpathsea_link) ptftopl.o $(plib) $(ptexenc) $(LOADLIBES) +ptftopl.o: ptftopl.c $(srcdir)/ptexdir/kanji.h $(srcdir)/ptexdir/ptexhelp.h +ptftopl.c: ptftopl.p $(web2c_aux) + $(web2c) ptftopl +ptftopl.p: ptftopl.web $(srcdir)/ptexdir/ptftopl.ch + $(tangle) ptftopl.web $(srcdir)/ptexdir/ptftopl.ch +ptftopl.web: $(srcdir)/tftopl.web $(srcdir)/tftopl.ch + $(TIE) -m ptftopl.web $(srcdir)/tftopl.web $(srcdir)/tftopl.ch + + +### pPLtoTF +ppltotf: ppltotf.o $(plib) $(kpathsea) $(ptexenc) $(proglib) + $(kpathsea_link) ppltotf.o $(plib) $(ptexenc) $(LOADLIBES) +ppltotf.o: ppltotf.c $(srcdir)/ptexdir/kanji.h $(srcdir)/ptexdir/ptexhelp.h + $(compile) -DPRESERVE_PUTC -c ppltotf.c +ppltotf.c: ppltotf.p $(web2c_aux) + $(web2c) ppltotf +ppltotf.p: tangle ppltotf.web $(srcdir)/ptexdir/ppltotf.ch + $(tangle) ppltotf.web $(srcdir)/ptexdir/ppltotf.ch +ppltotf.web: $(srcdir)/pltotf.web $(srcdir)/pltotf.ch + $(TIE) -m ppltotf.web $(srcdir)/pltotf.web $(srcdir)/pltotf.ch + +### pDVItype +pdvitype: pdvitype.o $(plib) $(kpathsea) $(ptexenc) $(proglib) + $(kpathsea_link) pdvitype.o $(plib) $(ptexenc) $(LOADLIBES) +pdvitype.o: pdvitype.c $(srcdir)/ptexdir/kanji.h $(srcdir)/ptexdir/ptexhelp.h + $(compile) -DHEX_CHAR_CODE -c pdvitype.c +pdvitype.c: pdvitype.p $(web2c_aux) + $(web2c) pdvitype +pdvitype.p: tangle pdvitype.web $(srcdir)/ptexdir/pdvitype.ch + $(tangle) pdvitype.web $(srcdir)/ptexdir/pdvitype.ch +pdvitype.web: $(srcdir)/dvitype.web + cat $(srcdir)/dvitype.web > $@ + +### pBibTeX +pbibtex: pbibtex.o $(plib_o) $(kpathsea) $(ptexenc) $(proglib) + $(kpathsea_link) pbibtex.o $(plib_o) $(ptexenc) $(LOADLIBES) +pbibtex.o: pbibtex.c $(srcdir)/ptexdir/kanji.h $(srcdir)/ptexdir/ptexhelp.h + +pbibd.h: $(srcdir)/ptexdir/pbibd.sed pbibtex.c + sed -f $(srcdir)/ptexdir/pbibd.sed pbibtex.c > $@ + +pbibtex.c pbibtex.h: $(web2c_common) $(web2c_programs) web2c/cvtbib.sed pbibtex.p + $(web2c) pbibtex +pbibtex.p: tangle bibtex.web $(srcdir)/ptexdir/pbibtex.ch + $(tangle) bibtex.web $(srcdir)/ptexdir/pbibtex.ch +clean:: pbibtex-clean +pbibtex-clean: + $(LIBTOOL) --mode=clean rm -f pbibtex + rm -f pbibtex.o pbibtex.c pbibtex.h pbibtex.p pbibd.h + + +# Additional dependencies for relinking. +$(ptexenc): + cd $(ptexenc_dir) && $(MAKE) libptexenc.la + +# Tests... +check: @JPTEX@ ptex-check +ptex-check: etrip ptex.fmt +# Test truncation (but don't bother showing the warning msg). + ./ptex --progname=ptex --output-comment="`cat $(srcdir)/PROJECTS`" \ + $(srcdir)/tests/hello 2>/dev/null \ + && ./dvitype hello.dvi | grep olaf@infovore.xs4all.nl >/dev/null +# \openout should show up in \write's. + ./ptex --progname=ptex $(srcdir)/tests/openout && grep xfoo openout.log +# one.two.tex -> one.two.log + ./ptex --progname=ptex $(srcdir)/tests/one.two && ls -l one.two.log +# uno.dos -> uno.log + ./ptex --progname=ptex $(srcdir)/tests/uno.dos && ls -l uno.log + ./ptex --progname=ptex $(srcdir)/tests/just.texi && ls -l just.log + -./ptex --progname=ptex $(srcdir)/tests/batch.tex + ./ptex --progname=ptex --shell $(srcdir)/tests/write18 | grep echo +# tcx files are a bad idea. +# ./ptex --translate-file=$(srcdir)/share/isol1-t1.tcx \ +# $(srcdir)/tests/eight && ./dvitype eight.dvi >eigh.typ + TEXMFCNF=../kpathsea \ + ./ptex --mltex --progname=einitex $(srcdir)/tests/mltextst + -./ptex --progname=ptex >> See $(etestdir)/etrip.diffs for example of acceptable diffs." >&2 + @echo "*** TRIP test for e-TeX in compatibility mode ***." + ./pltotf $(testdir)/trip.pl trip.tfm + ./tftopl ./trip.tfm trip.pl + -diff $(testdir)/trip.pl trip.pl + $(LN) $(testdir)/trip.tex . # get same filename in log + -$(SHELL) -c '$(etestenv) ./ptex --progname=einitex --ini <$(testdir)/trip1.in >ctripin.fot' + mv trip.log ctripin.log + -diff $(testdir)/tripin.log ctripin.log + -$(SHELL) -c '$(etestenv) ./ptex --progname=ptex <$(testdir)/trip2.in >ctrip.fot' + mv trip.log ctrip.log + -diff $(testdir)/trip.fot ctrip.fot + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.log ctrip.log + $(SHELL) -c '$(etestenv) ./dvitype $(dvitype_args) trip.dvi >ctrip.typ' + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.typ ctrip.typ + @echo "*** TRIP test for e-TeX in extended mode ***." + -$(SHELL) -c '$(etestenv) ./ptex --progname=einitex --ini <$(etestdir)/etrip1.in >xtripin.fot' + mv trip.log xtripin.log + -diff ctripin.log xtripin.log + -$(SHELL) -c '$(etestenv) ./ptex --progname=ptex <$(etestdir)/trip2.in >xtrip.fot' + mv trip.log xtrip.log + -diff ctrip.fot xtrip.fot + -$(DIFF) $(DIFFFLAGS) ctrip.log xtrip.log + $(SHELL) -c '$(etestenv) ./dvitype $(dvitype_args) trip.dvi >xtrip.typ' + -$(DIFF) $(DIFFFLAGS) ctrip.typ xtrip.typ + @echo "*** e-TeX specific part of e-TRIP test ***." + ./pltotf $(etestdir)/etrip.pl etrip.tfm + ./tftopl ./etrip.tfm etrip.pl + -diff $(etestdir)/etrip.pl etrip.pl + $(LN) $(etestdir)/etrip.tex . # get same filename in log + -$(SHELL) -c '$(etestenv) ./ptex --progname=einitex --ini <$(etestdir)/etrip2.in >etripin.fot' + mv etrip.log etripin.log + -diff $(etestdir)/etripin.log etripin.log + -$(SHELL) -c '$(etestenv) ./ptex --progname=ptex <$(etestdir)/etrip3.in >etrip.fot' + -diff $(etestdir)/etrip.fot etrip.fot + -$(DIFF) $(DIFFFLAGS) $(etestdir)/etrip.log etrip.log + diff $(etestdir)/etrip.out etrip.out + $(SHELL) -c '$(etestenv) ./dvitype $(dvitype_args) etrip.dvi >etrip.typ' + -$(DIFF) $(DIFFFLAGS) $(etestdir)/etrip.typ etrip.typ + +# Cleaning up for the etrip. +ptrip-clean: + rm -f trip.tfm trip.pl trip.tex trip.fmt ctripin.fot ctripin.log + rm -f ctrip.fot ctrip.log trip.dvi ctrip.typ + rm -f xtripin.fot xtripin.log + rm -f xtrip.fot xtrip.log xtrip.typ + rm -f etrip.tfm etrip.pl etrip.tex etrip.fmt etripin.fot etripin.log + rm -f etrip.fot etrip.log etrip.dvi etrip.out etrip.typ + rm -f tripos.tex 8terminal.tex + rm -rf tfm + +# Distfiles ... +@MAINT@triptrapdiffs: ptexdir/etrip/etrip.diffs +@MAINT@ptexdir/etrip/etrip.diffs: ptex +@MAINT@ $(MAKE) ptrip | tail +1 >ptexdir/etrip/etrip.diffs + + +# Dumps +all_pfmts = ptex.fmt platex.fmt $(pfmts) + +dumps: @JPTEX@ pfmts +pfmts: $(all_pfmts) + +pfmtdir = $(web2cdir)/ptex +$(pfmtdir):: + $(SHELL) $(top_srcdir)/../mkinstalldirs $(pfmtdir) + +ptex.fmt: ptex + $(dumpenv) $(MAKE) progname=ptex files="ptex.src plain.tex cmr10.tfm" prereq-check + $(dumpenv) ./ptex --progname=ptex --jobname=ptex --ini \*\\input ptex.src \\dump