forked from nkronlage/JavaScripture
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
91 lines (71 loc) · 1.93 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
CONTENT_FOLDERS = $(shell ls -d content/*)
vpath %.jsdoc $(CONTENT_FOLDERS)
vpath %.ejs templates
OUTPUT=site
TEMP=tmp
JSDOC_FILES = $(shell find content -type f -name '*.jsdoc')
FLAT_JSDOC_FILES = $(notdir $(JSDOC_FILES))
JS_METADATA = $(addprefix $(TEMP)/, $(FLAT_JSDOC_FILES:%.jsdoc=%.json))
CONTENT_HTML = $(addprefix $(OUTPUT)/, $(FLAT_JSDOC_FILES:%.jsdoc=%.html))
OTHER_HTML_SOURCES = \
home.html \
feedback.html \
thankyou.html \
OTHER_HTML = $(addprefix $(OUTPUT)/, $(OTHER_HTML_SOURCES))
STATIC_FILES = \
favicon.ico \
fireworks.ogv \
pic.jpg \
webgl-debug.js \
INPUT_STATIC_FILES = $(addprefix static/, $(STATIC_FILES))
OUTPUT_STATIC_FILES = $(addprefix $(OUTPUT)/, $(STATIC_FILES))
SOURCES = \
$(CONTENT_HTML) \
$(OTHER_HTML) \
$(OUTPUT)/styles.css \
$(OUTPUT)/javascripture.js \
$(OUTPUT_STATIC_FILES) \
TEMPLATES_FILES = \
bottomnav.ejs \
example.ejs \
htmlexample.ejs \
leftnav.ejs \
member.ejs \
membergroup.ejs \
methodgroup.ejs \
object.ejs \
page.ejs \
TEMPLATES = $(addprefix templates/, $(TEMPLATES_FILES))
.PHONY: all clean
all: $(SOURCES)
$(JS_METADATA): tmp/%.json: %.jsdoc
@mkdir -p $(@D)
node makemetadata.js $<
@cmp -s $(TEMP)/new_$(@F) $@; \
if [ $$? -ne 0 ]; then \
mv $(TEMP)/new_$(@F) $@; \
else \
rm $(TEMP)/new_$(@F); \
fi
$(TEMP)/apisets.json : $(JS_METADATA)
node makeapisets.js $^
@cmp -s $(TEMP)/new_$(@F) $@; \
if [ $$? -ne 0 ]; then \
mv $(TEMP)/new_$(@F) $@; \
else \
rm $(TEMP)/new_$(@F); \
fi
$(CONTENT_HTML): site/%.html: %.jsdoc $(TEMP)/apisets.json $(TEMPLATES)
@mkdir -p $(@D)
node makepage.js $<
$(OTHER_HTML): site/%.html: %.ejs $(TEMP)/apisets.json $(TEMPLATES)
node makecustompage.js $<
$(OUTPUT)/javascripture.js: javascripture.ejs $(TEMP)/apisets.json
node makecustompage.js $<
$(OUTPUT)/styles.css: styles.scss
sass styles.scss $(OUTPUT)/styles.css
$(OUTPUT_STATIC_FILES): $(OUTPUT)/%: static/%
cp $< site/
clean:
rm -f $(TEMP)/*
rm -f $(OUTPUT)/*