aboutsummaryrefslogtreecommitdiff
path: root/course/common.mk
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-07-20 20:36:44 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-07-20 20:39:07 +0200
commit00f9fdf7db792d942180a31253b349803d5683cd (patch)
tree972da51a45a4c804eb0d6706e2db1d96d3a7a69f /course/common.mk
parentdf66d76b5b29703f1822beda897dd92c5f90af5e (diff)
downloadSOS-00f9fdf7db792d942180a31253b349803d5683cd.tar.gz
SOS-00f9fdf7db792d942180a31253b349803d5683cd.zip
add first version of the SOS workbook
Diffstat (limited to 'course/common.mk')
-rw-r--r--course/common.mk39
1 files changed, 27 insertions, 12 deletions
diff --git a/course/common.mk b/course/common.mk
index b55ecdf..c9d610d 100644
--- a/course/common.mk
+++ b/course/common.mk
@@ -1,12 +1,10 @@
# The full path to the Makefile
-MAKEFILE_PATH ?= $(abspath $(lastword $(MAKEFILE_LIST)))
+MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
# The path to the directory of the Makefile
-MAKEFILE_DIR ?= $(dir $(MAKEFILE_PATH))
+MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
-BUILDDIR := $(MAKEFILE_DIR)build
-
-IMGS := $(wildcard img/*)
-COMMON_IMAGES := $(MAKEFILE_DIR)/images
+LATEX_BASE := $(MAKEFILE_DIR)
+COMMON_IMAGES := $(MAKEFILE_DIR)images
PANDOC_DIR := $(MAKEFILE_DIR)pandoc
PANDOC_FILTER_DIR := $(PANDOC_DIR)/filters
@@ -24,17 +22,24 @@ SLIDES_OPTIONS += --pdf-engine-opt=--shell-escape
SLIDES_OPTIONS += --metadata-file=$(PANDOC_DIR)/defaults/slides-metadata.yml
SLIDES_OPTIONS += --template=$(PANDOC_TEMPLATE_DIR)/beamer.tex
+RUBBER_OPTS := --into .build --pdf --shell-escape -I "$(LATEX_BASE)" -I "$(COMMON_IMAGES)"
+
+LATEX_PROG ?= pdflatex
+LATEX = TEXINPUTS=$(LATEX_BASE) $(LATEX_PROG)
+LATEX_OPTS := -interaction=nonstopmode -shell-escape -output-directory=.build/
+
VERBOSE ?= @
ifeq ($(VERBOSE), @)
RUBBER_OPTS += --quiet
SILENCE := > /dev/null
endif
+TEX_SRC := $(wildcard *.tex)
+MD_SRC := $(wildcard *.md)
+
slides.pdf: slides.md $(wildcard img/*) $(MAKEFILE_LIST)
@echo "building $@"
- $(VERBOSE)[ ! -d "$(BUILDDIR)/$(subst $(MAKEFILE_DIR),,$(CURDIR))" ] && \
- mkdir -p $(BUILDDIR)/$(subst $(MAKEFILE_DIR),,$(CURDIR)) || true
- $(VERBOSE)$(PANDOC) $(SLIDES_OPTIONS) $< -o $(BUILDDIR)/$(subst $(MAKEFILE_DIR),,$(CURDIR))/$@
+ $(VERBOSE)$(PANDOC) $(SLIDES_OPTIONS) $< -o $@
slides_handout.pdf: slides_handout.md $(wildcard img/*) $(MAKEFILE_LIST)
@echo "building $@"
@@ -42,10 +47,20 @@ slides_handout.pdf: slides_handout.md $(wildcard img/*) $(MAKEFILE_LIST)
slides%.pdf: slides%.md $(wildcard slides.md) $(wildcard img/*) $(MAKEFILE_LIST)
@echo "building $@"
- @[ ! -d $(BUILDDIR)$(subst $(MAKEFILE_DIR),,$(PWD)) ] && \
- mkdir -p $(BUILDDIR)$(subst $(MAKEFILE_DIR),,$(PWD))
- $(VERBOSE)$(PANDOC) $(SLIDES_OPTIONS) $< -o $(subst $(MAKEFILE_DIR),$(BUILDDIR),$(@))
+ $(VERBOSE)$(PANDOC) $(SLIDES_OPTIONS) $< -o $@
%.pdf: %.md $(wildcard img/*) $(MAKEFILE_LIST)
@echo "building $@"
$(VERBOSE)$(PANDOC) -f markdown $< -o $@
+
+.PRECIOUS: .build/%.pdf
+.build/%.pdf: %.tex .FORCE $(MAKEFILE_LIST)
+ @mkdir -p .build
+ $(VERBOSE)rubber $(RUBBER_OPTS) --force --jobname $(@:.build/%.pdf=%) $<
+
+%.pdf: .build/%.pdf
+ @echo "built $@"
+ $(VERBOSE)cp .build/$@ $@
+
+.PHONY: .FORCE
+.FORCE: