aboutsummaryrefslogtreecommitdiff
path: root/src/js/fiveui/build.mk
blob: c9bbf7d9f0c30878d2f58f21dd4be69f7cd16316 (plain)
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

# Generic FiveUI Build Staging #################################################

fiveui-dir   := $(path)
lib-dir      := $(topdir)/src/js/lib
fiveui-files := $(shell find $(fiveui-dir))


# $1 - target directory
# $2 - $(topdir)/src/js/fiveui relative directory
define fiveui-files

# scripts in the target
$1/$2: | $1
	$$(call cmd,mkdir)

$1/$2/%: $(fiveui-dir)/$2/% | $1/$2
	$$(call cmd,cp)

endef


# Because firefox has strange requirements on the layout of the extension
# directory, we just use that as the layout for all extensions.
#
# $1 - sub-directory off of $(build-dir) to stage into
# $2 - top-level target to augment with dependencies
define stage-fiveui

# Common Files #################################################################

$1/data/injected/injected.css: $(build-dir)/injected.css
	$$(call cmd,cp)

$(call fiveui-files,$1/data,injected)
$2: $1/data/injected/compute.js        \
    $1/data/injected/ui.js             \
    $1/data/injected/injected.css      \
    $1/data/injected/prelude.js        \
    $1/data/injected/jquery-plugins.js


$(call fiveui-files,$1/data,js)
$2: $(patsubst $(fiveui-dir)/%,$1/data/%,$(wildcard $(fiveui-dir)/js/*))


$(call fiveui-files,$1/data,css)
$2: $1/data/css/options.css


$(call fiveui-files,$1/data,images)
$2: $(patsubst $(fiveui-dir)/%,$1/data/%,$(wildcard $(fiveui-dir)/images/*))


# Libraries ####################################################################

# jquery
$1/data/jquery: | $1/data
	$$(call cmd,mkdir)

$1/data/jquery/bundled.css: $(build-dir)/bundled.css
	$$(call cmd,cp)

$1/data/jquery/%: $(lib-dir)/jquery/% | $1/data/jquery
	$$(call cmd,cp)

$2: $1/data/jquery/jquery-1.8.3.js           \
    $1/data/jquery/jquery-ui-1.9.2.custom.js \
    $1/data/jquery/bundled.css


# simple libraries
$1/data/%: $(lib-dir)/% | $1/data
	$$(call cmd,cp)

$2: $1/data/underscore.js \
    $1/data/backbone.js   \
    $1/data/md5.js



# Other Files ##################################################################

# top-level fiveui stuff
$1/data/%: $(fiveui-dir)/% | $1/data
	$$(call cmd,cp)

$2: $1/data/options.html


$1/data: | $1
	$$(call cmd,mkdir)



# files provided by the platform
$2: $1/data/js/platform-ajax.js          \
    $1/data/js/platform-options.js       \
    $1/data/injected/platform-compute.js \
    $1/data/injected/platform-ui.js


endef


# Generic Bundled jQuery CSS ###################################################

css-bundle := $(topdir)/tools/bin/css-bundle.py

quiet_cmd_cssbundle = CSSC       $(call drop-prefix,$@)
      cmd_cssbundle = ( cd $(dir $(TARGET)) && \
                        $(css-bundle) $(notdir $(TARGET)) $@ $(redir) )

$(build-dir)/bundled.css: TARGET := $(lib-dir)/jquery/css/ui-lightness/jquery-ui.css
$(build-dir)/bundled.css:                                       \
    $(wildcard $(lib-dir)/jquery/css/ui-lightness/*.css)        \
    $(wildcard $(lib-dir)/jquery/css/ui-lightness/images/*.png) \
  | $(build-dir)
	$(call cmd,cssbundle)

$(build-dir)/injected.css: TARGET := $(fiveui-dir)/injected/injected.css
$(build-dir)/injected.css:                   \
    $(fiveui-dir)/injected/injected.css      \
    $(fiveui-dir)/images/errorCircle.png     \
    $(fiveui-dir)/images/warningTriangle.png \
    $(fiveui-dir)/images/right-arrow.png     \
    $(fiveui-dir)/images/down-arrow.png      \
  | $(build-dir)
	$(call cmd,cssbundle)