-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
78 lines (59 loc) · 2.37 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
.PHONY: all clean distclean
NODE_DIR := node_modules
# node binaries
NPM_BIN := $(NODE_DIR)/.bin
COFFEE_CC := $(NPM_BIN)/coffee
BROWSERIFY := $(NPM_BIN)/browserify
# npm packages
REPLACE_TEXT := replace-all-text-nodes
REPLACE_TEXT_PROOF := $(NODE_DIR)/$(REPLACE_TEXT)
DEPS := $(COFFEE_CC) $(BROWSERIFY) $(REPLACE_TEXT_PROOF)
# opts
COFFEE_OPTS := -bc --no-header
# target-specific stuff
COMMON_DIR := common
COFFEE_COMMON := $(wildcard $(COMMON_DIR)/*.coffee)
CHROME_DIR := chrome
CHROME_INJECT_IN := $(COMMON_DIR)/replace-all.js $(CHROME_DIR)/replace.js
CHROME_INJECT_BUNDLE := $(CHROME_DIR)/inject-bundle.js
CHROME_BACKGROUND_IN := $(COMMON_DIR)/setup-replacements.js \
$(CHROME_DIR)/toggle.js
CHROME_BACKGROUND_BUNDLE := $(CHROME_DIR)/background-bundle.js
FF_DIR := firefox
FF_DATA_DIR := $(FF_DIR)/data
FF_INJECT_IN := $(FF_DIR)/replace.js $(COMMON_DIR)/replace-all.js
FF_INJECT_BUNDLE := $(FF_DATA_DIR)/inject-bundle.js
FF_IGNORE := sdk/self sdk/ui/button/action sdk/tabs net/xhr
FF_BACKGROUND_IN := $(COMMON_DIR)/setup-replacements.js \
$(FF_DIR)/toggle.js
FF_BACKGROUND_BUNDLE := $(FF_DIR)/background-bundle.js
# targets
IN_COFFEE := $(wildcard $(CHROME_DIR)/*.coffee) $(wildcard $(FF_DIR)/*.coffee)
OUT_JS := $(patsubst %.coffee,%.js,$(IN_COFFEE))
# recipes
all: $(CHROME_BACKGROUND_BUNDLE) $(CHROME_INJECT_BUNDLE) \
$(FF_BACKGROUND_BUNDLE) $(FF_INJECT_BUNDLE) $(OUT_JS)
$(CHROME_BACKGROUND_BUNDLE): $(CHROME_BACKGROUND_IN) $(BROWSERIFY)
$(BROWSERIFY) $(CHROME_BACKGROUND_IN) -o $@
$(CHROME_INJECT_BUNDLE): $(CHROME_INJECT_IN) $(BROWSERIFY) $(REPLACE_TEXT_PROOF)
$(BROWSERIFY) -r $(REPLACE_TEXT) $(CHROME_INJECT_IN) -o $@
# require is a built in function here, so we just copy
$(FF_BACKGROUND_BUNDLE): $(FF_BACKGROUND_IN)
cp $(COMMON_DIR)/setup-replacements.js $(FF_DIR)
cp $(FF_DIR)/toggle.js $@
$(FF_INJECT_BUNDLE): $(FF_INJECT_IN) $(BROWSERIFY) $(REPLACE_TEXT_PROOF)
$(BROWSERIFY) -r $(REPLACE_TEXT) $(FF_INJECT_IN) -o $@
%.js: %.coffee $(COFFEE_CC)
$(COFFEE_CC) $(COFFEE_OPTS) $<
$(FF_DIR)/%.js: $(COMMON_DIR)/%.coffee $(COFFEE_CC)
$(COFFEE_CC) $(COFFEE_OPTS) -o $(FF_DIR) $<
clean:
rm -f $(OUT_JS) $(CHROME_BACKGROUND_BUNDLE) $(CHROME_BACKGROUND_IN) \
$(CHROME_INJECT_BUNDLE) $(CHROME_INJECT_IN) \
$(FF_BACKGROUND_BUNDLE) $(FF_BACKGROUND_IN) \
$(FF_INJECT_BUNDLE) $(FF_INJECT_IN) \
$(FF_DIR)/setup-replacements.js
distclean: clean
rm -rf $(NODE_DIR)
$(DEPS):
npm install