.PHONY: all clean MARKDOWN_FILES := $(wildcard *.md) TEX_FILES := $(patsubst %.md,build/%.tex,$(MARKDOWN_FILES)) PDF_FILES := $(patsubst %.md,build/%.pdf,$(MARKDOWN_FILES)) PLANTUML_FILES := $(wildcard res/plantuml/*.plantuml) PLANTUML_OUTPUTS := $(patsubst %.plantuml,build/%.png,$(PLANTUML_FILES)) .SECONDARY: $(TEX_FILES) $(PLANTUML_OUTPUTS) all: $(PDF_FILES) clean: $(RM) -r build build: mkdir -p build build/res/plantuml: mkdir -p build/res/plantuml lua-filters/minted/minted.lua: git submodule update --init build/%.tex: %.md build beamer-template.tex lua-filters/minted/minted.lua pandoc "$<" \ --from markdown \ --to beamer \ --template ./beamer-template.tex \ --lua-filter ./lua-filters/minted/minted.lua \ --biblatex \ -so "$@" build/%.pdf: build/%.tex bibliography.bib $(PLANTUML_OUTPUTS) cd build; latexmk \ -xelatex \ -interaction=nonstopmode \ -shell-escape \ -8bit \ -file-line-error \ -output-directory=./build \ "$*.tex" cp build/build/$*.pdf build build/res/plantuml/%.png: res/plantuml/%.plantuml build/res/plantuml PLANTUML_LIMIT_SIZE=8192 plantuml -tpng "$<" -o "$(PWD)/build/res/plantuml"