Bump for 3.6-28
[LibreOffice.git] / solenv / gbuild / Configuration.mk
blobb6f51c910fc44a3f6e2abfe60f5ab15df59ff705
1 #***************************************************************
2 # Licensed to the Apache Software Foundation (ASF) under one
3 # or more contributor license agreements. See the NOTICE file
4 # distributed with this work for additional information
5 # regarding copyright ownership. The ASF licenses this file
6 # to you under the Apache License, Version 2.0 (the
7 # "License"); you may not use this file except in compliance
8 # with the License. You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing,
13 # software distributed under the License is distributed on an
14 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 # KIND, either express or implied. See the License for the
16 # specific language governing permissions and limitations
17 # under the License.
18 #***************************************************************
20 # Configuration files: a bit of an overview of the targets:
22 # Configuration
23 # => XcsTarget: schemas
24 # => buildtools
25 # => Xcs source
26 # => XcuDataTarget: data
27 # => buildtools
28 # => XcsTarget (schema)
29 # => Xcu data source
30 # => XcuModuleTaret: modules
31 # => buildtools
32 # => Xcu data source
33 # => XcuLangpackTarget: langpack (per lang)
34 # => buildtools
35 # => Xcu data source
36 # => zip (per lang)
37 # => XcuResTarget: resources (per lang)
38 # => buildtools
39 # => XcuMergeTarget: merge
40 # => buildtools (cfgex)
41 # => Xcu data source
42 # => localize.sdf
43 # => XcsTarget (schema)
45 # Per-repo pattern rules for each repository do not work for all targets
46 # because the prerequisites of some targets need to have the stem mangled
47 # and this does not seem to be possible in GNU make because when the stem is
48 # matched variables have already been expanded (this was possible in dmake).
50 # So to keep things consistent the Configuration takes a parameter for the
51 # repository and all targets use that to find the source file.
53 # Targets where % rule per repo works: XcsTarget XcuDataTarget XcuMergeTarget
54 # fails: XcuModuleTarget XcuLangpackTarget XcuResTarget
56 gb_Configuration__get_source = $(SRCDIR)/$(2)
59 # XcsTarget class
61 # need to locate a schema file corresponding to some XCU file in the outdir
62 define gb_XcsTarget_for_XcuTarget
63 $(call gb_XcsTarget_get_outdir_target,$(basename $(1)).xcs)
64 endef
66 gb_Configuration_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG))
68 gb_XcsTarget_XSLT_SchemaVal := $(OUTDIR)/xml/processing/schema_val.xsl
69 gb_XcsTarget_XSLT_Sanity := $(OUTDIR)/xml/processing/sanity.xsl
70 gb_XcsTarget_XSLT_SchemaTrim := $(OUTDIR)/xml/processing/schema_trim.xsl
71 gb_XcsTarget_DTD_Schema := $(OUTDIR)/xml/registry/component-schema.dtd
73 define gb_XcsTarget__command
74 $(call gb_Output_announce,$(2),$(true),XCS,1)
75 $(call gb_Helper_abbreviate_dirs,\
76 mkdir -p $(dir $(1)) && \
77 $(gb_XSLTPROC) --nonet \
78 --noout \
79 --stringparam componentName $(subst /,.,$(basename $(XCSFILE))) \
80 --stringparam root $(subst $(XCSFILE),,$(3)) \
81 $(if $(SCHEMA_ROOT),--stringparam schemaRoot $(SCHEMA_ROOT)) \
82 $(gb_XcsTarget_XSLT_SchemaVal) \
83 $(3) && \
84 $(gb_XSLTPROC) --nonet \
85 --noout \
86 $(gb_XcsTarget_XSLT_Sanity) \
87 $(3) && \
88 $(gb_XSLTPROC) --nonet \
89 -o $(1) \
90 $(gb_XcsTarget_XSLT_SchemaTrim) \
91 $(3))
92 endef
94 $(call gb_XcsTarget_get_target,%) : \
95 $(gb_XcsTarget_XSLT_SchemaVal) $(gb_XcsTarget_XSLT_Sanity) \
96 $(gb_XcsTarget_XSLT_SchemaTrim) $(gb_XcsTarget_DTD_Schema)
97 $(call gb_XcsTarget__command,$@,$*,$(filter %.xcs,$^))
99 $(call gb_XcsTarget_get_clean_target,%) :
100 $(call gb_Output_announce,$*,$(false),XCS,1)
101 $(call gb_Helper_abbreviate_dirs,\
102 rm -f $(call gb_XcsTarget_get_target,$*) \
103 $(call gb_XcsTarget_get_outdir_target,$(XCSFILE)))
105 # the .dir is for make 3.81, which ignores trailing /
106 $(dir $(call gb_XcsTarget_get_outdir_target,%))%/.dir :
107 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
108 $(dir $(call gb_XcsTarget_get_outdir_target,%)).dir :
109 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
111 $(call gb_XcsTarget_get_outdir_target,%) :
112 $(call gb_Helper_abbreviate_dirs,\
113 $(call gb_Deliver_deliver,$<,$@))
116 # XcuDataTarget class
118 gb_XcuTarget_XSLT_AllLang := $(OUTDIR)/xml/processing/alllang.xsl
119 gb_XcuDataTarget_XSLT_DataVal := $(OUTDIR)/xml/processing/data_val.xsl
120 gb_XcuDataTarget_DTD_ComponentUpdate := $(OUTDIR)/xml/registry/component-update.dtd
122 define gb_XcuDataTarget__command
123 $(call gb_Output_announce,$(2),$(true),XCU,2)
124 $(call gb_Helper_abbreviate_dirs,\
125 mkdir -p $(dir $(1)) && \
126 $(gb_XSLTPROC) --nonet \
127 --noout \
128 --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
129 --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
130 --path $(gb_Configuration_registry) \
131 $(gb_XcuDataTarget_XSLT_DataVal) \
132 $(3) && \
133 $(gb_XSLTPROC) --nonet \
134 -o $(1) \
135 --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
136 --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
137 --path $(gb_Configuration_registry) \
138 $(gb_XcuTarget_XSLT_AllLang) \
139 $(3))
140 endef
142 $(call gb_XcuDataTarget_get_target,%) : $(gb_XcuDataTarget_XSLT_DataVal) \
143 $(gb_XcuTarget_XSLT_AllLang) $(gb_XcuDataTarget_DTD_ComponentUpdate)
144 $(call gb_XcuDataTarget__command,$@,$*,$(filter %.xcu,$^))
146 $(call gb_XcuDataTarget_get_clean_target,%) :
147 $(call gb_Output_announce,$*,$(false),XCU,2)
148 $(call gb_Helper_abbreviate_dirs,\
149 rm -f $(call gb_XcuDataTarget_get_target,$*) \
150 $(call gb_XcuDataTarget_get_outdir_target,$(XCUFILE)))
152 # the .dir is for make 3.81, which ignores trailing /
153 $(dir $(call gb_XcuDataTarget_get_outdir_target,))%/.dir :
154 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
155 $(dir $(call gb_XcuDataTarget_get_outdir_target,)).dir :
156 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
158 $(call gb_XcuDataTarget_get_outdir_target,%) :
159 $(call gb_Helper_abbreviate_dirs,\
160 $(call gb_Deliver_deliver,$<,$@))
163 # XcuModuleTarget class
165 define gb_XcuDataSource_for_XcuModuleTarget
166 $(call gb_Configuration__get_source,$(1),$(basename $(subst -,.,$(basename $(2)))).xcu)
167 endef
169 define gb_XcsTarget_for_XcuModuleTarget
170 $(call gb_XcsTarget_get_outdir_target,$(basename $(subst -,.,$(basename $(1)))).xcs)
171 endef
173 define gb_XcuModuleTarget__command
174 $(call gb_Output_announce,$(2),$(true),XCU,3)
175 $(call gb_Helper_abbreviate_dirs,\
176 mkdir -p $(dir $(1)) && \
177 $(gb_XSLTPROC) --nonet \
178 -o $(1) \
179 --stringparam xcs $(4) \
180 --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
181 --stringparam module $(notdir $(subst -,/,$(basename $(notdir $(2))))) \
182 $(gb_XcuTarget_XSLT_AllLang) \
183 $(3))
184 endef
186 $(call gb_XcuModuleTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
187 $(call gb_XcuModuleTarget__command,$@,$*,$(filter %.xcu,$^),$(filter %.xcs,$^))
189 $(call gb_XcuModuleTarget_get_clean_target,%) :
190 $(call gb_Output_announce,$*,$(false),XCU,3)
191 $(call gb_Helper_abbreviate_dirs,\
192 rm -f $(call gb_XcuModuleTarget_get_target,$*) \
193 $(call gb_XcuModuleTarget_get_outdir_target,$(XCUFILE)))
195 # the .dir is for make 3.81, which ignores trailing /
196 $(dir $(call gb_XcuModuleTarget_get_outdir_target,))%/.dir :
197 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
199 $(call gb_XcuModuleTarget_get_outdir_target,%) :
200 $(call gb_Helper_abbreviate_dirs,\
201 $(call gb_Deliver_deliver,$<,$@))
204 # XcuLangpackTarget class
206 gb_XcuLangpackTarget__get_name_with_lang = $(basename $(1))-$(2)$(suffix $(1))
208 gb_XcuLangpackTarget__get_outdir_target_with_lang = \
209 $(call gb_XcuLangpackTarget_get_outdir_target,$(call gb_XcuLangpackTarget__get_name_with_lang,$(1),$(2)))
210 gb_XcuLangpackTarget__get_target_with_lang = \
211 $(call gb_XcuLangpackTarget_get_target,$(call gb_XcuLangpackTarget__get_name_with_lang,$(1),$(2)))
213 gb_XcuLangpackTarget_SED_delcomment := $(OUTDIR)/xml/processing/delcomment.sed
215 define gb_XcuLangpackTarget__command
216 $(call gb_Output_announce,$(2),$(true),XCU,4)
217 $(call gb_Helper_abbreviate_dirs,\
218 mkdir -p $(dir $(1)) && \
219 sed -e "s/__LANGUAGE__/$(LANG)/" -f $(gb_XcuLangpackTarget_SED_delcomment)\
220 $(3) > $(1))
221 endef
223 $(call gb_XcuLangpackTarget_get_target,%) : \
224 $(gb_XcuLangpackTarget_SED_delcomment)
225 $(call gb_XcuLangpackTarget__command,$@,$*,$(filter %.tmpl,$^))
227 $(call gb_XcuLangpackTarget_get_clean_target,%) :
228 $(call gb_Output_announce,$*,$(false),XCU,4)
229 $(call gb_Helper_abbreviate_dirs,\
230 rm -f $(foreach lang,$(gb_Configuration_LANGS),\
231 $(call gb_XcuLangpackTarget__get_target_with_lang,$*,$(lang)) \
232 $(call gb_XcuLangpackTarget__get_outdir_target_with_lang,$(XCUFILE),$(lang))))
234 # the .dir is for make 3.81, which ignores trailing /
235 $(dir $(call gb_XcuLangpackTarget_get_outdir_target,))%/.dir :
236 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
237 $(dir $(call gb_XcuLangpackTarget_get_outdir_target,)).dir :
238 $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
240 $(call gb_XcuLangpackTarget_get_outdir_target,%) :
241 $(call gb_Helper_abbreviate_dirs,\
242 $(call gb_Deliver_deliver,$<,$@))
245 # XcuMergeTarget class
247 gb_XcuMergeTarget_CFGEXTARGET := $(call gb_Executable_get_target_for_build,cfgex)
248 gb_XcuMergeTarget_CFGEXCOMMAND := $(gb_Helper_set_ld_path) $(gb_XcuMergeTarget_CFGEXTARGET)
250 # PRJNAME is computed from the stem (parameter $(2))
251 define gb_XcuMergeTarget__command
252 $(call gb_Output_announce,$(2),$(true),XCU,5)
253 $(call gb_Helper_abbreviate_dirs,\
254 mkdir -p $(dir $(1)) && \
255 $(gb_XcuMergeTarget_CFGEXCOMMAND) \
256 -p $(firstword $(subst /, ,$(2))) \
257 -i $(3) \
258 -o $(1) \
259 -m $(SDF) \
260 -l all)
261 endef
263 $(call gb_XcuMergeTarget_get_target,%) : $(gb_XcuMergeTarget_CFGEXTARGET)
264 $(if $(SDF),$(call gb_XcuMergeTarget__command,$@,$*,$(filter %.xcu,$^)),mkdir -p $(dir $@) && cp $(filter %.xcu,$^) $@)
266 $(call gb_XcuMergeTarget_get_clean_target,%) :
267 $(call gb_Output_announce,$*,$(false),XCU,5)
268 $(call gb_Helper_abbreviate_dirs,\
269 rm -f $(call gb_XcuMergeTarget_get_target,$*))
271 # $(call gb_XcuMergeTarget_XcuMergeTarget,target,zipfile,prefix,xcufile)
272 define gb_XcuMergeTarget_XcuMergeTarget
273 $(call gb_XcuMergeTarget_get_target,$(1)) : \
274 $(call gb_Configuration__get_source,$(2),$(3)/$(4)) \
275 $(wildcard $(gb_SDFLOCATION)/$(dir $(1))localize.sdf)
276 $(call gb_XcuMergeTarget_get_target,$(1)) : \
277 SDF := $(wildcard $(gb_SDFLOCATION)/$(dir $(1))localize.sdf)
278 endef
281 # XcuResTarget class
283 # locale is extracted from the stem (parameter $(2))
284 define gb_XcuResTarget__command
285 $(call gb_Output_announce,$(2),$(true),XCU,6)
286 $(call gb_Helper_abbreviate_dirs,\
287 mkdir -p $(dir $(1)) && \
288 $(gb_XSLTPROC) --nonet \
289 -o $(1) \
290 --stringparam xcs $(call gb_XcsTarget_for_XcuTarget,$(XCUFILE)) \
291 --stringparam schemaRoot $(call gb_XcsTarget_get_outdir_target,) \
292 --stringparam locale $(word 2,$(subst /, ,$(2))) \
293 --path $(gb_Configuration_registry) \
294 $(gb_XcuTarget_XSLT_AllLang) \
295 $(3))
296 endef
298 $(call gb_XcuResTarget_get_target,%) : $(gb_XcuTarget_XSLT_AllLang)
299 $(call gb_XcuResTarget__command,$@,$*,$(filter %.xcu,$^))
301 $(call gb_XcuResTarget_get_clean_target,%) :
302 $(call gb_Output_announce,$*,$(false),XCU,6)
303 $(call gb_Helper_abbreviate_dirs,\
304 rm -f $(call gb_XcuResTarget_get_target,$*))
306 # $(call gb_XcuResTarget_XcuResTarget,target,zipfile,prefix,xcufile,lang)
307 # this depends either on the source or on the merge target (if WITH_LANG)
308 define gb_XcuResTarget_XcuResTarget
309 ifeq ($(strip $(gb_WITH_LANG)),)
310 $(call gb_XcuResTarget_get_target,$(1)) : \
311 $(call gb_Configuration__get_source,$(2),$(3)/$(4))
312 else
313 $(call gb_XcuResTarget_get_target,$(1)) : \
314 $(call gb_XcuMergeTarget_get_target,$(3)/$(4))
315 endif
316 $(call gb_XcuResTarget_get_target,$(1)) : \
317 $(call gb_XcsTarget_for_XcuTarget,$(4))
318 $(call gb_XcuResTarget_get_target,$(1)) : XCUFILE := $(4)
319 endef
322 # Configuration class
324 $(call gb_Configuration_get_clean_target,%) :
325 $(call gb_Output_announce,$*,$(false),CFG,1)
326 $(call gb_Helper_abbreviate_dirs,\
327 rm -f $(call gb_Configuration_get_target,$*))
329 $(call gb_Configuration_get_target,%) :
330 $(call gb_Output_announce,$*,$(true),CFG,1)
331 $(call gb_Helper_abbreviate_dirs,\
332 mkdir -p $(dir $@) && touch $@)
334 # TODO: ?
335 define gb_Configuration_Configuration_nozip
336 $$(eval $$(call gb_Module_register_target,$(call gb_Configuration_get_target,$(1)),$(call gb_Configuration_get_clean_target,$(1))))
337 endef
339 # $(call gb_Configuration_Configuration,zipfile,repo,nodeliver)
340 # cannot use target local variable for REPO because it's needed in prereq
341 # last parameter may be used to turn off delivering of files
342 define gb_Configuration_Configuration
343 $(eval gb_Configuration_NODELIVER_$(1) := $(2))
344 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
345 $(call gb_Zip_Zip,$(1)_$(lang),$(call gb_XcuResTarget_get_target,$(1)/$(lang)))))
346 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
347 $(call gb_Configuration_get_target,$(1)) : \
348 $(call gb_Zip_get_final_target,$(1)_$(lang))))
349 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
350 $(call gb_Configuration_get_clean_target,$(1)) : \
351 $(call gb_Zip_get_clean_target,$(1)_$(lang))))
353 $(call gb_Configuration_get_target,$(1)) : SCHEMA_ROOT :=
355 $$(eval $$(call gb_Module_register_target,$(call gb_Configuration_get_target,$(1)),$(call gb_Configuration_get_clean_target,$(1))))
357 endef
359 # $(call gb_Configuration_add_schema,zipfile,prefix,xcsfile)
360 # FIXME this is always delivered because commands depend on it...
361 # hopefully extensions do not need to add schemas with same name as officecfg
362 define gb_Configuration_add_schema
363 $(call gb_Configuration_get_clean_target,$(1)) : \
364 $(call gb_XcsTarget_get_clean_target,$(2)/$(3))
365 $(call gb_XcsTarget_get_target,$(2)/$(3)) : \
366 $(call gb_Configuration__get_source,$(1),$(2)/$(3))
367 $(call gb_XcsTarget_get_target,$(2)/$(3)) : XCSFILE := $(3)
368 $(call gb_XcsTarget_get_clean_target,$(2)/$(3)) : XCSFILE := $(3)
369 $(call gb_Configuration_get_target,$(1)) : \
370 $(call gb_XcsTarget_get_outdir_target,$(3))
371 $(call gb_XcsTarget_get_outdir_target,$(3)) : \
372 $(call gb_XcsTarget_get_target,$(2)/$(3)) \
373 | $(dir $(call gb_XcsTarget_get_outdir_target,$(3))).dir
374 $(call gb_Deliver_add_deliverable,$(call gb_XcsTarget_get_outdir_target,$(3)),\
375 $(call gb_XcsTarget_get_target,$(2)/$(3)),$(2)/$(3))
377 endef
379 #$(call gb_Configuration_add_schemas,zipfile,prefix,xcsfiles)
380 define gb_Configuration_add_schemas
381 $(foreach xcs,$(3),$(call gb_Configuration_add_schema,$(1),$(2),$(xcs)))
383 endef
385 # $(call gb_Configuration_add_data,zipfile,prefix,xcufile)
386 define gb_Configuration_add_data
387 $(call gb_Configuration_get_clean_target,$(1)) : \
388 $(call gb_XcuDataTarget_get_clean_target,$(2)/$(3))
389 $(call gb_XcuDataTarget_get_target,$(2)/$(3)) : \
390 $(call gb_Configuration__get_source,$(1),$(2)/$(3)) \
391 $(call gb_XcsTarget_for_XcuTarget,$(3))
392 $(call gb_XcuDataTarget_get_target,$(2)/$(3)) : XCUFILE := $(3)
393 $(call gb_XcuDataTarget_get_clean_target,$(2)/$(3)) : XCUFILE := $(3)
394 ifeq ($(strip $(gb_Configuration_NODELIVER_$(1))),)
395 $(call gb_Configuration_get_target,$(1)) : \
396 $(call gb_XcuDataTarget_get_outdir_target,$(3))
397 $(call gb_XcuDataTarget_get_outdir_target,$(3)) : \
398 $(call gb_XcuDataTarget_get_target,$(2)/$(3)) \
399 | $(dir $(call gb_XcuDataTarget_get_outdir_target,$(3))).dir
400 $(call gb_Deliver_add_deliverable,\
401 $(call gb_XcuDataTarget_get_outdir_target,$(3)),\
402 $(call gb_XcuDataTarget_get_target,$(2)/$(3)),\
403 $(2)/$(3))
404 else
405 $(call gb_Configuration_get_target,$(1)) : \
406 $(call gb_XcuDataTarget_get_target,$(2)/$(3))
407 endif
409 endef
411 #$(call gb_Configuration_add_datas,zipfile,prefix,xcufiles)
412 define gb_Configuration_add_datas
413 $(foreach xcu,$(3),$(call gb_Configuration_add_data,$(1),$(2),$(xcu)))
415 endef
417 # $(call gb_Configuration_add_spool_module,zipfile,prefix,xcufile)
418 define gb_Configuration_add_spool_module
419 $(call gb_Configuration_get_clean_target,$(1)) : \
420 $(call gb_XcuModuleTarget_get_clean_target,$(2)/$(3))
421 $(call gb_XcuModuleTarget_get_target,$(2)/$(3)) : \
422 $(call gb_XcuDataSource_for_XcuModuleTarget,$(1),$(2)/$(3)) \
423 $(call gb_XcsTarget_for_XcuModuleTarget,$(3))
424 $(call gb_XcuModuleTarget_get_clean_target,$(2)/$(3)) : XCUFILE := $(3)
425 ifeq ($(strip $(gb_Configuration_NODELIVER_$(1))),)
426 $(call gb_Configuration_get_target,$(1)) : \
427 $(call gb_XcuModuleTarget_get_outdir_target,$(3))
428 $(call gb_XcuModuleTarget_get_outdir_target,$(3)) : \
429 $(call gb_XcuModuleTarget_get_target,$(2)/$(3)) \
430 | $(dir $(call gb_XcuModuleTarget_get_outdir_target,$(3))).dir
431 $(call gb_Deliver_add_deliverable,\
432 $(call gb_XcuModuleTarget_get_outdir_target,$(3)),\
433 $(call gb_XcuModuleTarget_get_target,$(2)/$(3)),\
434 $(2)/$(3))
435 else
436 $(call gb_Configuration_get_target,$(1)) : \
437 $(call gb_XcuModuleTarget_get_target,$(2)/$(3))
438 endif
440 endef
442 # $(call gb_Configuration_add_spool_modules,zipfile,prefix,xcufiles)
443 define gb_Configuration_add_spool_modules
444 $(foreach xcu,$(3),$(call gb_Configuration_add_spool_module,$(1),$(2),$(xcu)))
446 endef
448 define gb_Configuration__add_langpack
449 $(if $(gb_Configuration_NODELIVER_$(1)),\
450 $(error TODO not needed yet: cannot add langpack if nodeliver))
451 $(call gb_Configuration_get_clean_target,$(1)) : \
452 $(call gb_XcuLangpackTarget_get_clean_target,$(2)/$(3))
453 $(call gb_Configuration_get_target,$(1)) : \
454 $(call gb_XcuLangpackTarget__get_outdir_target_with_lang,$(3),$(4))
455 $(call gb_XcuLangpackTarget__get_target_with_lang,$(2)/$(3),$(4)) : \
456 $(SRCDIR)/$(2)/$(3).tmpl
457 $(call gb_XcuLangpackTarget_get_clean_target,$(2)/$(3)) : XCUFILE := $(3)
458 $(call gb_XcuLangpackTarget__get_target_with_lang,$(2)/$(3),$(4)) : LANG := $(4)
459 $(call gb_XcuLangpackTarget__get_outdir_target_with_lang,$(3),$(4)) : \
460 $(call gb_XcuLangpackTarget__get_target_with_lang,$(2)/$(3),$(4)) \
461 | $(dir $(call gb_XcuLangpackTarget__get_outdir_target_with_lang,$(3),$(4))).dir
462 $(call gb_Deliver_add_deliverable,\
463 $(call gb_XcuLangpackTarget__get_outdir_target_with_lang,$(3),$(4)),\
464 $(call gb_XcuLangpackTarget__get_target_with_lang,$(2)/$(3),$(4)),\
465 $(call gb_XcuLangpackTarget__get_name_with_lang,$(2)/$(3),$(4)))
467 endef
469 # $(call gb_Configuration_add_spool_langpack,zipfile,prefix,xcufile)
470 define gb_Configuration_add_spool_langpack
471 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
472 $(call gb_Configuration__add_langpack,$(1),$(2),$(strip $(3)),$(lang))))
474 endef
476 # $(call gb_Configuration_add_localized_data,zipfile,prefix,xcufile)
477 define gb_Configuration_add_localized_data
478 $(eval $(call gb_Configuration_add_data,$(1),$(2),$(3)))
479 ifneq ($(strip $(gb_WITH_LANG)),)
480 $(eval $(call gb_XcuMergeTarget_XcuMergeTarget,$(2)/$(3),$(1),$(2),$(3)))
481 $(eval $(call gb_Configuration_get_clean_target,$(1)) : \
482 $(call gb_XcuMergeTarget_get_clean_target,$(2)/$(3)))
483 endif
484 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
485 $(call gb_XcuResTarget_XcuResTarget,$(1)/$(lang)/$(3),$(1),$(2),$(3),$(lang))))
486 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
487 $(call gb_Zip_add_file,$(1)_$(lang),$(3))))
488 $(foreach lang,$(gb_Configuration_LANGS),$(eval \
489 $(call gb_Configuration_get_clean_target,$(1)) : \
490 $(call gb_XcuResTarget_get_clean_target,$(1)/$(lang)/$(3))))
492 endef
494 # $(call gb_Configuration_add_localized_datas,zipfile,prefix,xcufile)
495 define gb_Configuration_add_localized_datas
496 $(foreach xcu,$(3),$(call gb_Configuration_add_localized_data,$(1),$(2),$(xcu)))
498 endef
500 # Set extra registry this configuration can use schemas from.
502 # Example:
503 # # foo needs schemas from the main configuration
504 # $(eval $(call gb_Configuration_use_configuration,foo,officecfg))
505 define gb_Configuration_use_configuration
506 $(call gb_Configuration_get_target,$(1)) : $(call gb_Configuration_get_target,$(2))
507 $(call gb_Configuration_get_target,$(1)) : SCHEMA_ROOT := $(gb_Configuration_registry)/schema
509 endef
511 # vim: set noet sw=4 ts=4: