# Only works with Gnu make. LIB=/opt/noweb/lib ICONC=icont # This is supposed to be the defns.nw file in the icon directory of the distribution. defns=defns.nw TANGLE=notangle WEAVE=noweave -delay -filter icon.filter -index .SUFFIXES: .nw .icn .tex .dvi all: C.filter C++.filter icon.filter oot.filter math.filter\ autodefs.oot autodefs.math install: mv *.filter $(LIB) mv autodefs.* $(LIB) # TeX files. %.tex : %.nw $(WEAVE) $< > $@ pp.tex: pp.nw noweave -delay -autodefs icon -filter icon.filter -index pp.nw > pp.tex %.dvi : %.tex latex $< # Don't delete the intermediate .tex file. .PRECIOUS : %.tex # Icon files. C.icn: pp.nw C_translation_table $(TANGLE) -R"C" pp.nw > $@ C++.icn: pp.nw C++_translation_table $(TANGLE) -R"C++" pp.nw > $@ icon.icn: pp.nw icon_translation_table $(TANGLE) -R"Icon" pp.nw > $@ oot.icn: pp.nw oot_translation_table $(TANGLE) -R"OOT" pp.nw > $@ math.icn: pp.nw math_translation_table $(TANGLE) -R"Mathematica" pp.nw > $@ ootdefs.icn: ootdefs.nw $(TANGLE) $< $(defns) > $@ mathdefs.icn: mathdefs.nw $(TANGLE) $< $(defns) > $@ # Executables: filters. %.filter : %.icn $(ICONC) -o $@ $< # Executables: autodefs. autodefs.oot: ootdefs.icn $(ICONC) -o autodefs.oot ootdefs.icn autodefs.math: mathdefs.icn $(ICONC) -o autodefs.math mathdefs.icn # Cleaning: remove all files that can be recreated from noweb sources. nowebs := $(wildcard *.nw) rem := $(nowebs:.nw=.icn) rem := $(rem) $(nowebs:.nw=.tex) rem := $(rem) $(nowebs:.nw=.log) rem := $(rem) $(nowebs:.nw=.aux) rem := $(rem) $(nowebs:.nw=.toc) # Also remove the Icon files for the filters. clean: -rm -f $(rem) C.icn C++.icn icon.icn oot.icn math.icn *.filter autodefs.*