-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
95 lines (68 loc) · 2.17 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
92
93
94
95
CWD :=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
DIST := dist
HTDOCS := htdocs
GO_DIR := src/go
JS_DIR := src/js
TYPE_LIBS := typings
HTML_DIR := src/html
GO_HOME = go-libs/
CERTS_DIR = certs
BUILD_DIR = build
BUILD_JS_DIR = ${BUILD_DIR}/js
BUILD_GO_DIR = ${BUILD_DIR}/go
GO_DEPS = ${CWD}/go-deps
OUT_FILE = warp-engine.js
MIN_OUT_FILE = warp-engine.min.js
.PHONY: all clean distclean deps
all:: ${HTDOCS}
deps:: npm tsd goget
${BUILD_GO_DIR}:
mkdir -p ${BUILD_GO_DIR}
${GO_HOME}:
mkdir -p ${GO_HOME}
${GO_DEPS}:
mkdir -p ${GO_DEPS}
go : ${BUILD_GO_DIR} ${GO_HOME}
# do nothing
prep : ${GO_HOME} ${HTDOCS}
cp -r ${GO_DIR}/* ${GO_HOME}
cp -r ${HTDOCS} ${GO_HOME}
dev-app: prep
cd ${GO_HOME} && GOPATH=${GO_DEPS} goapp serve
deploy : prep
cd ${GO_HOME} && GOPATH=${GO_DEPS} goapp deploy -application engine-room
${BUILD_JS_DIR}:
mkdir -p ${BUILD_JS_DIR}
tsfiles = $(shell find src/js -name '*.ts')
js : ${BUILD_JS_DIR} ${tsfiles}
cp ${JS_DIR}/*.ts ${BUILD_JS_DIR}
cp -r ${TYPE_LIBS} ${BUILD_JS_DIR}
cd ${BUILD_JS_DIR} && tsc --sourceMap --target es5 --module commonjs index.ts
cd ${BUILD_JS_DIR} && browserify index.js --debug | exorcist index.js.map > ${OUT_FILE}
${HTDOCS}: js
mkdir -p ${HTDOCS}
mkdir -p ${HTDOCS}/lib
mkdir -p ${HTDOCS}/lib/keymap
cp lib/js/codemirror-5.8/lib/* ${HTDOCS}/lib/
cp lib/js/codemirror-5.8/mode/javascript/javascript.js ${HTDOCS}/lib/codemirror-javascript-mode.js
cp lib/js/codemirror-5.8/keymap/* ${HTDOCS}/lib/keymap/
cp -r ${BUILD_JS_DIR}/* ${HTDOCS}
cp ${JS_DIR}/worker.js ${HTDOCS}
cp -r ${HTML_DIR}/* ${HTDOCS}
minify : js
uglifyjs ${OUT_FILE} --in-source-map ${OUT_FILE}.map --screw-ie8 --source-map ${MIN_OUT_FILE}.map -o ${MIN_OUT_FILE} -p 2 -c -m
dist : minify
mkdir -p ${DIST}
cp ${MIN_OUT_FILE} ${MIN_OUT_FILE}.map ${DIST}
server : ${HTDOCS} npm
node_modules/http-server/bin/http-server ${HTDOCS}
npm :
npm install
tsd :
tsd install
goget : ${GO_DEPS}
#cd ${GO_HOME} && GOPATH=${GO_DEPS} go get golang.org/x/net/context
clean::
-rm -rf ${BUILD_DIR} ${HTDOCS} ${GO_HOME}
distclean:: clean
-rm -rf ${DIST}