# Przemoc's Makefile template for LaTeX docs # FILES/DIRS BIBDIR := bibl TEXDIR := text vpath %.latex $(TEXDIR) TEXFILES := $(wildcard *.tex $(TEXDIR)/*.tex) OUT := main.pdf TEMPDIR := temp # DYNAMIC LOG = $(if $(TEMPDIR),$(TEMPDIR)/,)$(notdir $(<:.tex=.log)) ifneq ($(TEMPDIR),) override PDFTEXOPTS += -output-directory $(TEMPDIR) BYPRODUCTS := $(wildcard $(TEMPDIR)/*) else BYPRODUCTS := $(TEXFILES:.tex=.aux) \ $(TEXFILES:.tex=.log) \ $(TEXFILES:.tex=.out) \ $(TEXFILES:.tex=.toc) endif # SETTINGS BIBTEX := bibtex PDFTEX := pdflatex PDFTEXOPTS := -interaction nonstopmode -file-line-error # ACTIONS all: $(OUT) .PHONY: all clean $(OUT): $(TEXFILES) $(OUT): $(if $(TEMPDIR), $(TEMPDIR) $(TEMPDIR)/$(TEXDIR) $(TEMPDIR)/$(BIBDIR)) $(TEMPDIR): mkdir -p $(TEMPDIR) $(TEMPDIR)/$(TEXDIR): mkdir -p $(TEMPDIR)/$(TEXDIR) $(TEMPDIR)/$(BIBDIR): mkdir -p $(TEMPDIR)/$(BIBDIR) %.pdf: %.tex $(if $(TEMPDIR), \ cp $(BIBDIR)/* $(TEMPDIR)/$(BIBDIR)/ \ ) $(RM) $(LOG) while ! test -f $(LOG) || grep -q 'Rerun to get cross-references right.' $(LOG); do \ $(PDFTEX) $(PDFTEXOPTS) -draftmode $<; \ done $(if $(TEMPDIR)$(BIBDIR), cd $(TEMPDIR)/ &&) $(BIBTEX) $(<:.tex=.aux) $(PDFTEX) $(PDFTEXOPTS) $< # cp+rm for Evince, autoreload is screwed if mv is used # Okular doesn't have a problem when dealing with rename(2) $(if $(TEMPDIR), \ cp $(TEMPDIR)/$(notdir $@) .; \ rm $(TEMPDIR)/$(notdir $@); \ ) clean: $(RM) -r $(OUT) $(BYPRODUCTS) FORCE: