41 lines
1.1 KiB
Makefile
41 lines
1.1 KiB
Makefile
default: pdf
|
|
|
|
# Constants.
|
|
rootname = main
|
|
rootfile = src/$(rootname).tex
|
|
outdir = build
|
|
outfile = $(outdir)/$(rootname).pdf
|
|
|
|
# Compression with ghostscript.
|
|
compress = gs -sDEVICE=pdfwrite -dPDFSETTINGS=/$(1) -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$(outdir)/$(rootname)-$(1).pdf $(outfile)
|
|
|
|
# Latex command to build pdf file.
|
|
latexmk = TEXINPUTS=.:./tlsflyleaf/:./src/: latexmk -lualatex -f -latexoption=-shell-escape -interaction=nonstopmode $< -outdir=$(outdir) $(1) $(rootfile)
|
|
|
|
# Build PDF version adapted to printers.
|
|
printer: pdf
|
|
$(call compress,printer)
|
|
|
|
# Build PDF version adapted to screens.
|
|
screen: pdf
|
|
$(call compress,screen)
|
|
|
|
# Build PDF version of the thesis manuscript.
|
|
pdf: $(rootfile)
|
|
$(call latexmk)
|
|
|
|
# Watch and automatically recompile when a file changes.
|
|
watch: $(rootfile)
|
|
$(call latexmk,-pvc -view=none)
|
|
|
|
# Remove intermediate build artifacts.
|
|
clean:
|
|
latexmk -c -outdir=$(outdir) $(rootfile)
|
|
|
|
# Remove all build artifacts.
|
|
clean-all:
|
|
rm -rf $(outdir)
|
|
|
|
# Phony targets will always trigger a re-run.
|
|
.PHONY: clean-all clean watch pdf
|