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)))))
+MAKEGL?=makeglossaries
+MAKEGLFLAGS?=
+MAKEIDX?=makeindex
+MAKEIDXFLAGS?=
+DOT?=dot
+DOTFLAGS?=-Tpng
+LATEXFLAGS:=-file-line-error -halt-on-error
+
+FIGURES:=$(patsubst fig/%.dot,img/%.png,$(wildcard fig/*.dot))
LISTINGS:=$(wildcard listings/*)
TEXS:=$(wildcard *.bib)
BIBS:=$(wildcard *.tex)
.PHONY: all clean
-.SECONDARY: $(addsuffix .fmt,$(DOCS)) $(FIGURES)
+.SECONDARY: $(DOCS:%=%.fmt) $(FIGURES)
-all: $(addsuffix .pdf,$(DOCS))
+all: $(DOCS:%=%.pdf)
%.fmt: %.pre
$(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $<)" "&$(LATEX) $<\dump"
%.mlog: %.tex %.fmt $(BIBS) $(TEXS) $(FIGURES) $(LISTINGS)
$(LATEX) $(LATEXFLAGS) $<
if $(GREP) -q '^\\bibdata{' $(basename $<).aux; then $(BIBTEX) $(BIBTEXFLAGS) $(basename $<); fi
- if $(GREP) -q '\@istfilename' $(basename $<).aux; then $(MAKEGLOSSARIES) $(MAKEGLOSSARIESFLAGSFLAGS) $(basename $<); fi
+ if $(GREP) -q '\@istfilename' $(basename $<).aux; then $(MAKEGL) $(MAKEGLFLAGS) $(basename $<); fi
+ if [ -f $(basename $<).idx ]; then $(MAKEIDX) $(MAKEIDXFLAGS) $(basename $<); fi
$(LATEX) $(LATEXFLAGS) $< | tee $@
img/%.png: fig/%.dot
- dot -Tpng $< > $@
+ $(DOT) $(DOTFLAGS) $< > $@
-clean: $(addprefix clean-,$(DOCS))
- $(RM) -v $(FIGURES)
+clean: $(DOCS:%=clean-%)
+ $(RM) $(FIGURES)
clean-%:
- $(RM) -v $(addprefix $(@:clean-=).,acn acr alg aux bbl blg fmt glg glo\
- gls ist lof log lol lot out pdf tdo toc)
+ $(RM) $(addprefix $(@:clean-%=%).,acn acr alg aux bbl blg idl idx ilg ind\
+ fmt glg glo gls ist loa lof log lol lot mlog out pdf tdo toc)