-LATEXFLAGS:=-file-line-error -halt-on-error -no-shell-escape
+LATEXFLAGS:=\
+ -file-line-error\
+ -halt-on-error\
+ -no-shell-escape\
+ -output-directory=./output/
+
+FIGURES:=$(addsuffix .png,$(addprefix img/,$(notdir $(basename $(wildcard fig/*.dot)))))
+LISTINGS:=$(wildcard listings/*)
+TEXS:=$(wildcard *.bib)
+BIBS:=$(wildcard *.tex)
$(LATEX) $(LATEXFLAGS) $<
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 $@
$(LATEX) $(LATEXFLAGS) $<
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 $@
- $(RM) $(foreach DOC,$(DOCS),$(addprefix $(DOC).,\
- 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))
+ $(RM) output/* $(FIGURES)