-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
66 lines (42 loc) · 1.45 KB
/
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
all: generate
run: generate
( cd out/dist; python3 -m http.server )
clean:
rm -rf ./out/
rebuild: clean generate
out:
mkdir -p $@
out/posts:
mkdir -p $@
out/dist:
mkdir -p $@
# blogo program
SRC_BLOGO := $(wildcard bin/*.go)
out/blogo: $(SRC_BLOGO) | out
go build -o $@ $(SRC_BLOGO)
# assets
out/dist/%: html/% | out/dist
cp -T -r $^ $@
SRC_HTML := $(wildcard html/**)
OUT_HTML := $(patsubst html/%,out/dist/%,$(SRC_HTML))
# blog contents
SRC_TEMPLATES := $(wildcard templates/*.template)
out/posts/%.post: posts/%.md out/blogo $(SRC_TEMPLATES) | out/posts
out/blogo postify $<
out/dist/%.html: posts/%.md out/posts/%.post out/blogo | out/dist
out/blogo gen-post $< > $@
SRC_POSTS := $(wildcard posts/*.md)
GEN_POSTS := $(patsubst posts/%.md,out/posts/%.post,$(SRC_POSTS))
OUT_POSTS := $(patsubst posts/%.md,out/dist/%.html,$(SRC_POSTS))
.PRECIOUS: $(GEN_POSTS)
out/dist/index.html: $(SRC_POSTS) out/blogo $(SRC_TEMPLATES) | out/dist
out/blogo gen-index > $@
out/dist/all_posts.html: $(SRC_POSTS) out/blogo $(SRC_TEMPLATES) | out/dist
out/blogo gen-all-posts > $@
out/dist/all_tags.html: $(SRC_POSTS) out/blogo $(SRC_TEMPLATES) | out/dist
out/blogo gen-all-tags > $@
out/dist/feed.rss: $(SRC_POSTS) out/blogo $(SRC_TEMPLATES) | out/dist
out/blogo gen-feed > $@
generate: $(OUT_POSTS) out/blogo out/dist/index.html out/dist/all_posts.html out/dist/all_tags.html out/dist/feed.rss $(OUT_HTML) | out/dist
out/blogo gen-tag
print-% : ; @echo $* = $($*)