BIBTEX?=bibtex
BIBTEXFLAGS:=
MAKEGLOSSARIES?=makeglossaries
-MAKEGLOSSARIESFLAGS?=makeglossaries
+MAKEGLOSSARIESFLAGS?=
LATEXFLAGS:=-file-line-error -halt-on-error -no-shell-escape
+FIGURES:=$(addsuffix .png,$(addprefix img/,$(notdir $(basename $(wildcard fig/*.dot)))))
+LISTINGS:=$(wildcard listings/*)
+TEXS:=$(wildcard *.bib)
+BIBS:=$(wildcard *.tex)
+
.PHONY: all clean
-.SECONDARY: $(addsuffix .fmt,$(DOCS))
+.SECONDARY: $(addsuffix .fmt,$(DOCS)) $(FIGURES)
all: $(addsuffix .pdf,$(DOCS))
$(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump"
%.pdf: %.mlog
- $(GREP) -iFq 'Rerun to get' $< && $(LATEX) $(LATEXFLAGS) $(basename $<) || true
+ if $(GREP) -iFq 'Rerun' $<; then $(LATEX) $(LATEXFLAGS) $(basename $<); fi
-%.mlog: %.tex %.fmt $(wildcard *.bib) $(wildcard *.tex)
+%.mlog: %.tex %.fmt $(BIBS) $(TEXS) $(FIGURES) $(LISTINGS)
$(LATEX) $(LATEXFLAGS) $<
- $(GREP) -q '^\\bibdata{' $(basename $<).aux && $(BIBTEX) $(BIBTEXFLAGS) $(basename $<) || true
- $(GREP) -q '\@istfilename' $(basename $<).aux && $(MAKEGLOSSARIES) $(MAKEGLOSSARIESFLAGSFLAGS) $(basename $<)
+ if $(GREP) -q '^\\bibdata{' $(basename $<).aux; then $(BIBTEX) $(BIBTEXFLAGS) $(basename $<); fi
+ if $(GREP) -q '\@istfilename' $(basename $<).aux; then $(MAKEGLOSSARIES) $(MAKEGLOSSARIESFLAGSFLAGS) $(basename $<); fi
$(LATEX) $(LATEXFLAGS) $< | tee $@
+img/%.png: fig/%.dot
+ dot -Tpng $< > $@
+
clean:
$(RM) $(foreach DOC,$(DOCS),$(addprefix $(DOC).,\
- acn acr alg aux bbl blg fmt glg glo gls log nav out pdf run.xml snm\
- tdo toc vrb xdy))
+ acn acr alg aux bbl blg fmt glg glo gls ist lof log lol lot nav out\
+ pdf run.xml snm tdo toc vrb xdy)) $(FIGURES)