-DOCUMENTS:=make
-PDFLATEXFLAGS:=-halt-on-error
-PDFLATEX:=pdflatex $(PDFLATEXFLAGS)
+DOC:=make
+LATEX:=latex
+LATEXFLAGS:=-file-line-error -halt-on-error -no-shell-escape
-all: $(addsuffix .pdf,$(DOCUMENTS))
+TEXS:=$(wildcard *.tex)
-%.pdf: %.tex
- $(PDFLATEX) $<
- $(PDFLATEX) $<
+.PHONY: all
+.SECONDARY: $(DOC).fmt
+
+all: $(DOC).dvi
+
+%.fmt: preamble.tex
+ $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump"
+
+%.ps.gz: %.dvi
+ dvips -o- $< | gzip -9 > $@
+
+%.dvi: %.tex %.fmt $(TEXS)
+ $(LATEX) $(LATEXFLAGS) $< | tee $(basename $<).mlog
+ grep -qF '(rerunfilecheck)' $(basename $<).mlog &&\
+ $(LATEX) $(LATEXFLAGS) $< || true
clean:
- $(RM) -v $(addprefix $(DOCUMENTS).,pdf log aux nav toc out snm)
+ $(RM) $(addprefix $(DOC).,dvi pdf log aux nav toc out snm mlog fmt ps*)