aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/Makefile
blob: fdba22e55e63151a4a9999e98716b558fce5bc50 (plain) (blame)
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
STYLES := bootstrap font-awesome page
LIBS := jquery underscore backbone
MODELS := ReferenceCountedModel Song SongList DownloadBasket
VIEWS := SongRow SongTable DownloadSelector
CONTROLS := AudioPlayer
APPS := app

JS_DIR := js
CSS_DIR := css
LIB_DIR := $(JS_DIR)/lib
MODEL_DIR := $(JS_DIR)/models
VIEW_DIR := $(JS_DIR)/views
CONTROL_DIR := $(JS_DIR)/controls

DEBUG ?= 0

JS_MIN_OUTPUT := $(JS_DIR)/scripts.min.js
CSS_MIN_OUTPUT := $(CSS_DIR)/styles.min.css



LIBS_JS := $(patsubst %, $(LIB_DIR)/%.js, $(LIBS))
MODELS_JS := $(patsubst %, $(MODEL_DIR)/%.js, $(MODELS))  
VIEWS_JS := $(patsubst %, $(VIEW_DIR)/%.js, $(VIEWS))
CONTROLS_JS := $(patsubst %, $(CONTROL_DIR)/%.js, $(CONTROLS))
APPS_JS := $(patsubst %, $(JS_DIR)/%.js, $(APPS))
JS_INPUT := $(LIBS_JS) $(MODELS_JS) $(VIEWS_JS) $(CONTROLS_JS) $(APPS_JS)
CSS_INPUT := $(patsubst %, $(CSS_DIR)/%.css, $(STYLES))
JS_MIN_INPUT := $(patsubst %.js, %.min.js, $(filter-out %.min.js, $(JS_INPUT)))
CSS_MIN_INPUT := $(patsubst %.css, %.min.css, $(filter-out %.min.css, $(CSS_INPUT)))

JS_COMPILER := java -jar bin/closure-compiler.jar --warning_level QUIET
CSS_COMPILER := java -jar bin/yui-compressor.jar --type css

.PHONY: all clean

all: $(JS_MIN_OUTPUT) $(CSS_MIN_OUTPUT)

ifeq ($(DEBUG),0)
%.min.js: %.js
	@echo "    JS     " $@
	@$(JS_COMPILER) --js $< --js_output_file $@
else
%.min.js: %.js
	@echo "    JS     " $@
	@cat $< > $@
endif

%.min.css: %.css
	@echo "    CSS    " $@
	@$(CSS_COMPILER) -o $@ $<

$(JS_MIN_OUTPUT): $(JS_MIN_INPUT)
	@echo "    CAT    " $@
	@cat $^ > $@

$(CSS_MIN_OUTPUT): $(CSS_MIN_INPUT)
	@echo "    CAT    " $@
	@cat $^ > $@

clean:
	@echo "    RM     " $(JS_MIN_INPUT) $(JS_MIN_OUTPUT) $(CSS_MIN_INPUT) $(CSS_MIN_OUTPUT)
	@rm -fv $(JS_MIN_INPUT) $(JS_MIN_OUTPUT) $(CSS_MIN_INPUT) $(CSS_MIN_OUTPUT)