8aeb1d6c4de3a9a276d784468454cb34145ffa54
[msc-thesis1617.git] / presentation / Makefile
1 DOCS:=presentation
2 GREP?=grep
3 LATEX?=pdflatex
4 BIBTEX?=bibtex
5 BIBTEXFLAGS:=
6 MAKEGL?=makeglossaries
7 MAKEGLFLAGS?=
8 MAKEIDX?=makeindex
9 MAKEIDXFLAGS?=
10 DOT?=dot
11 DOTFLAGS?=-Tpng
12 LATEXFLAGS:=-file-line-error -halt-on-error
13
14 FIGURES:=$(patsubst fig/%.dot,img/%.png,$(wildcard fig/*.dot))
15 LISTINGS:=$(wildcard listings/*)
16 TEXS:=$(wildcard *.bib)
17 BIBS:=$(wildcard *.tex)
18
19 .PHONY: all clean
20 .SECONDARY: $(DOCS:%=%.fmt) $(FIGURES)
21
22 all: $(DOCS:%=%.pdf)
23
24 %.fmt: %.pre
25 $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $<)" "&$(LATEX) $<\dump"
26
27 %.pdf: %.mlog
28 if grep -Fiq "Rerun" $<; then $(LATEX) $(LATEXFLAGS) $(basename $<); fi
29
30 %.mlog: %.tex %.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 $(MAKEGL) $(MAKEGLFLAGS) $(basename $<); fi
34 if [ -f $(basename $<).idx ]; then $(MAKEIDX) $(MAKEIDXFLAGS) $(basename $<); fi
35 $(LATEX) $(LATEXFLAGS) $< | tee $@
36
37 img/%.png: fig/%.dot
38 $(DOT) $(DOTFLAGS) $< > $@
39
40 clean: $(DOCS:%=clean-%)
41 $(RM) $(FIGURES)
42
43 clean-%:
44 $(RM) $(addprefix $(@:clean-%=%).,acn acr alg aux bbl blg idl idx ilg ind\
45 fmt glg glo gls ist loa lof log lol lot mlog nav out pdf snm tdo toc)