/
Makefile
80 lines (62 loc) · 2.9 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
ifeq ("$(ELM)","")
ELM=elm
endif
ifeq ("$(ELMLIVE)", "")
ELMLIVE=elm-live
endif
ifeq ("$(UGLIFYJS)", "")
UGLIFYJS=uglifyjs
endif
BUILD_DIR=server/dist/js/
all: client-dev unlogged-dev server-dev
release: client-release unlogged-release server-release
.NOTPARALLEL: client-dev client-release client-watch
client-dev: client/src/**
@/bin/echo -e "\033[32;1m Compiling\033[0m client (debug)"
@cp client/src/Log.elm.debug client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELM) make src/Main.elm --output ../$(BUILD_DIR)/main.js
@/bin/echo -e "\033[32;1m Finished\033[0m client (debug)"
client-release: client/src/**
@/bin/echo -e "\033[32;1m Compiling\033[0m client (release)"
@cp client/src/Log.elm.release client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELM) make src/Main.elm --optimize --output ../$(BUILD_DIR)/main.tmp.js
@cd client && $(UGLIFYJS) ../$(BUILD_DIR)/main.tmp.js --compress 'pure_funcs="F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > ../$(BUILD_DIR)/main.min.js
@/bin/echo -e "\033[32;1m Finished\033[0m client (release)"
client-watch:
@/bin/echo -e "\033[32;1m Watching\033[0m client"
@cp client/src/Log.elm.debug client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELMLIVE) src/Main.elm -p 7000 -d ../$(BUILD_DIR)/ -- --output ../$(BUILD_DIR)/main.js
unlogged-dev: client/src/**
@/bin/echo -e "\033[32;1m Compiling\033[0m unlogged (debug)"
@cp client/src/Log.elm.debug client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELM) make src/Unlogged.elm --output ../$(BUILD_DIR)/unlogged.js
@/bin/echo -e "\033[32;1m Finished\033[0m unlogged (debug)"
unlogged-release: client/src/**
@/bin/echo -e "\033[32;1m Compiling\033[0m unlogged (release)"
@cp client/src/Log.elm.release client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELM) make src/Unlogged.elm --optimize --output ../$(BUILD_DIR)/unlogged.tmp.js
@cd client && $(UGLIFYJS) ../$(BUILD_DIR)/unlogged.tmp.js --compress 'pure_funcs="F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > ../$(BUILD_DIR)/unlogged.min.js
@/bin/echo -e "\033[32;1m Finished\033[0m unlogged (release)"
unlogged-watch:
@/bin/echo -e "\033[32;1m Watching\033[0m unlogged"
@cp client/src/Log.elm.debug client/src/Log.elm
@mkdir -p $(BUILD_DIR)
@cd client && $(ELMLIVE) src/Unlogged.elm -p 7000 -d ../$(BUILD_DIR)/ -- --output ../$(BUILD_DIR)/unlogged.js
server-dev:
@cd server && cargo build
server-release:
@cd server && cargo build --release
clean-client:
@/bin/echo -e "\033[32;1m Cleaning\033[0m client"
@rm -rf $(BUILD_DIR)
@/bin/echo -e "\033[32;1m Cleaned\033[0m client"
clean-server:
@/bin/echo -e "\033[32;1m Cleaning\033[0m server"
@cd server && cargo clean
@/bin/echo -e "\033[32;1m Cleaned\033[0m server"
clean: clean-client clean-server