books/Template
Template
1
0
Template/Makefile
2025-09-21 13:37:48 +02:00

55 lines
1.5 KiB
Makefile

COMPILER := pdflatex
TEXINPUTS := ./styles/:$(TEXINPUTS)
COMPILER := TEXINPUTS=$(TEXINPUTS) $(COMPILER)
ifndef VERBOSE
PIPE := 1>/dev/null 2>/dev/null
INDENT := 2>&1 | sed 's/^/ /'
COMPILER := $(COMPILER) -interaction=nonstopmode
endif
check_error = \
if [ ! $(1) -eq 0 ]; then \
cat '../out/$(2).log' | \
perl -0777 -ne 'print m/\n! .*?\nl\.\d.*?\n.*?(?=\n)/gs' $(INDENT); \
exit 1; \
fi
createout = mkdir -p out && mkdir -p out/chapters
compile = cd src && ${COMPILER} -shell-escape -file-line-error -synctex=1 \
-output-format=pdf -output-directory=../out .formats/${1}.tex ${PIPE} || \
$(call check_error, $$?,$(1))
.PHONY: clean book
.PRECIOUS: %.pdf
.SECONDEXPANSION:
%.pdf: src/.formats/%.tex
@echo "Building $*.pdf"
@$(call createout)
@echo " Compiling $*.tex"
@$(call compile,$*)
%.odt: src/%.tex
@echo "Building $*.odt"
@echo " Compiling $*.tex"
@cd src && pandoc -f latex -t odt -o ../out/book.odt book.tex
%.epub: src/%.tex
@echo "Building $*.epub"
@echo " Compiling $*.tex"
@cd src && pandoc -f latex -o ../out/book.epub book.tex
%.clean:
@echo "cleaning"
@rm -rfd out/*.4ct out/*.4tc out/*.dvi out/*.idv out/*.tex out/*.tmp out/*.xref out/*.svg out/*.lg out/*.4og out/*.aux out/*.bbl out/*.blg out/*.log out/*.out out/*.synctex.gz out/**/*.png \
out/*.nav out/*.run.xml out/*.snm out/*.toc out/*.vrb out/*-blx.bib out/**/
clean:
@rm -rf out
book: oneside.pdf twosides.pdf ebook.pdf $$@.odt $$@.epub $$@.clean