-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
97 lines (70 loc) · 2.78 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
96
97
.PHONY: test-server test-html-client run-server-dev run-html-client-dev run install release help
help:
@echo 'Thanks for your contribution, make can help you more!'
@echo 'Command list:'
@echo ' make run-server-dev'
@echo ' run the server in development mode'
@echo ' make run-html-client-dev'
@echo ' run the html client in development mode'
@echo ' make install'
@echo ' build both server and client into bin'
@echo ' make release'
@echo ' build release packages for multiple platform'
test-server:
echo 'TODO'
test-html-client:
echo 'TODO'
run-server-dev: main/.env bin/www
cd main && go run server.go
run-html-client-dev: client/html/node_modules
cd client/html && npm run start
run: bin/server bin/.env bin/www bin/templates
cd bin && chmod +x server && ./server
install: bin/server bin/.env bin/www bin/templates
@echo 'Install success, please setup env (or edit bin/.env) for config and run.'
release: releases/cell-mac.zip releases/cell-linux.zip releases/cell-win64.zip releases/cell-win32.zip
@echo 'Build release packages success:'
@echo ' releases/cell-mac.zip'
@echo ' releases/cell-linux.zip'
@echo ' releases/cell-win32.zip'
@echo ' releases/cell-win64.zip'
releases/cell-mac.zip: releases/cell-mac bin/www bin/templates releases/.env
zip -r releases/cell-mac.zip releases/cell-mac bin/templates bin/www releases/.env
releases/cell-linux.zip: releases/cell-linux bin/www bin/templates releases/.env
zip -r releases/cell-linux.zip releases/cell-linux bin/templates bin/www releases/.env
releases/cell-win64.zip: releases/cell-win64 bin/www bin/templates releases/.env
zip -r releases/cell-win64.zip releases/cell-win64 bin/templates bin/www releases/.env
releases/cell-win32.zip: releases/cell-win32 bin/www bin/templates releases/.env
zip -r releases/cell-win32.zip releases/cell-win32 bin/templates bin/www releases/.env
releases/cell-mac: releases
GOOS=darwin GOARCH=amd64 go build -o releases/cell-mac main/server.go
releases/cell-linux: releases
GOOS=linux GOARCH=amd64 go build -o releases/cell-linux main/server.go
releases/cell-win64: releases
GOOS=windows GOARCH=amd64 go build -o releases/cell-win64.exe main/server.go
releases/cell-win32: releases
GOOS=windows GOARCH=386 go build -o releases/cell-win32.exe main/server.go
releases/.env: releases
cp -r .env.example releases/.env
releases:
-mkdir releases
main/.env:
cp .env.example main/.env
client/html/node_modules:
cd client/html && npm install
bin/.env: bin
cp .env.example bin/.env
bin/server: bin
go build -o bin/server main/server.go
bin/www: bin client/html/build
cp -r client/html/build bin/www
bin/templates: bin
cp -r templates bin/
bin:
mkdir bin
client/html/build: client/html/node_modules
cd client/html && npm run build
clean:
-rm -rf bin
-rm -rf releases
-rm -rf client/html/build