fix makefile
[msc-thesis1617.git] / Makefile
1 DOCS:=thesis
2 GREP?=grep
3 LATEX?=pdflatex
4 BIBTEX?=bibtex
5 BIBTEXFLAGS:=
6 MAKEGLOSSARIES?=makeglossaries
7 MAKEGLOSSARIESFLAGS?=
8 LATEXFLAGS:=\
9 -file-line-error\
10 -halt-on-error\
11 -no-shell-escape\
12 -output-directory=./output/
13
14 FIGURES:=$(addsuffix .png,$(addprefix img/,$(notdir $(basename $(wildcard fig/*.dot)))))
15 LISTINGS:=$(wildcard listings/*)
16 TEXS:=$(wildcard *.bib)
17 BIBS:=$(wildcard *.tex)
18
19 .PHONY: all clean
20 .SECONDARY: $(addsuffix .fmt,$(DOCS)) $(FIGURES)
21
22 all: $(addprefix output/,$(addsuffix .pdf,$(DOCS)))
23
24 output/%.fmt: %.pre
25 $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $<)" "&$(LATEX) $<\dump"
26
27 output/%.pdf: %.mlog
28 if $(GREP) -iFq 'Rerun' $<; then $(LATEX) $(LATEXFLAGS) $(basename $<); fi
29
30 %.mlog: %.tex output/%.fmt $(BIBS) $(TEXS) $(FIGURES) $(LISTINGS)
31 $(LATEX) $(LATEXFLAGS) $<
32 if $(GREP) -q '^\\bibdata{' $(basename $<).aux; then $(BIBTEX) $(BIBTEXFLAGS) $(basename $<); fi
33 if $(GREP) -q '\@istfilename' $(basename $<).aux; then $(MAKEGLOSSARIES) $(MAKEGLOSSARIESFLAGSFLAGS) $(basename $<); fi
34 $(LATEX) $(LATEXFLAGS) $< | tee $@
35
36 img/%.png: fig/%.dot
37 dot -Tpng $< > $@
38
39 clean:
40 $(RM) output/* $(FIGURES)