-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathMakefile
45 lines (35 loc) · 951 Bytes
/
Makefile
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
#----------------------------#
# Defined individual targets
#----------------------------#
%.pdf: %.md
pandoc $< \
--standalone \
-t latex \
--template article.template.tex \
--pdf-engine xelatex \
-V fontsize=12pt \
-o $(basename $@).tex
latexmk -xelatex $(basename $@)
#----------------------------#
# Defined dual targets
#----------------------------#
# Just create basename targets here
basenames := $(basename $(wildcard *.md))
define DUAL
$(1): $(1).pdf
endef
$(foreach i, $(basenames), $(eval $(call DUAL, $(i))))
#----------------------------#
# Defined phony targets
#----------------------------#
markdowns := $(wildcard *.md)
pdfs := $(patsubst %.md, %.pdf, $(markdowns))
all: $(pdfs)
texs := $(patsubst %.md, %.tex, $(markdowns))
# clean up everything except pdfs
clean:
latexmk -c
rm -rf $(texs)
rm -rf *.nav *.snm *.vrb *.bbl *.run.xml *-blx.bib *.nls *.nlo *.xdv
.DEFAULT_GOAL := all
.PHONY: all clean