1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
2 #*************************************************************************
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 # Copyright 2000, 2011 Oracle and/or its affiliates.
8 # OpenOffice.org - a multi-platform office productivity suite
10 # This file is part of OpenOffice.org.
12 # OpenOffice.org is free software: you can redistribute it and/or modify
13 # it under the terms of the GNU Lesser General Public License version 3
14 # only, as published by the Free Software Foundation.
16 # OpenOffice.org is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU Lesser General Public License version 3 for more details
20 # (a copy is included in the LICENSE file that accompanied this code).
22 # You should have received a copy of the GNU Lesser General Public License
23 # version 3 along with OpenOffice.org. If not, see
24 # <http://www.openoffice.org/license.html>
25 # for a copy of the LGPLv3 License.
27 #*************************************************************************
30 # Overview of dependencies and tasks of SrsTarget
32 # target task depends on
33 # SrsTarget joining the parts SrsPartTarget
35 # SrsPartTarget preprocessing SrsPartMergeTarget (with l10n)
36 # source file (without l10n)
37 # SrsTemplateTarget handling templates SrsTemplatePartTarget
38 # SrsTemplatePartTarget handling template SrsPartMergeTarget
39 # SrsPartMergeTarget merging/transex source file (only needed with l10n)
41 # Overview of dependencies and tasks of AllLangResTarget
43 # target task depends on
44 # AllLangResTarget nothing ResTarget for all active langs
45 # ResTarget running rsc SrsTarget, resources
48 # SrsPartMergeTarget class
50 gb_SrsPartMergeTarget_TRANSEXTARGET
:= $(call gb_Executable_get_target_for_build
,transex3
)
51 # gb_SrsPartMergeTarget_TRANSEXPRECOMMAND is set by the platforms
53 gb_SrsPartMergeTarget_TRANSEXCOMMAND
:= $(gb_SrsPartMergeTarget_TRANSEXPRECOMMAND
) $(gb_SrsPartMergeTarget_TRANSEXTARGET
)
54 gb_SrsPartMergeTarget_SDFLOCATION
:= $(SRCDIR
)/translations
/$(INPATH
)/misc
/sdf
/
56 define gb_SrsPartMergeTarget__command
57 $(call gb_Output_announce
,$(3),$(true
),srs
,1)
58 $(call gb_Helper_abbreviate_dirs_native
,\
59 mkdir
-p
$(dir $(1)) && \
60 $(gb_SrsPartMergeTarget_TRANSEXCOMMAND
) \
61 -p
$(firstword $(subst /, ,$(2))) \
69 $(call gb_SrsPartMergeTarget_get_target
,%) : $(SRCDIR
)/% $(gb_Helper_MISCDUMMY
) |
$(gb_SrsPartMergeTarget_TRANSEXTARGET
)
70 $(if
$(SDF
),$(call gb_SrsPartMergeTarget__command
,$@
,$*,$<),mkdir
-p
$(dir $@
) && cp
$< $@
)
76 # gb_SrsPartTarget_RSCTARGET
77 # gb_SrsPartTarget_RSCCOMMAND
78 # gb_SrsPartTarget__command_dep
80 define gb_SrsPartTarget__command
81 $(call gb_Helper_abbreviate_dirs_native
,\
82 mkdir
-p
$(dir $(1)) && \
83 RESPONSEFILE
=`$(gb_MKTEMP)` && \
86 -I$(realpath $(dir $(3))) \
89 $(realpath $(if $(MERGEDFILE),$(MERGEDFILE),$<))" > $${RESPONSEFILE} && \
90 $(gb_SrsPartTarget_RSCCOMMAND
) -presponse @
$${RESPONSEFILE} && \
91 rm -rf
$${RESPONSEFILE})
95 $(call gb_SrsPartTarget_get_target
,%) : $(SRCDIR
)/% $(gb_Helper_MISCDUMMY
) |
$(gb_SrsPartTarget_RSCTARGET
)
96 $(call gb_SrsPartTarget__command_dep
,$*,$<)
97 $(call gb_SrsPartTarget__command
,$@
,$*,$<)
99 ifeq ($(gb_FULLDEPS
),$(true
))
100 $(call gb_SrsPartTarget_get_dep_target
,%) : $(SRCDIR
)/% $(gb_Helper_MISCDUMMY
)
101 $(call gb_Helper_abbreviate_dirs
,\
102 mkdir
-p
$(dir $@
) && \
103 echo
'$(call gb_SrsPartTarget_get_target,$*) : $(gb_Helper_PHONY)' > $@
)
105 $(call gb_SrsPartTarget_get_dep_target
,%) :
106 $(eval
$(call gb_Output_error
,Unable to find resource definition file
$* in repositories
: $(gb_SrsPartTarget_REPOS
)))
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_get_target
,$(1)) : SDF
:= $(realpath
$(gb_SrsPartMergeTarget_SDFLOCATION
)$(dir $(1))localize.sdf
)
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 $(WITH_LANG
)),)
129 $(call gb_SrsPartMergeTarget_get_target
,$(1)) : SDF
:= $(realpath
$(gb_SrsPartMergeTarget_SDFLOCATION
)$(dir $(1))localize.sdf
)
130 $(call gb_SrsPartMergeTarget_get_target
,$(1)) : $$(SDF
)
135 # SrsTemplateTarget class
137 define gb_SrsTemplateTarget__command
138 $(call gb_Helper_abbreviate_dirs
,\
139 mkdir
-p
$(dir $(1)) && \
143 gb_SrsTemplateTarget__get_merged_target
= $(call gb_SrsTemplateTarget_get_target
,$(1))_merged_last
144 gb_SrsTemplateTarget__get_unmerged_target
= $(call gb_SrsTemplateTarget_get_target
,$(1))_unmerged_last
146 ifeq ($(strip $(WITH_LANG
)),)
147 gb_SrsTemplateTarget__get_target
= $(call gb_SrsTemplateTarget__get_unmerged_target
,$(1))
148 gb_SrsTemplateTarget__get_update_target
= $(call gb_SrsTemplateTarget__get_merged_target
,$(1))
150 gb_SrsTemplateTarget__get_target
= $(call gb_SrsTemplateTarget__get_merged_target
,$(1))
151 gb_SrsTemplateTarget__get_update_target
= $(call gb_SrsTemplateTarget__get_unmerged_target
,$(1))
154 define gb_SrsTemplateTarget_SrsTemplateTarget
155 $(call gb_SrsTemplateTarget_get_target
,$(1)) : PARTS
:=
156 $(call gb_SrsTemplateTarget_get_clean_target
,$(1)) : PARTS
:=
157 $(call gb_SrsTemplateTarget_get_target
,$(1)) : $(call gb_SrsTemplateTarget__get_target
,$(1))
158 $(call gb_SrsTemplateTarget__get_target
,$(1)) : $(call gb_SrsTemplateTarget__get_update_target
,$(1))
162 .PHONY
: $(call gb_SrsTemplateTarget_get_target
,%_last
)
163 $(call gb_SrsTemplateTarget_get_target
,%_last
) :
164 $(call gb_SrsTemplateTarget__command
,$@
)
166 .PHONY
: $(call gb_SrsTemplateTarget_get_target
,%)
167 $(call gb_SrsTemplateTarget_get_target
,%) :
168 $(if
$(strip $(PARTS
)),$(call gb_Output_announce
,$*,$(true
),SRT
,4))
169 $(call gb_SrsTemplateTarget__command
,$@
)
171 .PHONY
: $(call gb_SrsTemplateTarget_get_clean_target
,%)
172 $(call gb_SrsTemplateTarget_get_clean_target
,%) :
173 $(if
$(strip $(PARTS
)),$(call gb_Output_announce
,$*,$(false
),SRT
,4))
174 -$(call gb_Helper_abbreviate_dirs
,\
175 rm -f
$(call gb_SrsTemplateTarget_get_target
,$*) \
176 $(call gb_SrsTemplateTarget__get_merged_target
,$*) \
177 $(call gb_SrsTemplateTarget__get_unmerged_target
,$*) \
178 $(foreach part
,$(PARTS
),$(call gb_SrsTemplatePartTarget_get_target
,$(part
))) \
179 $(foreach part
,$(PARTS
),$(call gb_SrsPartMergeTarget_get_target
,$(part
))))
181 define gb_SrsTemplateTarget_add_file
182 $(call gb_SrsTemplatePartTarget_SrsTemplatePartTarget
,$(2))
183 $(call gb_SrsTemplateTarget_get_target
,$(1)) : PARTS
+= $(2)
184 $(call gb_SrsTemplateTarget_get_clean_target
,$(1)) : PARTS
+= $(2)
185 $(call gb_SrsTemplateTarget__get_target
,$(1)) : $(call gb_SrsTemplatePartTarget_get_target
,$(2))
186 $(call gb_SrsTemplatePartTarget_get_target
,$(2)) : $(call gb_SrsTemplateTarget__get_update_target
,$(1))
187 $(call gb_SrsPartMergeTarget_get_target
,$(2)) : $(call gb_SrsTemplateTarget__get_update_target
,$(1))
193 gb_SrsTarget_DEFAULTDEFS
:= $(gb_GLOBALDEFS
)
195 .PHONY
: $(call gb_SrsTarget_get_clean_target
,%)
196 $(call gb_SrsTarget_get_clean_target
,%) :
197 $(call gb_Output_announce
,$*,$(false
),SRS
,1)
198 -$(call gb_Helper_abbreviate_dirs
,\
199 rm -f
$(call gb_SrsTarget_get_target
,$*) \
200 $(call gb_SrsTarget_get_dep_target
,$*) \
201 $(foreach part
,$(PARTS
),$(call gb_SrsPartTarget_get_target
,$(part
))) \
202 $(foreach part
,$(PARTS
),$(call gb_SrsPartTarget_get_dep_target
,$(part
))) \
203 $(foreach part
,$(PARTS
),$(call gb_SrsPartMergeTarget_get_target
,$(part
))))
205 ifeq ($(gb_FULLDEPS
),$(true
))
206 define gb_SrsTarget__command_dep
207 $(call gb_Output_announce
,SRS
:$(2),$(true
),DEP
,1)
208 $(call gb_Helper_abbreviate_dirs
,\
209 mkdir
-p
$(dir $(1)) && \
214 $(call gb_SrsTarget_get_target
,%) :
215 $(call gb_SrsTarget__command_dep
,$(call gb_SrsTarget_get_dep_target
,$*),$*,$(foreach part
,$(PARTS
),$(call gb_SrsPartTarget_get_dep_target
,$(part
))))
216 $(call gb_Output_announce
,$*,$(true
),SRS
,1)
217 $(call gb_Helper_abbreviate_dirs
,\
218 mkdir
-p
$(dir $@
) && \
221 ifeq ($(gb_FULLDEPS
),$(true
))
222 $(call gb_SrsTarget_get_dep_target
,%) :
223 $(call gb_SrsTarget__command_dep
,$@
,$*,$^
)
226 define gb_SrsTarget_SrsTarget
227 $(call gb_SrsTemplateTarget_SrsTemplateTarget
,$(1))
228 $(call gb_SrsTarget_get_target
,$(1)) : DEFS
:= $(gb_SrsTarget_DEFAULTDEFS
)
229 $(call gb_SrsTarget_get_target
,$(1)) : INCLUDE
:= $(SOLARINC
)
230 $(call gb_SrsTarget_get_clean_target
,$(1)) : PARTS
:=
231 $(call gb_SrsTarget_get_target
,$(1)) : PARTS
:=
232 $(call gb_SrsTarget_get_target
,$(1)) : $(call gb_SrsTemplateTarget_get_target
,$(1))
233 $(call gb_SrsTarget_get_clean_target
,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target
,$(1))
234 ifeq ($(gb_FULLDEPS
),$(true
))
235 ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target
,$(1))),)
236 include $(call gb_SrsTarget_get_dep_target
,$(1))
238 $(firstword $(MAKEFILE_LIST
)) : $(call gb_SrsTarget_get_dep_target
,$(1))
244 define gb_SrsTarget_set_defs
245 $(call gb_SrsTarget_get_target
,$(1)) : DEFS
:= $(2)
246 ifeq ($(gb_FULLDEPS
),$(true
))
247 $(call gb_SrsTarget_get_dep_target
,$(1)) : DEFS
:= $(2)
252 define gb_SrsTarget_set_include
253 $(call gb_SrsTarget_get_target
,$(1)) : INCLUDE
:= $(2)
254 ifeq ($(gb_FULLDEPS
),$(true
))
255 $(call gb_SrsTarget_get_dep_target
,$(1)) : INCLUDE
:= $(2)
260 define gb_SrsTarget_add_file
261 ifeq ($(gb_FULLDEPS
),$(true
))
262 $(call gb_SrsTarget_get_dep_target
,$(1)) : $(call gb_SrsPartTarget_get_dep_target
,$(2))
264 $(call gb_SrsPartTarget_SrsPartTarget
,$(2))
265 $(call gb_SrsTarget_get_target
,$(1)) : $(call gb_SrsPartTarget_get_target
,$(2))
266 $(call gb_SrsPartTarget_get_target
,$(2)) :|
$(call gb_SrsTemplateTarget_get_target
,$(1))
267 $(call gb_SrsTarget_get_clean_target
,$(1)) : PARTS
+= $(2)
268 $(call gb_SrsTarget_get_target
,$(1)) : PARTS
+= $(2)
272 define gb_SrsTarget_add_files
273 $(foreach file
,$(2),$(call gb_SrsTarget_add_file
,$(1),$(file
)))
277 define gb_SrsTarget_add_template
278 $(call gb_SrsTemplateTarget_add_file
,$(1),$(2))
282 define gb_SrsTarget_add_templates
283 $(foreach template
,$(2),$(call gb_SrsTarget_add_template
,$(1),$(template
)))
290 gb_ResTarget_RSCTARGET
:= $(gb_SrsPartTarget_RSCTARGET
)
291 gb_ResTarget_RSCCOMMAND
:= $(gb_SrsPartTarget_RSCCOMMAND
)
292 gb_ResTarget_DEFIMAGESLOCATION
:= $(realpath
$(SRCDIR
)/default_images
)/
294 $(call gb_ResTarget_get_clean_target
,%) :
295 $(call gb_Output_announce
,$*,$(false
),RES
,2)
296 $(call gb_Helper_abbreviate_dirs
,\
297 rm -f
$(call gb_ResTarget_get_target
,$*) $(call gb_ResTarget_get_imagelist_target
,$*) $(call gb_ResTarget_get_outdir_target
,$*) $(call gb_ResTarget_get_outdir_imagelist_target
,$*))
299 $(call gb_ResTarget_get_target
,%) : $(gb_Helper_MISCDUMMY
) |
$(gb_ResTarget_RSCTARGET
)
300 $(call gb_Output_announce
,$*,$(true
),RES
,2)
301 $(call gb_Helper_abbreviate_dirs_native
,\
302 mkdir
-p
$(dir $@
) $(OUTDIR
)/bin \
303 $(dir $(call gb_ResTarget_get_imagelist_target
,$*)) && \
304 RESPONSEFILE
=`$(gb_MKTEMP)` && \
308 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY)) \
309 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE)) \
310 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst) \
311 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE)) \
312 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/imagelst) \
313 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res) \
314 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \
315 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \
316 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \
317 -subMODULE=$(dir $(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION))) \
318 -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \
319 -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \
320 $(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \
321 $(gb_ResTarget_RSCCOMMAND
) @
$${RESPONSEFILE} && \
322 rm -f
$${RESPONSEFILE})
324 $(call gb_ResTarget_get_outdir_target
,%) :
325 $(call gb_Helper_abbreviate_dirs
,\
326 $(call gb_Deliver_deliver
,$<,$@
) && \
327 $(call gb_Deliver_deliver
,$(dir $<)/$(notdir $(ILSTTARGET
)),$(ILSTTARGET
)))
329 define gb_ResTarget_ResTarget
330 $(call gb_ResTarget_get_target
,$(1)) : LIBRARY
= $(2)
331 $(call gb_ResTarget_get_target
,$(1)) : LANGUAGE
= $(3)
332 $(call gb_ResTarget_get_target
,$(1)) : RESLOCATION
= $(2)
333 $(call gb_AllLangResTarget_get_target
,$(2)) : $(call gb_ResTarget_get_outdir_target
,$(1))
334 $(call gb_AllLangResTarget_get_clean_target
,$(2)) : $(call gb_ResTarget_get_clean_target
,$(1))
335 $(call gb_ResTarget_get_imagelist_target
,$(1)) : $(call gb_ResTarget_get_target
,$(1))
337 $(call gb_ResTarget_get_outdir_target
,$(1)) : $(call gb_ResTarget_get_target
,$(1))
338 $(call gb_ResTarget_get_outdir_target
,$(1)) : ILSTTARGET
= $(call gb_ResTarget_get_outdir_imagelist_target
,$(1))
339 $(call gb_Deliver_add_deliverable
,$(call gb_ResTarget_get_outdir_target
,$(1)),$(call gb_ResTarget_get_target
,$(1)),$(1))
340 $(call gb_Deliver_add_deliverable
,$(call gb_ResTarget_get_outdir_imagelist_target
,$(1)),$(call gb_ResTarget_get_imagelist_target
,$(1)),$(1))
344 define gb_ResTarget_add_file
345 $(call gb_ResTarget_get_target
,$(1)) : $(2)
349 define gb_ResTarget_add_one_srs
350 $(call gb_ResTarget_add_file
,$(1),$(call gb_SrsTarget_get_target
,$(2)))
351 $(call gb_ResTarget_get_clean_target
,$(1)) : $(call gb_SrsTarget_get_clean_target
,$(2))
355 define gb_ResTarget_add_files
356 $(foreach file
,$(2),\
357 $(call gb_ResTarget_add_file
,$(1),$(file
)))
361 define gb_ResTarget_add_srs
363 $(call gb_ResTarget_add_one_srs
,$(1),$(srs
)))
367 define gb_ResTarget_set_reslocation
368 $(call gb_ResTarget_get_target
,$(1)) : RESLOCATION
= $(2)
375 gb_AllLangResTarget_LANGS
:= en-US
$(filter-out en-US
,$(gb_WITH_LANG
))
377 define gb_AllLangResTarget_set_langs
378 gb_AllLangResTarget_LANGS
:= $(1)
381 $(call gb_AllLangResTarget_get_clean_target
,%) :
382 $(call gb_Helper_abbreviate_dirs
,\
383 rm -f
$(call gb_AllLangResTarget_get_target
,$*))
385 $(call gb_AllLangResTarget_get_target
,%) :
386 $(call gb_Helper_abbreviate_dirs
,\
387 mkdir
-p
$(dir $@
) && touch
$@
)
389 define gb_AllLangResTarget_AllLangResTarget
390 $(foreach lang
,$(gb_AllLangResTarget_LANGS
),\
391 $(call gb_ResTarget_ResTarget
,$(1)$(lang
),$(1),$(lang
)))
392 $$(eval
$$(call gb_Module_register_target
,$(call gb_AllLangResTarget_get_target
,$(1)),$(call gb_AllLangResTarget_get_clean_target
,$(1))))
396 define gb_AllLangResTarget_add_one_srs
397 $(foreach lang
,$(gb_AllLangResTarget_LANGS
),\
398 $(call gb_ResTarget_add_one_srs
,$(1)$(lang
),$(2)))
402 define gb_AllLangResTarget_add_srs
404 $(call gb_AllLangResTarget_add_one_srs
,$(1),$(srs
)))
408 define gb_AllLangResTarget_set_reslocation
409 $(foreach lang
,$(gb_AllLangResTarget_LANGS
),\
410 $(call gb_ResTarget_set_reslocation
,$(1)$(lang
),$(2)))
414 # vim: set noet sw=4: