-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
73 lines (54 loc) · 2.1 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
67
68
69
70
71
72
SCSS_COMPILER := sass --no-source-map
PYTHON_3 := python3
CHEERP := /opt/cheerp/bin/clang++
TSC := tsc
.PHONY: all, clean, html, run
CHEERP_LIB := src/lib/cheerp
CHEERP_BASE_NAME := chscript
TS_BASE_NAME := tscript
CHEERP_FLAGS := -target cheerp -O2 -I$(CHEERP_LIB)
TSC_FLAGS := --target es6
BLOG_ENTRIES := $(shell find src/blog -type f -name config.yml)
BLOG_FOLDERS := $(patsubst %config.yml, %, $(BLOG_ENTRIES))
BLOG_BUILD_FOLDERS := $(patsubst src%, build%, $(BLOG_FOLDERS))
BLOG_HTMLS := $(patsubst %, %index.html, $(BLOG_BUILD_FOLDERS))
BLOG_CHJS := $(patsubst %, %$(CHEERP_BASE_NAME).js, $(BLOG_BUILD_FOLDERS))
BLOG_TS := $(patsubst %, %$(TS_BASE_NAME).js, $(BLOG_BUILD_FOLDERS))
BLOG_MEDIA := $(patsubst %, %media, $(BLOG_BUILD_FOLDERS))
STYLES := $(shell find src -type f -name style_*.scss)
BUILD_STYLES := $(patsubst %.scss, %.css, $(patsubst src/style%, build%,$(STYLES)))
all: | html $(BUILD_STYLES) $(BLOG_HTMLS) $(BLOG_MEDIA) $(BLOG_CHJS) $(BLOG_CHWASM) $(BLOG_TS)
build/%.css: src/style/%.scss src/style/style.scss
$(SCSS_COMPILER) $< $@
TEMPLATE_COMPILER := src/site_gen.py
html:
mkdir -p build
$(PYTHON_3) $(TEMPLATE_COMPILER)
cp src/utilities.js build/utilities.js
cp src/favicon.ico build/favicon.ico
cp -r src/res build/
BLOG_TEMPLATE_COMPILER := src/blog/blog_gen.py
build/blog/%index.html: src/blog/%index.html src/blog/% $(BLOG_TEMPLATE_COMPILER)
mkdir -p build/blog/$* # TODO fix this redundancy
$(PYTHON_3) $(BLOG_TEMPLATE_COMPILER) src/blog/$*
LIB_FILES = $(shell find $(CHEERP_LIB) -type f -name *.hpp)
build/blog/%$(CHEERP_BASE_NAME).js: src/blog/%$(CHEERP_BASE_NAME).cpp $(LIB_FILES) #build/blog/%
mkdir -p build/blog/$*
$(CHEERP) $(CHEERP_FLAGS) -o $@ $<
build/blog/%$(TS_BASE_NAME).js: src/blog/%$(TS_BASE_NAME).ts
mkdir -p build/blog/$*
$(TSC) $(TSC_FLAGS) --outFile $@ $<
build/blog/%media: src/blog/%media
mkdir -p build/blog/$*
cp -r $< build/blog/$*
# Empty rules
build/blog/%$(CHEERP_BASE_NAME).js:;
build/blog/%$(CHEERP_BASE_NAME).wasm:;
build/blog/%$(TS_BASE_NAME).js:;
build/blog/%media:;
#build/blog/%/:
#mkdir -p $@
clean:
rm -rf build
run:
$(PYTHON_3) server.py