summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-09-19 15:11:30 +0200
committerStephan Bergmann <sbergman@redhat.com>2013-09-19 15:50:04 +0200
commit6db34b6b33ba8e3b13683efd05df8441b87e9c92 (patch)
tree8a4084e9f1757276d6e99ea9ba6caf9db9271fc7 /solenv
parent02ee39c1de1d9e5cd556a9e1aab5b6925e65ebec (diff)
Directly build UNOIDL .rdb files from .idl files
...via unoidl-write and the new source-format registry provicers, instead of using idlc to produce .urd files, regmerge to merge them into legacy .rdb files, and unoidl-write to translate those to new UNOIDL .rdb files. gb_UnoApi and gb_InternalUnoApi ctors take an additional argument now that is the path (below $(SRCDIR)) of the source-format registry from which to obtain UNOIDL entity definitions. It can either be an .idl file (in which case no *_add_idlfiles calls should be used and the resulting .rdb will contain all the entities from that one .idl file; used in some tests to conveniently define all test-specific entities in a single file) or a directory denoting the root of an .idl file tree (in which case *_add_idlfiles calls specify the entites to include in the resulting .idl file). (In the first case, the generated .rdb file needs to depend on that single .idl file, so the gb_UnoApiTarget ctor contains a dependency on that additional argument, which happens, as a side effect, to trigger rebuilds in the second, tree-based case when addition/removal of .idl files in the tree causes updates of directory time-stamps.) UnoApiPartTarget and all the dependency-tracking logic based on .urd files in solenv/gbuild/UnoApiTarget.mk is gone. Generation of an .rdb file now depends on its source registry (see previous paragraph) and all the .idl files specified with *_add_idlfiles (in the second, tree-based case above). A consequence of that is that gb_UnoApi_add_idlfile, -_nohdl, and -_noheader all do the same now. I left them in for now anyway, maybe they become relevant again when the use of cppumaker is changed to read directly from a source-format registry instead of going via a .rdb registry. The legacy tools idlc, regcompare, regmerge, and regview are still contained in the URE or SDK for now. cb344cd59e1ddb7c6db66dbd9263b4755969d4ba "Revert 'Looks like idlc resolved typedefs inside sequence<...>'" is re-reverted as now "the current offapi.rdb is generated via unoidl-write instead of idlc." Change-Id: I3d9d92f17326bc9f49dd934c85aab6a17951d06d
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/concat-deps.c5
-rw-r--r--solenv/gbuild/InternalUnoApi.mk9
-rw-r--r--solenv/gbuild/LinkTarget.mk1
-rw-r--r--solenv/gbuild/TargetLocations.mk3
-rw-r--r--solenv/gbuild/UnoApi.mk52
-rw-r--r--solenv/gbuild/UnoApiTarget.mk202
-rw-r--r--solenv/gbuild/extensions/pre_BuildTools.mk3
7 files changed, 29 insertions, 246 deletions
diff --git a/solenv/bin/concat-deps.c b/solenv/bin/concat-deps.c
index 5c4d12321147..ebabdd010a52 100644
--- a/solenv/bin/concat-deps.c
+++ b/solenv/bin/concat-deps.c
@@ -1015,11 +1015,6 @@ off_t size;
created_line = generate_phony_line(src_relative+10, "o");
rc = generate_phony_file(fn, created_line);
}
- else if(strncmp(fn+work_dir_len+5, "UnoApiPartTarget/", 17) == 0)
- {
- created_line = generate_phony_line(src_relative+17, "urd");
- rc = generate_phony_file(fn, created_line);
- }
else if(strncmp(fn+work_dir_len+5, "SrsPartTarget/", 14) == 0)
{
created_line = generate_phony_line(src_relative+14, "");
diff --git a/solenv/gbuild/InternalUnoApi.mk b/solenv/gbuild/InternalUnoApi.mk
index 869b6a799e20..296c783f35fc 100644
--- a/solenv/gbuild/InternalUnoApi.mk
+++ b/solenv/gbuild/InternalUnoApi.mk
@@ -24,11 +24,9 @@ $(call gb_InternalUnoApi_get_clean_target,%) :
rm -f $(call gb_InternalUnoApi_get_target,$*))
define gb_InternalUnoApi_InternalUnoApi
-$(call gb_UnoApiTarget_UnoApiTarget,$(1))
+$(call gb_UnoApiTarget_UnoApiTarget,$(1),$(2))
$(call gb_UnoApiHeadersTarget_UnoApiHeadersTarget,$(1))
-$(call gb_UnoApiTarget_set_root,$(1),UCR)
-
$(call gb_InternalUnoApi_get_target,$(1)) : $(call gb_UnoApiTarget_get_target,$(1))
$(call gb_InternalUnoApi_get_target,$(1)) :| $(dir $(call gb_InternalUnoApi_get_target,$(1))).dir
$(call gb_InternalUnoApi_get_clean_target,$(1)) : $(call gb_UnoApiHeadersTarget_get_clean_target,$(1))
@@ -80,9 +78,4 @@ $(foreach dep,$(3),$(call gb_InternalUnoApi_define_api_dependency,$(1),$(2),$(de
endef
-define gb_InternalUnoApi_set_include
-$(call gb_UnoApiTarget_set_include,$(1),$(2))
-
-endef
-
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index dc213bdeb7cd..7ad0d9c36e16 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -849,7 +849,6 @@ gb_BUILD_HELPER_LIBS := basegfx \
xmlreader \
gb_BUILD_HELPER_TOOLS := cppumaker \
- idlc \
regmerge \
rsc \
svidl \
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 007e730cee4e..73c55d7afc6f 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -196,7 +196,6 @@ gb_UnoApiHeadersTarget_get_real_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/nor
gb_UnoApiHeadersTarget_get_bootstrap_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),bootstrap).done
gb_UnoApiHeadersTarget_get_comprehensive_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),comprehensive).done
gb_UnoApiHeadersTarget_get_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),normal).done
-gb_UnoApiPartTarget_get_target = $(WORKDIR)/UnoApiPartTarget/$(1)
gb_UnpackedTarball_get_dir = $(WORKDIR)/UnpackedTarball/$(1)
gb_UnpackedTarball_get_pristine_dir = $(WORKDIR)/UnpackedTarball/$(1).org
gb_UnpackedTarball_get_final_target = $(WORKDIR)/UnpackedTarball/$(1).update
@@ -334,8 +333,6 @@ $(eval $(call gb_Helper_make_dep_targets,\
SdiTarget \
SrsPartTarget \
SrsTarget \
- UnoApiTarget \
- UnoApiPartTarget \
))
# other getters
diff --git a/solenv/gbuild/UnoApi.mk b/solenv/gbuild/UnoApi.mk
index eb3d7fbd8c76..79da2d90c021 100644
--- a/solenv/gbuild/UnoApi.mk
+++ b/solenv/gbuild/UnoApi.mk
@@ -15,15 +15,13 @@ $(call gb_UnoApi_get_clean_target,%) :
rm -f $(call gb_UnoApi_get_target,$*))
define gb_UnoApi_UnoApi
-$(call gb_UnoApiTarget_UnoApiTarget,$(1))
+$(call gb_UnoApiTarget_UnoApiTarget,$(1),$(2))
$(call gb_UnoApiHeadersTarget_UnoApiHeadersTarget,$(1))
ifneq ($(gb_UnoApi_ENABLE_INSTALL),)
$(call gb_Package_Package_internal,$(1)_idl,$(SRCDIR))
$(call gb_Package_set_outdir,$(1)_idl,$(INSTDIR))
endif
-$(call gb_UnoApiTarget_set_root,$(1),UCR)
-
$(call gb_UnoApi_get_target,$(1)) :| $(dir $(call gb_UnoApi_get_target,$(1))).dir
$(call gb_UnoApi_get_target,$(1)) : $(call gb_UnoApiTarget_get_target,$(1))
$(call gb_UnoApi_get_target,$(1)) : $(call gb_UnoApiHeadersTarget_get_target,$(1))
@@ -57,7 +55,7 @@ $(call gb_UnoApi_get_clean_target,$(1)) : $(call gb_Package_get_clean_target,$(1
endef
define gb_UnoApi__add_idlfile
-$(call gb_Package_add_file,$(1)_idl,$(patsubst $(1)/%,$(gb_Package_SDKDIRNAME)/idl/%,$(2)),$(2))
+$(call gb_Package_add_file,$(1)_idl,$(patsubst $(1)/%,$(gb_Package_SDKDIRNAME)/idl/%,$(2).idl),$(2).idl)
endef
@@ -68,72 +66,43 @@ gb_UnoApi__add_idlfile :=
endif
-define gb_UnoApi__add_headerfile_impl
-$(call gb_UnoApiHeadersTarget_add_headerfile,$(1),$(2),$(3))
-
-endef
-
-# Note: the expression in 3rd arg of call of gb_UnoApi__add_headerfile_impl
-# removes the leftmost dir in the subpath .-)
-define gb_UnoApi__add_headerfile
-$(call gb_UnoApi__add_headerfile_impl,$(1),$(2),$(subst $() $(),/,$(wordlist 2,$(words $(subst /, ,$(2))),$(subst /, ,$(2)))))
-
-endef
-
-define gb_UnoApi__add_idlfile_noheader
-$(call gb_UnoApi__add_idlfile,$(1),$(2).idl)
-
-endef
-
-define gb_UnoApi__add_idlfile_nohdl
-$(call gb_UnoApi__add_idlfile_noheader,$(1),$(2))
-$(call gb_UnoApi__add_headerfile,$(1),$(2).hpp)
-
-endef
-
-define gb_UnoApi__add_idlfile_full
-$(call gb_UnoApi__add_idlfile_nohdl,$(1),$(2))
-$(call gb_UnoApi__add_headerfile,$(1),$(2).hdl)
-
-endef
-
# For enum types, plain struct types, polymorphic struct type templates,
# exception types, interface types, typedefs, and constant groups:
define gb_UnoApi_add_idlfile
$(call gb_UnoApiTarget_add_idlfile,$(1),$(2),$(3))
-$(call gb_UnoApi__add_idlfile_full,$(1),$(2)/$(3))
+$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(3))
endef
define gb_UnoApi_add_idlfiles
$(call gb_UnoApiTarget_add_idlfiles,$(1),$(2),$(3))
-$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile_full,$(1),$(2)/$(idl)))
+$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(idl)))
endef
# For single-interface--based services and interface-based singletons:
define gb_UnoApi_add_idlfile_nohdl
$(call gb_UnoApiTarget_add_idlfile,$(1),$(2),$(3))
-$(call gb_UnoApi__add_idlfile_nohdl,$(1),$(2)/$(3))
+$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(3))
endef
define gb_UnoApi_add_idlfiles_nohdl
$(call gb_UnoApiTarget_add_idlfiles,$(1),$(2),$(3))
-$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile_nohdl,$(1),$(2)/$(idl)))
+$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(idl)))
endef
# For accumulation-based services and service-based singletons:
define gb_UnoApi_add_idlfile_noheader
$(call gb_UnoApiTarget_add_idlfile,$(1),$(2),$(3))
-$(call gb_UnoApi__add_idlfile_noheader,$(1),$(2)/$(3))
+$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(3))
endef
define gb_UnoApi_add_idlfiles_noheader
$(call gb_UnoApiTarget_add_idlfiles,$(1),$(2),$(3))
-$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile_noheader,$(1),$(2)/$(idl)))
+$(foreach idl,$(3),$(call gb_UnoApi__add_idlfile,$(1),$(gb_UnoApiTarget_REG_$(1))/$(2)/$(idl)))
endef
@@ -154,9 +123,4 @@ $(call gb_UnoApiTarget_set_reference_rdbfile,$(1),$(2))
endef
-define gb_UnoApi_set_include
-$(call gb_UnoApiTarget_set_include,$(1),$(2))
-
-endef
-
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 7fef39244deb..adab8cc2f080 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -17,202 +17,57 @@
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
-# UnoApiPartTarget
-
-gb_UnoApiPartTarget_IDLCDEPS := $(call gb_Executable_get_runtime_dependencies,idlc)
-gb_UnoApiPartTarget_IDLCCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,idlc)
-
-# The .urd files are actually created by the gb_UnoApiPartTarget__command,
-# invoked for the per-directory .done files.
-# The reason why .urd files are tracked is so new files that are added are
-# picked up and cause a rebuild, even if older than the .done file (also, as a
-# convenience for users who delete them from the workdir by hand; this dummy
-# rule plus the dependency from the .done target to the .urd file plus the
-# sort/patsubst call in gb_UnoApiPartTarget__command cause command to be
-# invoked with the .idl file corresponding to the .urd in that case.
-# Touch the .urd file, so it is newer than the .done file, causing that to
-# be rebuilt and overwriting the .urd file again.
-# the .dir is for make 3.81, which ignores trailing /
-$(dir $(call gb_UnoApiPartTarget_get_target,))%/.dir :
- $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-$(call gb_UnoApiPartTarget_get_target,%.urd) :
- touch $@
-
-# TODO:
-# - get idlc switch "-P" (generate .urd into package dir)
-# - empty $? in headertarget?
-
-define gb_UnoApiPartTarget__command
- $(call gb_Output_announce,$(2),$(true),IDL,2)
- mkdir -p $(call gb_UnoApiPartTarget_get_target,$(dir $(2))) && \
- RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,\
- $(sort $(patsubst $(call gb_UnoApiPartTarget_get_target,%.urd),$(SRCDIR)/%.idl,$(3)))) && \
- $(gb_UnoApiPartTarget_IDLCCOMMAND) \
- $(INCLUDE) \
- -M $(basename $(call gb_UnoApiPartTarget_get_dep_target,$(dir $(2)))) \
- -O $(call gb_UnoApiPartTarget_get_target,$(dir $(2))) -verbose \
- @$${RESPONSEFILE} > /dev/null && \
- rm -f $${RESPONSEFILE} && \
- touch $(1)
-
-endef
-
-# If idlc changed, rebuild everything; otherwise just the changed files.
-# In order for this to work the .urd files need to have a dependency on
-# idlc as well so their dummy rule fires if that changes.
-$(call gb_UnoApiPartTarget_get_target,%.done) : $(gb_UnoApiPartTarget_IDLCDEPS)
- $(call gb_UnoApiPartTarget__command,$@,$*,$(filter-out $(gb_UnoApiPartTarget_IDLCDEPS),$(if $(filter $(gb_UnoApiPartTarget_IDLCDEPS),$?),$^,$?)))
-
-ifeq ($(gb_FULLDEPS),$(true))
-$(dir $(call gb_UnoApiPartTarget_get_dep_target,%)).dir :
- $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-$(dir $(call gb_UnoApiPartTarget_get_dep_target,%))%/.dir :
- $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-$(call gb_UnoApiPartTarget_get_dep_target,%) :
- $(if $(wildcard $@),touch $@)
-
-endif
-
# UnoApiTarget
+gb_UnoApiTarget_UNOIDLWRITEDEPS := $(call gb_Executable_get_runtime_dependencies,unoidl-write)
+gb_UnoApiTarget_UNOIDLWRITECOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,unoidl-write)
+
gb_UnoApiTarget_UNOIDLCHECKDEPS := $(call gb_Executable_get_runtime_dependencies,unoidl-check)
gb_UnoApiTarget_UNOIDLCHECKCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,unoidl-check)
-gb_UnoApiTarget_REGMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,regmerge) $(call gb_Executable_get_runtime_dependencies,unoidl-write)
-gb_UnoApiTarget_REGMERGECOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,regmerge)
-
-gb_UnoApiTarget_TYPESRDB := $(call gb_UnoApiTarget_get_target,types)
-
-define gb_UnoApiTarget__command_impl
-RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(1).oldformat $(2) $(3)) && \
-$(gb_UnoApiTarget_REGMERGECOMMAND) @$${RESPONSEFILE} && \
-rm -f $${RESPONSEFILE} && \
-SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin \
- $(call gb_Executable_get_command,unoidl-write) \
- $(foreach rdb,$(4),$(call gb_UnoApiTarget_get_target,$(rdb))) \
- $(1).oldformat $(1)
-endef
-# first delete target rdb file to detect problems when removing IDL files
define gb_UnoApiTarget__command
$(call gb_Output_announce,$(2),$(true),UNO,4)
-mkdir -p $(dir $(1)) && \
-rm -f $(1) && \
-$(call gb_UnoApiTarget__command_impl,$(1),$(UNOAPI_ROOT),$(UNOAPI_FILES),$(UNOAPI_DEPRDBS)) \
+mkdir -p $(dir $(1)) \
+$(if $(UNOAPI_ENTITIES), \
+ && RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(UNOAPI_ENTITIES))) \
+&& $(gb_UnoApiTarget_UNOIDLWRITECOMMAND) \
+ $(foreach rdb,$(UNOAPI_DEPRDBS),$(call gb_UnoApiTarget_get_target,$(rdb))) \
+ $(SRCDIR)/$(gb_UnoApiTarget_REG_$(2)) $(if $(UNOAPI_ENTITIES),@$${RESPONSEFILE}) $(1) \
+$(if $(UNOAPI_ENTITIES),&& rm -f $${RESPONSEFILE}) \
$(if $(UNOAPI_REFERENCE), \
$(call gb_Output_announce,$(2),$(true),DBc,3) \
&& $(gb_UnoApiTarget_UNOIDLCHECKCOMMAND) $(UNOAPI_REFERENCE) -- \
- $(foreach rdb,$(4),$(call gb_UnoApiTarget_get_target,$(rdb))) $(1))
+ $(foreach rdb,$(UNOAPI_DEPRDBS),$(call gb_UnoApiTarget_get_target,$(rdb))) \
+ $(1))
endef
-define gb_UnoApiTarget__check_mode
-$(if $(UNOAPI_FILES),,$(error No IDL files have been set for the rdb file))
-$(if $(UNOAPI_ROOT),,$(error No root has been set for the rdb file))
-endef
-
-# This recipe actually also builds the dep-target as a side-effect, which
-# is an optimization to reduce incremental build time.
-# Note this requires the variable UNOAPI_DEPFILES to be in sync on both targets.
$(call gb_UnoApiTarget_get_target,%) :
-ifeq ($(gb_FULLDEPS),$(true))
- $(call gb_UnoApiTarget__command_dep,$(call gb_UnoApiTarget_get_dep_target,$*),$*)
-endif
- $(call gb_UnoApiTarget__check_mode)
$(call gb_UnoApiTarget__command,$@,$*)
.PHONY : $(call gb_UnoApiTarget_get_clean_target,%)
$(call gb_UnoApiTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),UNO,4)
-$(call gb_Helper_abbreviate_dirs,\
- rm -rf $(call gb_UnoApiTarget_get_target,$*) \
- $(call gb_UnoApiTarget_get_target,$*).oldformat \
- $(call gb_UnoApiTarget_get_dep_target,$*) \
- $(basename $(call gb_UnoApiPartTarget_get_dep_target,$*)) \
- $(call gb_UnoApiPartTarget_get_target,$*))
-
-# cat the deps of all IDLs in one file, then we need only open that one file
-define gb_UnoApiTarget__command_dep
-$(call gb_Output_announce,IDL:$(2),$(true),DEP,1)
-$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
- $(foreach idl,$(UNOAPI_DEPFILES),$(call gb_UnoApiPartTarget_get_dep_target,$(idl)))) && \
- $(call gb_Executable_get_command,concat-deps) $${RESPONSEFILE} > $(1)) && \
- rm -f $${RESPONSEFILE}
-
-endef
-
-ifeq ($(gb_FULLDEPS),$(true))
-$(dir $(call gb_UnoApiTarget_get_dep_target,%)).dir :
- $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-$(dir $(call gb_UnoApiTarget_get_dep_target,%))%/.dir :
- $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-$(call gb_UnoApiTarget_get_dep_target,%) : $(call gb_Executable_get_runtime_dependencies,concat-deps)
- $(call gb_UnoApiTarget__command_dep,$@,$*)
-
-endif
+ rm -rf $(call gb_UnoApiTarget_get_target,$*))
define gb_UnoApiTarget_UnoApiTarget
-$(call gb_UnoApiTarget_get_target,$(1)) : INCLUDE :=
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_FILES :=
+gb_UnoApiTarget_REG_$(1) := $(2)
+$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_ENTITIES :=
$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_REFERENCE :=
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_ROOT :=
$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPRDBS :=
-
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPFILES :=
-$(call gb_UnoApiTarget_get_dep_target,$(1)) : UNOAPI_DEPFILES :=
--include $(call gb_UnoApiTarget_get_dep_target,$(1))
-$(call gb_UnoApiTarget_get_dep_target,$(1)) :| $(dir $(call gb_UnoApiTarget_get_dep_target,$(1))).dir
-endif
-
-endef
-
-define gb_UnoApiTarget__add_urdfile
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_FILES += $(2)
-$(call gb_UnoApiTarget_get_target,$(1)) : $(2)
-
-endef
-
-define gb_UnoApiTarget__add_idlfile
-$(call gb_UnoApiPartTarget_get_target,$(2)/idl.done) : \
- $(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd)
-$(call gb_UnoApiTarget__add_urdfile,$(1),$(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd))
-$(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd) \
- : $(gb_UnoApiPartTarget_IDLCDEPS) \
- | $(call gb_UnoApiPartTarget_get_target,$(2)/.dir)
-
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPFILES += $(2)/$(3)
-$(call gb_UnoApiTarget_get_dep_target,$(1)) : UNOAPI_DEPFILES += $(2)/$(3)
-$(call gb_UnoApiTarget_get_dep_target,$(1)) : \
- $(call gb_UnoApiPartTarget_get_dep_target,$(2)/$(3))
-$(call gb_UnoApiPartTarget_get_dep_target,$(2)/$(3)) :| $(dir $(call gb_UnoApiPartTarget_get_dep_target,$(2)/$(3))).dir
-endif
+$(call gb_UnoApiTarget_get_target,$(1)) : $(gb_UnoApiTarget_UNOIDLWRITEDEPS)
+$(call gb_UnoApiTarget_get_target,$(1)) : $(SRCDIR)/$(2) # may be dir, though
endef
-define gb_UnoApiTarget__add_idlfiles
-$(call gb_UnoApiTarget_get_target,$(1)) : \
- $(call gb_UnoApiPartTarget_get_target,$(2)/idl.done)
-$(call gb_UnoApiPartTarget_get_target,$(2)/idl.done) : \
- $(foreach idl,$(3),$(SRCDIR)/$(2)/$(idl).idl)
+define gb_UnoApiTarget_add_idlfile
+$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_ENTITIES += $(subst /,.,$(2))$(if $(2),.)$(3)
+$(call gb_UnoApiTarget_get_target,$(1)) : $(SRCDIR)/$(gb_UnoApiTarget_REG_$(1))/$(2)/$(3).idl
endef
define gb_UnoApiTarget_add_idlfiles
$(foreach idl,$(3),$(call gb_UnoApiTarget_add_idlfile,$(1),$(2),$(idl)))
-$(call gb_UnoApiTarget__add_idlfiles,$(1),$(2),$(3))
-$(call gb_UnoApiTarget_get_target,$(1)) : $(gb_UnoApiTarget_REGMERGEDEPS)
-
-endef
-
-define gb_UnoApiTarget_add_idlfile
-$(call gb_UnoApiTarget__add_idlfile,$(1),$(2),$(3))
endef
@@ -223,16 +78,6 @@ $(call gb_UnoApiTarget_get_target,$(1)) : $(gb_UnoApiTarget_UNOIDLCHECKDEPS)
endef
-define gb_UnoApiTarget_set_include
-$(call gb_UnoApiTarget_get_target,$(1)) : INCLUDE := $(2)
-
-endef
-
-define gb_UnoApiTarget_set_root
-$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_ROOT := $(2)
-
-endef
-
define gb_UnoApiTarget_use_api
$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPRDBS += $(2)
$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiTarget_get_target,$(2))
@@ -357,13 +202,6 @@ $(call gb_UnoApiHeadersTarget_get_real_comprehensive_dir,$(1))/%.hpp :| \
endef
-# ensure that new urd triggers the dummy rule to rebuild the headers
-define gb_UnoApiHeadersTarget_add_headerfile
-$(call gb_UnoApiHeadersTarget_get_dir,$(1))/$(3) : \
- $(call gb_UnoApiPartTarget_get_target,$(basename $(2)).urd)
-
-endef
-
define gb_UnoApiHeadersTarget__use_api_for_target
$(call gb_UnoApiHeadersTarget_get_$(3),$(1)) : $(call gb_UnoApiTarget_get_target,$(2))
$(call gb_UnoApiHeadersTarget_get_$(3),$(1)) : UNOAPI_DEPS += -X$(call gb_UnoApiTarget_get_target,$(2))
diff --git a/solenv/gbuild/extensions/pre_BuildTools.mk b/solenv/gbuild/extensions/pre_BuildTools.mk
index 2e0c208d4a9b..c9264ff7908e 100644
--- a/solenv/gbuild/extensions/pre_BuildTools.mk
+++ b/solenv/gbuild/extensions/pre_BuildTools.mk
@@ -19,13 +19,10 @@ gb_BUILD_TOOLS = \
gendict \
genindex_data \
helpex \
- idlc \
idxdict \
javamaker \
makedepend \
propex \
- regmerge \
- regview \
rsc \
saxparser \
stringex \