-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (54 loc) · 1.77 KB
/
Makefile
File metadata and controls
65 lines (54 loc) · 1.77 KB
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
# Configuration variables
# Options etc. go here.
# --
BROWSERIFY = browserify -t coffeeify -t jadeify
UGLIFY = uglifyjs
LESS = lessc --include-path=styles:.:public/components
CSSMIN = cssmin
# Runtime variables. Load all dependencies.
WEBSITES = $(shell find websites -mindepth 2 -maxdepth 2 -wholename '*/public')
APPS = $(shell find . -mindepth 2 -maxdepth 2 -wholename '*/public')
TARGETS = $(WEBSITES:websites/%/public=public/%) $(APPS:./%/public=public/%)
SCRIPTS = $(shell find websites -maxdepth 3 -wholename '*/client/*.coffee')
STYLES = $(shell find websites -maxdepth 3 -wholename '*/styles/*.less')
APP_SCRIPTS = $(shell find . -maxdepth 3 -wholename '*/client/*.coffee')
APP_STYLES = $(shell find . -maxdepth 3 -wholename '*/styles/*.less')
SCRIPT_TARGETS = $(SCRIPTS:websites/%.coffee=public/%.js) \
$(APP_SCRIPTS:./%.coffee=public/%.js)
STYLE_TARGETS = $(STYLES:websites/%.less=public/%.css) \
$(APP_STYLES:./%.less=public/%.css)
public/%.js.ugz: %.coffee
@mkdir -p $(dir $@)
@$(BROWSERIFY) $< -o $@.unmin.js
@$(UGLIFY) $@.unmin.js -c -m -o $@
@rm $@.unmin.js
public/%.js.ugz: websites/%.coffee
@mkdir -p $(dir $@)
@$(BROWSERIFY) $< -o $@.unmin.js
@$(UGLIFY) $@.unmin.js -c -m -o $@
@rm $@.unmin.js
public/%.css.ugz: %.less
@mkdir -p $(dir $@)
@$(LESS) $< $@.unmin.css
@$(CSSMIN) $@.unmin.css > $@
@rm $@.unmin.css
public/%.css.ugz: websites/%.less
@mkdir -p $(dir $@)
@$(LESS) $< $@.unmin.css
@$(CSSMIN) $@.unmin.css > $@
@rm $@.unmin.css
public/%.gz: public/%.ugz
@mv $< $(basename $<)
@gzip -9 $(basename $<)
public/%.css: public/%.css.gz
@mv $< $@
public/%.js: public/%.js.gz
@mv $< $@
public/%: websites/%/public
@rm -rf $@
@cp -R $< $@
public/%: %/public
@rm -rf $@
@cp -R $< $@
# Run all required actions.
all: $(TARGETS) $(SCRIPT_TARGETS) $(STYLE_TARGETS)