#
# Makefile for web2c W32TeX
#
version = 2020

fmts =
efmts =
pdffmts =
pdfefmts =
ofmts =
bases =
mems =

localmodes = modes

prefix = c:/usr/local
exec_prefix = ${prefix}

bindir = ${exec_prefix}/bin/

scriptdir = $(bindir)

libdir = ${exec_prefix}/lib

datadir = ${prefix}/share

includedir = ${prefix}/include

infodir = ${prefix}/info

manext = 1
mandir = ${prefix}/man/man$(manext)

texmf = c:/usr/local/share/texmf

vartexfonts = c:/var/tex/fonts

texinputdir = $(texmf)/tex
mfinputdir = $(texmf)/metafont
mpinputdir = $(texmf)/metapost
mftinputdir = $(texmf)/mft

web2cdir = $(texmf)/web2c

fontdir = $(texmf)/fonts

fmtdir = $(web2cdir)
basedir = $(fmtdir)
memdir = $(fmtdir)

texpooldir = $(web2cdir)
mfpooldir = $(texpooldir)
mppooldir = $(texpooldir)

fontnamedir = $(texmf)/fonts/map/fontname

dvipsdir = $(texmf)/dvips

psheaderdir = $(dvipsdir)

default_texsizes = 300:600

DIFF = diff
DIFFFLAGS =

.SUFFIXES:

SHELL = sh
MAKE = make
top_srcdir = .
srcdir = .

CC = cl

WD = setargv.obj

# -----------------------------------------------------------------------
#
# Release
#
CFLAGS = -nologo -favor:blend -MD -O2 -W2 -DWIN32=1 \
-Dsnprintf=_snprintf -I. -I.. -I../.. \
-I../../.. -Isynctexdir -Ilibmd5 $(XCFLAGS)
LKDEBUG =
#
# Debugging
#
#CFLAGS = -nologo -favor:blend -MD -Od -Zi -DWIN32=1 -I. -I.. -I../.. \
#-I../../.. -Isynctexdir -Ilibmd5 $(XCFLAGS)
#LKDEBUG = /DEBUG
# -----------------------------------------------------------------------

#
# luatex snapshot version
#
# EXTRA_VERSION=`date +-%Y%m%d%H`
#
#
#
XCPPFLAGS = -I$(LIBPNGDIR) -I$(LIBLUA51DIR) -Ilualibs
CPPFLAGS =  $(XCPPFLAGS) -I../../libs/zlib

YDEFS = -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE \
-D_CRT_OBSOLETE_NO_DEPRECATE -D_SECURE_SCL=0 -DNO_MF_ASM=1 \
-D_CRT_SECURE_NO_WARNINGS=1 -wd4267

DEFS = -DHAVE_CONFIG_H $(XDEFS) $(YDEFS)

# Kpathsea needs this for compiling, programs need it for linking.
LIBTOOL =

# You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but
# please don't change ALL_CPPFLAGS or ALL_CFLAGS.
# prog_cflags is set by subdirectories of web2c.
ALL_CPPFLAGS = $(DEFS) -I. -I$(srcdir) \
  -I$(kpathsea_parent) -I$(kpathsea_srcdir_parent) \
  $(prog_cflags) $(CPPFLAGS)
ALL_CFLAGS = $(ALL_CPPFLAGS) $(CFLAGS) -c
compile = $(CC) $(ALL_CFLAGS)

.SUFFIXES:
.SUFFIXES: .c .obj # in case the suffix list has been cleared, e.g., by web2c
.c.obj:
	$(compile) $<

# Installation.
INSTALL = cp
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = $(INSTALL_PROGRAM)
INSTALL_DATA = ${INSTALL}
INSTALL_LIBTOOL_LIBS =
INSTALL_LIBTOOL_PROG =

# Creating copyings.
LN = cp

# We use these for many things.
kpathsea_parent = ..
kpathsea_dir = $(kpathsea_parent)/kpathsea
kpathsea_srcdir_parent = $(top_srcdir)/..
kpathsea_srcdir = $(kpathsea_srcdir_parent)/kpathsea
kpathsea = $(kpathsea_dir)/kpathsealibw64.lib

XLDFLAGS = -link /SUBSYSTEM:CONSOLE /OPT:NOREF /STACK:0x300000
LDFLAGS =  $(XLDFLAGS)

LIBS = advapi32.lib gdi32.lib user32.lib wsock32.lib
XLOADLIBES =
#
#
#
LOADLIBES = $(proglib) $(kpathsea) $(LIBS) $(XLOADLIBES)

CCLD = $(CC)
link_command = $(CCLD) -Fe$@

kpathsea_link = $(link_command)

CXX = cl
CXXLD = $(CXX)
cxx_link_command = $(CXXLD) -Fe$@
kpathsea_cxx_link = $(cxx_link_command)

x_cppflags = 
x_ldflags = 
x_pre_libs = 
x_extra_libs = 
x_tool_libs = 
x_ext_lib = 
wlibs =

windowlink = $(windowlib) $(x_ldflags) $(x_tool_libs) $(x_pre_libs) \
$(x_ext_lib) $(wlibs) $(x_extra_libs)

socketlibs = 

common_makeargs = $(MFLAGS) CC='$(CC)' CFLAGS='$(CFLAGS)' $(XMAKEARGS)
window_makeargs = x_cppflags='$(x_cppflags)' $(common_makeargs)
install_makeargs = INSTALL='$(INSTALL)' INSTALL_DATA='$(INSTALL_DATA)' \
  INSTALL_PROGRAM='$(INSTALL_PROGRAM)' \
  $(makevars) $(common_makeargs)  

#
# libraries
#
proglib = lib/lib.lib
windowlib = window/window.lib
ZLIBDIR=../../libs/zlib
ZLIBCPPFLAGS=-I$(ZLIBDIR)
ZLIBSRCDIR=$(srcdir)/$(ZLIBDIR)
LIBPNGDIR=../../libs/libpng
LIBPNGSRCDIR=$(srcdir)/$(LIBPNGDIR)
LIBXPDFDIR=../../libs/xpdf
LIBXPDFSRCDIR=$(srcdir)/$(LIBXPDFDIR)
pdflib = pdftexdir/libpdf.lib
LIBPNGDEP = $(LIBPNGDIR)/libpng.lib
LDLIBPNG = $(LIBPNGDIR)/libpng.lib
ZLIBDEP = $(ZLIBDIR)/libz.lib
LDZLIB = $(ZLIBDIR)/libz.lib
LIBXPDFDEP = $(LIBXPDFDIR)/xpdf/libxpdf.lib $(LIBXPDFDIR)/goo/libGoo.lib \
             $(LIBXPDFDIR)/fofi/libfofi.lib
LDLIBXPDF = $(LIBXPDFDIR)/xpdf/libxpdf.lib $(LIBXPDFDIR)/goo/libGoo.lib \
             $(LIBXPDFDIR)/fofi/libfofi.lib
LIBLUA51DIR = lualibs/lua51

pdftexlibs = $(pdflib) $(LDLIBPNG) $(LDZLIB) $(LDLIBXPDF)
pdftexlibsdep = $(pdflib) $(LIBPNGDEP) $(ZLIBDEP) $(LIBXPDFDEP) $(MAKECPOOL)

#
# The sh script that does the conversion:
#
native = .
web2c = srcdir=$(srcdir) $(SHELL) $(srcdir)/web2c/convert
#
# Additional dependencies:
#
MAKECPOOL = web2c/makecpool.exe

web2c_aux = web2c/convert web2c/common.defines
web2c_programs = web2c/fixwrites.exe web2c/splitup.exe web2c/web2c.exe \
                 $(MAKECPOOL)

# 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
.p.c: # really depends on $(web2c_programs), and generates .h.
	$(web2c) $*

mf_c = mfini.c mf0.c

mf_o = mfini.obj mf0.obj mf-pool.obj mfextra.obj
mf_nowin_o = mfini.obj mf0.obj mf-pool.obj mfnowin.obj

tex_c = texini.c tex0.c
tex_o = texini.obj tex0.obj tex-pool.obj texextra.obj
dlltex_o = texini.obj tex0.obj tex-pool.obj texextra.obj

#
# mpost 0.641
#
mp_c = mpini.c mp0.c
mp_o = mpini.obj mp0.obj mpost-pool.obj mp641extra.obj
#
#
#

other_c = bibtex.c dvicopy.c dvitype.c gftodvi.c gftopk.c gftype.c \
  mft.c patgen.c pktogf.c pktype.c pltotf.c pooltype.c tangle.c tftopl.c \
  vftovp.c vptovf.c weave.c
all_c = $(other_c) $(mf_c) $(mp_c) $(tex_c) $(etex_c) $(omega_c) \
  $(omegaware_c)

# Prevent Make from deleting the intermediate forms.
.PRECIOUS: %.ch %.p %.c

tex = tex.exe
etex = etex.exe
ttf2afm = ttf2afm.exe
pdftex = pdftex.dll
omega = omega.exe
odvicopy = odvicopy.exe
odvitype = odvitype.exe
ofm2opl = wofm2opl.exe
opl2ofm = wopl2ofm.exe
ovf2ovp = wovf2ovp.exe
ovp2ovf = wovp2ovf.exe
otangle = otangle.exe
mfw = mf.exe
mfn = mf-nowin.exe
#
#ctwill.obj cweb.obj
#ctwill-refsort.obj
#ctwill-twinx.obj
#
programs = tie.exe ctangle.exe cweave.exe \
ctwill.exe ctwill-refsort.exe ctwill-twinx.exe \
bibtex.exe dvicopy.exe \
 dvitype.exe gftodvi.exe gftopk.exe \
 gftype.exe $(mfn) $(mfw) mft.exe $(odvicopy) $(odvitype) \
 $(otangle) patgen.exe pktogf.exe pktype.exe pooltype.exe tangle.exe \
 vftovp.exe vptovf.exe weave.exe twill.exe pltotf.exe tftopl.exe \
 tex.dll etex.dll $(ofm2opl) $(opl2ofm) $(ovf2ovp) \
 $(ovp2ovf) aleph.dll \
 pdftex.dll pdftosrc.exe ttf2afm.exe mp641.exe \
 hitex.exe histretch.exe hishrink.exe

#
# do not make omega.dll (2010/12/30)
#

mpostdir = mp641
otps_programs = otps/otp2ocp.exe otps/outocp.exe

default all: $(programs) $(otps_programs)

# Makefile fragments:


# Makefile fragment for HiTeX
hitex_LDADD = ../kpathsea/kpathsealibw64.lib $(ZLIBDIR)/libz.lib
hitex_OBJADD = hitex-md5.obj
histretch_LDADD = $(ZLIBDIR)/libz.lib
hishrink_LDADD = $(ZLIBDIR)/libz.lib
AM_YFLAGS = -d -v -Wno-yacc
# HiTeX CWEB sources
hitex_web = hitexdir/hiformat.w hitexdir/hitex.w
CTANGLE=./ctangle.exe
#
# HiTeX C/yacc/lex sources generated using ctangle.
# For each cweb (.w) source file, list the files generated.
hiformat_c_h_l_y = hibasetypes.h hierror.h hiformat.h \
        himktables.c \
	hiput.c hiput.h \
	higet.c higet.h \
	hilexer.l hiparser.y \
	hishrink.c histretch.c
#
hitex_c = hitex.c
#

hitex_SOURCES = hitables.c hiput.c hitex.c
histretch_SOURCES = hitables.c histretch.c
hishrink_SOURCES = hitables.c hilexer.c hiparser.c hishrink.c

hitex_OBJS = hitables.obj hiput.obj hitex.obj $(hitex_OBJADD)
histretch_OBJS = hitables.obj histretch.obj
hishrink_OBJS = hitables.obj hilexer.obj hiparser.obj hishrink.obj

# shrink needs the yacc header. It's actually the .o that should be the
# target here, seems to me, but hishrink.o is not used for the object
# name, it's hishrink-hishrink.o (because the program is also named
# hishrink), and adding that here ends up trying to link with
# hishrink-hishrink.o (I don't know), which doesn't exist. Sigh.
#hishrink.c: shrink-parser.h shrink-parser.c

hitex.exe: $(hitex_OBJS) 
	$(CC) -Fe$@ $(hitex_OBJS) $(hitex_LDADD) 
histretch.exe: $(histretch_OBJS)
	$(CC) -Fe$@ $(histretch_OBJS) $(histretch_LDADD)
hishrink.exe: $(hishrink_OBJS)
	$(CC) -Fe$@ $(hishrink_OBJS) $(hishrink_LDADD)

# Generating hitables.c
hitables.c: ./hitexdir/hitables.c
	cp -p $< $@

#himktables.exe: himktables.obj
#	$(CC) -Fe$@ $<

#himktables.obj: hiformat-tangle hitex-tangle
#	$(compile) himktables.c

hiformat-tangle: ./ctangle.exe hitexdir/hiformat.w
	CWEBINPUTS=./hitexdir  $(CTANGLE) hiformat
	cp ./hitexdir/hilexer.c ./hitexdir/hiparser.c ./hitexdir/hiparser.h .
	date >hiformat-tangle

hitex-tangle: ./ctangle.exe hitexdir/hitex.w
	CWEBINPUTS=./hitexdir  $(CTANGLE) hitex
	date >hitex-tangle

$(hitex_OBJS): $(hitex_SOURCES) hiformat-tangle hitex-tangle
$(histretch_OBJS): $(histretch_SOURCES) hiformat-tangle hitex-tangle
$(hishrink_OBJS): $(hishrink_SOURCES) hiformat-tangle hitex-tangle

hitex_CPPFLAGS = -DINIT -DSTAT -DWEB2CVERSION='"2025"' \
-wd4005 -Dboolean=__boolean

hitex.obj: hitex.c
	$(CC) $(ALL_CPPFLAGS) $(CFLAGS) $(hitex_CPPFLAGS) -c $<

$(hitex_OBJADD): libmd5/md5.c
	$(CC) $(ALL_CPPFLAGS) $(CFLAGS) -Fo$@ -c $<

# end of HiTeX fragment

# Makefile fragment for e-TeX and web2c. --infovore@xs4all.nl. Public domain.
# This fragment contains the parts of the makefile that are most likely to
# differ between releases of e-TeX.

# The C sources.
etex_c = etexini.c etex0.c
etex_o = etexini.obj etex0.obj etexextra.obj \
         synctex-e.obj etex-pool.obj
dlletex_o = etexini.obj etex0.obj etexextra.obj \
         synctex-e.obj etex-pool.obj
#
# synctex
#
synctex_dir = $(srcdir)/synctexdir
synctex_common_texd = \
		echo "Enabling SyncTeX Support."

#
# Generation of the web and ch file.
#   Sources for etex.web:
#
etex_ch_synctex = \
	$(synctex_dir)/synctex-def.ch0 \
	$(synctex_dir)/synctex-mem.ch0 \
	$(synctex_dir)/synctex-e-mem.ch0 \
	$(synctex_dir)/synctex-e-mem.ch1 \
	$(synctex_dir)/synctex-rec.ch0 \
	$(synctex_dir)/synctex-rec.ch1 \
	$(synctex_dir)/synctex-e-rec.ch0
synctex-etex_ch_srcs_off =

synctex-etex_o = synctex-e.obj
synctex-e.h: $(synctex_dir)/synctex.h
	cat $(synctex_dir)/synctex.h >$@
synctex-etex.h: $(synctex_dir)/synctex-etex.h
	cat $(synctex_dir)/synctex-etex.h >$@
$(synctex-etex_o): synctex-e.c
	$(compile) -DSYNCTEX_ENGINE_H='<synctex-etex.h>' $<
synctex-e.c: etexd.h $(synctex_dir)/synctex.c synctex-etex.h
	cp $(synctex_dir)/synctex.c $@

etexd.h-with_synctex = if test -z "`grep __SyncTeX__ etexd.h`";\
	then\
		$(synctex_common_texd);\
		sed -f synctex_sed_command.sed etexd.h > synctex_etexd.h;\
		mv synctex_etexd.h etexd.h;\
		if test -z "`grep __SyncTeX__ etexd.h`";\
		then\
			echo "warning: SyncTeX activation FAILED";\
			exit 1;\
		fi;\
		echo "SyncTeX is enabled";\
	fi
etexd.h-without_synctex = echo "warning: SyncTeX is NOT enabled"

etex_web_srcs = $(srcdir)/tex.web \
  $(srcdir)/etexdir/etex.ch

#
#   Sources for etex.ch:
#
etex_ch_srcs = etex.web \
  etexdir/tex.ch0 \
  tex.ch \
  zlib-fmt.ch \
  enctexdir/enctex1.ch \
  enctexdir/enctex-tex.ch \
  enctexdir/enctex2.ch \
  $(etex_ch_synctex) \
  etexdir/tex.ch1 \
  etexdir/tex.ech \
  tex-binpool.ch

etex.web: tie.exe $(etex_web_srcs)
	./tie -m etex.web $(etex_web_srcs)
etex.ch: tie.exe $(etex_ch_srcs)
	./tie -c etex.ch $(etex_ch_srcs)
#
# Extract etex version

etexextra.c: etexdir/etexextra.c
	cp etexdir/etexextra.c $@
etex-pool.c: etex.pool etexd.h $(MAKECPOOL)
	$(MAKECPOOL) etex >etex-pool.c

tex-pool.c: tex.pool texd.h $(MAKECPOOL)
	$(MAKECPOOL) tex >tex-pool.c
mf-pool.c: mf.pool mfd.h $(MAKECPOOL)
	$(MAKECPOOL) mf >mf-pool.c
mf-pool.obj: mf-pool.c
	$(CC) $(CFLAGS) -DMETA_FONT -c -Fo$@ mf-pool.c

# Tests...
etestdir = $(srcdir)/etexdir/etrip
etestenv = TEXMFCNF=$(etestdir)

etrip: pltotf tftopl etex dvitype
	@echo ">>> 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
	rm -f trip.tex; $(LN) $(testdir)/trip.tex . # get same filename in log
	-$(SHELL) -c '$(etestenv) ./etex --progname=einitex <$(testdir)/trip1.in >ctripin.fot'
	mv trip.log ctripin.log
	-diff $(testdir)/tripin.log ctripin.log
	-$(SHELL) -c '$(etestenv) ./etex <$(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) ./etex --progname=einitex <$(etestdir)/etrip1.in >xtripin.fot'
	mv trip.log xtripin.log
	-diff ctripin.log xtripin.log
	-$(SHELL) -c '$(etestenv) ./etex <$(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
	rm -f etrip.tex; $(LN) $(etestdir)/etrip.tex . # get same filename in log
	-$(SHELL) -c '$(etestenv) ./etex --progname=einitex <$(etestdir)/etrip2.in >etripin.fot'
	mv etrip.log etripin.log
	-diff $(etestdir)/etripin.log etripin.log
	-$(SHELL) -c '$(etestenv) ./etex <$(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

etex-check: etrip etex.fmt
# Test truncation (but don't bother showing the warning msg).
	./etex --output-comment="`cat $(srcdir)/PROJECTS`" \
	  $(srcdir)/tests/hello 2>nul \
	  && ./dvitype hello.dvi | grep olaf@infovore.xs4all.nl >nul
# \openout should show up in \write's.
	./etex $(srcdir)/tests/openout && grep xfoo openout.log
# one.two.tex -> one.two.log
	./etex $(srcdir)/tests/one.two && ls -l one.two.log
# uno.dos -> uno.log
	./etex $(srcdir)/tests/uno.dos && ls -l uno.log
	./etex $(srcdir)/tests/just.texi && ls -l just.log
	-./etex $(srcdir)/tests/batch.tex
	./etex --shell $(srcdir)/tests/write18 | grep echo
# tcx files are a bad idea.
#	./etex --translate-file=$(srcdir)/share/isol1-t1.tcx \
#	  $(srcdir)/tests/eight && ./dvitype eight.dvi >eigh.typ
	./etex --mltex --progname=einitex $(srcdir)/tests/mltextst
	-./etex <nul
	-PATH=`pwd`:$(kpathsea_dir):$(kpathsea_srcdir):$$PATH \
	  WEB2C=$(kpathsea_srcdir) TMPDIR=.. \
	  ./etex '\nonstopmode\font\foo=nonesuch\end'

# end of etex.mk


# Makefile fragment for Aleph and web2c. --infovore@xs4all.nl. Public domain.
# This fragment contains the parts of the makefile that are most likely to
# differ between releases of Aleph.

alephdir = alephdir
calephdir = alephdir

# Aleph itself.

# We build aleph
aleph = aleph

# The C sources.
aleph_c = alephini.c aleph0.c

aleph_o = alephini.obj aleph0.obj \
	      alephextra.obj alephfirst.obj alephbis.obj \
              aleph-pool.obj

alephdll_o = alephini.obj aleph0.obj \
	      alephextra.obj alephfirst.obj alephbis.obj \
              aleph-pool.obj

# Linking
aleph.exe: $(aleph_o)
	$(kpathsea_link) $(aleph_o) $(socketlibs) $(WD) $(LOADLIBES) $(LDFLAGS)
aleph.dll: $(alephdll_o)
	cl -LD -Fe$@ $(alephdll_o) $(socketlibs) $(LOADLIBES) $(LDFLAGS)

# The C files
$(aleph_c) alephcoerce.h alephd.h: aleph.p $(web2c_texmf)
	$(web2c) aleph
alephextra.c: alephdir/alephextra.c
	cp alephdir/alephextra.c $@

# Additional C files, just copy them.
alephfirst.c: $(calephdir)/alephfirst.c
	rm -f $@
	cp $(srcdir)/$(calephdir)/alephfirst.c $@
alephbis.c: $(calephdir)/alephbis.c 
	rm -f $@
	cp $(srcdir)/$(calephdir)/alephbis.c $@
alephmem.h: $(calephdir)/alephmem.h
	rm -f $@
	cp $(srcdir)/$(calephdir)/alephmem.h $@

# The Pascal file
aleph.p aleph.pool: otangle.exe aleph.web aleph.ch
	./otangle aleph.web aleph.ch

# Generation of the web and ch files.
#   Sources for aleph.web:
aleph_web_srcs = \
	tex.web \
	alephdir/om16bit.ch \
	alephdir/omstr.ch \
	alephdir/omfont.ch \
	alephdir/omchar.ch \
	alephdir/omfi.ch \
	alephdir/ompar.ch \
	alephdir/omocp.ch \
	alephdir/omfilter.ch \
	alephdir/omtrans.ch \
	alephdir/omdir.ch \
	alephdir/eobase.ch \
	alephdir/eofmt.ch \
	alephdir/eomem.ch \
	alephdir/eo16bit.ch \
	alephdir/eoext.ch \
	alephdir/eoeqtb.ch \
	alephdir/eofix.ch \
	alephdir/eocprt.ch \
	alephdir/eonewdir.ch \
	alephdir/eover.ch \
	alephdir/eopage.ch \
	alephdir/eochar.ch \
	alephdir/latespecial.ch

#   Sources for aleph.ch:
aleph_ch_srcs = \
	alephdir/com16bit.ch \
	alephdir/comstr.ch \
	alephdir/comfont.ch \
	alephdir/comchar.ch \
	alephdir/comfi.ch \
	alephdir/compar.ch \
	alephdir/comocp.ch \
	alephdir/comfilter.ch \
	alephdir/comtrans.ch \
	alephdir/comdir.ch \
	alephdir/comsrcspec.ch \
	alephdir/ceostuff.ch

#   Rules:
aleph.web: tie.exe $(aleph_web_srcs)
	./tie -m aleph.web $(aleph_web_srcs)
aleph.ch: tie.exe aleph.web $(aleph_ch_srcs)
	./tie -c aleph.ch aleph.web $(aleph_ch_srcs)

aleph-pool.c: aleph.pool alephd.h $(MAKECPOOL)
	$(MAKECPOOL) aleph >aleph-pool.c

# end of aleph.mk


# Makefile fragment for Omega and web2c. --infovore@xs4all.nl. Public domain.
# This fragment contains the parts of the makefile that are most likely to
# differ between releases of Omega.

# The C sources.
omega_c = omegaini.c omega0.c
omegaware_c = odvicopy.c odvitype.c otangle.c
omega_o = omegaini.obj omega0.obj \
          omegaextra.obj omegafirst.obj omegabis.obj omega-pool.obj
dllomega_o = omegaini.obj omega0.obj \
          omegaextra.obj omegafirst.obj omegabis.obj omega-pool.obj

# Generation of the web and ch files.
odvicopy.web: omegaware/odvicopy.web
	rm -f $@
	$(LN) $(srcdir)/omegaware/odvicopy.web $@
odvicopy.ch: omegaware/odvicopy.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/odvicopy.ch $@
odvitype.web: omegaware/odvitype.web
	rm -f $@
	$(LN) $(srcdir)/omegaware/odvitype.web $@
odvitype.ch: omegaware/odvitype.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/odvitype.ch $@

#
# use 1.11 version
#
ofm2opl.web: ./tie.exe omegaware/ofm2opl.web omegaware/ofm2opl.up
	rm -f $@
	./tie -m ofm2opl.web omegaware/ofm2opl.web omegaware/ofm2opl.up
ofm2opl.ch: omegaware/ofm2opl.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/ofm2opl.ch $@
opl2ofm.web: ./tie.exe omegaware/opl2ofm.web omegaware/opl2ofm.up
	rm -f $@
	./tie -m opl2ofm.web omegaware/opl2ofm.web omegaware/opl2ofm.up
opl2ofm.ch: omegaware/opl2ofm.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/opl2ofm.ch $@
ovf2ovp.web: tie.exe omegaware/ovf2ovp.web omegaware/ovf2ovp.up
	rm -f $@
	./tie -m $@ omegaware/ovf2ovp.web omegaware/ovf2ovp.up
ovf2ovp.ch: omegaware/ovf2ovp.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/ovf2ovp.ch $@
ovp2ovf.web: tie.exe omegaware/ovp2ovf.web omegaware/ovp2ovf.up omegaware/ovp2ovf.ch2
	rm -f $@
	./tie -m $@ omegaware/ovp2ovf.web omegaware/ovp2ovf.up omegaware/ovp2ovf.ch2
ovp2ovf.ch: omegaware/ovp2ovf.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/ovp2ovf.ch $@

upovp2ovf.web: omegaware/upovp2ovf.web
	rm -f $@
	$(LN) $(srcdir)/omegaware/upovp2ovf.web $@
upovp2ovf.ch: omegaware/upovp2ovf.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/upovp2ovf.ch $@
upovf2ovp.web: omegaware/upovf2ovp.web
	rm -f $@
	$(LN) $(srcdir)/omegaware/upovf2ovp.web $@
upovf2ovp.ch: omegaware/upovf2ovp.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/upovf2ovp.ch $@

# Generation of the web and ch files.
#   Sources for omega.web:
omega_web_srcs = $(srcdir)/tex.web \
  $(srcdir)/omegadir/omnode.ch \
  $(srcdir)/omegadir/om16bit.ch \
  $(srcdir)/omegadir/omstr.ch \
  $(srcdir)/omegadir/omfont.ch \
  $(srcdir)/omegadir/omchar.ch \
  $(srcdir)/omegadir/omfi.ch \
  $(srcdir)/omegadir/ompar.ch \
  $(srcdir)/omegadir/omocp.ch \
  $(srcdir)/omegadir/omfilter.ch \
  $(srcdir)/omegadir/omtrans.ch \
  $(srcdir)/omegadir/omdir.ch \
  $(srcdir)/omegadir/omcprt.ch \
  $(srcdir)/omegadir/omxml.ch
#   Sources for omega.ch:
omega_ch_srcs = $(srcdir)/omega.web \
  $(srcdir)/omegadir/comnode.ch \
  $(srcdir)/omegadir/com16bit.ch \
  $(srcdir)/omegadir/comstr.ch \
  $(srcdir)/omegadir/comfont.ch \
  $(srcdir)/omegadir/comchar.ch \
  $(srcdir)/omegadir/comfi.ch \
  $(srcdir)/omegadir/compar.ch \
  $(srcdir)/omegadir/comocp.ch \
  $(srcdir)/omegadir/comfilter.ch \
  $(srcdir)/omegadir/comtrans.ch \
  $(srcdir)/omegadir/comdir.ch \
  $(srcdir)/omegadir/comxml.ch \
  $(srcdir)/omegadir/comsrcspec.ch
#   Rules:
omega.web: tie.exe $(omega_web_srcs)
	./tie -m omega.web $(omega_web_srcs)
omega.ch: tie.exe $(omega_ch_srcs)
	./tie -c omega.ch $(omega_ch_srcs)

omega-pool.c: omega.pool omegad.h $(MAKECPOOL)
	$(MAKECPOOL) omega >omega-pool.c

otangle.web: omegaware/otangle.web
	rm -f $@
	$(LN) $(srcdir)/omegaware/otangle.web $@
otangle.ch: omegaware/otangle.ch
	rm -f $@
	$(LN) $(srcdir)/omegaware/otangle.ch $@

# Bootstrapping otangle requires making it with itself.
otangle.exe: otangle.obj
	$(kpathsea_link) otangle.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)

otangle.p: tangle.exe otangle.web otangle.ch
	$(shared_env) ./tangle otangle.web otangle.ch

# Two additional files
omegafirst.c: omegadir/omegafirst.c 
	rm -f $@
	$(LN) $(srcdir)/omegadir/omegafirst.c $@
omegabis.c: omegadir/omegabis.c 
	rm -f $@
	$(LN) $(srcdir)/omegadir/omegabis.c $@
omegamem.h: omegadir/omegamem.h
	rm -f $@
	$(LN) $(srcdir)/omegadir/omegamem.h $@

omegaextra.c: omegadir/omegaextra.c
	cp omegadir/omegaextra.c $@

# Some additional programs for Omega: the programs themselves are named
# in the variable otps_programs, defined above.
otps/otp2ocp.exe:
	cd otps && $(MAKE) $(common_makeargs) otp2ocp.exe
otps/outocp.exe:
	cd otps && $(MAKE) $(common_makeargs) outocp.exe

omegafonts/omfonts.exe:
	cd omegafonts && $(MAKE) $(common_makeargs) omfonts.exe

install-omega: install-omega-exec install-omega-data
install-omega-exec:: install-omega-links
install-omega-data:: install-omega-dumps

# The actual binary executables and pool files.
install-omega-programs: omega.exe
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir)
	for p in omega; do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done
	cd otps && $(MAKE) $(install_makeargs) install-programs

# The links to {mf,mp,tex} for each format and for {ini,vir}{mf,mp,tex},
# plus the equivalents for e-TeX, Omega and pdftex.
install-omega-links: install-omega-programs
	cd $(bindir) && (rm -f iniomega.exe viromega.exe; \
	  $(LN) omega.exe iniomega.exe; $(LN) omega.exe viromega.exe)
# The ugly "" avoids a syntax error in case the lists are empty.
	  for f in ""$(ofmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) omega.exe $$base)); done

# Always do plain.*, so examples from the TeXbook (etc.) will work.
install-omega-dumps: install-omega-fmts
install-omega-fmts: lambda.fmt omega.fmt
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(fmtdir)
	  for f in lambda.fmt omega.fmt; \
          do $(INSTALL_DATA) $$f $(fmtdir)/$$f; done

# Auxiliary files.
install-omega-data::
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(texpooldir) $(mfpooldir) $(mppooldir) $(web2cdir) $(fontnamedir)
	$(INSTALL_DATA) omega.pool $(texpooldir)/omega.pool
	$(INSTALL_DATA) $(srcdir)/tiedir/tie.1 $(mandir)/tie.$(manext)

# end of omega.mk

# ttf2afm
ttf2afm.exe: ttf2afm.obj
	$(kpathsea_link) ttf2afm.obj $(WD) $(kpathsea) $(LDFLAGS) $(LKDEBUG)
ttf2afm.obj: ttf2afm.c macnames.c
	$(compile) $<
ttf2afm.c: $(srcdir)/pdftexdir/ttf2afm.c
	rm -f ttf2afm.c
	$(LN) $(srcdir)/pdftexdir/ttf2afm.c ttf2afm.c
macnames.c: $(srcdir)/pdftexdir/macnames.c
	rm -f macnames.c
	$(LN) $(srcdir)/pdftexdir/macnames.c macnames.c

# pdftosrc
pdftosrc.exe: pdftexd.h pdftexdir/pdftosrc.obj pdftexdir/libpdf.lib
	$(kpathsea_link) pdftexdir/pdftosrc.obj $(WD) pdftexdir/libpdf.lib \
           $(LDLIBXPDF) $(ZLIBDEP) \
           $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
pdftexdir/pdftosrc.obj:$(srcdir)/pdftexdir/pdftosrc.cc
	cd pdftexdir && make pdftosrc.obj

# Makefile fragment for pdftex and web2c. --infovore@xs4all.nl. Public domain.
# This fragment contains the parts of the makefile that are most likely to
# differ between releases of pdftex.

#Makefile: $(srcdir)/pdftexdir/pdftex.mk
pdftexdir = pdftexdir
##
##
## The C sources.
pdftex_c = pdftexini.c pdftex0.c
pdftex_o = pdftexini.obj pdftex0.obj \
            pdftexextra.obj pdftex-pool.obj \
            synctex-pdf.obj
dllpdftex_o = pdftexini.obj pdftex0.obj \
            pdftexextra.obj pdftex-pool.obj \
            synctex-pdf.obj
pdftexextra_o=

#   Sources for pdftex-final.ch:
pdftex_ch_srcs = \
  $(pdftexdir)/pdftex.web \
  $(pdftexdir)/tex.ch0 \
  tex.ch \
  tracingstacklevels.ch \
  partoken-102.ch \
  partoken.ch \
  locnull-optimize.ch \
  showstream.ch \
  zlib-fmt.ch \
  enctexdir/enctex1.ch \
  enctexdir/enctex-pdftex.ch \
  enctexdir/enctex2.ch \
  unbalanced-braces.ch \
  $(pdftex_ch_synctex) \
  $(pdftexdir)/pdftex.ch \
  $(pdftexdir)/char-warning-pdftex.ch \
  tex-binpool.ch


#   Rules:
pdftex-final.ch: tie.exe $(pdftex_ch_srcs)
	./tie -c pdftex-final.ch $(pdftex_ch_srcs)

pdftexextra.c: pdftexdir/pdftexextra.c
	cp pdftexdir/pdftexextra.c $@

# end of pdftex.mk

# Rules to link each program. I wish we could use a suffix rule for
# this, since it's so repetitive, but null suffixes don't work. And old
# makes don't support pattern rules. Doomed to forever cater to obsolesence.

bibtex.exe: bibtex.obj
	$(kpathsea_link) bibtex.obj $(WD) $(LOADLIBES) \
           $(LDFLAGS) $(LKDEBUG)

cweave.exe: cweave.obj cweb.obj
	$(kpathsea_link) cweave.obj cweb.obj $(WD) $(LOADLIBES) $(LDFLAGS) \
           $(LKDEBUG)
ctwill.exe: ctwill.obj cweb.obj
	$(kpathsea_link) ctwill.obj cweb.obj $(WD) $(LOADLIBES) $(LDFLAGS) \
           $(LKDEBUG)

ctwill-refsort.exe: ctwill-refsort.obj
	$(kpathsea_link) ctwill-refsort.obj $(WD) $(LOADLIBES) $(LDFLAGS) \
           $(LKDEBUG)

ctwill-twinx.exe: ctwill-twinx.obj
	$(kpathsea_link) ctwill-twinx.obj $(WD) $(LOADLIBES) $(LDFLAGS) \
           $(LKDEBUG)

dvicopy.exe: dvicopy.obj
	$(kpathsea_link) dvicopy.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
dvitype.exe: dvitype.obj
	$(kpathsea_link) dvitype.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
etex.exe: $(etex_o)
	$(kpathsea_link) $(etex_o) $(socketlibs) $(WD) $(LDZLIB) $(LOADLIBES) \
           $(LDFLAGS) $(LKDEBUG)
etex.dll: $(dlletex_o)
	cl -LD -Fe$@ $(dlletex_o) $(socketlibs) $(LDZLIB) $(LOADLIBES) $(LDFLAGS)
gftodvi.exe: gftodvi.obj
	$(kpathsea_link) gftodvi.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
gftopk.exe: gftopk.obj
	$(kpathsea_link) gftopk.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
gftype.exe: gftype.obj
	$(kpathsea_link) gftype.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
$(mfw): $(mf_o) $(windowlib)
	$(kpathsea_link) $(mf_o) $(WD) $(windowlink) $(LOADLIBES) \
          user32.lib kernel32.lib gdi32.lib $(LDFLAGS) $(LKDEBUG)
mfnowin.obj: mfextra.c lib/texmfmp.c
	$(compile) -DMFNOWIN=1 -Fo$@ $<

$(mfn): $(mf_nowin_o) window/trap.obj
	$(kpathsea_link) $(mf_nowin_o) window/trap.obj $(WD) $(LOADLIBES) \
          $(LDFLAGS) $(LKDEBUG)
mft.exe: mft.obj
	$(kpathsea_link) mft.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
#
# mpost 0.641
#
dvitomp.c: dvitomp.p
dvitomp.p: ./tangle.exe dvitomp.web dvitomp.ch
	./tangle dvitomp dvitomp
dvitomp.obj: dvitomp.c

mp641.exe: $(mp_o)
	$(kpathsea_link) $(mp_o) $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)

dvitomp641.exe: dvitomp.obj
	$(kpathsea_link) dvitomp.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)

$(MAKECPOOL): web2c/makecpool.c
	cd web2c && $(MAKE) $(common_makeargs) makecpool.exe

odvicopy.exe: odvicopy.obj
	$(kpathsea_link) odvicopy.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
odvitype.exe: odvitype.obj
	$(kpathsea_link) odvitype.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
wofm2opl.exe: ofm2opl.obj
	$(kpathsea_link) ofm2opl.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
wopl2ofm.exe: opl2ofm.obj
	$(kpathsea_link) opl2ofm.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
wovf2ovp.exe: ovf2ovp.obj
	$(kpathsea_link) ovf2ovp.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
wovp2ovf.exe: ovp2ovf.obj
	$(kpathsea_link) ovp2ovf.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
upovp2ovf.exe: upovp2ovf.obj
	$(kpathsea_link) upovp2ovf.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
upovf2ovp.exe: upovf2ovp.obj
	$(kpathsea_link) upovf2ovp.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
omega.exe: $(omega_o)
	$(kpathsea_link) $(omega_o) $(socketlibs) $(WD) $(LOADLIBES) \
           $(LDFLAGS) $(LKDEBUG)
omega.dll: $(dllomega_o)
	cl -LD -Fe$@ $(dllomega_o) $(socketlibs) $(LOADLIBES) $(LDFLAGS)
patgen.exe: patgen.obj
	$(kpathsea_link) patgen.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
pdftex.exe: pdftexd.h $(pdftex_o) $(pdftexextra_o) $(pdftexlibsdep)
	$(kpathsea_cxx_link) $(pdftex_o) $(pdftexextra_o) \
             $(pdftexlibs) $(socketlibs) $(WD) $(LOADLIBES) \
             $(LDFLAGS) $(LKDEBUG)
pdftex.dll: pdftexd.h $(dllpdftex_o) $(pdftexextra_o) $(pdftexlibsdep)
	cl -LD -Fe$@ $(dllpdftex_o) $(pdftexextra_o) \
             $(pdftexlibs) $(socketlibs) $(LOADLIBES) \
             $(LDFLAGS) $(LKDEBUG)
pktogf.exe: pktogf.obj
	$(kpathsea_link) pktogf.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
pktype.exe: pktype.obj
	$(kpathsea_link) pktype.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
pltotf.exe: pltotf.obj
	$(kpathsea_link) pltotf.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
pooltype.exe: pooltype.obj
	$(kpathsea_link) pooltype.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
tex.exe: $(tex_o)
	$(kpathsea_link) $(tex_o) $(socketlibs) $(WD) $(LOADLIBES) \
          $(LDFLAGS) $(LKDEBUG)
tex.dll: $(dlltex_o)
	cl -LD -Fe$@ $(dlltex_o) $(socketlibs) $(LOADLIBES) $(LDFLAGS)
tie.exe: tie.obj
	$(kpathsea_link) tie.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
tftopl.exe: tftopl.obj
	$(kpathsea_link) tftopl.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
vftovp.exe: vftovp.obj
	$(kpathsea_link) vftovp.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
vptovf.exe: vptovf.obj
	$(kpathsea_link) vptovf.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
weave.exe: weave.obj
	$(kpathsea_link) weave.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)

twill.exe: twill.obj
	$(kpathsea_link) twill.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)

# We put some programs (written directly in C) in a subdirectory.

#
# mpware
#
#mpware/dmp.exe: mpware/dmp.c
#	cd mpware && $(MAKE) $(common_makeargs)
#mpware/mpto.exe: mpware/mpto.c
#	cd mpware && $(MAKE) $(common_makeargs)
#mpware/newer.exe: mpware/newer.c
#	cd mpware && $(MAKE) $(common_makeargs)

bibtex.p: bibtex.web bibtex.ch tangle.exe
	./tangle bibtex.web bibtex.ch
dvicopy.p: dvicopy.web dvicopy.ch tangle.exe
	./tangle dvicopy.web dvicopy.ch
dvitype.p: dvitype.web dvitype.ch tangle.exe
	./tangle dvitype.web dvitype.ch
etex.p etex.pool: tangle.exe etex.web etex.ch tangle.exe
	$(shared_env) ./tangle etex.web etex.ch
gftodvi.p: gftodvi.web gftodvi.ch tangle.exe
	./tangle gftodvi.web gftodvi.ch
gftopk.p: gftopk.web gftopk.ch tangle.exe
	./tangle gftopk.web gftopk.ch
gftype.p: gftype.web gftype.ch tangle.exe
	./tangle gftype.web gftype.ch

mf.p mf.pool: mf.web mf-final.ch tangle.exe
	$(shared_env) ./tangle mf.web mf-final.ch
mf-final.ch: tie.exe mf.web mf.ch mf-binpool.ch
	./tie -c mf-final.ch mf.web mf.ch mf-binpool.ch

#
# mpost 0.641
#
mp.p mp.pool: ./tangle.exe mp.web mp-final.ch
	./tangle mp.web mp-final.ch

mp-final.ch: tie.exe mp.web mp.ch mp-binpool.ch
	./tie -c mp-final.ch mp.web mp.ch mp-binpool.ch

mpost-pool.c: mp.pool $(MAKECPOOL)
	$(MAKECPOOL) mp >mpost-pool.c
#
#
#

# Convenience variables.

mft.p: mft.web mft.ch tangle.exe
	./tangle mft.web mft.ch
odvicopy.p: odvicopy.web odvicopy.ch tangle.exe
	$(shared_env) ./tangle odvicopy.web odvicopy.ch
odvitype.p: odvitype.web odvitype.ch tangle.exe
	$(shared_env) ./tangle odvitype.web odvitype.ch
ofm2opl.p: ofm2opl.web ofm2opl.ch tangle.exe
	$(shared_env) ./tangle ofm2opl.web ofm2opl.ch
opl2ofm.p: opl2ofm.web opl2ofm.ch tangle.exe
	$(shared_env) ./tangle opl2ofm.web opl2ofm.ch
omega.p omega.pool: otangle.exe omega.web omega.ch
	$(shared_env) ./otangle omega.web omega.ch
ovf2ovp.p: ovf2ovp.web ovf2ovp.ch ./otangle.exe
	$(shared_env) ./otangle ovf2ovp.web ovf2ovp.ch
ovp2ovf.p: ovp2ovf.web ovp2ovf.ch otangle.exe
	$(shared_env) ./otangle ovp2ovf.web ovp2ovf.ch
patgen.p: patgen.web patgen.ch tangle.exe
	./tangle patgen.web patgen.ch
pdftex.p pdftex.pool: tangle.exe $(srcdir)/pdftexdir/pdftex.web \
                      pdftex-final.ch tangle.exe
	$(shared_env) ./tangle $(srcdir)/pdftexdir/pdftex.web pdftex-final.ch
pktogf.p: pktogf.web pktogf.ch tangle.exe
	./tangle pktogf.web pktogf.ch
pktype.p: pktype.web pktype.ch tangle.exe
	./tangle pktype.web pktype.ch
pltotf.p: pltotf.web pltotf.ch tangle.exe
	./tangle pltotf.web pltotf.ch
pooltype.p: pooltype.web pooltype.ch tangle.exe
	./tangle pooltype.web pooltype.ch
upovp2ovf.p: upovp2ovf.web upovp2ovf.ch otangle.exe
	$(shared_env) ./otangle upovp2ovf.web upovp2ovf.ch
upovf2ovp.p: upovf2ovp.web upovf2ovp.ch otangle.exe
	$(shared_env) ./otangle upovf2ovp.web upovf2ovp.ch

#
# synctex in tex
#
#synctex-tex_ch_srcs = \
#	$(synctex_dir)/synctex-def.ch0 \
#	$(synctex_dir)/synctex-mem.ch0 \
#	$(synctex_dir)/synctex-mem.ch2 \
#	$(synctex_dir)/synctex-rec.ch0 \
#	$(synctex_dir)/synctex-rec.ch1
#tex_ch_srcs-without_synctex =
#
#synctex-tex-o = synctex-tex.obj
#synctex-te.h: $(synctex_dir)/synctex.h
#	cat $(synctex_dir)/synctex.h >$@
#synctex-tex.h: $(synctex_dir)/synctex-tex.h
#	cat $(synctex_dir)/synctex-tex.h >$@
#$(synctex-tex-o): synctex-tex.c
#	$(compile) -DSYNCTEX_ENGINE_H='<synctex-tex.h>' $<
#synctex-tex.c: texd.h $(synctex_dir)/synctex.c synctex-te.h synctex-tex.h
#	cp $(synctex_dir)/synctex.c $@
#
#texd.h-with_synctex = if test -z "`grep __SyncTeX__ texd.h`";\
#	then\
#		$(synctex_common_texd);\
#		sed -f synctex_sed_command.sed texd.h > synctex_texd.h;\
#		mv synctex_texd.h texd.h;\
#		if test -z "`grep __SyncTeX__ texd.h`";\
#		then\
#			echo "warning: SyncTeX activation FAILED";\
#			exit 1;\
#		fi;\
#		echo "SyncTeX is enabled";\
#	fi
#texd.h-without_synctex = echo "warning: SyncTeX is NOT enabled"

tex_ch_srcs = \
 tex.web \
 tex.ch \
 enctexdir/enctex1.ch \
 enctexdir/enctex-tex.ch \
 enctexdir/enctex2.ch \
 tex-binpool.ch

tex.p tex.pool: tex.web tex-final.ch tangle.exe
	$(shared_env) ./tangle tex.web tex-final.ch

tex-final.ch: tie.exe $(tex_ch_srcs)
	./tie -c tex-final.ch $(tex_ch_srcs)

tftopl.p: tftopl.web tftopl.ch tangle.exe
	./tangle tftopl.web tftopl.ch
vftovp.p: vftovp.web vftovp.ch tangle.exe
	./tangle vftovp.web vftovp.ch
vptovf.p: vptovf.web vptovf.ch tangle.exe
	./tangle vptovf.web vptovf.ch
weave.p: weave.web weave.ch tangle.exe
	./tangle weave.web weave.ch
twill.p: twill.web tangle.exe
	./tangle twill.web
twill.web: tie.exe weave.web weave.ch weav-twill.ch
	./tie -m $@ weave.web weave.ch weav-twill.ch

# Additional dependencies for reconverting to C.
$(other_c): $(web2c_aux) $(web2c_programs)
bibtex.c: web2c/cvtbib.sed
c-sources: $(all_c)

# Metafont and TeX generate more than .c file.
web2c_texmf = $(web2c_aux) $(web2c_programs) web2c/texmf.defines web2c/coerce.h
$(etex_c) etexcoerce.h etexd.h: etex.p $(web2c_texmf)
	$(web2c) etex
	$(etexd.h-with_synctex)

$(mf_c) mfcoerce.h mfd.h: mf.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed
	$(web2c) mf
	mv mfcoerce.h mfcoerce.h.tmp
	sed -f web2c/mfmp.sed mfcoerce.h.tmp >mfcoerce.h
	rm -f mfcoerce.h.tmp
$(mp_c) mpcoerce.h mpd.h: mp.p $(web2c_texmf) $(mpostdir)/mp.defines web2c/cvtmf1.sed web2c/cvtmf2.sed
	$(web2c) mp
	mv mpcoerce.h mpcoerce.h.tmp
	sed -f web2c/mfmp.sed mpcoerce.h.tmp >mpcoerce.h
	rm -f mpcoerce.h.tmp
$(omega_c) omegacoerce.h omegad.h: omega.p $(web2c_texmf)
	$(web2c) omega
#
# syctex for pdftex
#
### SyncTeX support in pdftex
# list of change files
pdftex_ch_synctex = \
	$(synctex_dir)/synctex-def.ch0 \
	$(synctex_dir)/synctex-mem.ch0 \
	$(synctex_dir)/synctex-e-mem.ch0 \
	$(synctex_dir)/synctex-e-mem.ch1 \
	$(synctex_dir)/synctex-rec.ch0 \
	$(synctex_dir)/synctex-rec.ch1 \
	$(synctex_dir)/synctex-e-rec.ch0 \
	$(synctex_dir)/synctex-pdf-rec.ch2
pdftex_ch_srcs-without_synctex =
# The C sources and headers
pdftex_o-with_synctex = synctex-pdf.obj
pdftex_o-without_synctex = 
synctex-pdf.h: $(synctex_dir)/synctex.h
	cat $(synctex_dir)/synctex.h >$@
synctex-pdftex.h: $(synctex_dir)/synctex-pdftex.h
	cat $(synctex_dir)/synctex-pdftex.h >$@
$(pdftex_o-with_synctex): synctex-pdf.c
	$(compile) -DSYNCTEX_ENGINE_H='<synctex-pdftex.h>' $<
synctex-pdf.c: pdftexd.h $(synctex_dir)/synctex.c synctex-pdftex.h
	cp $(synctex_dir)/synctex.c $@
pdftexd.h-with_synctex = if test -z "`grep __SyncTeX__ pdftexd.h`";\
	then\
		$(synctex_common_texd);\
		sed -f synctex_sed_command.sed pdftexd.h > synctex_pdftexd.h;\
		mv synctex_pdftexd.h pdftexd.h;\
		if test -z "`grep __SyncTeX__ pdftexd.h`";\
		then\
			echo "warning: SyncTeX activation FAILED";\
			exit 1;\
		fi;\
		echo "SyncTeX is enabled";\
	fi
pdftexd.h-without_synctex = echo "warning: SyncTeX is NOT enabled"

# the synctex tool
synctex_parser.obj: $(synctex_dir)/synctex_parser.c $(synctex_dir)/synctex_parser.h
	$(compile) -c -DSYNCTEX_USE_LOCAL_HEADER -I$(synctex_dir) $(ZLIBCPPFLAGS) -Fo$@ $<

synctex_parser_utils.obj: $(synctex_dir)/synctex_parser_utils.c $(synctex_dir)/synctex_parser_utils.h
	$(compile) -c -DSYNCTEX_USE_LOCAL_HEADER -I$(synctex_dir) $(ZLIBCPPFLAGS) -Fo$@ $<

synctex_main.obj: $(synctex_dir)/synctex_main.c $(synctex_dir)/synctex_parser.h
	$(compile) -c -I$(synctex_dir) $(ZLIBCPPFLAGS) -Fo$@ $<

SYNCLIB=shlwapi.lib

synctex.exe:synctex_main.obj synctex_parser.obj synctex_parser_utils.obj $(ZLIBDEP)
	$(link_command) synctex_main.obj synctex_parser.obj synctex_parser_utils.obj $(LDZLIB) $(LIBS) $(SYNCLIB) $(kpathsea) shlwapi.lib

$(pdftex_c) pdftexcoerce.h pdftexd.h: pdftex.p $(web2c_texmf) \
$(srcdir)/pdftexdir/pdftex.defines
	$(web2c) pdftex
	$(pdftexd.h-with_synctex)
#
# synxtec tex
#
#$(tex_c) texcoerce.h texd.h: tex.p $(web2c_texmf)
#	$(web2c) tex
#	$(texd.h-with_synctex)
#

$(tex_c) texcoerce.h texd.h: tex.p $(web2c_texmf)
	$(web2c) tex

# As long as we have to have separate rules to create these, might as well do
# a little work to avoid separate compilation rules, too.

pdftex-pool.c: pdftex.pool pdftexd.h $(MAKECPOOL)
	$(MAKECPOOL) pdftex >pdftex-pool.c

# Special rules for cweb
#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
cweave.c: ctangle.exe cwebdir/cweave.w cwebdir/comm-w2c.h \
cwebdir/prod-cweave.w cwebdir/cweav-w2c.ch
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangle cweave.w cweav-w2c.ch

#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
ctwill.c: ctangle.exe cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod-twill.w cwebdir/ctwill-w2c.ch
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangle cweave.w ctwill-w2c.ch ctwill.c

#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
ctwill-refsort.c: ctangle.exe cwebdir/refsort.w cwebdir/refsort.ch
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangle refsort.w refsort.ch ctwill-refsort.c

ctwill-twinx.c: ctangle.exe cwebdir/twinx.w cwebdir/twinx.ch
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangle twinx.w twinx.ch ctwill-twinx.c

# A special rule for tie
#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
tie.c: ctangle.exe tiedir/tie.w tiedir/tie-w2c.ch
	-rm -f $@
	./ctangle $(srcdir)/tiedir/tie.w $(srcdir)/tiedir/tie-w2c.ch

# Additional dependencies for recompiling the C code are generated
# automatically, included at the end.

# Additional dependencies for relinking.
$(web2c_programs) $(programs) otangle.exe otangleboot.exe tangle.exe tangleboot.exe ctangleboot.exe : \
  $(kpathsea) $(proglib)

# 
# Bootstrapping tangle requires making it with itself.  We use the opportunity
# to create an up-to-date tangleboot as well.
tangle.exe: tangle.obj
	$(kpathsea_link) tangle.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
	$(MAKE) $(common_makeargs) tangleboot.p
# 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: tangleboot.exe tangle.web tangle.ch
	$(shared_env) ./tangleboot $(srcdir)/tangle.web $(srcdir)/tangle.ch
tangle.web:
	@echo "You seem to be missing tangle.web, perhaps because you" >&2
	@echo "didn't retrieve web.tar.gz, only web2c.tar.gz." >&2
	@echo "You need both." >&2
	@echo >&2
	@echo "web.tar.gz should be available from the" >&2
	@echo "same place that you got web2c.tar.gz." >&2
	@echo "In any case, you can get it from" >&2
	@echo "ftp://ftp.tug.org/tex/web.tar.gz." >&2
	false

tangleboot.exe: tangleboot.obj
	$(kpathsea_link) tangleboot.obj $(WD) $(LOADLIBES) $(LDFLAGS) $(LKDEBUG)
tangleboot.c tangleboot.h: stamp-tangle $(web2c_programs) $(web2c_aux)
	$(web2c) tangleboot
# tangleboot.p is in the distribution
stamp-tangle: tangleboot.p
	date >stamp-tangle
# This is not run unless tangle.web or tangle.ch is changed.
tangleboot.p: tangle.web tangle.ch
	$(shared_env) ./tangle $(srcdir)/tangle.web $(srcdir)/tangle.ch
	mv tangle.p tangleboot.p
	date >stamp-tangle
	$(MAKE) $(common_makeargs) tangle.exe

# Bootstrapping ctangle requires making it with itself.  We use the opportunity
# to create an up-to-date ctangleboot as well.
ctangle.exe: ctangle.obj cweb.obj
	$(kpathsea_link) ctangle.obj cweb.obj $(WD) $(LOADLIBES) \
          $(LDFLAGS) $(LKDEBUG)
	$(MAKE) $(common_makeargs) ctangleboot.c cwebboot.c
# ctangle.c is a special case, since it is needed to compile itself.
#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
ctangle.c: ctangleboot.exe cwebdir/ctangle.w cwebdir/ctang-w2c.ch cwebdir/comm-w2c.h
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangleboot ctangle.w ctang-w2c.ch ctangle.c

#
# I remove target if dependent files are newer, to update target
# even if the new target is the same as the old one. --ak
#
cweb.c: ctangleboot.exe cwebdir/common.w cwebdir/comm-w2c.ch help.h
	-rm -f $@
	CWEBINPUTS=".;$(srcdir)/cwebdir" ./ctangleboot common.w comm-w2c.ch cweb.c

ctangleboot.exe: ctangleboot.obj cwebboot.obj
	$(kpathsea_link) ctangleboot.obj cwebboot.obj $(WD) $(LOADLIBES) \
          $(LDFLAGS) $(LKDEBUG)
# ctangleboot.c is in the distribution
stamp-ctangle: ctangleboot.c cwebboot.c
# 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.
ctangleboot.c: ctangleboot.cin
	cp ctangleboot.cin $@
	date >stamp-ctangle
	$(MAKE) $(common_makeargs) ctangle.exe
cwebboot.c: cwebboot.cin
	cp cwebboot.cin $@
	date >stamp-ctangle
	$(MAKE) $(common_makeargs) ctangle.exe

# 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 
$(proglib): $(lib_sources)
	cd lib && $(MAKE) $(common_makeargs)

# No exceptions in this library.
window_sources = $(srcdir)/window/*.c
$(windowlib): mfd.h $(window_sources)
	cd window && $(MAKE) $(window_makeargs)
window/trap.obj: $(srcdir)/window/trap.c
	cd window && $(MAKE) $(common_makeargs) trap.obj
pdflib_sources = $(srcdir)/pdftexdir/*.c $(srcdir)/pdftexdir/*.cc \
  $(srcdir)/pdftexdir/*.h
pdftexdir/libpdf.lib: pdftexd.h $(pdflib_sources)
	cd pdftexdir && $(MAKE) $(common_makeargs) libpdf.lib

$(LIBPNGDIR)/libpng.lib: $(LIBPNGSRCDIR)/*.c
	cd $(LIBPNGDIR) && $(MAKE) $(common_makeargs) libpng.lib
$(ZLIBDIR)/libz.lib: $(ZLIBSRCDIR)/*.c $(ZLIBSRCDIR)/*.h
	cd $(ZLIBDIR) && $(MAKE) $(common_makeargs) libz.lib
$(LIBXPDFDIR)/xpdf/libxpdf.lib: $(LIBXPDFSRCDIR)/xpdf/*.cc \
  $(LIBXPDFSRCDIR)/xpdf/*.h
	cd $(LIBXPDFDIR)/xpdf && $(MAKE) $(common_makeargs) libxpdf.lib
$(LIBXPDFDIR)/goo/libGoo.lib: $(LIBXPDFSRCDIR)/goo/*.cc \
  $(LIBXPDFSRCDIR)/goo/*.c $(LIBXPDFSRCDIR)/goo/*.h
	cd $(LIBXPDFDIR)/goo && $(MAKE) $(common_makeargs) libGoo.lib
$(LIBLUADIR)/liblua.lib: $(LIBLUADIR)/*.c $(LIBLUADIR)/*.h
	cd $(LIBLUADIR) && $(MAKE) $(common_makeargs) liblua.lib

# The web2c program consists of several executables.
web2c/fixwrites.exe: web2c/fixwrites.c
	cd web2c && $(MAKE) $(common_makeargs) fixwrites.exe
web2c/splitup.exe: web2c/splitup.c
	cd web2c && $(MAKE) $(common_makeargs) splitup.exe
web2c/web2c.exe: web2c/main.c web2c/web2c.h web2c/web2c-parser.c \
web2c/web2c-lexer.c
	cd web2c && $(MAKE) $(common_makeargs) web2c.exe

# tkpathsea.mk -- target for remaking kpathsea.
makeargs = $(MFLAGS) CC='$(CC)' CFLAGS='$(CFLAGS)' $(XMAKEARGS)

# This is wrong: the library doesn't depend on kpsewhich.c or
# acconfig.h.  But what to do?
#$(kpathsea): $(kpathsea_srcdir)/*.c $(kpathsea_srcdir)/*.h
#	cd $(kpathsea_dir) && $(MAKE) $(makeargs)
# End of tkpathsea.mk.

# 
# Making dumps.
all_fmts = #tex.fmt $(fmts)
all_efmts = #etex.fmt $(efmts)
#C#all_cfmts = #tex.fmt $(cfmts)
all_ofmts = #omega.fmt $(ofmts)
all_pdffmts =
all_pdfefmts = #pdftex.fmt $(pdfefmts)
all_formats = $(all_fmts) $(all_efmts) $(all_cfmts) $(all_ofmts) $(all_pdffmts) $(all_pdfefmts)
all_bases = #mf.base $(bases)
all_mems = #mpost.mem $(mems)

dumpenv = TEXMFCNF=../kpathsea TEXMF=$(texmf)

dumps: fmts efmts cfmts ofmts pdffmts pdfefmts bases mems
fmts: $(all_fmts)
efmts: $(all_efmts)
cfmts: $(all_cfmts)
ofmts: $(all_ofmts)
pdffmts: $(all_pdffmts)
pdfefmts: $(all_pdfefmts)
bases: $(all_bases)
mems: $(all_mems)

tex.fmt: tex.exe
	$(dumpenv) $(MAKE) $(makeargs) files="--progname=tex plain.tex cmr10.tfm" prereq-check
	$(dumpenv) ./tex --jobname=tex --ini \\input plain \\dump <nul

latex.fmt: tex.exe
	$(dumpenv) $(MAKE) $(makeargs) files="--progname=latex latex.ltx" prereq-check
	$(dumpenv) ./tex --progname=latex --ini \\input latex.ltx <nul

etex.fmt: etex.exe
	$(dumpenv) $(MAKE) files="--progname=etex etex.src plain.tex cmr10.tfm" prereq-check
	$(dumpenv) ./etex --jobname=etex --ini \*\\input etex.src \\dump <nul

elatex.fmt: etex.exe
	$(dumpenv) $(MAKE) files="--progname=elatex latex.ltx" prereq-check
	$(dumpenv) ./etex --jobname=elatex --ini \*\\input latex.ltx <nul

omega.fmt: omega.exe
	$(dumpenv) $(MAKE) files="--progname=omega omega.tex" prereq-check
	$(dumpenv) ./omega --ini \\input omega.tex \\dump <nul

lambda.fmt: omega.exe
	$(dumpenv) $(MAKE) files="--progname=lambda lambda.tex" prereq-check
	$(dumpenv) ./omega --ini --progname=lambda \\input lambda.tex <nul

pdftex.fmt: pdftex.exe
	$(dumpenv) $(MAKE) files="--progname=pdftex etex.src plain.tex cmr10.tfm" prereq-check
	$(dumpenv) ./pdftex --jobname=pdftex --ini \*\\pdfoutput=1\\input etex.src \\dump <nul

pdflatex.fmt: pdftex.exe
	$(dumpenv) $(MAKE) files="--progname=pdflatex latex.ltx" prereq-check
	$(dumpenv) ./pdftex --jobname=pdflatex --ini \*\\pdfoutput=1\\input latex.ltx <nul

mltex.fmt: tex.exe
	$(dumpenv) $(MAKE) files="--progname=mltex plain.tex cmr10.tfm" prereq-check
	$(dumpenv) ./tex --mltex --jobname=mltex --ini \\input plain \\dump <nul

mllatex.fmt: tex.exe
	$(dumpenv) $(MAKE) files="--progname=mllatex latex.ltx" prereq-check
	$(dumpenv) ./tex --mltex --jobname=mllatex --ini \\input latex.ltx <nul

mf.base: mf-nowin.exe
	$(dumpenv) $(MAKE) $(makeargs) files="plain.mf cmr10.mf $(localmodes).mf" prereq-check
	$(dumpenv) ./mf --jobname=mf --ini \\input plain input $(localmodes) dump <nul

# This is meant to be called recursively, with $(files) set.
prereq-check: $(kpathsea_dir)/kpsewhich
	$(kpathsea_dir)/kpsewhich $(files) >nul || $(MAKE) prereq-lose >nul

prereq-lose:
	@echo "You seem to be missing input files necessary to make the" >&2
	@echo "basic formats (some or all of: $(files))." >&2
	@echo "Perhaps you've defined the default paths incorrectly, or" >&2
	@echo "perhaps you have environment variables set pointing" >&2
	@echo "to an incorrect location.  See ../kpathsea/BUGS." >&2
	@echo >&2
	@echo "If you simply do not have the files, you can" >&2
	@echo "retrieve a minimal set of input files from" >&2
	@echo "ftp://ftp.tug.org/tex/texklib.tar.gz, mirrored on" >&2
	@echo "CTAN hosts in systems/web2c." >&2
	false

$(kpathsea_dir)/kpsewhich: $(kpathsea)

amstex.fmt: tex
	$(dumpenv) ./tex --progname=amstex --ini amstex.ini <nul

# Texinfo changes the escape character from `\' to `@'.
texinfo.fmt: tex.fmt
	$(dumpenv) ./tex --progname=texinfo --ini texinfo @dump <nul

eplain.fmt: tex.fmt
	touch eplain.aux # Makes cross-reference warnings work right.
	$(dumpenv) ./tex --progname=eplain --ini \&./tex eplain \\dump <nul

#
install: tex.dll
	./allinst.sh

install_full: install-exec install-data
install-exec:: install-links
install-data:: install-dumps

# The actual binary executables and pool files.
install-programs: $(programs)
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(texpooldir) \
	  $(mfpooldir) $(mppooldir)
	for p in $(programs); do $(INSTALL_LIBTOOL_PROG) $(bindir) $$p; done
	cd otps && $(MAKE) $(install_makeargs) install-programs

# The links to {mf,mp,tex} for each format and for {ini,vir}{mf,mp,tex},
# plus the equivalents for e-TeX, Omega and pdftex.
install-links: install-programs
	cd $(bindir) && (rm -f initex virtex; \
	  $(LN) tex initex; $(LN) tex virtex)
# The ugly "" avoids a syntax error in case the lists are empty.
	test -z "$(fmts)" || \
	  for f in ""$(fmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) tex $$base)); done
	test -z "$(efmts)" || \
	  for f in ""$(efmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) etex $$base)); done
	test -z "$(cfmts)" || \
	  for f in ""$(cfmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) etex $$base)); done
	test -z "$(ofmts)" || \
	  for f in ""$(ofmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) omega $$base)); done
	test -z "$(pdffmts)" || \
	  for f in ""$(pdffmts); do base=`basename $$f .fmt`; \
	    (cd $(bindir) && (rm -f $$base; $(LN) pdftex $$base)); done
	test -z "$(bases)" || \
	  for f in ""$(bases); do base=`basename $$f .base`;\
	    (cd $(bindir) && (rm -f $$base; $(LN) mf $$base)); done
	test -z "$(mems)" || \
	  for f in ""$(mems); do base=`basename $$f .mem`; \
            (cd $(bindir) && (rm -f $$base; $(LN) mpost $$base)); done

# Always do plain.*, so examples from the TeXbook (etc.) will work.
install-dumps: install-fmts install-bases install-mems
install-fmts: $(all_formats)
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(fmtdir)
	echo "$(all_formats)" | grep '^[ ]*$$' >nul || \
	  for f in ""$(all_formats); do $(INSTALL_DATA) $$f $(fmtdir)/$$f; done
	#cd $(fmtdir) && (rm -f plain.fmt; $(LN) tex.fmt plain.fmt)
#C#	#cd $(fmtdir) && (rm -f plain.fmt; $(LN) tex.fmt plain.fmt)

install-bases: $(all_bases)
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(basedir)
	test -z "$(all_bases)" || \
	  for f in ""$(all_bases); do $(INSTALL_DATA) $$f $(basedir)/$$f; done
	#cd $(basedir) && (rm -f plain.base; $(LN) mf.base plain.base)

install-mems: $(all_mems)
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(memdir)
	test -z "$(all_mems)" || \
	  for f in ""$(all_mems); do $(INSTALL_DATA) $$f $(memdir)/$$f; done
	#cd $(memdir) && (rm -f plain.mem; $(LN) mpost.mem plain.mem)

# Auxiliary files.
install-data::
	$(SHELL) $(top_srcdir)/../mkinstalldirs $(texpooldir) $(mfpooldir) $(mppooldir) $(web2cdir) $(fontnamedir)
	$(INSTALL_DATA) tex.pool $(texpooldir)/tex.pool
	$(INSTALL_DATA) etex.pool $(texpooldir)/etex.pool
	$(INSTALL_DATA) omega.pool $(texpooldir)/omega.pool
	$(INSTALL_DATA) pdftex.pool $(texpooldir)/pdftex.pool
	$(INSTALL_DATA) mf.pool $(mfpooldir)/mf.pool
	$(INSTALL_DATA) mp.pool $(mppooldir)/mp.pool
	cd $(srcdir)/share && for f in *.tcx; do \
	  $(INSTALL_DATA) $$f $(web2cdir)/$$f; done
	cd $(srcdir)/share && for f in *.map; do \
	  $(INSTALL_DATA) $$f $(fontnamedir)/$$f; done
	cd doc && $(MAKE) $(install_makeargs) install-data
	cd man && $(MAKE) $(install_makeargs) install-data
	$(INSTALL_DATA) $(srcdir)/tiedir/tie.1 $(mandir)/tie.$(manext)
	$(INSTALL_DATA) fmtutil.cnf $(web2cdir)/fmtutil.cnf

# 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

#config.status: $(srcdir)/configure
#	$(SHELL) $@ --recheck

# Testing, including triptrap. The `x' filenames are for output.
tex_check = tex-check
etex_check = etex-check
check: bibtex-check dvicopy-check dvitype-check \
       $(etex_check) gftodvi-check gftopk-check gftype-check \
       mf-check mft-check mpost-check patgen-check pktogf-check \
       pktype-check pltotf-check pooltype-check $(tex_check) tftopl-check \
       vftovp-check vptovf-check weave-check

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='*.*.*.*.*.*.*.*.*.*'
trip: pltotf tftopl tex dvitype
	@echo ">>> See $(testdir)/trip.diffs for example of acceptable diffs." >&2
	./pltotf $(testdir)/trip.pl trip.tfm
	./tftopl ./trip.tfm trip.pl
	-diff $(testdir)/trip.pl trip.pl
	rm -f trip.tex; $(LN) $(testdir)/trip.tex . # get same filename in log
	-$(SHELL) -c '$(testenv) ./tex --progname=initex <$(testdir)/trip1.in >tripin.fot'
	mv trip.log tripin.log
	-diff $(testdir)/tripin.log tripin.log
# May as well test non-ini second time through.
	-$(SHELL) -c '$(testenv) ./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
	$(SHELL) -c '$(testenv) ./dvitype $(dvitype_args) trip.dvi >trip.typ'
	-$(DIFF) $(DIFFFLAGS) $(testdir)/trip.typ trip.typ

# Can't run trap and mptrap in parallel, because both write trap.{log,tfm}.
trap: mf tftopl gftype
	@echo ">>> See $(testdir)/mftrap.diffs for example of acceptable diffs." >&2
	rm -f trap.mf; $(LN) $(testdir)/trap.mf . # get same filename in log
	-$(SHELL) -c '$(testenv) ./mf --progname=inimf <$(testdir)/mftrap1.in >mftrapin.fot'
	mv trap.log mftrapin.log
	-diff $(testdir)/mftrapin.log mftrapin.log
	-$(SHELL) -c '$(testenv) ./mf <$(testdir)/mftrap2.in >mftrap.fot'
	mv trap.log mftrap.log
	mv trap.tfm mftrap.tfm
	-diff $(testdir)/mftrap.fot mftrap.fot
	-diff $(testdir)/mftrap.log mftrap.log
	./tftopl ./mftrap.tfm mftrap.pl
	-diff $(testdir)/mftrap.pl mftrap.pl
	$(SHELL) -c '$(testenv) ./gftype -m -i ./trap.72270gf >trap.typ'
	-diff $(testdir)/trap.typ trap.typ

mptrap: pltotf mpost tftopl
	@echo ">>> See $(testdir)/mptrap.diffs for example of acceptable diffs." >&2
	rm -f mtrap.mp; $(LN) $(testdir)/mtrap.mp . # get same filename in log
	./pltotf $(testdir)/trapf.pl trapf.tfm
	-$(SHELL) -c '$(testenv) ./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
	rm -f trap.mp; $(LN) $(testdir)/trap.mp .
	rm -f trap.mpx; $(LN) $(testdir)/trap.mpx .
	-$(SHELL) -c '$(testenv) ./mpost --progname=inimpost <$(testdir)/mptrap1.in >mptrapin.fot'
	mv trap.log mptrapin.log
	-diff $(testdir)/mptrapin.log mptrapin.log
# Must run inimp or font_name[null_font] is not initialized, leading to diffs.
	-$(SHELL) -c '$(testenv) ./mpost --progname=inimpost <$(testdir)/mptrap2.in >mptrap.fot'
	mv trap.log mptrap.log
	mv 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
	./tftopl ./mptrap.tfm mptrap.pl
	-diff $(testdir)/mptrap.pl mptrap.pl

# Ad hoc tests.
bibtex-check: bibtex
	test -f tests/exampl.aux || \
	  cp $(srcdir)/tests/exampl.aux tests/exampl.aux
	BSTINPUTS=$(srcdir)/tests ./bibtex tests/exampl

dvicopy-check: dvicopy
	./dvicopy $(srcdir)/tests/story tests/xstory.dvi
# Redirect stderr so the terminal output will end up in the log file.
	(TFMFONTS=$(srcdir)/tests: ./dvicopy <$(srcdir)/tests/pplr.dvi \
	  >tests/xpplr.dvi) 2>&1

dvitype-check: dvitype
	./dvitype -show-opcodes $(srcdir)/tests/story >tests/xstory.dvityp
	./dvitype --p=\*.\*.2 $(srcdir)/tests/pagenum.dvi >tests/xpagenum.typ

gftodvi-check: gftodvi
	TFMFONTS=$(srcdir)/tests: ./gftodvi -verbose \
	  $(srcdir)/tests/cmr10.600gf
	mv cmr10.dvi tests/xcmr10.dvi

gftopk-check: gftopk
	./gftopk -verbose $(srcdir)/tests/cmr10.600gf tests/xcmr10.pk
	./gftopk $(srcdir)/tests/cmr10.600gf cmr10.pk && rm cmr10.pk

gftype-check: gftype
	./gftype $(srcdir)/tests/cmr10.600gf >tests/xcmr10.gft1
	./gftype -m -i $(srcdir)/tests/cmr10.600gf >tests/xcmr10.gft2

mf-check: trap mf.base
	./mf '&./mf \tracingstats:=1; end.'
	./mf $(srcdir)/tests/online
	./mf $(srcdir)/tests/one.two
	./mf $(srcdir)/tests/uno.dos

mft-check: mft
	./mft $(srcdir)/tests/io; mv io.tex tests/io.tex

patgen-check: patgen
	./patgen $(srcdir)/tests/dict $(srcdir)/tests/patterns tests/xout \
	   $(srcdir)/tests/translate <$(srcdir)/tests/patgen.in

pktogf-check: pktogf
	./pktogf -verbose $(srcdir)/tests/cmr10.pk tests/xcmr10.600gf
	./pktogf $(srcdir)/tests/cmr10.pk && rm cmr10.gf

pktype-check: pktype
	./pktype $(srcdir)/tests/cmr10.pk >tests/xcmr10.pktyp

pltotf-check: pltotf
	./pltotf -verbose $(srcdir)/tests/cmr10 tests/xcmr10

# When tex.pool has not been generated we pooltype etex.pool
pooltype-check: pooltype
	./pooltype tex.pool >tests/xtexpool.typ

tex-check: trip tex.fmt
# Test truncation (but don't bother showing the warning msg).
	./tex --output-comment="`cat $(srcdir)/PROJECTS`" \
	    $(srcdir)/tests/hello 2>nul \
	  && ./dvitype hello.dvi | grep olaf@infovore.xs4all.nl >nul
# \openout should show up in \write's.
	./tex $(srcdir)/tests/openout && grep xfoo openout.log
# one.two.tex -> one.two.log
	./tex $(srcdir)/tests/one.two && ls -l one.two.log
# uno.dos -> uno.log
	./tex $(srcdir)/tests/uno.dos && ls -l uno.log
	./tex $(srcdir)/tests/just.texi && ls -l just.log
	-./tex $(srcdir)/tests/batch.tex
	./tex --shell $(srcdir)/tests/write18 | grep echo
# tcx files test (to be included)
#	./tex --translate-file=$(srcdir)/share/isol1-t1.tcx \
#	  $(srcdir)/tests/eight && ./dvitype eight.dvi >eigh.typ
	./tex --mltex --progname=initex $(srcdir)/tests/mltextst
	-./tex <nul
	-PATH=`pwd`:$(kpathsea_dir):$(kpathsea_srcdir):$$PATH \
	  WEB2C=$(kpathsea_srcdir) TMPDIR=.. \
	  ./tex '\nonstopmode\font\foo=nonesuch\end'

tftopl-check: tftopl
	./tftopl -verbose $(srcdir)/tests/cmr10 tests/xcmr10

vftovp-check: vftovp
	TFMFONTS=$(srcdir)/tests ./vftovp -verbose $(srcdir)/tests/ptmr ptmr tests/xptmr

vptovf-check: vptovf
	./vptovf $(srcdir)/tests/ptmr tests/xptmr tests/xptmr

weave-check: weave
	./weave $(srcdir)/pooltype

installcheck:
	cd $(srcdir)/tests && bibtex allbib
	mf '\mode:=ljfour; input logo10' && tftopl logo10.tfm >nul
	tex '\nonstopmode \tracingstats=1 \input story \bye'

# 
# Cleaning.
pdftexdir = pdftexdir
otps = otps
all_subdirs = doc lib man web2c window $(otps) $(pdftexdir)

# 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::
#	test ! -r lib/Makefile \
#	  || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done
#	rm -f otangleboot tangleboot
#clean::
#	test ! -r lib/Makefile \
#	  || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done
#	rm -f *.aux *.c *.dvi *.fot *.log *.pl *.tfm *.typ 
#	rm -f *.base *.fmt *.fmt *.mem
#	rm -rf tfm

clean::
	rm -f *~ *.obj

# Have to list generated .h's explicitly since our real headers,
# e.g., help.h, are in this directory too.
	rm -f *coerce.h *d.h bibtex.h dvicopy.h dvitype.h gftodvi.h
	rm -f gftopk.h gftype.h mft.h odvicopy.h odvitype.h ofm2opl.h
	rm -f opl2ofm.h otangle.h ovf2ovp.h ovp2ovf.h patgen.h pktogf.h
	rm -f pktype.h pltotf.h pooltype.h tangle.h tftopl.h vftovp.h vptovf.h
	rm -f weave.h
# Cleanup from triptrap.
	rm -f trip.tex trap.mf mtrap.mp trap.mp trap.mpx
	rm -f trip.* tripin.* tripos.tex 8terminal.tex
	rm -f trap.* mftrap.* mftrapin.* mptrap.* mptrapin.*
	rm -f trapf.* mtrap.* writeo* missfont.log
distclean::
	test ! -r lib/Makefile \
	  || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done
	rm -f *.pool *extra.c *.fm
# Have to list .p's explicitly because we can't remove tangleboot.p.
	rm -f bibtex.p dvicopy.p dvitype.p etex.p gftodvi.p gftopk.p
	rm -f gftype.p mf.p mft.p mp.p odvicopy.p odvitype.p ofm2opl.p omega.p
	rm -f opl2ofm.p otangle.p ovf2ovp.p ovp2ovf.p patgen.p
	rm -f pdftex.p pktogf.p pktype.p pltotf.p pooltype.p tangle.p
	rm -f tex.p tftopl.p vftovp.p vptovf.p weave.p
	rm -f otangleboot.c otangleboot.h tangleboot.c tangleboot.h
# And we clean up generated web and change files.
	rm -f etex.web omega.web
	rm -f etex.ch  omega.ch
	rm -f odvicopy.web odvitype.web ofm2opl.web opl2ofm.web otangle.web
	rm -f odvicopy.ch  odvitype.ch  ofm2opl.ch  opl2ofm.ch  otangle.ch 
	rm -f ovf2ovp.web ovp2ovf.web
	rm -f ovf2ovp.ch  ovp2ovf.ch
# And some miscellaneous files
	rm -f etrip.tex otangleboot.p omegafirst.c omegamem.h
	rm -f macnames.c ttf2afm.c
	rm -f fmtutil.cnf

extraclean::
	test ! -r lib/Makefile \
	  || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done
# Remove triptrap junk here too.
	rm -f trip.tex trap.mf mtrap.mp trap.mp trap.mpx
	rm -f trip.* tripin.* tripos.tex 8terminal.tex
	rm -f trap.* mftrap.* mftrapin.* mptrap.* mptrapin.*
	rm -f trapf.* mtrap.* writeo* missfont.log
	rm -f *.out *.typ *.fot
# And etrip junk as well.
	rm -f etrip.tex
	rm -f etrip.* etripin.*
maintainer-clean::
	test ! -r lib/Makefile \
	  || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done

# clean.mk -- cleaning.
mostlyclean::
	rm -f *.obj

clean:: mostlyclean
	rm -f $(program) $(programs) squeeze lib$(library).* $(library).lib *.bad
	rm -f *.exe *.dvi *.lj

distclean:: extraclean clean
	rm -f Makefile
	rm -f config.status config.log config.cache w2c/c-auto.h
	rm -f stamp-auto stamp-tangle stamp-otangle

# Although we can remake configure and c-auto.in, we don't remove
# them, since many people may lack Autoconf.  Use configclean for that.
maintainer-clean:: distclean
	rm -f *.info*

extraclean::
	rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.pl *.tfm *.vf *.vpl
	rm -f *.*pk *.*gf *.mpx *.i *.s *~ *.orig  *.rej *\#*
	rm -f CONTENTS.tex a.out core mfput.* texput.* mpout.*

configclean:
	rm -f configure c-auto.in w2c/c-auto.h stamp-*

# Let's stick a rule for TAGS here, just in case someone wants them.
# (We don't put them in the distributions, to keep them smaller.)
TAGS: *.c *.h
	pwd | grep kpathsea >nul && append=../kpathsea/TAGS; \
	  etags $$append *.[ch]

# Prevent GNU make 3.[59,63) from overflowing arg limit on system V.
.NOEXPORT:

# End of rdepend.mk.
bibtex.obj: bibtex.c \
 cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h bibtex.h
dvicopy.obj: dvicopy.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h dvicopy.h
dvitype.obj: dvitype.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h dvitype.h
etex0.obj: etex0.c etexd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h etexcoerce.h
etexextra.obj: etexextra.c etexd.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h etexcoerce.h $(kpathsea_srcdir)/line.h \
 $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h $(kpathsea_srcdir)/absolute.h \
 texmfmp-help.h etexdir/etexextra.h etexdir/etex_version.h
etexini.obj: etexini.c etexd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h etexcoerce.h
gftodvi.obj: gftodvi.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h gftodmem.h \
 gftodvi.h
gftopk.obj: gftopk.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h gftopk.h
gftype.obj: gftype.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h gftype.h
macnames.obj: macnames.c
mf0.obj: mf0.c mfd.h texmfmp.h cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mfcoerce.h

mfextra.obj: mfextra.c mfd.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mfcoerce.h $(kpathsea_srcdir)/line.h \
 $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h \
 $(kpathsea_srcdir)/absolute.h texmfmp-help.h lib/mfmpi386.asm

mfini.obj: mfini.c mfd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mfcoerce.h

mft.obj: mft.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h mft.h

mp0.obj: mp0.c mpd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mpcoerce.h

mp641extra.obj: mp641extra.c mpd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mpcoerce.h $(kpathsea_srcdir)/line.h \
 $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h \
 $(kpathsea_srcdir)/absolute.h \
 $(kpathsea_srcdir)/concatn.h \
 texmfmp-help.h lib/mfmpi386.asm

mpini.obj: mpini.c mpd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h mpcoerce.h

odvicopy.obj: odvicopy.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h odvicopy.h

odvitype.obj: odvitype.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h odvitype.h

ofm2opl.obj: ofm2opl.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h ofm2opl.h

omegafirst.obj: omegafirst.c omegad.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h omegamem.h omegacoerce.h

omega0.obj: omega0.c omegad.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h omegamem.h omegacoerce.h

omegaextra.obj: omegaextra.c omegad.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h omegamem.h omegacoerce.h \
 $(kpathsea_srcdir)/line.h $(kpathsea_srcdir)/readable.h \
 $(kpathsea_srcdir)/variable.h \
 $(kpathsea_srcdir)/absolute.h \
 texmfmp-help.h omegadir/omegaextra.h

omegaini.obj: omegaini.c omegad.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h omegamem.h omegacoerce.h

opl2ofm.obj: opl2ofm.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h opl2ofm.h

otangle.obj: otangle.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h otangle.h

otangleboot.obj: otangleboot.c cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h otangleboot.h

ovf2ovp.obj: ovf2ovp.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h ovf2ovp.h

ovp2ovf.obj: ovp2ovf.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h ovp2ovf.h

patgen.obj: patgen.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h patgen.h

pdftex0.obj: pdftex0.c pdftexd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h pdftexcoerce.h \
 pdftexdir/pdftex.h

pdftexextra.obj: pdftexextra.c pdftexd.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h pdftexcoerce.h \
 pdftexdir/pdftex.h $(kpathsea_srcdir)/line.h $(kpathsea_srcdir)/readable.h \
 $(kpathsea_srcdir)/variable.h $(kpathsea_srcdir)/absolute.h \
 texmfmp-help.h pdftexdir/pdftexextra.h pdftexdir/pdftex_version.h \
 etexdir/etex_version.h

pdftexini.obj: pdftexini.c pdftexd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h pdftexcoerce.h \
 pdftexdir/pdftex.h

pktogf.obj: pktogf.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h pktogf.h

pktype.obj: pktype.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h pktype.h

pltotf.obj: pltotf.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h pltotf.h

pooltype.obj: pooltype.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h pooltype.h

tangle.obj: tangle.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h tangle.h

tangleboot.obj: tangleboot.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h tangleboot.h

tex0.obj: tex0.c texd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h texcoerce.h

texextra.obj: texextra.c texd.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h \
 $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \
 $(kpathsea_srcdir)/tex-make.h texmfmem.h texcoerce.h $(kpathsea_srcdir)/line.h \
 $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h \
 $(kpathsea_srcdir)/absolute.h texmfmp-help.h

tftopl.obj: tftopl.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h tftopl.h

tie.obj: tie.c 

ttf2afm.obj: ttf2afm.c $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 macnames.c

upovp2ovf.obj: upovp2ovf.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h upovp2ovf.h

upovf2ovp.obj: upovf2ovp.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h upovf2ovp.h

vftovp.obj: vftovp.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h vftovp.h

vptovf.obj: vptovf.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h vptovf.h

weave.obj: weave.c cpascal.h w2c/config.h $(kpathsea_srcdir)/config.h \
 $(kpathsea_dir)/c-auto.h $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h \
 $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h \
 $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \
 $(kpathsea_srcdir)/progname.h w2c/c-auto.h $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h \
 $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h help.h weave.h

alephfirst.obj: alephfirst.c alephd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h $(kpathsea_srcdir)/debug.h \
 $(kpathsea_srcdir)/types.h \
 $(kpathsea_srcdir)/lib.h $(kpathsea_srcdir)/progname.h ../web2c/w2c/c-auto.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h $(kpathsea_srcdir)/proginit.h \
 $(kpathsea_srcdir)/tex-file.h help.h $(kpathsea_srcdir)/c-pathch.h \
 $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/tex-make.h \
 texmfmem.h alephmem.h alephcoerce.h

aleph0.obj: aleph0.c alephd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h $(kpathsea_srcdir)/debug.h \
 $(kpathsea_srcdir)/types.h \
 $(kpathsea_srcdir)/lib.h $(kpathsea_srcdir)/progname.h ../web2c/w2c/c-auto.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h $(kpathsea_srcdir)/proginit.h \
 $(kpathsea_srcdir)/tex-file.h help.h $(kpathsea_srcdir)/c-pathch.h \
 $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/tex-make.h \
 texmfmem.h alephmem.h alephcoerce.h

alephbis.obj: alephbis.c \
 alephd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h \
 $(kpathsea_srcdir)/c-errno.h $(kpathsea_srcdir)/c-minmax.h \
 $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h $(kpathsea_srcdir)/debug.h \
 $(kpathsea_srcdir)/types.h \
 $(kpathsea_srcdir)/lib.h $(kpathsea_srcdir)/progname.h ../web2c/w2c/c-auto.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h $(kpathsea_srcdir)/proginit.h \
 $(kpathsea_srcdir)/tex-file.h help.h $(kpathsea_srcdir)/c-pathch.h \
 $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/tex-make.h \
 texmfmem.h alephmem.h alephcoerce.h

alephextra.obj: alephextra.c alephd.h lib/texmfmp.c texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h $(kpathsea_srcdir)/debug.h \
 $(kpathsea_srcdir)/types.h \
 $(kpathsea_srcdir)/lib.h $(kpathsea_srcdir)/progname.h ../web2c/w2c/c-auto.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h $(kpathsea_srcdir)/proginit.h \
 $(kpathsea_srcdir)/tex-file.h help.h $(kpathsea_srcdir)/c-pathch.h \
 $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/tex-make.h \
 texmfmem.h alephmem.h alephcoerce.h $(kpathsea_srcdir)/line.h \
 $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h \
 $(kpathsea_srcdir)/absolute.h \
 texmfmp-help.h alephdir/alephextra.h 

alephini.obj: alephini.c alephd.h texmfmp.h cpascal.h w2c/config.h \
 $(kpathsea_srcdir)/config.h $(kpathsea_dir)/c-auto.h \
 $(kpathsea_srcdir)/c-std.h \
 $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \
 $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \
 $(kpathsea_srcdir)/c-minmax.h $(kpathsea_srcdir)/c-limits.h \
 $(kpathsea_srcdir)/c-proto.h $(kpathsea_srcdir)/debug.h \
 $(kpathsea_srcdir)/types.h \
 $(kpathsea_srcdir)/lib.h $(kpathsea_srcdir)/progname.h ../web2c/w2c/c-auto.h \
 $(kpathsea_srcdir)/c-fopen.h \
 $(kpathsea_srcdir)/getopt.h $(kpathsea_srcdir)/proginit.h \
 $(kpathsea_srcdir)/tex-file.h help.h $(kpathsea_srcdir)/c-pathch.h \
 $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/tex-make.h \
 texmfmem.h alephmem.h alephcoerce.h
# End:
