aboutsummaryrefslogtreecommitdiff
path: root/course/common.mk
blob: b55ecdf424ab40aa1164230515d801dde577fd6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 $@