OUT_DIR := out GRAPHS_DIR := graphs CONTENTS_DIR := contents PACKAGES_DIR := packages REFERENCES_DIR := references CONTENTS := $(wildcard $(CONTENTS_DIR)/*.tex) PACKAGES := $(wildcard $(PACKAGES_DIR)/*.sty) REFERENCES := $(wildcard $(REFERENCES_DIR)/*.bib) GRAPHS := $(wildcard $(GRAPHS_DIR)/*.gv) GRAPHS_IMG := $(GRAPHS:$(GRAPHS_DIR)/%.gv=$(OUT_DIR)/%.gv.png) .PHONY: all all: pdf $(OUT_DIR): @mkdir -v $@ $(OUT_DIR)/%.gv.png: $(GRAPHS_DIR)/%.gv | $(OUT_DIR) dot -T png $< -o $@ .PHONY: graphs graphs: $(GRAPHS_IMG) .PHONY: index index: $(OUT_DIR)/main.idx makeindex $^ .PHONY: references references: $(REFERENCES) bibtex $(OUT_DIR)/annexes bibtex $(OUT_DIR)/references .PHONY: inner_pdf inner_pdf: $(CONTENTS) $(PACKAGES) $(REFERENCES) $(GRAPHS) | $(OUT_DIR) pdflatex -output-directory $(OUT_DIR) main.tex .PHONY: pdf pdf: graphs inner_pdf references index make inner_pdf .PHONY: preview preview: pdf @zathura $(OUT_DIR)/main.pdf .PHONY: clean clean: @rm -frv $(OUT_DIR)