# 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.*
syntax highlighted by Code2HTML, v. 0.9.1