PANDOC = pandoc LATEX = lualatex LATEX_FLAGS = \ -file-line-error \ -recorder \ -interaction=nonstopmode \ -halt-on-error \ --shell-escape PANDOC_FLAGS = --top-level-division=section PANDOC_DOCX_FLAGS = --reference-doc=pandoc/reference.docx PANDOC_ODT_FLAGS = --reference-doc=pandoc/reference.odt SOFFICE = soffice SOFFICE_FLAGS = --headless MARKDOWN_INPUTS = $(wildcard *.md) .PHONY: all build clean clean-pdf clean-tex clean-odt clean-docx default TEXINPUTS := .:./pkg/:$(TEXINPUTS) export TEXINPUTS default: all all: all-docx all-odt all-pdf all-tex all-tex: $(addsuffix .tex,$(basename $(MARKDOWN_INPUTS))) all-docx: $(addsuffix .docx,$(basename $(MARKDOWN_INPUTS))) all-odt: $(addsuffix .odt,$(basename $(MARKDOWN_INPUTS))) all-pdf: $(addsuffix .pdf,$(basename $(MARKDOWN_INPUTS))) clean: clean-docx clean-odt clean-pdf clean-tex clean-docx: rm -f $(addsuffix .docx,$(basename $(MARKDOWN_INPUTS))) clean-tex: rm -f $(addsuffix .tex,$(basename $(MARKDOWN_INPUTS))) clean-pdf: rm -f \ $(addsuffix .aux,$(basename $(MARKDOWN_INPUTS))) \ $(addsuffix .pdf,$(basename $(MARKDOWN_INPUTS))) \ $(addsuffix .out,$(basename $(MARKDOWN_INPUTS))) \ $(addsuffix .fls,$(basename $(MARKDOWN_INPUTS))) \ $(addsuffix .log,$(basename $(MARKDOWN_INPUTS))) \ $(addsuffix .toc,$(basename $(MARKDOWN_INPUTS))) \ missfont.log clean-odt: rm -f $(addsuffix .odt,$(basename $(MARKDOWN_INPUTS))) %.docx: %.odt $(SOFFICE) $(SOFFICE_FLAGS) --convert-to docx $< %.odt: %.md @echo $< "->" $@ tmpname=$(shell mktemp ~.tmp_XXXXXX.odtpandoc) &&\ $(PANDOC) $(PANDOC_FLAGS) $(PANDOC_ODT_FLAGS) $< -o "$$tmpname" &&\ $(SOFFICE) $(SOFFICE_FLAGS) --convert-to odt "$$tmpname" &&\ rm -f "$$tmpname" &&\ mv "$$(basename "$$tmpname" .odtpandoc).odt" $@ %.pdf: %.tex @echo $< "->" $@ $(LATEX) $(LATEX_FLAGS) $(LATEX_PDF_FLAGS) $< 1>/dev/null $(LATEX) $(LATEX_FLAGS) $(LATEX_PDF_FLAGS) $< 1>/dev/null %.tex: %.md @echo $< "->" $@ $(PANDOC) $(PANDOC_FLAGS) $(PANDOC_TEX_FLAGS) --listings -s $< -o $@