Branch libreoffice-5-0-4
[LibreOffice.git] / solenv / gbuild / AllLangResTarget.mk
blobef10ec530c0e0ee051f179c15af9788d58f53eff
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
3 # This file is part of the LibreOffice project.
5 # This Source Code Form is subject to the terms of the Mozilla Public
6 # License, v. 2.0. If a copy of the MPL was not distributed with this
7 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 # This file incorporates work covered by the following license notice:
11 # Licensed to the Apache Software Foundation (ASF) under one or more
12 # contributor license agreements. See the NOTICE file distributed
13 # with this work for additional information regarding copyright
14 # ownership. The ASF licenses this file to you under the Apache
15 # License, Version 2.0 (the "License"); you may not use this file
16 # except in compliance with the License. You may obtain a copy of
17 # the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 # Overview of dependencies and tasks of SrsTarget
23 # target task depends on
24 # SrsTarget joining the parts SrsPartTarget
25 # SrsTemplateTarget
26 # SrsPartTarget preprocessing SrsPartMergeTarget (with l10n)
27 # source file (without l10n)
28 # SrsTemplateTarget handling templates SrsTemplatePartTarget
29 # SrsTemplatePartTarget handling template SrsPartMergeTarget
30 # SrsPartMergeTarget merging/transex source file (only needed with l10n)
32 # Overview of dependencies and tasks of AllLangResTarget
34 # target task depends on
35 # AllLangResTarget nothing ResTarget for all active langs
36 # ResTarget running rsc SrsTarget, resources
39 # SrsPartMergeTarget class
41 gb_SrsPartMergeTarget_TRANSEXDEPS := $(call gb_Executable_get_runtime_dependencies,transex3)
42 gb_SrsPartMergeTarget_TRANSEXCOMMAND = $(call gb_Executable_get_command,transex3)
44 define gb_SrsPartMergeTarget__command
45 MERGEINPUT=$(call var2file,$(shell $(gb_MKTEMP)),100,$(POFILES)) && \
46 $(call gb_Helper_abbreviate_dirs,\
47 mkdir -p $(dir $(1)) && \
48 $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \
49 -i $(3) \
50 -o $(1) \
51 -m $${MERGEINPUT} \
52 -l all \
53 $(if $(filter MSC,$(COM)),$(if $(strip $(gb_WITH_LANG)),-b))) && \
54 rm -rf $${MERGEINPUT}
56 endef
58 $(call gb_SrsPartMergeTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) $(gb_SrsPartMergeTarget_TRANSEXDEPS)
59 $(call gb_Output_announce,$*,$(true),SRS,1)
60 $(if $(filter $(words $(POFILES)),$(words $(wildcard $(POFILES)))),\
61 $(call gb_SrsPartMergeTarget__command,$@,$*,$<),\
62 mkdir -p $(dir $@) && cp $< $@)
64 # translations are optional - use "wildcard" to avoid spurious re-builds
65 # when they don't exist
66 define gb_SrsPartMergeTarget_SrsPartMergeTarget
67 $(call gb_SrsPartMergeTarget__SrsPartMergeTarget_impl,$(1),$(if $(2),$(wildcard $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po))))
68 endef
70 define gb_SrsPartMergeTarget__SrsPartMergeTarget_impl
71 $(call gb_SrsPartMergeTarget_get_target,$(1)) : POFILES := $(2)
72 $(call gb_SrsPartMergeTarget_get_target,$(1)) : $(2)
73 $(2) :
74 endef
76 # SrsPartTarget class
78 # defined by platform
79 # gb_SrsPartTarget__command_dep
81 gb_ResTarget_RSCDEPS := $(call gb_Executable_get_runtime_dependencies,rsc)
82 gb_ResTarget_RSCCOMMAND = $(call gb_Executable_get_command,rsc)
84 define gb_SrsPartTarget__command
85 $(call gb_Helper_abbreviate_dirs,\
86 mkdir -p $(dir $(1)) && \
87 RESPONSEFILE=`$(gb_MKTEMP)` && \
88 echo "-s \
89 $(INCLUDE) \
90 -I$(dir $(3)) \
91 $(DEFS) \
92 -fp=$(1) \
93 $(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \
94 $(gb_ResTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \
95 rm -rf $${RESPONSEFILE})
97 endef
99 $(call gb_SrsPartTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) \
100 $(gb_ResTarget_RSCDEPS) $(gb_SrsPartTarget__command_target)
101 $(call gb_SrsPartTarget__command_dep,$*,$<)
102 $(call gb_SrsPartTarget__command,$@,$*,$<)
104 ifeq ($(gb_FULLDEPS),$(true))
105 $(call gb_SrsPartTarget_get_dep_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY)
106 $(call gb_Helper_abbreviate_dirs,\
107 mkdir -p $(dir $@))
108 endif
111 define gb_SrsPartTarget_SrsPartTarget
112 ifeq ($(strip $(gb_WITH_LANG)),)
113 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE :=
114 else
115 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE := $(call gb_SrsPartMergeTarget_get_target,$(1))
116 $(call gb_SrsPartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1))
117 $(call gb_SrsPartMergeTarget_SrsPartMergeTarget,$(1),$(2))
118 endif
120 endef
122 # SrsTemplatePartTarget class
124 define gb_SrsTemplatePartTarget_SrsTemplatePartTarget
125 $(call gb_SrsTemplatePartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1))
126 $$(call gb_Helper_abbreviate_dirs,\
127 mkdir -p $$(dir $$@) && \
128 cp $$< $$@)
129 ifneq ($(strip $(gb_WITH_LANG)),)
130 $(call gb_SrsPartMergeTarget_SrsPartMergeTarget,$(1),$(2))
131 endif
133 endef
135 # SrsTemplateTarget class
137 # This class handles src templates.
139 # Templates are src files that contain only macros that are then used
140 # from other src files, but these macros contain translatable strings.
141 # Because the processing of src files is done in two phases: 1/
142 # localization and 2/ merging, templates must be translated
143 # independently from the src files that include them. Special care must
144 # be taken to ensure that the right file (i.e., the localized one) is
145 # included; in order to do that, the templates in the source tree are
146 # called foo_tmpl.src, but the localization phase produces foo.src, and
147 # these names (i.e., without the _tmpl suffix) must be placed in
148 # #include statements in other src files.
150 define gb_SrsTemplateTarget__command
151 $(call gb_Helper_abbreviate_dirs,\
152 mkdir -p $(dir $(1)) && \
153 touch $(1))
154 endef
156 # This machinery ensures that templates are regenerated when switching
157 # from localized to unlocalized configuration and back.
159 # How it works:
160 # We let _get_target depend on _get_update_target, so after they are
161 # done, _get_target is newer than _get_update_target. If
162 # gb_WITH_LANG changes (from nonempty to empty or the other way around),
163 # _get_target and _get_update_target are switched, therefore _get_target
164 # is now _older_ than _get_update_target and must be regenerated :-)
165 gb_SrsTemplateTarget__get_merged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_merged_last
166 gb_SrsTemplateTarget__get_unmerged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_unmerged_last
168 ifeq ($(strip $(gb_WITH_LANG)),)
169 gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1))
170 gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1))
171 else
172 gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1))
173 gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1))
174 endif
176 define gb_SrsTemplateTarget_SrsTemplateTarget
177 $(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS :=
178 $(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS :=
179 $(call gb_SrsTemplateTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget__get_target,$(1))
180 $(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
182 endef
184 .PHONY : $(call gb_SrsTemplateTarget_get_target,%_last)
185 $(call gb_SrsTemplateTarget_get_target,%_last) :
186 $(call gb_SrsTemplateTarget__command,$@)
188 .PHONY : $(call gb_SrsTemplateTarget_get_target,%)
189 $(call gb_SrsTemplateTarget_get_target,%) :
190 $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(true),SRT,4))
191 $(call gb_SrsTemplateTarget__command,$@)
193 .PHONY : $(call gb_SrsTemplateTarget_get_clean_target,%)
194 $(call gb_SrsTemplateTarget_get_clean_target,%) :
195 $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(false),SRT,4))
196 -$(call gb_Helper_abbreviate_dirs,\
197 rm -f $(call gb_SrsTemplateTarget_get_target,$*) \
198 $(call gb_SrsTemplateTarget__get_merged_target,$*) \
199 $(call gb_SrsTemplateTarget__get_unmerged_target,$*) \
200 $(foreach part,$(PARTS),$(call gb_SrsTemplatePartTarget_get_target,$(part))) \
201 $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part))))
203 define gb_SrsTemplateTarget_add_file
204 $(call gb_SrsTemplatePartTarget_SrsTemplatePartTarget,$(2),$(3))
205 $(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS += $(2)
206 $(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS += $(2)
207 $(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplatePartTarget_get_target,$(2))
208 $(call gb_SrsTemplatePartTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
209 $(call gb_SrsPartMergeTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
211 endef
213 # SrsTarget class
215 gb_SrsTarget_DEFAULTDEFS := $(gb_GLOBALDEFS)
217 .PHONY : $(call gb_SrsTarget_get_clean_target,%)
218 $(call gb_SrsTarget_get_clean_target,%) :
219 $(call gb_Output_announce,$*,$(false),SRS,1)
220 -$(call gb_Helper_abbreviate_dirs,\
221 rm -f $(call gb_SrsTarget_get_target,$*) \
222 $(call gb_SrsTarget_get_dep_target,$*) \
223 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \
224 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \
225 $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part))))
227 ifeq ($(gb_FULLDEPS),$(true))
228 define gb_SrsTarget__command_dep
229 $(call gb_Output_announce,SRS:$(2),$(true),DEP,1)
230 $(call gb_Helper_abbreviate_dirs,\
231 mkdir -p $(dir $(1)) && \
232 RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
233 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part)))) && \
234 $(call gb_Executable_get_command,concat-deps) $${RESPONSEFILE} > $(1)) && \
235 rm -f $${RESPONSEFILE}
236 endef
237 endif
239 $(call gb_SrsTarget_get_headers_target,%) :
240 $(call gb_Helper_abbreviate_dirs,\
241 mkdir -p $(dir $@) && touch $@)
243 # This recipe actually also builds the dep-target as a side-effect, which
244 # is an optimization to reduce incremental build time.
245 $(call gb_SrsTarget_get_target,%) :
246 ifeq ($(gb_FULLDEPS),$(true))
247 $(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*)
248 endif
249 $(call gb_Output_announce,$*,$(true),SRS,1)
250 $(call gb_Helper_abbreviate_dirs,\
251 mkdir -p $(dir $@) && \
252 cat $^ > $@)
254 ifeq ($(gb_FULLDEPS),$(true))
255 $(call gb_SrsTarget_get_dep_target,%) : \
256 $(call gb_Executable_get_runtime_dependencies,concat-deps)
257 $(call gb_SrsTarget__command_dep,$@,$*)
258 endif
260 define gb_SrsTarget_SrsTarget
261 $(call gb_SrsTemplateTarget_SrsTemplateTarget,$(1))
262 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS)
263 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC)
264 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS :=
265 $(call gb_SrsTarget_get_target,$(1)) : PARTS :=
266 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(1))
267 $(call gb_SrsTarget_get_clean_target,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target,$(1))
268 ifeq ($(gb_FULLDEPS),$(true))
269 $(call gb_SrsTarget_get_dep_target,$(1)) : PARTS :=
270 -include $(call gb_SrsTarget_get_dep_target,$(1))
271 endif
273 endef
275 define gb_SrsTarget_set_defs
276 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(2)
277 ifeq ($(gb_FULLDEPS),$(true))
278 $(call gb_SrsTarget_get_dep_target,$(1)) : DEFS := $(2)
279 endif
281 endef
283 define gb_SrsTarget_set_include
284 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(2)
285 ifeq ($(gb_FULLDEPS),$(true))
286 $(call gb_SrsTarget_get_dep_target,$(1)) : INCLUDE := $(2)
287 endif
289 endef
291 define gb_SrsTarget__add_file
292 ifeq ($(gb_FULLDEPS),$(true))
293 $(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_target,$(2))
294 endif
295 $(call gb_SrsPartTarget_SrsPartTarget,$(2),$(3))
296 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2))
297 $(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTarget_get_headers_target,$(1))
298 $(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTemplateTarget_get_target,$(1))
299 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2)
300 $(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2)
301 ifeq ($(gb_FULLDEPS),$(true))
302 $(call gb_SrsTarget_get_dep_target,$(1)) : PARTS += $(2)
303 endif
305 endef
307 define gb_SrsTarget_add_file
308 $(call gb_SrsTarget__add_file,$(1),$(2),$(true))
310 endef
312 define gb_SrsTarget_add_files
313 $(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file)))
315 endef
317 # Add a srs file that does not have any localizable content.
318 # These files will be copied instead of parsing them with transex3.
320 # gb_SrsTarget_add_nonlocalizable_file srs file
321 define gb_SrsTarget_add_nonlocalizable_file
322 $(call gb_SrsTarget__add_file,$(1),$(2),$(false))
324 endef
326 # Add srs files that do not have any localizable content.
328 # gb_SrsTarget_add_nonlocalizable_files srs file(s)
329 define gb_SrsTarget_add_nonlocalizable_files
330 $(foreach file,$(2),$(call gb_SrsTarget_add_nonlocalizable_file,$(1),$(file)))
332 endef
334 define gb_SrsTarget_add_template
335 $(call gb_SrsTemplateTarget_add_file,$(1),$(2),$(true))
337 endef
339 define gb_SrsTarget_add_templates
340 $(foreach template,$(2),$(call gb_SrsTarget_add_template,$(1),$(template)))
342 endef
344 # Add a srs template that does not have any localizable content.
345 # These files will be copied instead of parsing them with transex3.
347 # gb_SrsTarget_add_nonlocalizable_template srs template
348 define gb_SrsTarget_add_nonlocalizable_template
349 $(call gb_SrsTemplateTarget_add_file,$(1),$(2),$(false))
351 endef
353 # Add srs templates that do not have any localizable content.
355 # gb_SrsTarget_add_nonlocalizable_templates srs template(s)
356 define gb_SrsTarget_add_nonlocalizable_templates
357 $(foreach template,$(2),$(call gb_SrsTarget_add_nonlocalizable_template,$(1),$(template)))
359 endef
362 # Use templates built by another SrsTarget.
364 # gb_SrsTarget_use_srstarget srs other-srs
365 define gb_SrsTarget_use_srstarget
366 $(call gb_SrsTarget_get_headers_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(2))
368 endef
370 # Use templates built by other SrsTargets.
372 # gb_SrsTarget_use_srstargets srs other-srs(s)
373 define gb_SrsTarget_use_srstargets
374 $(foreach srstarget,$(2),$(call gb_SrsTarget_use_srstarget,$(1),$(srstarget)))
376 endef
379 # ResTarget
381 gb_ResTarget_DEFIMAGESLOCATION := $(SRCDIR)/icon-themes/galaxy/
383 $(call gb_ResTarget_get_clean_target,%) :
384 $(call gb_Output_announce,$*,$(false),RES,2)
385 $(call gb_Helper_abbreviate_dirs,\
386 rm -f \
387 $(call gb_ResTarget_get_target,$*) \
388 $(call gb_ResTarget_get_install_target,$*) \
389 $(call gb_ResTarget_get_imagelist_target,$*))
391 $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) \
392 $(gb_ResTarget_RSCDEPS)
393 $(call gb_Output_announce,$*,$(true),RES,2)
394 $(call gb_Helper_abbreviate_dirs,\
395 mkdir -p $(dir $@) \
396 $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \
397 RESPONSEFILE=`$(gb_MKTEMP)` && \
398 echo "-r -p \
399 -lg$(LANGUAGE) \
400 -fs=$@ \
401 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY) \
402 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE) \
403 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst \
404 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE) \
405 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res \
406 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION) \
407 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \
408 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \
409 -subMODULE=$(gb_ResTarget_DEFIMAGESLOCATION) \
410 -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \
411 -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \
412 $(filter-out $(gb_Helper_MISCDUMMY) $(gb_ResTarget_RSCDEPS),$^)" \
413 > $${RESPONSEFILE} && \
414 $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \
415 rm -f $${RESPONSEFILE})
417 #$(info $(call gb_ResTarget_get_target,$(1)))
418 define gb_ResTarget_ResTarget
419 $(call gb_ResTarget_get_target,$(1)) : LIBRARY = $(2)
420 $(call gb_ResTarget_get_target,$(1)) : LANGUAGE = $(3)
421 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2)
422 $(call gb_AllLangResTarget_get_clean_target,$(2)) : $(call gb_ResTarget_get_clean_target,$(1))
423 $(call gb_ResTarget_get_imagelist_target,$(1)) : $(call gb_ResTarget_get_target,$(1))
425 endef
427 define gb_ResTarget_add_file
428 $(call gb_ResTarget_get_target,$(1)) : $(2)
430 endef
432 define gb_ResTarget_add_one_srs
433 $(call gb_ResTarget_add_file,$(1),$(call gb_SrsTarget_get_target,$(2)))
434 $(call gb_ResTarget_get_clean_target,$(1)) : $(call gb_SrsTarget_get_clean_target,$(2))
436 endef
438 define gb_ResTarget_add_files
439 $(foreach file,$(2),\
440 $(call gb_ResTarget_add_file,$(1),$(file)))
442 endef
444 define gb_ResTarget_add_srs
445 $(foreach srs,$(2),\
446 $(call gb_ResTarget_add_one_srs,$(1),$(srs)))
448 endef
450 define gb_ResTarget_set_reslocation
451 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2)
453 endef
456 # AllLangResTarget
458 gb_AllLangResTarget_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG))
460 define gb_AllLangResTarget_set_langs
461 gb_AllLangResTarget_LANGS := $(1)
462 endef
464 $(call gb_AllLangResTarget_get_clean_target,%) :
465 $(call gb_Helper_abbreviate_dirs,\
466 rm -f $(call gb_AllLangResTarget_get_target,$*))
468 $(call gb_AllLangResTarget_get_target,%) :
469 $(call gb_Helper_abbreviate_dirs,\
470 mkdir -p $(dir $@) && touch $@)
472 gb_ResTarget_get_install_target = $(INSTROOT)/$(LIBO_SHARE_RESOURCE_FOLDER)/$(1).res
474 gb_AllLangResTarget_ALLTARGETS :=
475 define gb_AllLangResTarget_AllLangResTarget
476 gb_AllLangResTarget_ALLTARGETS += $(1)
477 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
478 $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang)))
480 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
481 $(call gb_Helper_install,$(call gb_AllLangResTarget_get_target,$(1)), \
482 $(call gb_ResTarget_get_install_target,$(1)$(lang)), \
483 $(call gb_ResTarget_get_target,$(1)$(lang))))
485 $$(eval $$(call gb_Module_register_target,$(call gb_AllLangResTarget_get_target,$(1)),$(call gb_AllLangResTarget_get_clean_target,$(1))))
486 $(call gb_Helper_make_userfriendly_targets,$(1),AllLangResTarget)
487 $(call gb_Postprocess_register_target,AllResources,AllLangResTarget,$(1))
489 endef
491 define gb_AllLangResTarget_add_one_srs
492 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
493 $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2)))
495 endef
497 define gb_AllLangResTarget_add_srs
498 $(foreach srs,$(2),\
499 $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs)))
501 endef
503 define gb_AllLangResTarget_set_reslocation
504 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
505 $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2)))
507 endef
509 # vim: set noet sw=4: