aboutsummaryrefslogtreecommitdiff
path: root/src/js/fiveui/build.mk
blob: 41d2c0682baeef54b5992f13fd8a3f53ccecf484 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155

# 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 | $1/data/injected
	$$(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 \
    $1/data/css/ui.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 | $1/data/jquery
	$$(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


# font awesome
$1/data/font-awesome/css: | $1/data/font-awesome
	$$(call cmd,mkdir)

$1/data/font-awesome/css/%: $(lib-dir)/font-awesome/css/% \
                          | $1/data/font-awesome/css
	$$(call cmd,cp)

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

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

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

$2: $1/data/font-awesome/css/font-awesome.css          \
    $1/data/font-awesome/font/fontawesome-webfont.eot  \
    $1/data/font-awesome/font/fontawesome-webfont.svg  \
    $1/data/font-awesome/font/fontawesome-webfont.woff \
    $1/data/font-awesome/font/fontawesome-webfont.ttf


# 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)