Bump for 3.6-28
[LibreOffice.git] / solenv / gbuild / ComponentTarget.mk
blob31dd441a528c07a80605d0ab937060ba9acfb261
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
2 #*************************************************************************
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 #
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))
45 endef
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))
76 endef
78 # vim: set noet sw=4: