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
|
# -*- makefile -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#####################################################################################
# Dependency build overhead:
# o always create/update/hard link targets boomkarks.json & searchplugins
# o latest symlink will be correct for the current locale / local build.
# o logic is essentially FORCE for language packs w/o all the build overhead
# o phase 2: replace hard links with a user function able to derive path
# based on current locale.
#####################################################################################
include $(topsrcdir)/config/config.mk
USE_AUTOTARGETS_MK=1
include $(topsrcdir)/config/makefiles/makeutils.mk
# Separate items of contention
tgt-gendir = .deps/generated_$(AB_CD)
GENERATED_DIRS += .deps
ifdef LOCALE_MERGEDIR
vpath book%.inc $(LOCALE_MERGEDIR)/mobile/profile
endif
vpath book%.inc $(LOCALE_SRCDIR)/profile
ifdef LOCALE_MERGEDIR
vpath book%.inc @srcdir@/en-US/profile
endif
$(call errorIfEmpty,MOZ_BRANDING_DIRECTORY)
SUBMAKEFILES += \
$(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/Makefile \
$(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales/Makefile \
$(NULL)
###########################################################################
# Default target, preserve existing functionality for:
# gmake -C $obj/mobile/locales
###########################################################################
search-jar-default: search-jar
###########################################################################
## Searchlist plugin config
plugin-file-array = \
$(wildcard $(LOCALE_SRCDIR)/searchplugins/list.txt) \
$(srcdir)/en-US/searchplugins/list.txt \
$(NULL)
###########################################################################
plugin_file = $(firstword $(plugin-file-array))
plugin-file-ts = $(tgt-gendir)/$(subst $(topsrcdir)/,$(NULL),$(plugin_file)).ts
GARBAGE += $(plugin-file-ts)
# ---------------------------------------------------------------------------
# plugin-file-ts track searchlist file used ($path/list.txt)
# and time when the file was last modified.
###########################################################################
plugin-file-ts-preqs = \
$(call mkdir_deps,$(dir $(plugin-file-ts))) \
$(plugin_file) \
$(NULL)
###########################################################################
# Detect locale changes. Force stale deps when searchlist file
# or content has changed.
$(plugin-file-ts): $(plugin-file-ts-preqs)
@touch $@
###########################################################################
search-jar-common = tmp-search.jar.mn
search-jar = $(tgt-gendir)/$(search-jar-common)
search-jar-ts = $(search-jar).ts
GARBAGE += $(search-jar) $(search-jar-ts) $(search-jar-common)
# ---------------------------------------------------------------------------
# search-jar contains a list of providers for the search plugin
###########################################################################
SEARCH_PLUGINS = $(shell cat $(plugin_file))
SEARCH_PLUGINS := $(subst :hidden,,$(SEARCH_PLUGINS))
$(call errorIfEmpty,SEARCH_PLUGINS)
search-jar-preqs = \
$(plugin-file-ts) \
$(if $(IS_LANGUAGE_REPACK),FORCE) \
$(NULL)
.PHONY: search-jar
search-jar: $(search-jar)
$(search-jar): $(search-jar-preqs)
@echo '\nGenerating: search-jar'
printf '$(AB_CD).jar:' > $@
ln -fn $@ .
printf '$(foreach plugin,$(SEARCH_PLUGINS),$(subst __PLUGIN_SUBST__,$(plugin), \n locale/$(AB_CD)/browser/searchplugins/__PLUGIN_SUBST__.xml (__PLUGIN_SUBST__.xml)))' >> $@
@echo >> $@
###################
search-dir-deps = \
$(plugin-file) \
$(dir-chrome) \
$(NULL)
search-preqs =\
$(call mkdir_deps,$(dir $(search-jar-ts))) \
$(call mkdir_deps,$(FINAL_TARGET)/chrome) \
$(search-jar) \
$(search-dir-deps) \
$(if $(IS_LANGUAGE_REPACK),FORCE) \
$(GLOBAL_DEPS) \
$(NULL)
.PHONY: searchplugins
searchplugins: $(search-preqs)
$(call py_action,jar_maker,\
$(QUIET) -d $(FINAL_TARGET) \
-s $(topsrcdir)/$(relativesrcdir)/en-US/searchplugins \
-s $(LOCALE_SRCDIR)/searchplugins \
$(MAKE_JARS_FLAGS) $(search-jar))
$(TOUCH) $@
include $(topsrcdir)/config/rules.mk
#############
libs-preqs =\
$(call mkdir-deps,$(DIST)/install) \
$(NULL)
libs-%: $(libs-preqs)
$(display-deps)
@$(MAKE) -C $(DEPTH)/toolkit/locales libs-$*
@$(MAKE) -C $(DEPTH)/intl/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
# Tailored target to just add the chrome processing for multi-locale builds
chrome-%:
$(display-deps)
@$(MAKE) -B searchplugins AB_CD=$*
@$(MAKE) chrome AB_CD=$*
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
NO_JA_JP_MAC_AB_CD := $(if $(filter ja-JP-mac, $(AB_CD)),ja,$(AB_CD))
export:: searchplugins
|