summaryrefslogtreecommitdiffstats
path: root/solenv
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2012-01-29 15:21:50 +0100
committerDavid Tardon <dtardon@redhat.com>2012-01-29 15:39:33 +0100
commit1deb3f671107b59cb0d5f10f62c6adfa9757c268 (patch)
tree3cc2dc4c26d73ef8dc298ec9f752a8e51df7cc2d /solenv
parentRevert "gbuildify apple_remote" need to have soenv2 merged before (diff)
downloadcore-1deb3f671107b59cb0d5f10f62c6adfa9757c268.tar.gz
core-1deb3f671107b59cb0d5f10f62c6adfa9757c268.zip
split rdb generation out of UnoApiTarget
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/TargetLocations.mk6
-rw-r--r--solenv/gbuild/TypesRdb.mk89
-rw-r--r--solenv/gbuild/UnoApiTarget.mk38
-rw-r--r--solenv/gbuild/gbuild.mk1
4 files changed, 113 insertions, 21 deletions
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index b49f890dd196..c5c7d8635975 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -38,6 +38,7 @@ gb_PackagePart_get_destinations = \
$(OUTDIR)/inc \
$(OUTDIR)/lib \
$(OUTDIR)/pck \
+ $(OUTDIR)/rdb \
$(OUTDIR)/unittest \
$(OUTDIR)/xml \
@@ -45,6 +46,7 @@ gb_PackagePart_get_target = $(OUTDIR)/$(1)
gb_Rdb_get_outdir_target = $(OUTDIR)/xml/$(1).rdb
gb_ResTarget_get_outdir_imagelist_target = $(OUTDIR)/res/img/$(1).ilst
gb_ResTarget_get_outdir_target = $(OUTDIR)/bin/$(1).res
+gb_TypesRdb_get_outdir_target = $(OUTDIR)/rdb/$(1).rdb
gb_Jar_get_outdir_target = $(OUTDIR)/bin/$(1).jar
gb_Zip_get_outdir_target = $(OUTDIR)/pck/$(1).zip
# outdir targets: $(1) is path
@@ -116,7 +118,8 @@ gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1)
gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs
gb_SrsTemplatePartTarget_get_target = $(WORKDIR)/inc/$(firstword $(subst /, ,$(1)))/$(subst _tmpl,,$(notdir $(1)))
gb_SrsTemplateTarget_get_target = $(WORKDIR)/SrsTemplateTarget/$(1)
-gb_UnoApiTarget_get_target = $(WORKDIR)/UnoApiTarget/$(1).rdb
+gb_TypesRdb_get_target = $(WORKDIR)/TypesRdb/$(1).rdb
+gb_UnoApiTarget_get_target = $(WORKDIR)/UnoApiTarget/$(1).done
gb_UnoApiOutTarget_get_target = $(OUTDIR)/bin/$(1).rdb
gb_UnoApiPartTarget_get_target = $(WORKDIR)/UnoApiPartTarget/$(1)
gb_UnoApiTarget_get_header_target = $(WORKDIR)/UnoApiHeaders/$(1)
@@ -171,6 +174,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
SdiTarget \
SrsTarget \
SrsTemplateTarget \
+ TypesRdb \
CppunitTest \
CustomTarget \
ExternalLib \
diff --git a/solenv/gbuild/TypesRdb.mk b/solenv/gbuild/TypesRdb.mk
new file mode 100644
index 000000000000..9beb9218a07a
--- /dev/null
+++ b/solenv/gbuild/TypesRdb.mk
@@ -0,0 +1,89 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2010 Red Hat, Inc., David Tardon <dtardon@redhat.com>
+# (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+gb_TypesRdb_REGMERGETARGET := $(call gb_Executable_get_target_for_build,regmerge)
+gb_TypesRdb_REGMERGECOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_TypesRdb_REGMERGETARGET)
+
+define gb_TypesRdb__command_impl
+RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(call gb_Helper_convert_native,$(1) $(2) $(3))) && \
+$(gb_TypesRdb_REGMERGECOMMAND) @$${RESPONSEFILE} && \
+rm -f $${RESPONSEFILE}
+endef
+
+define gb_TypesRdb__command
+$(call gb_Output_announce,$*,$(true),RDB,3)
+mkdir -p $(dir $(1)) && \
+$(if $(TYPESRDB_FILES),$(call gb_TypesRdb__command_impl,$(1),UCR,$(TYPESRDB_FILES)),true) && \
+$(if $(TYPESRDB_MERGE),$(call gb_TypesRdb__command_impl,$(1),/,$(TYPESRDB_MERGE)),true)
+endef
+
+$(call gb_TypesRdb_get_outdir_target,%) :
+ $(call gb_Deliver_deliver,$(call gb_TypesRdb_get_target,$*),$@)
+
+$(call gb_TypesRdb_get_target,%) :
+ $(call gb_TypesRdb__command,$@,$*,$<,$?)
+
+.PHONY : $(call gb_TypesRdb_get_clean_target,%)
+$(call gb_TypesRdb_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),RDB,3)
+ $(call gb_Helper_convert_native,\
+ rm -f $(call gb_TypesRdb_get_target,$*) $(call gb_TypesRdb_get_outdir_target,$*))
+
+define gb_TypesRdb_TypesRdb
+$(call gb_TypesRdb_get_outdir_target,$(1)) : $(call gb_TypesRdb_get_target,$(1))
+$(call gb_TypesRdb_get_target,$(1)) : TYPESRDB_FILES :=
+$(call gb_TypesRdb_get_target,$(1)) : TYPESRDB_MERGE :=
+
+$(call gb_Deliver_add_deliverable,$(call gb_TypesRdb_get_outdir_target,$(1)),$(call gb_TypesRdb_get_target,$(1)),$(1))
+
+$$(eval $$(call gb_Module_register_target,$(call gb_TypesRdb_get_outdir_target,$(1)),$(call gb_TypesRdb_get_clean_target,$(1))))
+
+endef
+
+define gb_TypesRdb_add_urdfile
+$(call gb_TypesRdb_get_target,$(1)) : TYPESRDB_FILES += $(2)
+$(call gb_TypesRdb_get_target,$(1)) : $(2)
+
+endef
+
+define gb_TypesRdb_add_urdfiles
+$(foreach urd,$(2),$(call gb_TypesRdb_add_urdfile,$(1),$(urd)))
+
+endef
+
+define gb_TypesRdb_add_rdbfile
+$(call gb_TypesRdb_get_target,$(1)) : TYPESRDB_MERGE += $(call gb_TypesRdb_get_outdir_target,$(2))
+$(call gb_TypesRdb_get_target,$(1)) : $(call gb_TypesRdb_get_outdir_target,$(2))
+
+endef
+
+define gb_TypesRdb_add_rdbfiles
+$(foreach rdb,$(2),$(call gb_TypesRdb_add_rdbfile,$(1),$(rdb)))
+
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 4614fc6df304..8d8ed4703901 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -28,8 +28,6 @@
gb_UnoApiTarget_IDLCTARGET := $(OUTDIR_FOR_BUILD)/bin/idlc$(gb_Executable_EXT_for_build)
gb_UnoApiTarget_IDLCCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_UnoApiTarget_IDLCTARGET)
-gb_UnoApiTarget_REGMERGETARGET := $(OUTDIR_FOR_BUILD)/bin/regmerge$(gb_Executable_EXT_for_build)
-gb_UnoApiTarget_REGMERGECOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_UnoApiTarget_REGMERGETARGET)
gb_UnoApiTarget_REGCOMPARETARGET := $(OUTDIR_FOR_BUILD)/bin/regcompare$(gb_Executable_EXT_for_build)
gb_UnoApiTarget_REGCOMPARECOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_UnoApiTarget_REGCOMPARETARGET)
gb_UnoApiTarget_CPPUMAKERTARGET := $(OUTDIR_FOR_BUILD)/bin/cppumaker$(gb_Executable_EXT_for_build)
@@ -37,6 +35,9 @@ gb_UnoApiTarget_CPPUMAKERCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDI
gb_UnoApiTarget_REGVIEWTARGET := $(OUTDIR_FOR_BUILD)/bin/regview$(gb_Executable_EXT_for_build)
gb_UnoApiTarget_REGVIEWCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_UnoApiTarget_REGVIEWTARGET)
+$(call gb_UnoApiOutTarget_get_target,%) :
+ $(call gb_Deliver_deliver,$(call gb_TypesRdb_get_target,$*),$@)
+
define gb_UnoApiTarget_autopackage_inc
$$(eval $$(call gb_Package_Package,$(1)_inc,$$(patsubst %/empty,%,$$(call gb_UnoApiTarget_get_header_target,empty))))
$(foreach onefile,$(gb_UnoApiTarget_HPPFILES_$(1)), \
@@ -54,12 +55,15 @@ $(foreach onefile,$(gb_UnoApiTarget_IDLFILES_$(1)), \
endef
define gb_UnoApiTarget_UnoApiTarget
+$(call gb_TypesRdb_TypesRdb,$(1))
$$(eval $$(call gb_Module_register_target,$(call gb_UnoApiOutTarget_get_target,$(1)),$(call gb_UnoApiOutTarget_get_clean_target,$(1))))
$(call gb_UnoApiOutTarget_get_target,$(1)) : $(call gb_UnoApiTarget_get_target,$(1))
+$(call gb_UnoApiOutTarget_get_target,$(1)) : $(call gb_TypesRdb_get_outdir_target,$(1))
$(call gb_UnoApiOutTarget_get_clean_target,$(1)) : $(call gb_UnoApiTarget_get_clean_target,$(1))
+$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_TypesRdb_get_target,$(1))
+$(call gb_UnoApiTarget_get_clean_target,$(1)) : $(call gb_TypesRdb_get_clean_target,$(1))
$(call gb_UnoApiTarget_get_target,$(1)) : INCLUDE :=
$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPS :=
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_MERGE :=
$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_REFERENCE :=
gb_UnoApiTarget_HPPFILES_$(1) :=
gb_UnoApiTarget_IDLFILES_$(1) :=
@@ -73,6 +77,7 @@ define gb_UnoApiTarget__add_idlfile
$(call gb_UnoApiPartTarget_get_target,$(2)/idl.done) : \
$(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd)
gb_UnoApiTarget_IDLFILES_$(1) += $(2)/$(3).idl
+$(call gb_TypesRdb_add_urdfile,$(1),$(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd))
ifeq ($(gb_FULLDEPS),$(true))
$(call gb_UnoApiTarget_get_dep_target,$(1)) : \
@@ -145,9 +150,9 @@ $(foreach rdb,$(2),$(call gb_UnoApiTarget_add_rdbfile,$(1),$(rdb)))
endef
define gb_UnoApiTarget_add_rdbfile
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPS += -X$(call gb_UnoApiOutTarget_get_target,$(2))
+$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPS += -X$(call gb_TypesRdb_get_outdir_target,$(2))
$(call gb_UnoApiTarget_get_target,$(1)) : \
- $(call gb_UnoApiOutTarget_get_target,$(2)) \
+ $(call gb_TypesRdb_get_outdir_target,$(2)) \
$(call gb_Package_get_target,$(2)_idl)
endef
@@ -158,8 +163,7 @@ $(foreach rdb,$(2),$(call gb_UnoApiTarget_add_merge_rdbfile,$(1),$(rdb)))
endef
define gb_UnoApiTarget_add_merge_rdbfile
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_MERGE += $(call gb_UnoApiOutTarget_get_target,$(2))
-$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiOutTarget_get_target,$(2))
+$(call gb_TypesRdb_add_rdbfile,$(1),$(2))
endef
@@ -175,13 +179,12 @@ endef
.PHONY : $(call gb_UnoApiOutTarget_get_clean_target,%)
$(call gb_UnoApiOutTarget_get_clean_target,%) :
- $(call gb_Output_announce,$*,$(false),UNO,1)
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(call gb_UnoApiOutTarget_get_target,$*))
.PHONY : $(call gb_UnoApiTarget_get_clean_target,%)
$(call gb_UnoApiTarget_get_clean_target,%) :
- $(call gb_Output_announce,$*,$(false),UNO,1)
+ $(call gb_Output_announce,$*,$(false),UNO,2)
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(call gb_UnoApiTarget_get_target,$*))
-rm -rf $(call gb_UnoApiTarget_get_header_target,$*)\
@@ -221,15 +224,12 @@ define gb_UnoApiPartTarget__command
endef
define gb_UnoApiTarget__command
- mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(call gb_Helper_convert_native,$(1) $(4) $(5))) && \
- $(gb_UnoApiTarget_REGMERGECOMMAND) @$${RESPONSEFILE} && \
- rm -f $${RESPONSEFILE}
-
+$(call gb_Output_announce,$*,$(true),UNO,2)
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && touch $(1))
endef
define gb_UnoApiHeaderTarget__command
- mkdir -p $(dir $(1)) && \
RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),100,\
$(call gb_Helper_convert_native,-Gc -L -BUCR \
-O$(call gb_UnoApiTarget_get_header_target,$(2)) $(3) $(1))) && \
@@ -265,14 +265,12 @@ endif
# - empty $? in headertarget?
$(call gb_UnoApiTarget_get_target,%):
- $(call gb_Output_announce,$*,$(true),RDB,3)
- $(if $(gb_UnoApiTarget_IDLFILES_$*),$(call gb_UnoApiTarget__command,$@,$*,$<,UCR,$(addprefix $(call gb_UnoApiPartTarget_get_target,),$(patsubst %.idl,%.urd,$(gb_UnoApiTarget_IDLFILES_$*)))))
- $(if $(UNOAPI_MERGE),$(call gb_UnoApiTarget__command,$@,$*,$<,/,$(UNOAPI_MERGE)))
+ $(call gb_UnoApiTarget__command,$@,$*,$<,$?)
$(if $(UNOAPI_REFERENCE), \
$(call gb_Output_announce,$*,$(true),DBc,4) \
- $(gb_UnoApiTarget_REGCOMPARECOMMAND) -f -t -r1 $(call gb_Helper_convert_native,$(UNOAPI_REFERENCE)) -r2 $(call gb_Helper_convert_native,$@))
+ $(gb_UnoApiTarget_REGCOMPARECOMMAND) -f -t -r1 $(call gb_Helper_convert_native,$(UNOAPI_REFERENCE)) -r2 $(call gb_Helper_convert_native,$(call gb_TypesRdb_get_target,$*)))
$(if $(gb_UnoApiTarget_IDLFILES_$*), \
$(call gb_Output_announce,$*,$(true),HPP,4) \
- $(call gb_UnoApiHeaderTarget__command,$@,$*,$(UNOAPI_DEPS)))
+ $(call gb_UnoApiHeaderTarget__command,$(call gb_TypesRdb_get_target,$*),$*,$(UNOAPI_DEPS)))
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 1633bd936f2f..6884b34520f8 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -289,6 +289,7 @@ include $(foreach class, \
JavaClassSet \
JunitTest \
Module \
+ TypesRdb \
UnoApiTarget \
Zip \
Configuration \