add notion of UNO support
[msc-thesis1617.git] / Makefile
index 45d3600..eadae05 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,16 @@
 DOCS:=thesis
-LATEX:=pdflatex
-BIBTEX:=bibtex
+GREP?=grep
+LATEX?=pdflatex
+BIBTEX?=bibtex
 BIBTEXFLAGS:=
+MAKEGLOSSARIES?=makeglossaries
+MAKEGLOSSARIESFLAGS?=
 LATEXFLAGS:=-file-line-error -halt-on-error -no-shell-escape
 
+FIGURES:=$(addsuffix .png,$(addprefix img/,$(notdir $(basename $(wildcard fig/*.dot)))))
+
 .PHONY: all clean
-.SECONDARY: $(addsuffix .fmt,$(DOCS))
+.SECONDARY: $(addsuffix .fmt,$(DOCS)) $(FIGURES)
 
 all: $(addsuffix .pdf,$(DOCS))
 
@@ -13,12 +18,18 @@ 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 $(wildcard *.bib) $(wildcard *.tex) $(FIGURES)
        $(LATEX) $(LATEXFLAGS) $<
-       grep -q '^\\bibdata{' $(basename $<).aux && $(BIBTEX) $(BIBTEXFLAGS) $(basename $<) || true
+       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).,aux log fmt toc bbl blg run.xml out pdf snm nav snm vrb))
+       $(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)) $(FIGURES)