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, 2010 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 #*************************************************************************
29 gb_ComponentTarget_XSLTCOMMANDFILE
:= $(SOLARENV
)/bin
/createcomponent.xslt
30 gb_ComponentTarget_get_source
= $(1)/$(2).component
32 # In the DISABLE_DYNLOADING case we don't need any COMPONENTPREFIX, we
33 # put just the static library filename into the uri parameter. For
34 # each statically linked app using some subset of LO components, there
35 # is a mapping from library filenames to direct pointers to the
36 # corresponding PREFIX_component_getFactory functions.
37 define gb_ComponentTarget__command
38 $(call gb_Output_announce
,$(3),$(true
),CMP
,1)
39 $(if
$(LIBFILENAME
),,$(call gb_Output_error
,No LIBFILENAME set at component target
: $(1)))
40 $(call gb_Helper_abbreviate_dirs
,\
41 mkdir
-p
$(dir $(1)) && \
42 $(gb_XSLTPROC
) --nonet
--stringparam uri \
43 '$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,$(subst \d,$$,$(COMPONENTPREFIX)))$(LIBFILENAME)' -o
$(1) \
44 $(gb_ComponentTarget_XSLTCOMMANDFILE
) $(2))
48 $(call gb_ComponentTarget_get_clean_target
,%) :
49 $(call gb_Output_announce
,$*,$(false
),CMP
,1)
50 rm -f
$(call gb_ComponentTarget_get_outdir_target
,$*) \
51 $(call gb_ComponentTarget_get_target
,$*) \
54 $(call gb_ComponentTarget_get_target
,%) : \
55 $(call gb_ComponentTarget_get_source
,$(SRCDIR
),%) $(gb_XSLTPROCTARGET
)
56 $(call gb_ComponentTarget__command
,$@
,$<,$*)
58 $(call gb_ComponentTarget_get_target
,%) :
59 $(eval
$(call gb_Outpt_error
,Unable to find component file
$(call gb_ComponentTarget_get_source
,,$*) in the repositories
: $(gb_ComponentTarget_REPOS
) or xsltproc is missing.
))
61 # the .dir is for make 3.81, which ignores trailing /
62 $(dir $(call gb_ComponentTarget_get_outdir_target
,))%/.
dir :
63 $(if
$(wildcard $(dir $@
)),,mkdir
-p
$(dir $@
))
65 $(call gb_ComponentTarget_get_outdir_target
,%) :
66 $(call gb_Deliver_deliver
,$<,$@
)
68 define gb_ComponentTarget_ComponentTarget
69 $(call gb_ComponentTarget_get_target
,$(1)) : COMPONENTPREFIX
:= $(2)
70 $(call gb_ComponentTarget_get_target
,$(1)) : LIBFILENAME
:= $(3)
71 $(call gb_ComponentTarget_get_outdir_target
,$(1)) : \
72 $(call gb_ComponentTarget_get_target
,$(1)) \
73 |
$(dir $(call gb_ComponentTarget_get_outdir_target
,$(1))).
dir
74 $(call gb_Deliver_add_deliverable
,$(call gb_ComponentTarget_get_outdir_target
,$(1)),$(call gb_ComponentTarget_get_target
,$(1)),$(1))