bump product version to 4.1.6.2
[LibreOffice.git] / solenv / gbuild / AllLangResTarget.mk
blob6d1b47dae530c349e75939744503230ac0e8ed66
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=`$(gb_MKTEMP)` && \
46 echo $(POFILES) > $${MERGEINPUT} && \
47 $(call gb_Helper_abbreviate_dirs,\
48 mkdir -p $(dir $(1)) && \
49 $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \
50 -i $(3) \
51 -o $(1) \
52 -m $${MERGEINPUT} \
53 -l all) && \
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 define gb_SrsPartMergeTarget_SrsPartMergeTarget
65 $(call gb_SrsPartMergeTarget__SrsPartMergeTarget_impl,$(1),$(if $(2),$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)))
66 endef
68 define gb_SrsPartMergeTarget__SrsPartMergeTarget_impl
69 $(call gb_SrsPartMergeTarget_get_target,$(1)) : POFILES := $(2)
70 $(call gb_SrsPartMergeTarget_get_target,$(1)) : $(2)
71 $(2) :
72 endef
74 # SrsPartTarget class
76 # defined by platform
77 # gb_SrsPartTarget__command_dep
79 gb_ResTarget_RSCDEPS := $(call gb_Executable_get_runtime_dependencies,rsc)
80 gb_ResTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,rsc)
82 define gb_SrsPartTarget__command
83 $(call gb_Helper_abbreviate_dirs,\
84 mkdir -p $(dir $(1)) && \
85 RESPONSEFILE=`$(gb_MKTEMP)` && \
86 echo "-s \
87 $(INCLUDE) \
88 -I$(dir $(3)) \
89 $(DEFS) \
90 -fp=$(1) \
91 $(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \
92 $(gb_ResTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \
93 rm -rf $${RESPONSEFILE})
95 endef
97 $(call gb_SrsPartTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) \
98 $(gb_ResTarget_RSCDEPS) $(gb_SrsPartTarget__command_target)
99 $(call gb_SrsPartTarget__command_dep,$*,$<)
100 $(call gb_SrsPartTarget__command,$@,$*,$<)
102 ifeq ($(gb_FULLDEPS),$(true))
103 $(call gb_SrsPartTarget_get_dep_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY)
104 $(call gb_Helper_abbreviate_dirs,\
105 mkdir -p $(dir $@) && \
106 echo "$(call gb_SrsPartTarget_get_target,$*) : $(gb_Helper_PHONY)" > $@)
107 endif
110 define gb_SrsPartTarget_SrsPartTarget
111 ifeq ($(strip $(gb_WITH_LANG)),)
112 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE :=
113 else
114 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE := $(call gb_SrsPartMergeTarget_get_target,$(1))
115 $(call gb_SrsPartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1))
116 $(call gb_SrsPartMergeTarget_SrsPartMergeTarget,$(1),$(2))
117 endif
119 endef
121 # SrsTemplatePartTarget class
123 define gb_SrsTemplatePartTarget_SrsTemplatePartTarget
124 $(call gb_SrsTemplatePartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1))
125 $$(call gb_Helper_abbreviate_dirs,\
126 mkdir -p $$(dir $$@) && \
127 cp $$< $$@)
128 ifneq ($(strip $(gb_WITH_LANG)),)
129 $(call gb_SrsPartMergeTarget_SrsPartMergeTarget,$(1),$(true))
130 endif
132 endef
134 # SrsTemplateTarget class
136 # This class handles src templates.
138 # Templates are src files that contain only macros that are then used
139 # from other src files, but these macros contain translatable strings.
140 # Because the processing of src files is done in two phases: 1/
141 # localization and 2/ merging, templates must be translated
142 # independently from the src files that include them. Special care must
143 # be taken to ensure that the right file (i.e., the localized one) is
144 # included; in order to do that, the templates in the source tree are
145 # called foo_tmpl.src, but the localization phase produces foo.src, and
146 # these names (i.e., without the _tmpl suffix) must be placed in
147 # #include statements in other src files.
149 define gb_SrsTemplateTarget__command
150 $(call gb_Helper_abbreviate_dirs,\
151 mkdir -p $(dir $(1)) && \
152 touch $(1))
153 endef
155 # This machinery ensures that templates are regenerated when switching
156 # from localized to unlocalized configuration and back.
158 # How it works:
159 # We let _get_target depend on _get_update_target, so after they are
160 # done, _get_target is newer than _get_update_target. If
161 # gb_WITH_LANG changes (from nonempty to empty or the other way around),
162 # _get_target and _get_update_target are switched, therefore _get_target
163 # is now _older_ than _get_update_target and must be regenerated :-)
164 gb_SrsTemplateTarget__get_merged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_merged_last
165 gb_SrsTemplateTarget__get_unmerged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_unmerged_last
167 ifeq ($(strip $(gb_WITH_LANG)),)
168 gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1))
169 gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1))
170 else
171 gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1))
172 gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1))
173 endif
175 define gb_SrsTemplateTarget_SrsTemplateTarget
176 $(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS :=
177 $(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS :=
178 $(call gb_SrsTemplateTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget__get_target,$(1))
179 $(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
181 endef
183 .PHONY : $(call gb_SrsTemplateTarget_get_target,%_last)
184 $(call gb_SrsTemplateTarget_get_target,%_last) :
185 $(call gb_SrsTemplateTarget__command,$@)
187 .PHONY : $(call gb_SrsTemplateTarget_get_target,%)
188 $(call gb_SrsTemplateTarget_get_target,%) :
189 $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(true),SRT,4))
190 $(call gb_SrsTemplateTarget__command,$@)
192 .PHONY : $(call gb_SrsTemplateTarget_get_clean_target,%)
193 $(call gb_SrsTemplateTarget_get_clean_target,%) :
194 $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(false),SRT,4))
195 -$(call gb_Helper_abbreviate_dirs,\
196 rm -f $(call gb_SrsTemplateTarget_get_target,$*) \
197 $(call gb_SrsTemplateTarget__get_merged_target,$*) \
198 $(call gb_SrsTemplateTarget__get_unmerged_target,$*) \
199 $(foreach part,$(PARTS),$(call gb_SrsTemplatePartTarget_get_target,$(part))) \
200 $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part))))
202 define gb_SrsTemplateTarget_add_file
203 $(call gb_SrsTemplatePartTarget_SrsTemplatePartTarget,$(2))
204 $(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS += $(2)
205 $(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS += $(2)
206 $(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplatePartTarget_get_target,$(2))
207 $(call gb_SrsTemplatePartTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
208 $(call gb_SrsPartMergeTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1))
210 endef
212 # SrsTarget class
214 gb_SrsTarget_DEFAULTDEFS := $(gb_GLOBALDEFS)
216 .PHONY : $(call gb_SrsTarget_get_clean_target,%)
217 $(call gb_SrsTarget_get_clean_target,%) :
218 $(call gb_Output_announce,$*,$(false),SRS,1)
219 -$(call gb_Helper_abbreviate_dirs,\
220 rm -f $(call gb_SrsTarget_get_target,$*) \
221 $(call gb_SrsTarget_get_dep_target,$*) \
222 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \
223 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \
224 $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part))))
226 ifeq ($(gb_FULLDEPS),$(true))
227 define gb_SrsTarget__command_dep
228 $(call gb_Output_announce,SRS:$(2),$(true),DEP,1)
229 $(call gb_Helper_abbreviate_dirs,\
230 mkdir -p $(dir $(1)) && \
231 RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,$(3)) && \
232 $(call gb_Executable_get_command,concat-deps) $${RESPONSEFILE} > $(1)) && \
233 rm -f $${RESPONSEFILE}
234 endef
235 endif
237 $(call gb_SrsTarget_get_external_headers_target,%) :
238 $(call gb_Helper_abbreviate_dirs,\
239 mkdir -p $(dir $@) && touch $@)
241 $(call gb_SrsTarget_get_target,%) :
242 $(call gb_Output_announce,$*,$(true),SRS,1)
243 $(call gb_Helper_abbreviate_dirs,\
244 mkdir -p $(dir $@) && \
245 cat $^ > $@)
247 ifeq ($(gb_FULLDEPS),$(true))
248 $(call gb_SrsTarget_get_dep_target,%) : \
249 $(call gb_Executable_get_runtime_dependencies,concat-deps)
250 $(call gb_SrsTarget__command_dep,$@,$*,$^)
251 endif
253 define gb_SrsTarget_SrsTarget
254 $(call gb_SrsTemplateTarget_SrsTemplateTarget,$(1))
255 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS)
256 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC)
257 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS :=
258 $(call gb_SrsTarget_get_target,$(1)) : PARTS :=
259 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(1))
260 $(call gb_SrsTarget_get_clean_target,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target,$(1))
261 ifeq ($(gb_FULLDEPS),$(true))
262 -include $(call gb_SrsTarget_get_dep_target,$(1))
263 endif
265 endef
267 define gb_SrsTarget_set_defs
268 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(2)
269 ifeq ($(gb_FULLDEPS),$(true))
270 $(call gb_SrsTarget_get_dep_target,$(1)) : DEFS := $(2)
271 endif
273 endef
275 define gb_SrsTarget_set_include
276 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(2)
277 ifeq ($(gb_FULLDEPS),$(true))
278 $(call gb_SrsTarget_get_dep_target,$(1)) : INCLUDE := $(2)
279 endif
281 endef
283 define gb_SrsTarget__add_file
284 ifeq ($(gb_FULLDEPS),$(true))
285 $(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_target,$(2))
286 endif
287 $(call gb_SrsPartTarget_SrsPartTarget,$(2),$(3))
288 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2))
289 $(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTarget_get_external_headers_target,$(1))
290 $(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTemplateTarget_get_target,$(1))
291 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2)
292 $(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2)
294 endef
296 define gb_SrsTarget_add_file
297 $(call gb_SrsTarget__add_file,$(1),$(2),$(true))
299 endef
301 define gb_SrsTarget_add_files
302 $(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file)))
304 endef
306 # Add a srs file that does not have any localizable content.
308 # This only exists to allow dependencies on SDF files. It must be used
309 # if neither of the srs files in a directory have any localizable
310 # content, because in that case there is going to be no SDF generated
311 # for the directory. Therefore we must avoid depending on the SDF.
313 # gb_SrsTarget_add_nonlocalized_file srs file
314 define gb_SrsTarget_add_nonlocalized_file
315 $(call gb_SrsTarget__add_file,$(1),$(2),$(false))
317 endef
319 # Add srs files that do not have any localizable content.
321 # gb_SrsTarget_add_nonlocalized_files srs file(s)
322 define gb_SrsTarget_add_nonlocalized_files
323 $(foreach file,$(2),$(call gb_SrsTarget_add_nonlocalized_file,$(1),$(file)))
325 endef
327 define gb_SrsTarget_add_template
328 $(call gb_SrsTemplateTarget_add_file,$(1),$(2))
330 endef
332 define gb_SrsTarget_add_templates
333 $(foreach template,$(2),$(call gb_SrsTarget_add_template,$(1),$(template)))
335 endef
337 define gb_SrsTarget_use_package
338 $(call gb_SrsTarget_get_external_headers_target,$(1)) : $(call gb_Package_get_target,$(2))
340 endef
342 define gb_SrsTarget_use_packages
343 $(foreach package,$(2),$(call gb_SrsTarget_use_package,$(1),$(package)))
345 endef
348 # ResTarget
350 gb_ResTarget_DEFIMAGESLOCATION := $(SRCDIR)/icon-themes/galaxy/
352 $(call gb_ResTarget_get_clean_target,%) :
353 $(call gb_Output_announce,$*,$(false),RES,2)
354 $(call gb_Helper_abbreviate_dirs,\
355 rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_unittest_target,$*))
357 $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) \
358 $(gb_ResTarget_RSCDEPS)
359 $(call gb_Output_announce,$*,$(true),RES,2)
360 $(call gb_Helper_abbreviate_dirs,\
361 mkdir -p $(dir $@) $(OUTDIR)/bin \
362 $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \
363 RESPONSEFILE=`$(gb_MKTEMP)` && \
364 echo "-r -p \
365 -lg$(LANGUAGE) \
366 -fs=$@ \
367 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY) \
368 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE) \
369 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst \
370 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE) \
371 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res \
372 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION) \
373 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \
374 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \
375 -subMODULE=$(gb_ResTarget_DEFIMAGESLOCATION) \
376 -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \
377 -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \
378 $(filter-out $(gb_Helper_MISCDUMMY) $(gb_ResTarget_RSCDEPS),$^)" \
379 > $${RESPONSEFILE} && \
380 $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \
381 rm -f $${RESPONSEFILE})
383 define gb_ResTarget_ResTarget
384 $(call gb_ResTarget_get_target,$(1)) : LIBRARY = $(2)
385 $(call gb_ResTarget_get_target,$(1)) : LANGUAGE = $(3)
386 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2)
387 $(call gb_AllLangResTarget_get_target,$(2)) : $(call gb_ResTarget_get_outdir_target,$(1)) $(call gb_ResTarget_get_unittest_target,$(1))
388 $(call gb_AllLangResTarget_get_clean_target,$(2)) : $(call gb_ResTarget_get_clean_target,$(1))
389 $(call gb_ResTarget_get_imagelist_target,$(1)) : $(call gb_ResTarget_get_target,$(1))
391 $(call gb_ResTarget_get_outdir_target,$(1)) : $(call gb_ResTarget_get_target,$(1))
392 $(call gb_ResTarget_get_outdir_target,$(1)) :| $(dir $(call gb_ResTarget_get_outdir_target,$(1))).dir
393 $(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_target,$(1)),$(call gb_ResTarget_get_target,$(1)),$(1))
395 $(call gb_ResTarget_get_unittest_target,$(1)) : $(call gb_ResTarget_get_target,$(1))
396 $(call gb_ResTarget_get_unittest_target,$(1)) :| $(dir $(call gb_ResTarget_get_unittest_target,$(1))).dir
397 $(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_unittest_target,$(1)),$(call gb_ResTarget_get_target,$(1)),$(1))
399 endef
401 define gb_ResTarget_add_file
402 $(call gb_ResTarget_get_target,$(1)) : $(2)
404 endef
406 define gb_ResTarget_add_one_srs
407 $(call gb_ResTarget_add_file,$(1),$(call gb_SrsTarget_get_target,$(2)))
408 $(call gb_ResTarget_get_clean_target,$(1)) : $(call gb_SrsTarget_get_clean_target,$(2))
410 endef
412 define gb_ResTarget_add_files
413 $(foreach file,$(2),\
414 $(call gb_ResTarget_add_file,$(1),$(file)))
416 endef
418 define gb_ResTarget_add_srs
419 $(foreach srs,$(2),\
420 $(call gb_ResTarget_add_one_srs,$(1),$(srs)))
422 endef
424 define gb_ResTarget_set_reslocation
425 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2)
427 endef
430 # AllLangResTarget
432 gb_AllLangResTarget_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG))
434 define gb_AllLangResTarget_set_langs
435 gb_AllLangResTarget_LANGS := $(1)
436 endef
438 gb_AllLangResTarget_get_packagename = AllLangResTarget/$(1)
440 $(call gb_AllLangResTarget_get_clean_target,%) :
441 $(call gb_Helper_abbreviate_dirs,\
442 rm -f $(call gb_AllLangResTarget_get_target,$*))
444 $(call gb_AllLangResTarget_get_target,%) :
445 $(call gb_Helper_abbreviate_dirs,\
446 mkdir -p $(dir $@) && touch $@)
448 define gb_AllLangResTarget_AllLangResTarget
449 $(call gb_Postprocess_get_target,AllResources) : $(call gb_AllLangResTarget_get_target,$(1))
450 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
451 $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang)))
453 ifneq ($(gb_RUNNABLE_INSTDIR),)
454 $(call gb_Package_Package_internal,$(call gb_AllLangResTarget_get_packagename,$(1)),$(WORKDIR))
455 $(call gb_Package_set_outdir,$(call gb_AllLangResTarget_get_packagename,$(1)),$(INSTDIR))
456 $(call gb_AllLangResTarget_get_target,$(1)) : $(call gb_Package_get_target,$(call gb_AllLangResTarget_get_packagename,$(1)))
457 $(call gb_AllLangResTarget_get_clean_target,$(1)) : $(call gb_Package_get_clean_target,$(call gb_AllLangResTarget_get_packagename,$(1)))
458 $(call gb_Package_add_files,$(call gb_AllLangResTarget_get_packagename,$(1)),program/resource,\
459 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
460 $(subst $(WORKDIR)/,,$(call gb_ResTarget_get_target,$(1)$(lang)))) \
462 endif
464 $$(eval $$(call gb_Module_register_target,$(call gb_AllLangResTarget_get_target,$(1)),$(call gb_AllLangResTarget_get_clean_target,$(1))))
465 $(call gb_Helper_make_userfriendly_targets,$(1),AllLangResTarget)
467 endef
469 define gb_AllLangResTarget_add_one_srs
470 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
471 $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2)))
473 endef
475 define gb_AllLangResTarget_add_srs
476 $(foreach srs,$(2),\
477 $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs)))
479 endef
481 define gb_AllLangResTarget_set_reslocation
482 $(foreach lang,$(gb_AllLangResTarget_LANGS),\
483 $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2)))
485 endef
487 # vim: set noet sw=4: