-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
58 lines (42 loc) · 1.34 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
TIMESTAMP := $(shell date +%s)
SRC_DIR := src
DIST_DIR := dist
CSS_FILES := $(wildcard $(SRC_DIR)/css/*.css)
MIN_CSS := $(DIST_DIR)/fuqdocs.min.css
JS_FILES := $(wildcard $(SRC_DIR)/js/*.js) $(wildcard $(SRC_DIR)/js/*.js.es6)
MIN_JS := $(DIST_DIR)/fuqdocs.min.js
EXTRA_FILES_SRC := $(SRC_DIR)/robots.txt $(SRC_DIR)/favicon.ico
EXTRA_FILES_DIST := $(DIST_DIR)/robots.txt $(DIST_DIR)/favicon.ico
.PHONY: build
$(DIST_DIR):
@echo "# creating dist directory: $(DIST_DIR)"
@mkdir -p $(DIST_DIR)
$(MIN_JS): $(JS_FILES)
@echo "# minifying js: $^"
uglifyjs \
--compress --mangle --safari10 \
--source-map "url='$(patsubst $(DIST_DIR)/%,%,$(MIN_JS)).map'" \
--output $(MIN_JS) \
-- $(JS_FILES)
$(MIN_CSS): $(CSS_FILES)
@echo "# minifying css"
uglifycss \
--output $(MIN_CSS) \
$(CSS_FILES)
$(DIST_DIR)/index.html: $(MIN_JS) $(MIN_CSS) $(SRC_DIR)/index.html
@echo "# regenerating index.html"
cat $(SRC_DIR)/index.html | \
sed -e 's/{{ TIMESTAMP }}/$(TIMESTAMP)/g' \
> $(DIST_DIR)/index.html
$(EXTRA_FILES_DIST): $(EXTRA_FILES_SRC)
@echo "# copy extra files"
cp $^ $(DIST_DIR)
build: $(DIST_DIR) $(DIST_DIR)/index.html $(EXTRA_FILES_DIST)
cp src/monaco.html dist
.PHONY: clean
clean: $(DIST_DIR)
rm $(DIST_DIR)/*
.PHONY: server
server: $(DIST_DIR)
@echo "# url: http://localhost:3456/"
cd $(DIST_DIR) && pwd && python3 -m http.server 3456