-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
108 lines (79 loc) · 2.83 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
98
99
100
101
102
103
104
105
106
107
108
OVERRIDE_CONFIG_FILE := config/override.js
include make/Makefile
LINT_ENABLED := 1
SOURCE_MAP_ENABLED :=
APP_NAME := app
VENDOR_NAME := vendor
APP_DIR := src
CONFIG_DIR := config
FONT_TYPES := *.otf *.eot *.svg *.ttf *.woff *.woff2
COPY_TYPES = *.jpg *.jpe *.jpeg *.png *.gif *.svg *.ico *.html
JS_FILES := $(APP_DIR)/umd/umd-start.js \
$(call rwildcard,$(APP_DIR)/js/,*.js) \
$(APP_DIR)/umd/umd-end.js
WATCH_FILES := '$(APP_DIR)/**/*' '$(CONFIG_DIR)/**/*' package.json Makefile
MAKEFILES += $(lastword $(MAKEFILE_LIST))
TARGETS += start stop watch min-watch
TEST_TARGETS := test test-watch test-e2e
ifneq "$(strip $(SOURCE_MAP_ENABLED))" ""
JS_BUILD_COMMAND := SOURCE_MAP_CONCAT
JS_MIN_COMMAND := SOURCE_MAP_UGLIFY
else
JS_BUILD_COMMAND := CONCAT
JS_MIN_COMMAND := UGLIFYJS
endif
$(call build-wildcards,*.slm,$(APP_DIR),$(DIST_DIR),.slm,.html,SLM)
$(call build-and-minify,\
$(JS_FILES),\
$(BUILD_DIR)/js/$(APP_NAME).js,\
$(MIN_DIR)/js/$(APP_NAME).js,\
$(JS_BUILD_COMMAND),$(JS_MIN_COMMAND),ESLINT)
$(call build-and-minify,\
$(VENDOR_JS_FILES),\
$(BUILD_DIR)/js/$(VENDOR_NAME).js,\
$(MIN_DIR)/js/$(VENDOR_NAME).js,\
$(JS_BUILD_COMMAND),$(JS_MIN_COMMAND))
$(call build-and-minify,\
$(APP_DIR)/css/$(APP_NAME).scss,\
$(BUILD_DIR)/css/$(APP_NAME).css,\
$(MIN_DIR)/css/$(APP_NAME).css,\
NODE_SASS,CSSO, ,SASS_MAKEDEPEND)
$(call build-and-minify,\
$(APP_DIR)/css/$(VENDOR_NAME).scss,\
$(BUILD_DIR)/css/$(VENDOR_NAME).css,\
$(MIN_DIR)/css/$(VENDOR_NAME).css,\
NODE_SASS,CSSO, ,SASS_MAKEDEPEND)
$(call copy-wildcards,$(COPY_TYPES),$(APP_DIR),$(DIST_DIR))
$(call copy-wildcards,$(FONT_TYPES),\
$(RESOLVE_MATERIAL_DESIGN_ICONS_ICONFONT)/dist/fonts,\
$(DIST_DIR)/fonts/material-icons)
$(call copy-wildcards,$(FONT_TYPES),\
$(RESOLVE_MATERIALIZE_CSS)/dist/fonts/roboto,\
$(DIST_DIR)/fonts/roboto)
$(call main)
all min: | $(DIST_DIR)/$(APP_DIR)
all:
$(call prefix,link,$(LN) ../$(BUILD_DIR)/js $(DIST_DIR)/js)
$(call prefix,link,$(LN) ../$(BUILD_DIR)/css $(DIST_DIR)/css)
min:
$(call prefix,link,$(LN) ../$(MIN_DIR)/js $(DIST_DIR)/js)
$(call prefix,link,$(LN) ../$(MIN_DIR)/css $(DIST_DIR)/css)
$(DIST_DIR)/$(APP_DIR): | $(DIST_DIR)
$(call prefix,mkdir,$(LN) ../$(APP_DIR) $@)
start: stop
$(call prefix,server,$(SERVER_START))
stop:
$(call prefix,server,$(SERVER_STOP))
watch:
$(call prefix,build,-$(RESET_MAKE))
$(call prefix,watch,$(call WATCH,$(WATCH_FILES),'$(RESET_MAKE)'))
min-watch:
$(call prefix,build,-$(RESET_MAKE) min)
$(call prefix,watch,$(call WATCH,$(WATCH_FILES),'$(RESET_MAKE) min'))
#pre-test: all
test:
$(call prefix,test,karma start config/karma.conf.js --single-run)
test-watch:
$(call prefix,test,karma start config/karma.conf.js)
test-e2e:
$(call prefix,test,./e2e-test)