diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-02-12 15:45:23 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-02-12 17:07:12 +0100 |
| commit | 638706371ba3e4091fafb9da7509b51b523cc36d (patch) | |
| tree | bb1e347679d54bf239e40cd38431dd992fa3e55b /course/common.mk | |
| parent | 9ff80cb28ac76cbccc5fd927b3fa14c999d5599c (diff) | |
| download | SOS-638706371ba3e4091fafb9da7509b51b523cc36d.tar.gz SOS-638706371ba3e4091fafb9da7509b51b523cc36d.zip | |
add course material build tooling
Diffstat (limited to 'course/common.mk')
| -rw-r--r-- | course/common.mk | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/course/common.mk b/course/common.mk new file mode 100644 index 0000000..b55ecdf --- /dev/null +++ b/course/common.mk @@ -0,0 +1,51 @@ +# The full path to the Makefile +MAKEFILE_PATH ?= $(abspath $(lastword $(MAKEFILE_LIST))) +# The path to the directory of the Makefile +MAKEFILE_DIR ?= $(dir $(MAKEFILE_PATH)) + +BUILDDIR := $(MAKEFILE_DIR)build + +IMGS := $(wildcard img/*) +COMMON_IMAGES := $(MAKEFILE_DIR)/images + +PANDOC_DIR := $(MAKEFILE_DIR)pandoc +PANDOC_FILTER_DIR := $(PANDOC_DIR)/filters +PANDOC_TEMPLATE_DIR := $(PANDOC_DIR)/templates + +PANDOC_FILTER_OPTIONS := --lua-filter "$(PANDOC_FILTER_DIR)/center-img.lua" +PANDOC_FILTER_OPTIONS += --lua-filter "$(PANDOC_FILTER_DIR)/include-files.lua" +PANDOC_FILTER_OPTIONS += --lua-filter "$(PANDOC_FILTER_DIR)/meta-vars.lua" +PANDOC_FILTER_OPTIONS += --filter pandoc-plot +COMMON_PANDOC_OPTIONS := --resource-path="$(COMMON_IMAGES):." $(PANDOC_FILTER_OPTIONS) +PANDOC := pandoc $(COMMON_PANDOC_OPTIONS) + +SLIDES_OPTIONS := --slide-level 2 -t beamer +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 + +VERBOSE ?= @ +ifeq ($(VERBOSE), @) + RUBBER_OPTS += --quiet + SILENCE := > /dev/null +endif + +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))/$@ + +slides_handout.pdf: slides_handout.md $(wildcard img/*) $(MAKEFILE_LIST) + @echo "building $@" + $(VERBOSE)$(PANDOC) $(SLIDES_OPTIONS) $< -M handout -o $@ + +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),$(@)) + +%.pdf: %.md $(wildcard img/*) $(MAKEFILE_LIST) + @echo "building $@" + $(VERBOSE)$(PANDOC) -f markdown $< -o $@ |
