all: ctex ctex.dvi cweb/cweave.w: cweave.patch patch --verbose cweb/cweave.w cweave.patch cweb/ctangle.w: ctangle.patch patch --verbose cweb/ctangle.w ctangle.patch cweb/common.w: common.patch patch --verbose cweb/common.w common.patch CWEAVE=cweb/cweave CTANGLE=cweb/ctangle cweb/ctangle: cweb/ctangle.w cweb/common.w cd cweb ;\ if [ ! -x ./ctangle ] ; then $(CC) $(CFLAGS) -o ctangle ctangle.c common.c ; fi ;\ ./ctangle ctangle.w ; \ ./ctangle common.w ; \ $(CC) $(CFLAGS) -o ctangle ctangle.c common.c ; \ cd .. cweb/cweave: $(CTANGLE) cweb/cweave.w cweb/common.w cd cweb ;\ ./ctangle cweave.w ; \ ./ctangle common.w ; \ $(CC) $(CFLAGS) -o cweave cweave.c common.c ; \ cd .. web.lex.c : web.l web2w.h pascal.tab.h flex -o web.lex.c web.l pascal.tab.c pascal.tab.h: pascal.y bison -d -v $(NAMEPREFIX) pascal.y web2w.c web2w.h: $(CTANGLE) web2w.w $(CTANGLE) web2w.w web2w: web2w.c web.lex.c pascal.tab.c $(CC) -o web2w web2w.c web.lex.c pascal.tab.c web2w.tex: $(CWEAVE) web2w.w $(CWEAVE) web2w.w ctex.w: tex.w patch --verbose -o ctex.w tex.w ctex.patch tex.w: web2w ./web2w -o tex.w tex/tex.web ctex.c: $(CTANGLE) ctex.w $(CTANGLE) ctex.w ctex.tex: $(CWEAVE) ctex.w $(CWEAVE) ctex.w ctex: ctex.c $(CC) ctex.c -lm -o ctex cinitex: ctex.c $(CC) -DINIT ctex.c -lm -o cinitex ctex.pdf: ctex.tex pdftex ctex.tex plain.fmt: cinitex echo "plain \\dump" | ./cinitex cp plain.fmt TeXformats/ ctex.dvi: ctex ctex.tex plain.fmt echo "&plain ctex" | ./ctex clean: rm -f *.idx *.log *.dvi *.scn *.toc *~ rm -f cinitex ctex web2w $(MAKE) -C cweb clean