74 lines
2.0 KiB
Makefile
74 lines
2.0 KiB
Makefile
|
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 $@
|