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
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
) \
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
)))
68 define gb_SrsPartMergeTarget__SrsPartMergeTarget_impl
69 $(call gb_SrsPartMergeTarget_get_target
,$(1)) : POFILES
:= $(2)
70 $(call gb_SrsPartMergeTarget_get_target
,$(1)) : $(2)
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)` && \
91 $(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \
92 $(gb_ResTarget_RSCCOMMAND
) -presponse @
$${RESPONSEFILE} && \
93 rm -rf
$${RESPONSEFILE})
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)" > $@
)
110 define gb_SrsPartTarget_SrsPartTarget
111 ifeq ($(strip $(gb_WITH_LANG
)),)
112 $(call gb_SrsPartTarget_get_target
,$(1)) : MERGEDFILE
:=
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))
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 $$@
) && \
128 ifneq ($(strip $(gb_WITH_LANG
)),)
129 $(call gb_SrsPartMergeTarget_SrsPartMergeTarget
,$(1),$(true
))
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)) && \
155 # This machinery ensures that templates are regenerated when switching
156 # from localized to unlocalized configuration and back.
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))
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))
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))
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))
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}
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 $@
) && \
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
,$@
,$*,$^
)
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))
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)
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)
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))
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)
296 define gb_SrsTarget_add_file
297 $(call gb_SrsTarget__add_file
,$(1),$(2),$(true
))
301 define gb_SrsTarget_add_files
302 $(foreach file
,$(2),$(call gb_SrsTarget_add_file
,$(1),$(file
)))
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
))
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
)))
327 define gb_SrsTarget_add_template
328 $(call gb_SrsTemplateTarget_add_file
,$(1),$(2))
332 define gb_SrsTarget_add_templates
333 $(foreach template
,$(2),$(call gb_SrsTarget_add_template
,$(1),$(template
)))
337 define gb_SrsTarget_use_package
338 $(call gb_SrsTarget_get_external_headers_target
,$(1)) : $(call gb_Package_get_target
,$(2))
342 define gb_SrsTarget_use_packages
343 $(foreach package
,$(2),$(call gb_SrsTarget_use_package
,$(1),$(package
)))
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)` && \
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))
401 define gb_ResTarget_add_file
402 $(call gb_ResTarget_get_target
,$(1)) : $(2)
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))
412 define gb_ResTarget_add_files
413 $(foreach file
,$(2),\
414 $(call gb_ResTarget_add_file
,$(1),$(file
)))
418 define gb_ResTarget_add_srs
420 $(call gb_ResTarget_add_one_srs
,$(1),$(srs
)))
424 define gb_ResTarget_set_reslocation
425 $(call gb_ResTarget_get_target
,$(1)) : RESLOCATION
= $(2)
432 gb_AllLangResTarget_LANGS
:= en-US
$(filter-out en-US
,$(gb_WITH_LANG
))
434 define gb_AllLangResTarget_set_langs
435 gb_AllLangResTarget_LANGS
:= $(1)
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
)))) \
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
)
469 define gb_AllLangResTarget_add_one_srs
470 $(foreach lang
,$(gb_AllLangResTarget_LANGS
),\
471 $(call gb_ResTarget_add_one_srs
,$(1)$(lang
),$(2)))
475 define gb_AllLangResTarget_add_srs
477 $(call gb_AllLangResTarget_add_one_srs
,$(1),$(srs
)))
481 define gb_AllLangResTarget_set_reslocation
482 $(foreach lang
,$(gb_AllLangResTarget_LANGS
),\
483 $(call gb_ResTarget_set_reslocation
,$(1)$(lang
),$(2)))
487 # vim: set noet sw=4: