summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/win32.mak
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/win32.mak')
-rw-r--r--Build/source/texk/web2c/win32.mak1259
1 files changed, 1259 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/win32.mak b/Build/source/texk/web2c/win32.mak
new file mode 100644
index 00000000000..23faf10db6c
--- /dev/null
+++ b/Build/source/texk/web2c/win32.mak
@@ -0,0 +1,1259 @@
+################################################################################
+#
+# Makefile : Web2C
+# Author : Fabrice Popineau <Fabrice.Popineau@supelec.fr>
+# Platform : Win32, Microsoft VC++ 6.0, depends upon fpTeX 0.5 sources
+# Time-stamp: <04/03/20 16:25:18 popineau>
+#
+################################################################################
+
+# Makefile for web2c --kb@mail.tug.org. Public domain.
+version = 7.5.1
+
+# These lines define the memory dumps that fmts/bases/mems will make and
+# install-fmts/install-bases/install-mems will install. plain.* is
+# created automatically (as a link). See the Formats node in
+# doc/web2c.texi for details on the fmts.
+#FMU fmts = olatex.fmt # amstex.fmt eplain.fmt texinfo.fmt
+#FMU efmts = latex.efmt
+#FMU pdffmts = pdfolatex.fmt
+#FMU pdfefmts = pdflatex.efmt
+#FMU pdfxfmts = pdflatex.xfmt
+#FMU ofmts = lambda.oft
+#FMU eofmts = elambda.eoft
+#FMU bases = # I do not recommend building cmmf.base.
+#FMU mems = # mfplain.mem is probably not generally useful.
+
+# The name of the file that defines your local devices for Metafont.
+# (Only relevant during `make bases'.) I recommend `modes.mf', which
+# defines all known modes, plus useful definitions for all fonts. It's
+# available from ftp://ftp.tug.org/tex/modes.mf, among other places.
+localmodes = modes
+
+# Used for triptrap.
+DIFF = diff
+DIFFFLAGS =
+
+root_srcdir=..\..
+!ifdef DEVELOPMENT
+INCLUDE=$(INCLUDE);$(root_srcdir)\texk.development
+!else
+INCLUDE=$(INCLUDE);$(root_srcdir)\texk
+!endif
+
+USE_KPATHSEA = 1
+USE_GETURL = 1
+USE_GNUW32 = 1
+USE_ZLIB = 1
+USE_PNG=1
+USE_JPEG = 1
+USE_XPDF = 1
+USE_TEX = 1
+MAKE_TEX = 1
+
+!include <msvc/common.mak>
+
+# omegaversion = -1.15
+!ifdef omegaversion
+DEFS = $(DEFS) -DOLD_OMEGA
+!endif
+
+# Compilation options.
+DEFS = -I. $(DEFS) -DHAVE_CONFIG_H -DOEM -DJOBTIME -DTIME_STATS \
+ -DOUTPUT_DIR -DHALT_ON_ERROR
+
+!ifdef TEX_DLL
+DEFS = $(DEFS) -DMAKE_TEX_DLL
+!endif
+
+# With --enable-ipc, TeX may need to link with -lsocket.
+socketlibs = delayimp.lib /delayload:wsock32.dll # @socketlibs@
+
+proglib = lib\$(objdir)\lib.lib
+windowlib = window\$(objdir)\window.lib
+pdflib = pdftexdir\$(objdir)\libpdf.lib
+pdftexlibs = $(pdflib) $(pnglib) $(zliblib) $(xpdflib)
+pdftexlibsdep = $(pdflib) $(png) $(zlib) $(xpdf)
+
+# The .bat script that does the conversion:
+web2c = web2c\convert.bat $(objdir)
+# Additional dependencies:
+web2c_common = web2c\convert.bat web2c\common.defines
+web2c_programs = web2c\$(objdir)\fixwrites.exe \
+# $(msvcdir)\splitup.pl \
+# web2c\$(objdir)\splitup.exe \
+ web2c\$(objdir)\web2c.exe
+web2c_texmf = $(web2c_common) $(web2c_programs) web2c\texmf.defines web2c\coerce.h
+
+# Calling tangle
+# tangle = WEBINPUTS=$(srcdir) ./tangle
+tangle = $(objdir)\tangle.exe
+
+# The environment for making dumps.
+# dumpenv = TEXMFCNF=../kpathsea TEXMF=$(texmf)
+
+# Unfortunately, suffix rules can't have dependencies, or multiple
+# targets, and we can't assume all makes supports pattern rules.
+.SUFFIXES: .p .c .ch .p .res .rc
+.p.c: # really depends on $(web2c_programs), and generates .h.
+ $(web2c) $*
+.ch.p: # really depends on ./tangle; for mf/mp/tex, also generates .pool
+ .\$(objdir)\tangle $*.web $<
+
+# Prevent Make from deleting the intermediate forms.
+.PRECIOUS: %.ch %.p %.c
+
+mf = $(objdir)\mf.exe
+mfn = $(objdir)\mf-nowin.exe
+mpost = $(objdir)\mpost.exe
+tex = $(objdir)\tex.exe
+!ifdef TEX_DLL
+mf = $(mf) $(objdir)\$(library_prefix)mf.dll
+mfn = $(mfn) $(objdir)\$(library_prefix)mf-nowin.dll
+mpost = $(mpost) $(objdir)\$(library_prefix)mpost.dll
+tex = $(tex) $(objdir)\$(library_prefix)tex.dll
+!endif
+
+mpware = mpware\$(objdir)\dmp.exe ..\contrib\$(objdir)\makempx.exe mpware\$(objdir)\mpto.exe mpware\$(objdir)\newer.exe
+mpware_sources = mpware\dmp.c ..\contrib\makempx.c mpware\mpto.c mpware\newer.c
+
+#
+default all: programs manpages doc\web2c.info #FMU dumps
+check: dumps
+
+$(objdir)\bibtex.exe: $(objdir)\bibtex.obj $(objdir)\bibtex.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+bibtex.c bibtex.h: $(web2c_common) $(web2c_programs) web2c\cvtbib.sed bibtex.p
+ $(web2c) bibtex
+bibtex.p: $(tangle) bibtex.web bibtex.ch
+ $(tangle) bibtex bibtex
+check: bibtex-check
+bibtex-check: $(objdir)\bibtex.exe
+# if not exist tests\exampl.aux $(copy) $(srcdir)\tests\exampl.aux tests\exampl.aux
+ @set BSTINPUTS=$(srcdir)\tests
+ @set TEXMFCNF=..\kpathsea\texmf.cnf
+ .\$(objdir)\bibtex tests\exampl
+ @set TEXMFCNF=
+ @set BSTINPUTS=
+clean:: bibtex-clean
+bibtex-clean:
+# $(LIBTOOL) --mode=clean $(del) bibtex
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\bibtex.obj bibtex.c bibtex.h bibtex.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\exampl.blg tests\exampl.bbl $(redir_stderr)
+
+$(objdir)\cweave.exe: $(objdir)\cweave.obj $(objdir)\cweb.obj
+ $(link) $(**) $(conlibs)
+cweave.c: $(objdir)\ctangle.exe cwebdir\cweave.w cwebdir\cweav-w2c.ch
+ @set CWEBINPUTS=$(srcdir)\cwebdir
+ .\$(objdir)\ctangle cweave cweav-w2c
+ @set CWEBINPUTS=
+check: cweave-check
+cweave-check: $(objdir)\cweave.exe
+ @set CWEBINPUTS=$(srcdir)\cwebdir
+ .\$(objdir)\cweave common.w
+ @set CWEBINPUTS=
+clean:: cweave-clean
+cweave-clean:
+# $(LIBTOOL) --mode=clean $(del) cweave
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\cweave.obj cweave.c) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) common.tex common.scn common.idx $(redir_stderr)
+
+$(objdir)\dvicopy.exe: $(objdir)\dvicopy.obj $(objdir)\dvicopy.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+dvicopy.c dvicopy.h: $(web2c_common) $(web2c_programs) dvicopy.p
+ $(web2c) dvicopy
+dvicopy.p: $(tangle) dvicopy.web dvicopy.ch
+ $(tangle) dvicopy dvicopy
+check: dvicopy-check
+dvicopy-check: $(objdir)\dvicopy.exe
+ .\$(objdir)\dvicopy $(srcdir)\tests\story tests\xstory.dvi
+# Redirect stderr so the terminal output will end up in the log file.
+ @set TFMFONTS=$(srcdir)\tests
+ @set VFFONTS=$(srcdir)\tests
+ .\$(objdir)\dvicopy < $(srcdir)\tests\pplr.dvi > tests\xpplr.dvi
+ @set VFFONTS=
+ @set TFMFONTS=
+clean:: dvicopy-clean
+dvicopy-clean:
+# $(LIBTOOL) --mode=clean $(del) dvicopy
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\dvicopy.obj dvicopy.c dvicopy.h dvicopy.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xstory.dvi tests\xpplr.dvi $(redir_stderr)
+
+$(objdir)\dvitomp.exe: $(objdir)\dvitomp.obj $(objdir)\dvitomp.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+dvitomp.c dvitomp.h: $(web2c_common) $(web2c_programs) dvitomp.p
+ $(web2c) dvitomp
+dvitomp.p: $(tangle) dvitomp.web dvitomp.ch
+ $(tangle) dvitomp dvitomp
+check: dvitomp-check
+dvitomp-check: $(objdir)\dvitomp.exe
+ @set TFMFONTS=$(srcdir)\tests
+ @set VFFONTS=$(srcdir)\tests
+ .\$(objdir)\dvitomp $(srcdir)\tests\story.dvi tests\xstory.mpx
+ .\$(objdir)\dvitomp $(srcdir)\tests\ptmr
+ $(move) ptmr.mpx tests\xptmr.mpx
+ @set TFMFONTS=
+ @set VFFONTS=
+clean:: dvitomp-clean
+dvitomp-clean:
+# $(LIBTOOL) --mode=clean $(del) dvitomp
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\dvitomp.obj dvitomp.c dvitomp.h dvitomp.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xstory.mpx tests\xptmr.mpx $(redir_stderr)
+
+$(objdir)\dvitype.exe: $(objdir)\dvitype.obj $(objdir)\dvitype.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+dvitype.c dvitype.h: $(web2c_common) $(web2c_programs) dvitype.p
+ $(web2c) dvitype
+dvitype.p: $(tangle) dvitype.web dvitype.ch
+ $(tangle) dvitype dvitype
+check: dvitype-check
+dvitype-check: $(objdir)\dvitype.exe
+ .\$(objdir)\dvitype -show-opcodes $(srcdir)\tests\story >tests\xstory.dvityp
+ .\$(objdir)\dvitype -p=*.*.2 $(srcdir)\tests\pagenum.dvi >tests\xpagenum.typ
+clean:: dvitype-clean
+dvitype-clean:
+# $(LIBTOOL) --mode=clean $(del) dvitype
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\dvitype.obj dvitype.c dvitype.h dvitype.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xstory.dvityp tests\xpagenum.typ $(redir_stderr)
+
+$(objdir)\gftodvi.exe: $(objdir)\gftodvi.obj $(objdir)\gftodvi.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+gftodvi.c gftodvi.h: $(web2c_common) $(web2c_programs) gftodvi.p
+ $(web2c) gftodvi
+gftodvi.p: $(tangle) gftodvi.web gftodvi.ch
+ $(tangle) gftodvi gftodvi
+check: gftodvi-check
+gftodvi-check: $(objdir)\gftodvi.exe
+ set TFMFONTS=$(srcdir)\tests
+ .\$(objdir)\gftodvi -verbose $(srcdir)\tests\cmr10.600gf
+ $(move) cmr10.dvi tests\xcmr10.dvi
+clean:: gftodvi-clean
+gftodvi-clean:
+# $(LIBTOOL) --mode=clean $(del) gftodvi
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\gftodvi.obj gftodvi.c gftodvi.h gftodvi.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.dvi $(redir_stderr)
+
+$(objdir)\gftopk.exe: $(objdir)\gftopk.obj $(objdir)\gftopk.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+gftopk.c gftopk.h: $(web2c_common) $(web2c_programs) gftopk.p
+ $(web2c) gftopk
+gftopk.p: $(tangle) gftopk.web gftopk.ch
+ $(tangle) gftopk gftopk
+check: gftopk-check
+gftopk-check: $(objdir)\gftopk.exe
+ .\$(objdir)\gftopk -verbose $(srcdir)\tests\cmr10.600gf tests\xcmr10.pk
+ .\$(objdir)\gftopk $(srcdir)\tests\cmr10.600gf cmr10.pk & $(del) cmr10.pk
+clean:: gftopk-clean
+gftopk-clean:
+# $(LIBTOOL) --mode=clean $(del) gftopk
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\gftopk.obj gftopk.c gftopk.h gftopk.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.pk $(redir_stderr)
+
+$(objdir)\gftype.exe: $(objdir)\gftype.obj $(objdir)\gftype.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+gftype.c gftype.h: $(web2c_common) $(web2c_programs) gftype.p
+ $(web2c) gftype
+gftype.p: $(tangle) gftype.web gftype.ch
+ $(tangle) gftype gftype
+check: gftype-check
+gftype-check: $(objdir)\gftype.exe
+ .\$(objdir)\gftype $(srcdir)\tests\cmr10.600gf >tests\xcmr10.gft1
+ .\$(objdir)\gftype -m -i $(srcdir)\tests\cmr10.600gf >tests\xcmr10.gft2
+clean:: gftype-clean
+gftype-clean:
+# $(LIBTOOL) --mode=clean $(del) gftype
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\gftype.obj gftype.c gftype.h gftype.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.gft1 tests\xcmr10.gft2 $(redir_stderr)
+
+$(objdir)\mft.exe: $(objdir)\mft.obj $(objdir)\mft.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+mft.c mft.h: $(web2c_common) $(web2c_programs) mft.p
+ $(web2c) mft
+mft.p: $(tangle) mft.web mft.ch
+ $(tangle) mft mft
+check: mft-check
+mft-check: $(objdir)\mft.exe
+ .\$(objdir)\mft $(srcdir)\tests\io & $(move) io.tex tests\io.tex
+clean:: mft-clean
+mft-clean:
+# $(LIBTOOL) --mode=clean $(del) mft
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\mft.obj mft.c mft.h mft.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\io.tex $(redir_stderr)
+
+$(objdir)\patgen.exe: $(objdir)\patgen.obj $(objdir)\patgen.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+patgen.c patgen.h: $(web2c_common) $(web2c_programs) patgen.p
+ $(web2c) patgen
+patgen.p: $(tangle) patgen.web patgen.ch
+ $(tangle) patgen patgen
+check: patgen-check
+patgen-check: $(objdir)\patgen.exe
+ .\$(objdir)\patgen $(srcdir)\tests\dict $(srcdir)\tests\patterns tests\xout \
+ $(srcdir)\tests\translate <$(srcdir)\tests\patgen.in
+clean:: patgen-clean
+patgen-clean:
+# $(LIBTOOL) --mode=clean $(del) patgen
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\patgen.obj patgen.c patgen.h patgen.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xout pattmp.1 $(redir_stderr)
+
+$(objdir)\pktogf.exe: $(objdir)\pktogf.obj $(objdir)\pktogf.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+pktogf.c pktogf.h: $(web2c_common) $(web2c_programs) pktogf.p
+ $(web2c) pktogf
+pktogf.p: $(tangle) pktogf.web pktogf.ch
+ $(tangle) pktogf pktogf
+check: pktogf-check
+pktogf-check: $(objdir)\pktogf.exe
+ .\$(objdir)\pktogf -verbose $(srcdir)\tests\cmr10.pk tests\xcmr10.600gf
+ .\$(objdir)\pktogf $(srcdir)\tests\cmr10.pk & rm cmr10.gf
+clean:: pktogf-clean
+pktogf-clean:
+# $(LIBTOOL) --mode=clean $(del) pktogf
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\pktogf.obj pktogf.c pktogf.h pktogf.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.600gf $(redir_stderr)
+
+$(objdir)\pktype.exe: $(objdir)\pktype.obj $(objdir)\pktype.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+pktype.c pktype.h: $(web2c_common) $(web2c_programs) pktype.p
+ $(web2c) pktype
+pktype.p: $(tangle) pktype.web pktype.ch
+ $(tangle) pktype pktype
+check: pktype-check
+pktype-check: $(objdir)\pktype.exe
+ .\$(objdir)\pktype $(srcdir)\tests\cmr10.pk >tests\xcmr10.pktyp
+clean:: pktype-clean
+pktype-clean:
+# $(LIBTOOL) --mode=clean $(del) pktype
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\pktype.obj pktype.c pktype.h pktype.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.pktyp $(redir_stderr)
+
+$(objdir)\pltotf.exe: $(objdir)\pltotf.obj $(objdir)\pltotf.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+pltotf.c pltotf.h: $(web2c_common) $(web2c_programs) pltotf.p
+ $(web2c) pltotf
+pltotf.p: $(tangle) pltotf.web pltotf.ch
+ $(tangle) pltotf pltotf
+check: pltotf-check
+pltotf-check: $(objdir)\pltotf.exe
+ .\$(objdir)\pltotf -verbose $(srcdir)\tests\cmr10 tests\xcmr10
+clean:: pltotf-clean
+pltotf-clean:
+# $(LIBTOOL) --mode=clean $(del) pltotf
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\pltotf.obj pltotf.c pltotf.h pltotf.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.tfm $(redir_stderr)
+
+$(objdir)\pooltype.exe: $(objdir)\pooltype.obj $(objdir)\pooltype.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+pooltype.c pooltype.h: $(web2c_common) $(web2c_programs) pooltype.p
+ $(web2c) pooltype
+pooltype.p: $(tangle) pooltype.web pooltype.ch
+ $(tangle) pooltype pooltype
+check: pooltype-check
+pooltype-check: tex.pool
+pooltype-check: $(objdir)\pooltype.exe
+ .\$(objdir)\pooltype tex.pool >tests\xtexpool.typ
+clean:: pooltype-clean
+pooltype-clean:
+# $(LIBTOOL) --mode=clean $(del) pooltype
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\pooltype.obj pooltype.c pooltype.h pooltype.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xtexpool.typ $(redir_stderr)
+
+$(objdir)\tie.exe: $(objdir)\tie.obj $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+tie.c: $(objdir)\ctangle.exe tiedir\tie.w tiedir\tie-w2c.ch
+ @set CWEBINPUTS=$(srcdir)\tiedir
+ .\$(objdir)\ctangle tie.w tie-w2c.ch
+ @set CWEBINPUTS=
+clean:: tie-clean
+tie-clean:
+# $(LIBTOOL) --mode=clean $(del) tie
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\tie.obj tie.c) do $(del) %%i $(redir_stderr) \
+ )
+
+$(objdir)\tftopl.exe: $(objdir)\tftopl.obj $(objdir)\tftopl.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+tftopl.c tftopl.h: $(web2c_common) $(web2c_programs) tftopl.p
+ $(web2c) tftopl
+tftopl.p: $(tangle) tftopl.web tftopl.ch
+ $(tangle) tftopl tftopl
+check: tftopl-check
+tftopl-check: $(objdir)\tftopl.exe
+ .\$(objdir)\tftopl -verbose $(srcdir)\tests\cmr10 tests\xcmr10
+clean:: tftopl-clean
+tftopl-clean:
+# $(LIBTOOL) --mode=clean $(del) tftopl
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\tftopl.obj tftopl.c tftopl.h tftopl.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xcmr10.pl $(redir_stderr)
+
+$(objdir)\vftovp.exe: $(objdir)\vftovp.obj $(objdir)\vftovp.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+vftovp.c vftovp.h: $(web2c_common) $(web2c_programs) vftovp.p
+ $(web2c) vftovp
+vftovp.p: $(tangle) vftovp.web vftovp.ch
+ $(tangle) vftovp vftovp
+check: vftovp-check
+vftovp-check: $(objdir)\vftovp.exe
+ @set TFMFONTS=$(srcdir)\tests
+ .\$(objdir)\vftovp -verbose $(srcdir)\tests\ptmr ptmr tests\xptmr
+ @set TFMFONTS=
+clean:: vftovp-clean
+vftovp-clean:
+# $(LIBTOOL) --mode=clean $(del) vftovp
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\vftop.obj vftovp.c vftovp.h vftovp.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xptmr.vpl $(redir_stderr)
+
+$(objdir)\vptovf.exe: $(objdir)\vptovf.obj $(objdir)\vptovf.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+vptovf.c vptovf.h: $(web2c_common) $(web2c_programs) vptovf.p
+ $(web2c) vptovf
+vptovf.p: $(tangle) vptovf.web vptovf.ch
+ $(tangle) vptovf vptovf
+check: vptovf-check
+vptovf-check: $(objdir)\vptovf.exe
+ .\$(objdir)\vptovf $(srcdir)\tests\ptmr tests\xptmr tests\xptmr
+clean:: vptovf-clean
+vptovf-clean:
+# $(LIBTOOL) --mode=clean $(del) vptovf
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\vptovf.obj vptovf.c vptovf.h vptovf.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) tests\xptmr.vf tests\xptmr.tfm $(redir_stderr)
+
+$(objdir)\weave.exe: $(objdir)\weave.obj $(objdir)\weave.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+weave.c weave.h: $(web2c_common) $(web2c_programs) weave.p
+ $(web2c) weave
+weave.p: $(tangle) weave.web weave.ch
+ $(tangle) weave weave
+check: weave-check
+weave-check: $(objdir)\weave.exe
+ .\$(objdir)\weave $(srcdir)\pooltype
+clean:: weave-clean
+weave-clean:
+# $(LIBTOOL) --mode=clean $(del) weave
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\weave.obj weave.c weave.h weave.p) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(del) pooltype.tex $(redir_stderr)
+
+#
+# Defines that are common to the texmf programs.
+
+trip = trip
+etrip = etrip
+triptrap: $(trip) trap mptrap $(etrip)
+testdir = $(srcdir)\triptrap
+testenv = TEXMFCNF=$(testdir)
+dvitype_args = -output-level=2 -dpi=72.27 -page-start="*.*.*.*.*.*.*.*.*.*"
+
+#
+# Metafont
+mf_c = mf.c
+mf_o = $(objdir)\mf.obj
+mfn_o = $(objdir)\mfnowin.obj
+!ifdef TEX_DLL
+$(objdir)\$(library_prefix)mf.exp: $(objdir)\$(library_prefix)mf.lib
+
+$(objdir)\$(library_prefix)mf.lib: $(mf_o)
+ $(archive) /DEF $(mf_o)
+
+$(objdir)\$(library_prefix)mf.dll: $(mf_o) $(objdir)\$(library_prefix)mf.exp $(objdir)\mf.res $(windowlib) $(kpathsealib) $(proglib)
+ $(link_dll) $(**) gdi32.lib $(conlibs)
+
+$(objdir)\mf.exe: $(objdir)\win32main.obj $(objdir)\$(library_prefix)mf.lib $(proglib)
+ $(link) $(**) $(conlibs)
+!else
+$(objdir)\mf.exe: $(mf_o) $(objdir)\win32main.obj $(windowlib) $(objdir)\mf.res $(kpathsealib) $(proglib)
+ $(link) $(**) gdi32.lib $(conlibs)
+!endif
+
+!ifdef TEX_DLL
+$(objdir)\$(library_prefix)mf-nowin.exp: $(objdir)\$(library_prefix)mf-nowin.lib
+
+$(objdir)\$(library_prefix)mf-nowin.lib: $(mf_o)
+ $(archive) /DEF $(mf_o)
+
+$(objdir)\$(library_prefix)mf-nowin.dll: $(mfn_o) window\$(objdir)\trap.obj $(objdir)\$(library_prefix)mf-nowin.exp $(objdir)\mf.res $(kpathsealib) $(proglib)
+ $(link_dll) $(**) gdi32.lib $(conlibs)
+
+$(objdir)\mf-nowin.exe: $(objdir)\win32main.obj $(objdir)\$(library_prefix)mf-nowin.lib $(proglib)
+ $(link) $(**) $(conlibs)
+!else
+$(objdir)\mf-nowin.exe: $(mfn_o) window\$(objdir)\trap.obj $(objdir)\win32main.obj $(objdir)\mf.res $(kpathsealib) $(proglib)
+ $(link) $(**) gdi32.lib $(conlibs)
+!endif
+
+$(objdir)\mfnowin.obj: mf.c
+ $(compile) -DMFNOWIN mf.c
+$(mf_c) mfcoerce.h mfd.h: mf.p $(web2c_texmf) web2c\cvtmf1.sed web2c\cvtmf2.sed
+ $(web2c) mf
+mf.p mf.pool: $(tangle) mf.web mf-w32.ch
+ $(tangle) mf.web mf-w32.ch
+mf-w32.ch: $(objdir)\tie.exe mf.ch mf-supp-w32.ch
+ $(objdir)\tie.exe -c mf-w32.ch mf.web mf.ch mf-supp-w32.ch
+check: mf-check
+mf-check: trap mf.base
+ .\$(objdir)\mf --progname=mf "&./mf \tracingstats:=1; end."
+ .\$(objdir)\mf --progname=mf "&./mf $(srcdir)\tests\online"
+ .\$(objdir)\mf --progname=mf "&./mf $(srcdir)\tests\one.two"
+ .\$(objdir)\mf --progname=mf "&./mf $(srcdir)\tests\uno.dos"
+clean:: mf-clean
+mf-clean: trap-clean
+ -@echo $(verbose) & ( \
+ for %%i in ($(mf_c) mfcoerce.h mfd.h mf.p mf.pool \
+ $(mfw_o) mfextra.c $(mfn_o) mfnowin.c \
+ mf.base mf.log mfput.log online.2602gf \
+ online.log one.two.log uno.log) do $(del) %%i $(redir_stderr) \
+ )
+# $(LIBTOOL) --mode=clean $(del) mf
+# $(LIBTOOL) --mode=clean $(del) mfw
+# $(LIBTOOL) --mode=clean $(del) mf-nowin
+
+# Can't run trap and mptrap in parallel, because both write trap.{log,tfm}.
+trap: mf tftopl gftype trap-clean
+trap: $(objdir)\mf.exe $(objdir)\tftopl.exe $(objdir)\gftype.exe
+ @echo ">>> See $(testdir)\mftrap.diffs for example of acceptable diffs."
+ set TEXMFCNFOLD=$(TEXMFCNF)
+ set TEXMFCNF=$(testdir)
+# get same filename in log
+ -@$(del) trap.mf & $(copy) $(testdir)\trap.mf . $(redir_stderr)
+ -.\$(objdir)\mf -progname=inimf < $(testdir)\mftrap1.in > mftrapin.fot
+ $(move) trap.log mftrapin.log
+ -$(diff) $(testdir)\mftrapin.log mftrapin.log
+ -.\$(objdir)\mf -progname=inimf <$(testdir)\mftrap2.in >mftrap.fot
+ $(move) trap.log mftrap.log
+ $(move) trap.tfm mftrap.tfm
+ -$(diff) $(testdir)\mftrap.fot mftrap.fot
+ -$(diff) $(testdir)\mftrap.log mftrap.log
+ .\$(objdir)\tftopl .\mftrap.tfm mftrap.pl
+ -$(diff) $(testdir)\mftrap.pl mftrap.pl
+ -.\$(objdir)\gftype -m -i .\trap.72270gf >trap.typ
+ -$(diff) $(testdir)\trap.typ trap.typ
+ set TEXMFCNF=$(TEXMFCNFOLD)
+
+trap-clean:
+ -@echo $(verbose) & ( \
+ for %%i in (trap.mf trap.base mftrapin.fot mftrapin.log \
+ mftrap.fot mftrap.log mftrap.tfm mftrap.pl \
+ trap.72270gf trap.typ) do $(del) %%i $(redir_stderr) \
+ )
+#
+# MetaPost
+mp_c = mp.c
+mp_o = $(objdir)\mp.obj
+!ifdef TEX_DLL
+$(objdir)\$(library_prefix)mpost.exp: $(objdir)\$(library_prefix)mpost.lib
+
+$(objdir)\$(library_prefix)mpost.lib: $(mp_o)
+ $(archive) /DEF $(mp_o)
+
+$(objdir)\$(library_prefix)mpost.dll: $(mp_o) $(objdir)\$(library_prefix)mpost.lib $(objdir)\$(library_prefix)mpost.exp $(objdir)\mpost.res $(kpathsealib) $(proglib)
+ $(link_dll) $(**) $(conlibs)
+
+$(objdir)\mpost.exe: $(objdir)\win32main.obj $(objdir)\$(library_prefix)mpost.lib $(proglib)
+ $(link) $(**) $(conlibs)
+!else
+$(objdir)\mpost.exe: $(mp_o) $(objdir)\win32main.obj $(objdir)\mpost.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+!endif
+$(mp_c) mpcoerce.h mpd.h: mp.p $(web2c_texmf) web2c\cvtmf1.sed web2c\cvtmf2.sed
+ $(web2c) mp
+mp.p mp.pool: $(tangle) mp.web mp-w32.ch
+ $(tangle) mp.web mp-w32.ch
+mp-w32.ch: $(objdir)\tie.exe mp.ch mp-supp-w32.ch
+ $(objdir)\tie.exe -c mp-w32.ch mp.web mp.ch mp-supp-w32.ch
+check: mpost-check
+mpost-check: mptrap mpost.mem $(mpware)
+ .\$(objdir)\mpost --progname=mpost "&./mpost \tracingstats:=1 ; end."
+ set MAKEMPX_BINDIR=.;..\contrib\$(objdir)
+ set MPXCOMMAND=..\contrib\$(objdir)\makempx.exe
+ .\$(objdir)\mpost --progname=mpost $(srcdir)\tests\mptest
+ set MAKEMPX_BINDIR=
+ set MPXCOMMAND=
+ .\$(objdir)\mpost --progname=mpost $(srcdir)\tests\one.two
+ .\$(objdir)\mpost --progname=mpost $(srcdir)\tests\uno.dos
+clean:: mpost-clean
+mpost-clean: mptrap-clean
+ -@echo $(verbose) & ( \
+ for %%i in ($(mp_o) $(mp_c) mpextra.c mpcoerce.h mpd.h \
+ mp.p mp.pool mpost.mem mpost.log mpout.log \
+ mptest.log one.two.log uno.log) do $(del) %%i $(redir_stderr) \
+ )
+# $(LIBTOOL) --mode=clean $(del) mpost
+
+# Can't run trap and mptrap in parallel, because both write trap.{log,tfm}.
+mptrap: mpost pltotf tftopl mptrap-clean
+mptrap: $(objdir)\mpost.exe $(objdir)\pltotf.exe $(objdir)\tftopl.exe mptrap-clean
+ @echo ">>> See $(testdir)\mptrap.diffs for example of acceptable diffs." >&2
+ set TEXMFCNFOLD=$(TEXMFCNF)
+ set TEXMFCNF=$(testdir)
+# get same filename in log
+ -@$(del) mtrap.mp & $(copy) $(testdir)\mtrap.mp . $(redir_stderr)
+ .\$(objdir)\pltotf $(testdir)\trapf.pl trapf.tfm
+ -.\$(objdir)\mpost -progname=inimpost mtrap
+ -$(diff) $(testdir)\mtrap.log mtrap.log
+ -$(diff) $(testdir)\mtrap.0 mtrap.0
+ -$(diff) $(testdir)\mtrap.1 mtrap.1
+ -$(diff) $(testdir)\writeo writeo
+ -$(diff) $(testdir)\writeo.2 writeo.2
+ -@$(del) trap.mp & $(copy) $(testdir)\trap.mp . $(redir_stderr)
+ -@$(del) trap.mpx & $(copy) $(testdir)\trap.mpx . $(redir_stderr)
+ -.\$(objdir)\mpost -progname=inimpost<$(testdir)\mptrap1.in >mptrapin.fot
+ -$(move) trap.log mptrapin.log
+ -$(diff) $(testdir)\mptrapin.log mptrapin.log
+# Must run inimp or font_name[null_font] is not initialized, leading to diffs.
+ -.\$(objdir)\mpost -progname=inimpost<$(testdir)\mptrap2.in >mptrap.fot
+ -$(move) trap.log mptrap.log
+ -$(move) trap.tfm mptrap.tfm
+ -$(diff) $(testdir)\mptrap.fot mptrap.fot
+ -$(diff) $(testdir)\mptrap.log mptrap.log
+ -$(diff) $(testdir)\trap.5 trap.5
+ -$(diff) $(testdir)\trap.6 trap.6
+ -$(diff) $(testdir)\trap.148 trap.148
+ -$(diff) $(testdir)\trap.149 trap.149
+ -$(diff) $(testdir)\trap.150 trap.150
+ -$(diff) $(testdir)\trap.151 trap.151
+ -$(diff) $(testdir)\trap.197 trap.197
+ -$(diff) $(testdir)\trap.200 trap.200
+ .\$(objdir)\tftopl .\mptrap.tfm mptrap.pl
+ -$(diff) $(testdir)\mptrap.pl mptrap.pl
+ set TEXMFCNF=$(TEXMFCNFOLD)
+mptrap-clean:
+ -@echo $(verbose) & ( \
+ for %%i in (mtrap.mp mtrap.mem trapf.tfm \
+ mtrap.log mtrap.0 mtrap.1 writeo writeo.log writeo.2 \
+ trap.mp trap.mpx mptrapin.fot mptrapin.log \
+ mptrap.fot mptrap.log mptrap.tfm \
+ trap.ps trap.mem trap.0 trap.5 trap.6 trap.95 trap.96 trap.97 \
+ trap.98 trap.99 trap.100 trap.101 trap.102 trap.103 trap.104 \
+ trap.105 trap.106 trap.107 trap.108 trap.109 trap.148 \
+ trap.149 trap.150 trap.151 trap.197 trap.200 \
+ mptrap.pl) do $(del) %%i $(redir_stderr) \
+ )
+#
+# TeX
+tex_c = tex.c
+tex_o = $(objdir)\tex.obj
+!ifdef TEX_DLL
+$(objdir)\$(library_prefix)tex.exp: $(objdir)\$(library_prefix)tex.lib
+
+$(objdir)\$(library_prefix)tex.lib: $(tex_o)
+ $(archive) /DEF $(tex_o)
+
+$(objdir)\$(library_prefix)tex.dll: $(tex_o) $(objdir)\$(library_prefix)tex.exp $(objdir)\tex.res $(kpathsealib) $(proglib)
+ $(link_dll) $(**) $(socketlibs) $(conlibs)
+
+$(objdir)\tex.exe: $(objdir)\win32main.obj $(objdir)\$(library_prefix)tex.lib $(proglib)
+ $(link) $(**) $(conlibs)
+!else
+$(objdir)\tex.exe: $(tex_o) $(objdir)\win32main.obj $(objdir)\tex.res $(kpathsealib) $(proglib)
+ $(link) $(**) $(socketlibs) $(conlibs)
+!endif
+$(tex_c) texcoerce.h texd.h: tex.p $(web2c_texmf)
+ $(web2c) tex
+tex.p tex.pool: $(tangle) tex.web tex-w32.ch
+ $(tangle) tex.web tex-w32.ch
+tex-w32.ch: $(objdir)\tie.exe tex.ch tex-supp-w32.ch
+ $(objdir)\tie.exe -c tex-w32.ch tex.web tex.ch tex-supp-w32.ch
+check: tex-check
+tex-check: trip tex.fmt
+ @echo <<.\tex-check.bat
+PATH = .\$(objdir);$(kpathseadir)\$(objdir);$(geturldir)\$(objdir);c:\windows\system32;C:\WINDOWS\system32\wbem;c:\windows
+rem Test truncation (but don't bother showing the warning msg).
+.\$(objdir)\tex --progname=tex --output-comment=$(outcom) $(srcdir)\tests\hello > nul \
+ & .\$(objdir)\dvitype hello.dvi | grep olaf@infovore.xs4all.nl > nul
+rem \openout should show up in \write's.
+.\$(objdir)\tex --progname=tex $(srcdir)\tests\openout & grep xfoo openout.log
+rem one.two.tex -> one.two.log
+.\$(objdir)\tex --progname=tex $(srcdir)\tests\one.two & dir /n one.two.log
+rem uno.dos -> uno.log
+.\$(objdir)\tex --progname=tex $(srcdir)\tests\uno.dos & dir /n uno.log
+.\$(objdir)\tex --progname=tex $(srcdir)\tests\just.texi & dir /n just.log
+.\$(objdir)\tex --progname=tex $(srcdir)\tests\batch.tex
+.\$(objdir)\tex --progname=tex --shell $(srcdir)\tests\write18 | grep echo
+.\$(objdir)\tex --mltex --progname=initex $(srcdir)\tests\mltextst
+.\$(objdir)\tex --progname=tex <nul
+set WEB2C=$(kpathsea_srcdir)
+set TMPDIR=..
+.\$(objdir)\tex --progname=tex "\nonstopmode\font\foo=nonesuch\end"
+<<NOKEEP
+ .\tex-check.bat
+
+clean:: tex-clean
+tex-clean: trip-clean
+# $(LIBTOOL) --mode=clean $(del) tex
+ -@echo $(verbose) & ( \
+ for %%i in ($(tex_o) $(tex_c) texextra.c texcoerce.h texd.h \
+ tex.p tex.pool tex.fmt tex.log \
+ hello.dvi hello.log xfoo.out openout.log on.two.log uno.log \
+ just.log batch.log write18.log mltextst.log texput.log \
+ missfont.log) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(deldir) tfm $(redir_stderr)
+
+trip: $(objdir)\dvitype.exe $(objdir)\pltotf.exe $(objdir)\tftopl.exe $(objdir)\tex.exe trip-clean
+ @echo ">>> See $(testdir)\trip.diffs for example of acceptable diffs."
+ @echo <<.\trip.bat
+set TEXMFCNF=$(testdir)
+PATH = .\$(objdir);$(kpathseadir)\$(objdir);$(geturldir)\$(objdir);c:\windows\system32;C:\WINDOWS\system32\wbem;c:\windows
+.\$(objdir)\pltotf $(testdir)\trip.pl trip.tfm
+.\$(objdir)\tftopl .\trip.tfm trip.pl
+$(diff) $(testdir)\trip.pl trip.pl
+rem get same filename in log
+$(del) trip.tex & $(copy) $(testdir)\trip.tex . $(redir_stderr)
+.\$(objdir)\tex -progname=initex < $(testdir)\trip1.in >tripin.fot
+$(move) trip.log tripin.log
+$(diff) $(testdir)\tripin.log tripin.log
+rem May as well test non-ini second time through.
+.\$(objdir)\tex < $(testdir)\trip2.in >trip.fot
+$(diff) $(testdir)\trip.fot trip.fot
+rem We use $(diff) instead of `diff' only for those files where there
+rem might actually be legitimate numerical differences.
+$(diff) $(diffflags) $(testdir)\trip.log trip.log
+.\$(objdir)\dvitype $(dvitype_args) trip.dvi >trip.typ
+$(diff) $(diffflags) $(testdir)\trip.typ trip.typ
+<<NOKEEP
+ .\trip.bat
+
+trip-clean:
+ -@echo $(verbose) & ( \
+ for %%i in (trip.tfm trip.pl trip.tex trip.fmt tripin.fot tripin.log \
+ trip.fot trip.log trip.dvi trip.typ tripos.tex 8terminal.tex \
+ ) do $(del) %%i $(redir_stderr) \
+ )
+ -@$(deldir) tfm $(redir_stderr)
+
+# The stub with main() for win32
+$(objdir)\win32main.obj: $(objdir) .\lib\win32main.c config.h
+ $(compile) -UMAKE_TEX_DLL .\lib\win32main.c
+
+#
+# Makefile fragments:
+!include <etexdir/etex.mak>
+!include <omegadir$(omegaversion)/omega.mak>
+!include <eomegadir/eomega.mak>
+!include <alephdir/aleph.mak>
+!include <pdftexdir/pdftex.mak>
+!include <pdfetexdir/pdfetex.mak>
+#!include <pdfxtexdir/pdfxtex.mak>
+#
+# Common
+programs = $(objdir)\bibtex.exe $(objdir)\ctangle.exe $(objdir)\cweave.exe \
+ $(objdir)\dvicopy.exe $(objdir)\dvitomp.exe $(objdir)\dvitype.exe \
+ $(objdir)\gftodvi.exe $(objdir)\gftopk.exe $(objdir)\gftype.exe \
+ $(objdir)\mft.exe $(odvicopy) $(odvitype) $(otangle) $(objdir)\patgen.exe \
+ $(objdir)\pktogf.exe $(objdir)\pktype.exe $(objdir)\pltotf.exe \
+ $(objdir)\pooltype.exe $(objdir)\tangle.exe $(objdir)\tftopl.exe \
+ $(objdir)\tie.exe $(ttf2afm) $(objdir)\vftovp.exe $(objdir)\vptovf.exe \
+ $(objdir)\weave.exe \
+ $(pdftosrc) $(ttf2afm) $(tex) \
+ $(omega) $(aleph) \
+ $(pdfetex) $(pdfxtex) \
+ $(mf) $(mfn) $(mpost)
+# $(etex) $(eomega) $(pdftex)
+
+programs: $(objdir) $(programs) $(mpware) $(omegafonts_programs) $(otps_programs) $(pdftosrc)
+
+# We put some programs (written directly in C) in a subdirectory.
+$(mpware): $(mpware_sources)
+ cd mpware & $(make)
+
+# Additional dependencies for relinking.
+$(web2c_programs) $(programs) $(objdir)\tangleboot.exe $(objdir)\ctangleboot.exe: $(kpathsealib) $(proglib)
+
+#
+# Bootstrapping tangle requires making it with itself. We use the opportunity
+# to create an up-to-date tangleboot as well.
+$(tangle): $(objdir)\tangle.obj $(objdir)\tangle.res
+ $(link) $(objdir)\tangle.obj $(objdir)\tangle.res $(kpathsealib) $(proglib) $(conlibs)
+ $(make) tangleboot.p
+tangle.c tangle.h: tangle.p
+ $(web2c) tangle
+# tangle.p is a special case, since it is needed to compile itself. We
+# convert and compile the (distributed) tangleboot.p to make a tangle
+# which we use to make the other programs.
+tangle.p: $(objdir)\tangleboot.exe tangle.web tangle.ch
+ @set WEBINPUTS=$(srcdir)
+ .\$(objdir)\tangleboot tangle tangle
+ @set WEBINPUTS=
+tangle.web:
+ @echo $(verbose) & ( \
+ echo "You seem to be missing tangle.web, perhaps because you" & \
+ echo "didn't retrieve web.tar.gz, only web2c.tar.gz." & \
+ echo "You need both." & \
+ echo & \
+ echo "web.tar.gz should be available from the" & \
+ echo "same place that you got web2c.tar.gz." & \
+ echo "In any case, you can get it from" & \
+ echo "ftp://ftp.tug.org/tex/web.tar.gz." & \
+ )
+ false
+clean:: tangle-clean
+tangle-clean:
+# $(LIBTOOL) --mode=clean $(del) tangle
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\tangle.obj tangle.c tangle.h tangle.p) do $(del) %%i $(redir_stderr) \
+ )
+
+$(objdir)\tangleboot.exe: $(objdir) $(objdir)\tangleboot.obj
+ $(link) $(objdir)\tangleboot.obj $(kpathsealib) $(proglib) $(conlibs)
+tangleboot.c tangleboot.h: stamp-tangle $(web2c_programs) $(web2c_common)
+ $(web2c) tangleboot
+# tangleboot.p is in the distribution
+stamp-tangle: tangleboot.p
+ date /t >stamp-tangle & time /t >>stamp-tangle
+# This is not run unless tangle.web or tangle.ch is changed.
+# Only try to run ./tangle if it actually exists, otherwise
+# just touch tangleboot.p and build tangle.
+tangleboot.p: tangle.web tangle.ch
+ set WEBINPUTS=$(srcdir)
+ if exist $(objdir)\tangle.exe ( \
+ $(objdir)\tangle tangle tangle \
+ & $(move) tangle.p tangleboot.p \
+ & del cweb.c \
+ ) else if exist tangleboot.p ( \
+ touch tangleboot.p \
+ ) \
+ else ( \
+ $(copy) $(srcdir)\tangleboot.p . \
+ )
+ date /t >stamp-ctangle & time /t >>stamp-ctangle
+ $(make) $(objdir)\tangle.exe
+# $(objdir)\tangle $(srcdir)\tangle.web $(srcdir)\tangle.ch
+# copy tangle.p tangleboot.p & $(del) tangle.p
+# date /t >stamp-tangle & time /t >>stamp-tangle
+# $(make) $(tangle)
+clean:: tangleboot-clean
+tangleboot-clean:
+# $(LIBTOOL) --mode=clean $(del) tangleboot
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\tangleboot.obj tangleboot.c tangleboot.h ) do $(del) %%i $(redir_stderr) \
+ )
+
+# Bootstrapping ctangle requires making it with itself. We use the opportunity
+# to create an up-to-date ctangleboot as well.
+$(objdir)\ctangle.exe: $(objdir)\ctangle.obj $(objdir)\cweb.obj $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+ $(make) ctangleboot.c
+ $(make) cwebboot.c
+# ctangle.c is a special case, since it is needed to compile itself.
+ctangle.c: $(objdir)\ctangleboot.exe cwebdir\ctangle.w cwebdir\ctang-w2c.ch
+ @set CWEBINPUTS=.;$(srcdir)\cwebdir
+ .\$(objdir)\ctangleboot ctangle.w ctang-w2c.ch
+cweb.c: $(objdir)\ctangleboot.exe cwebdir\common.w cwebdir\comm-w2c.ch
+ @set CWEBINPUTS=.;$(srcdir)\cwebdir
+ .\$(objdir)\ctangleboot common.w comm-w2c.ch cweb.c
+clean:: ctangle-clean
+clean:: cweb-clean
+ctangle-clean:
+# $(LIBTOOL) --mode=clean $(del) ctangle
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\ctangle.obj ctangle.c) do $(del) %%i $(redir_stderr) \
+ )
+cweb-clean:
+ -@echo $(verbose) & ( \
+ for %%i in ($(objdir)\cweb.obj cweb.c) do $(del) %%i $(redir_stderr) \
+ )
+
+$(objdir)\ctangleboot.exe: $(objdir)\ctangleboot.obj $(objdir)\cwebboot.obj $(kpathsealib) $(proglib)
+ $(link) $(**) $(conlibs)
+# ctangleboot.c is in the distribution
+stamp-ctangle: ctangleboot.c cwebboot.c
+ctangleboot.c: cwebdir\ctangle.w cwebdir\ctang-w2c.ch
+ @set CWEBINPUTS=.;$(srcdir)\cwebdir
+ if exist $(objdir)\ctangle.exe ( \
+ .\$(objdir)\ctangle ctangle.w ctang-w2c.ch \
+ & copy ctangle.c ctangleboot.c \
+ & del ctangle.c \
+ ) else ( \
+ touch ctangleboot.c \
+ )
+ date /t >stamp-ctangle & time /t >>stamp-ctangle
+ $(make) $(objdir)\ctangle.exe
+cwebboot.c: cwebdir\common.w cwebdir\comm-w2c.ch
+ set CWEBINPUTS=.;$(srcdir)\cwebdir
+ if exist $(objdir)\ctangle.exe ( \
+ $(objdir)\ctangle common.w comm-w2c.ch cweb.c \
+ & copy cweb.c cwebboot.c \
+ & del cweb.c \
+ ) else ( \
+ touch cwebboot.c \
+ )
+ date /t >stamp-ctangle & time /t >>stamp-ctangle
+ $(make) $(objdir)\ctangle.exe
+clean:: ctangleboot-clean
+clean:: cwebboot-clean
+ctangleboot-clean:
+# $(LIBTOOL) --mode=clean $(del) ctangleboot
+ -@$(del) $(objdir)\ctangleboot.obj $(redir_stderr)
+cwebboot-clean:
+ -@$(del) $(objdir)\cwebboot.obj $(redir_stderr)
+
+# Even web2c itself uses the library.
+# It's annoying to have to give all the filenames here,
+# but texmfmp.c is an exception.
+lib_sources = lib\alloca.c lib\basechsuffix.c lib\chartostring.c \
+ lib\eofeoln.c lib\fprintreal.c lib\input2int.c lib\inputint.c lib\main.c \
+ lib\openclose.c lib\printversion.c lib\uexit.c lib\usage.c lib\version.c \
+ lib\zround.c lib\oem.c
+$(proglib): $(lib_sources) stamp-auto
+ -@echo $(verbose) & ( \
+ pushd lib & $(make) all & popd \
+ )
+
+stamp-auto: $(kpathseadir)\..\web2c\c-auto.h
+
+$(kpathseadir)\..\web2c\c-auto.h: c-auto.h
+
+# No exceptions in this library.
+window_sources = $(srcdir)\window\*.c
+$(windowlib): mfd.h $(window_sources)
+ -@echo $(verbose) & ( \
+ pushd window & $(make) all & popd \
+ )
+window\$(objdir)\trap.obj: $(srcdir)\window\trap.c
+ -@echo $(verbose) & ( \
+ pushd window & $(make) all & popd \
+ )
+pdflib_sources = $(srcdir)\pdftexdir\*.c $(srcdir)\pdftexdir\*.cc \
+ $(srcdir)\pdftexdir\*.h
+$(pdflib): $(pdflib_sources)
+ -@echo $(verbose) & ( \
+ pushd pdftexdir & $(make) all & popd \
+ )
+
+# The web2c program consists of several executables.
+web2c\$(objdir)\fixwrites.exe: web2c\fixwrites.c
+ cd web2c & $(make) all
+# web2c\$(objdir)\splitup.exe: web2c\splitup.c
+# cd web2c & $(make) $(objdir)\splitup.exe
+web2c\$(objdir)\web2c.exe: web2c\main.c web2c\web2c.h web2c\web2c.l web2c\web2c.y
+ cd web2c & $(make) all
+
+# !include <msvc/tkpathsea.mak>
+
+#
+# Making dumps.
+# all_fmts = tex.fmt $(fmts)
+# all_formats = $(all_fmts) $(all_efmts) $(all_ofmts) $(all_pdffmts) $(all_pdfefmts) $(all_pdfxfmts)
+# all_bases = mf.base $(bases)
+# all_mems = mpost.mem $(mems)
+
+dumps:
+ @echo Dumps are generated by fmtutil!
+# set TEXMFMAIN
+# ..\contrib\$(objdir)\fmtutil --cnffile="$(texmf)\web2c\fmtutil.cnf" --all --dolinks
+# fmts: $(all_fmts)
+# bases: $(all_bases)
+# mems: $(all_mems)
+#
+# tex.fmt: $(tex)
+# $(dumpenv) $(make) progname=tex files="plain.tex cmr10.tfm" prereq-check
+# $(dumpenv) .\$(objdir)\tex --progname=tex --jobname=tex --ini "\input plain \dump" <nul
+#
+# latex.fmt: $(tex)
+# $(dumpenv) $(make) progname=latex files="latex.ltx" prereq-check
+# $(dumpenv) .\$(objdir)\tex --progname=latex --jobname=latex --ini "\input latex.ltx" <nul
+#
+# olatex.fmt: $(tex)
+# $(dumpenv) $(make) progname=olatex files="latex.ltx" prereq-check
+# $(dumpenv) .\$(objdir)\tex --progname=olatex --jobname=olatex --ini "\input latex.ltx" <nul
+#
+# mltex.fmt: $(tex)
+# $(dumpenv) $(make) progname=mltex files="plain.tex cmr10.tfm" prereq-check
+# $(dumpenv) .\$(objdir)\tex --mltex --progname=mltex --jobname=mltex --ini "\input plain \dump" <nul
+#
+# mllatex.fmt: $(tex)
+# $(dumpenv) $(make) progname=mllatex files="latex.ltx" prereq-check
+# $(dumpenv) .\$(objdir)\tex --mltex --progname=mllatex --jobname=mllatex --ini "\input latex.ltx" <nul
+#
+# mf.base: $(mf)
+# $(dumpenv) $(make) progname=mf files="plain.mf cmr10.mf $(localmodes).mf" prereq-check
+# $(dumpenv) .\$(objdir)\mf --progname=mf --jobname=mf --ini "\input plain input $(localmodes) dump" <nul
+#
+# mpost.mem: $(mpost)
+# $(dumpenv) $(make) progname=mpost files=plain.mp prereq-check
+# $(dumpenv) .\$(objdir)\mpost --progname=mpost --jobname=mpost --ini "\input plain dump" <nul
+
+# This is meant to be called recursively, with $(files) set.
+prereq-check: $(kpathseadir)\$(objdir)\kpsewhich.exe
+ -$(kpathseadir)\$(objdir)\kpsewhich $(files) > nul
+ if ERRORLEVEL 1 $(make) prereq-lose
+
+prereq-lose:
+ @echo $(verbose) & ( \
+ @echo "You seem to be missing input files necessary to make the"
+ @echo "basic formats (some or all of: $(files))."
+ @echo "Perhaps you've defined the default paths incorrectly, or"
+ @echo "perhaps you have environment variables set pointing"
+ @echo "to an incorrect location. See ../kpathsea/BUGS."
+ @echo
+ @echo "If you simply do not have the files, you can"
+ @echo "retrieve a minimal set of input files from"
+ @echo "ftp://ftp.tug.org/tex/texklib.tar.gz, mirrored on"
+ @echo "CTAN hosts in systems/web2c."
+ )
+
+$(kpathsea_dir)\$(objdir)\kpsewhich.exe: $(kpathsea)
+
+amstex.fmt: $(tex)
+ $(dumpenv) .\$(objdir)\tex.exe --progname=amstex --jobname=amstex --ini amstex.ini <nul
+
+# Texinfo changes the escape character from `\' to `@'.
+texinfo.fmt: tex.fmt
+ $(dumpenv) .\$(objdir)\tex --progname=texinfo --jobname=texinfo --ini texinfo "@dump" <nul
+
+eplain.fmt: tex.fmt
+ touch eplain.aux # Makes cross-reference warnings work right.
+ $(dumpenv) .\$(objdir)\tex --progname=eplain --jobname=eplain --ini "&./tex eplain \dump" <nul
+
+#
+!include <msvc/install.mak>
+
+install:: install-exec install-data install-doc
+install-exec:: install-links
+install-data::
+# FIXME!!! I hate to do this, but all this stuff relies more heavily
+# on fmtutil than on mere makefiles.
+install-dumps:
+ @echo <<install-dumps.bat
+@echo off
+set TEXMFCNF=$(TEXMFCNF)
+set TEXMFMAIN=$(TEXMFMAIN)
+set TEXMFDIST=$(TEXMFDIST)
+set VARTEXMF=$(VARTEXMF)
+xcopy /d ..\contrib\$(objdir)\fmtutil.exe $(bindir)\fmtutil.exe
+$(bindir)\fmtutil --cnffile="$(texmf)\web2c\fmtutil.cnf" --all --dolinks --force
+<<NOKEEP
+ -@.\install-dumps.bat
+
+# Installation directories.
+$(bindir)::
+ @if not exist $(bindir) $(mkdir) $(bindir)
+$(texpooldir)::
+ @if not exist $(texpooldir) $(mkdir) $(texpooldir)
+$(mfpooldir)::
+ @if not exist $(mfpooldir) $(mkdir) $(mfpooldir)
+$(mppooldir)::
+ @if not exist $(mppooldir) $(mkdir) $(mppooldir)
+$(fmtdir)::
+ @if not exist $(fmtdir) $(mkdir) $(fmtdir)
+$(basedir)::
+ @if not exist $(basedir) $(mkdir) $(basedir)
+$(memdir)::
+ @if not exist $(memdir) $(mkdir) $(memdir)
+$(web2cdir)::
+ @if not exist $(web2cdir) $(mkdir) $(web2cdir)
+
+# The actual binary executables and pool files.
+install-programs: $(programs)
+ pushd mpware & $(make) install-exec & popd
+ -@echo $(verbose) & ( \
+ for %%p in ($(programs)) do $(copy) %%p $(bindir) \
+ ) $(redir_stdout)
+
+# The links to {mf,mp,tex} for each format and for {ini,vir}{mf,mp,tex},
+# plus the equivalents for e-TeX, Omega, and pdf[ex]TeX.
+install-links: install-programs install-dumps
+#FMU -@echo $(verbose) & ( \
+#FMU pushd $(bindir) & \
+#FMU $(del) .\initex.exe .\virtex.exe & \
+#FMU $(lnexe) .\tex.exe $(bindir)\initex.exe & \
+#FMU $(lnexe) .\tex.exe $(bindir)\virtex.exe & \
+#FMU popd \
+#FMU ) $(redir_stdout)
+#FMU -@echo $(verbose) & ( \
+#FMU pushd $(bindir) & \
+#FMU $(del) .\inimf.exe .\virmf.exe & \
+#FMU $(lnexe) .\mf.exe $(bindir)\inimf.exe & \
+#FMU $(lnexe) .\mf.exe $(bindir)\virmf.exe & \
+#FMU # $(lnexe) .\mf.exe $(bindir)\mfw.exe & \
+#FMU popd \
+#FMU ) $(redir_stdout)
+#FMU -@echo $(verbose) & ( \
+#FMU pushd $(bindir) & \
+#FMU $(del) .\inimpost.exe .\virmpost.exe & \
+#FMU $(lnexe) .\mpost.exe $(bindir)\inimpost.exe & \
+#FMU $(lnexe) .\mpost.exe $(bindir)\virmpost.exe & \
+#FMU popd \
+#FMU ) $(redir_stdout)
+# -@echo $(verbose) & ( \
+# if NOT "$(fmts)"=="" \
+# for %%i in ($(fmts)) do \
+# pushd $(bindir) & \
+# $(del) .\%%~ni.exe & \
+# $(lnexe) .\tex.exe $(bindir)\%%~ni.exe & \
+# popd \
+# ) $(redir_stdout)
+# -@echo $(verbose) & ( \
+# if not "$(bases)"=="" \
+# for %%i in ($(bases)) do \
+# pushd $(bindir) & \
+# $(del) .\%%~ni.exe & \
+# $(lnexe) .\mf.exe $(bindir)\%%~ni.exe & \
+# popd \
+# ) $(redir_stdout)
+# -@echo $(verbose) & ( \
+# if not "$(mems)"=="" \
+# for %%i in ($(mems)) do \
+# pushd $(bindir) & \
+# $(del) .\%%~ni.exe & \
+# $(lnexe) .\mpost.exe $(bindir)\%%~ni.exe & \
+# popd \
+# ) $(redir_stdout)
+
+# Always do plain.*, so examples from the TeXbook (etc.) will work.
+# install-fmts: $(all_fmts)
+# -@echo $(verbose) & ( \
+# for %%f in ($(all_fmts)) do $(copy) %%f $(fmtdir)\%%f \
+# ) $(redir_stdout)
+# -@$(del) -f $(fmtdir)\plain.fmt & $(LN) tex.fmt $(fmtdir)\plain.fmt $(redir_stderr)
+#
+# install-bases: $(all_bases)
+# -@echo $(verbose) & ( \
+# for %%f in ($(all_bases)) do $(copy) %%f $(basedir)\%%f \
+# ) $(redir_stdout)
+# -@$(del) -f $(basedir)\plain.base & $(LN) mf.base $(basedir)\plain.base $(redir_stderr)
+#
+# install-mems: $(all_mems)
+# -@echo $(verbose) & ( \
+# for %%f in ($(all_mems)) do $(copy) %%f $(memdir)\%%f \
+# ) $(redir_stdout)
+# -@$(del) -f $(memdir)\plain.mem & $(LN) mpost.mem $(memdir)\plain.mem $(redir_stderr)
+
+# Auxiliary files.
+install-data:: $(texpooldir) $(mfpooldir) $(mppooldir)
+ @$(copy) tex.pool $(texpooldir)\tex.pool $(redir_stdout)
+ @$(copy) mf.pool $(mfpooldir)\mf.pool $(redir_stdout)
+ @$(copy) mp.pool $(mppooldir)\mp.pool $(redir_stdout)
+ cd doc & $(make) $(install_makeargs) install-data
+ cd man & $(make) $(install_makeargs) install-data
+ @$(copy) $(srcdir)\tiedir\tie.1 $(man1dir)\tie.$(manext) $(redir_stdout)
+ @$(copy) $(srcdir)\cwebdir\cweb.1 $(man1dir)\cweb.$(manext) $(redir_stdout)
+# @$(copy) fmtutil.cnf $(web2cdir)\fmtutil.cnf $(redir_stdout)
+
+install-doc::
+ -@echo $(verbose) & ( \
+ for %d in (doc man) do \
+ echo Entering %d for install & \
+ pushd %d & $(make) install & popd \
+ )
+
+# The distribution comes with up-to-date .info* files,
+# so this should never be used unless something goes wrong
+# with the unpacking, or you modify the manual.
+doc\web2c.info:
+ cd doc & $(make) info
+info dvi:
+ cd doc & $(make) $@
+
+# Manual pages
+manpages:
+ cd man & $(make) all
+
+# !include <msvc/dist.mak>
+
+!include <msvc/config.mak>
+
+#
+
+installcheck:
+ pushd $(srcdir)\tests & bibtex allbib & popd
+ mf "\mode:=ljfour; input logo10" & tftopl logo10.tfm >nul
+ tex "\nonstopmode \tracingstats=1 \input story \bye"
+#
+# Cleaning.
+all_subdirs = doc lib man mpware web2c window $(omegafonts) $(otps) pdftexdir # pdfetexdir pdfxtexdir
+
+# Having a multiple-target rule with the subdir loop fails because of
+# the dependencies introduced by clean.mk. Yet, we want the
+# dependencies here at the top level so that distclean will run the
+# clean rules, etc. So, sigh, put the subdir loop in each target and
+# only run it if we have a Makefile. Alternatively, we could do as
+# Automake does.
+
+mostlyclean:: tangleboot-clean ctangleboot-clean
+ -@echo $(verbose) & ( \
+ for %d in ($(all_subdirs)) do \
+ echo Entering %d for $@ & \
+ pushd %d & $(make) $@ & popd \
+ )
+clean::
+ -@echo $(verbose) & ( \
+ for %d in ($(all_subdirs)) do \
+ echo Entering %d for $@ & \
+ pushd %d & $(make) $@ & popd \
+ )
+ -@echo $(verbose) & ( \
+ for %%i in (*.log *.fmt *.efmt *.oft *.eoft *.base *.mem *.fls *.ofl *.aux \
+ mf-w32.ch mp-w32.ch tex-w32.ch) do $(del) %%i $(redir_stderr) \
+ )
+distclean::
+ -@echo $(verbose) & ( \
+ for %d in ($(all_subdirs)) do \
+ echo Entering %d for $@ & \
+ pushd %d & $(make) $@ & popd \
+ )
+ -@$(del) fmtutil.cnf $(redir_stderr)
+extraclean::
+ -@echo $(verbose) & ( \
+ for %d in ($(all_subdirs)) do \
+ echo Entering %d for $@ & \
+ pushd %d & $(make) $@ & popd \
+ )
+maintainer-clean::
+ -@echo $(verbose) & ( \
+ for %d in ($(all_subdirs)) do \
+ echo Entering %d for $@ & \
+ pushd %d & $(make) $@ & popd \
+ )
+
+!include <msvc/clean.mak>
+
+depend::
+ -@echo $(verbose) & ( \
+ for %%d in (lib mpware web2c window $(otps)) do \
+ pushd %%d & $(make) depend & popd \
+ )
+
+!include <msvc/rdepend.mak>
+!include "./depend.mak"
+
+#
+# Local variables:
+# page-delimiter: "^# \f"
+# mode: Makefile
+# End: