[Libreoffice-commits] core.git: 7 commits - configure.ac desktop/Executable_oosplash.mk i18npool/CustomTarget_localedata.mk i18npool/Module_i18npool.mk i18npool/Rdb_saxparser.mk instsetoo_native/util postprocess/Rdb_services.mk RepositoryExternal.mk RepositoryFixes.mk Repository.mk scp2/source solenv/gbuild toolkit/Library_tk.mk vcl/Library_vcl.mk

Matúš Kukan matus.kukan at gmail.com
Fri Jun 7 06:17:14 PDT 2013


 Repository.mk                              |   55 ---
 RepositoryExternal.mk                      |  151 ---------
 RepositoryFixes.mk                         |    3 
 configure.ac                               |    2 
 desktop/Executable_oosplash.mk             |    6 
 i18npool/CustomTarget_localedata.mk        |   27 -
 i18npool/Module_i18npool.mk                |    1 
 i18npool/Rdb_saxparser.mk                  |   16 +
 instsetoo_native/util/openoffice.lst.in    |   12 
 postprocess/Rdb_services.mk                |    4 
 scp2/source/extensions/file_extensions.scp |    8 
 solenv/gbuild/ComponentTarget.mk           |    7 
 solenv/gbuild/CppunitTest.mk               |    4 
 solenv/gbuild/Extension.mk                 |  384 ++++++++++++++++++++++--
 solenv/gbuild/ExtensionTarget.mk           |  455 -----------------------------
 solenv/gbuild/ExternalProject.mk           |    5 
 solenv/gbuild/Gallery.mk                   |    4 
 solenv/gbuild/Helper.mk                    |   18 -
 solenv/gbuild/Jar.mk                       |    3 
 solenv/gbuild/Library.mk                   |    2 
 solenv/gbuild/LinkTarget.mk                |    5 
 solenv/gbuild/Pyuno.mk                     |    2 
 solenv/gbuild/Rdb.mk                       |    4 
 solenv/gbuild/StaticLibrary.mk             |    8 
 solenv/gbuild/TargetLocations.mk           |   28 -
 solenv/gbuild/Zip.mk                       |   20 -
 solenv/gbuild/gbuild.mk                    |    3 
 solenv/gbuild/platform/IOS_ARM_GCC.mk      |   15 
 solenv/gbuild/platform/WNT_INTEL_GCC.mk    |   14 
 solenv/gbuild/platform/com_GCC_class.mk    |    6 
 solenv/gbuild/platform/com_MSC_class.mk    |   12 
 solenv/gbuild/platform/macosx.mk           |   15 
 solenv/gbuild/platform/solaris.mk          |   16 -
 solenv/gbuild/platform/unxgcc.mk           |   15 
 toolkit/Library_tk.mk                      |    2 
 vcl/Library_vcl.mk                         |   11 
 36 files changed, 445 insertions(+), 898 deletions(-)

New commits:
commit ddb5edc8a6dcbe309daf4ec7356601a7dfee1700
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu May 30 14:39:38 2013 +0200

    gbuild: do not register static libraries
    
    It does not make sense, there was only one group anyway.
    
    Change-Id: I606138ceed0bfc628b8a23abb864280d9626ed60

diff --git a/Repository.mk b/Repository.mk
index b919371..73456b9 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -127,13 +127,6 @@ $(eval $(call gb_Helper_register_executables,OOO,\
 	unopkgio \
 ))
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	directxcanvas \
-	winextendloaderenv \
-	winlauncher \
-	wrapper \
-))
-
 else
 
 $(eval $(call gb_Helper_register_executables,OOO,\
@@ -672,49 +665,6 @@ $(eval $(call gb_Helper_register_libraries,EXTENSIONLIBS, \
     passive_native \
 ))
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-    $(if $(filter $(OS),ANDROID), \
-	    basebmp \
-	) \
-    basegfx_s \
-    codemaker \
-    codemaker_cpp \
-    codemaker_java \
-    dtobj \
-	findsofficepath \
-	gnu_getopt \
-	gnu_readdir_r \
-    headless \
-    libeay32 \
-    npsoenv \
-    nputils \
-    pdfimport_s \
-    plugcon \
-	quickstarter \
-	seterror \
-    ssleay32 \
-    ooopathutils \
-    sample \
-    sax_shared \
-    simplemapi \
-    shell_xmlparser \
-    shell_xmlparser_x64 \
-    shlxthandler_common \
-    shlxthandler_common_x64 \
-    salcpprt \
-    testtools_bridgetest_s \
-    transex \
-    ulingu \
-    vclmain \
-    writerperfect \
-    $(if $(filter-out $(OS),IOS), \
-        registry_helper \
-    ) \
-    $(if $(filter $(OS),IOS), \
-        uno \
-    ) \
-))
-
 ifeq ($(OS),WNT)
 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
     xmlsec1 \
@@ -725,11 +675,6 @@ $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
     xmlsec1-mscrypto \
 ))
 endif
-else
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-    xmlsec1 \
-    xmlsec1-nss \
-))
 endif
 
 $(eval $(call gb_Helper_register_jars,URE, \
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 3bb68e0..777369d 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -43,10 +43,6 @@ gb_ExternalProject__use_mariadb :=
 
 else # !SYSTEM_MARIADB
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	mariadblib \
-))
-
 define gb_LinkTarget__use_mariadb
 $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
@@ -306,11 +302,6 @@ gb_ExternalProject__use_zlib :=
 
 else # !SYSTEM_ZLIB
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	zlib \
-	zlib_x64 \
-))
-
 define gb_LinkTarget__use_zlib_multiarch
 $(if $(2),,$(call gb_Output_error,gb_LinkTarget__use_zlib_multiarch needs two arguments))
 
@@ -355,10 +346,6 @@ endef
 
 else # !SYSTEM_JPEG
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	jpeg \
-))
-
 define gb_LinkTarget__use_jpeg
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,jpeg) \
@@ -386,10 +373,6 @@ endef
 
 else # !SYSTEM_MYTHES
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	mythes \
-))
-
 define gb_LinkTarget__use_mythes
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,mythes) \
@@ -424,11 +407,6 @@ gb_ExternalProject__use_expat :=
 
 else # !SYSTEM_EXPAT
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	expat \
-	expat_x64 \
-))
-
 define gb_LinkTarget__use_expat_impl
 $(if $(2),,$(error gb_LinkTarget__use_expat_impl needs additional parameter))
 
@@ -469,10 +447,6 @@ endef
 
 else # !SYSTEM_HYPH
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	hyphen \
-))
-
 define gb_LinkTarget__use_hyphen
 $(call gb_LinkTarget_use_unpacked,$(1),hyphen)
 $(call gb_LinkTarget_set_include,$(1),\
@@ -500,10 +474,6 @@ endef
 
 else # !SYSTEM_HUNSPELL
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	hunspell \
-))
-
 define gb_LinkTarget__use_hunspell
 $(call gb_LinkTarget_add_defs,$(1),\
 	-DHUNSPELL_STATIC \
@@ -570,16 +540,7 @@ gb_ExternalProject__use_boost_headers:=
 
 else # !SYSTEM_BOOST
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	boostdatetime \
-	boostsystem \
-))
-
 ifeq ($(OS),WNT)
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	boostthread \
-))
-
 define gb_LinkTarget__use_boostthread
 $(call gb_LinkTarget_add_defs,$(1),\
 	-DBOOST_ALL_NO_LIB \
@@ -589,8 +550,7 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\
 	boostthread \
 )
 endef
-
-endif # WNT
+endif
 
 define gb_LinkTarget__use_boostdatetime
 $(call gb_LinkTarget_add_defs,$(1),\
@@ -647,10 +607,6 @@ endef
 
 else # !SYSTEM_CMIS
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	cmislib \
-))
-
 define gb_LinkTarget__use_cmis
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,cmis)/src \
@@ -696,10 +652,6 @@ endef
 
 else # !SYSTEM_LIBEXTTEXTCAT
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	exttextcat \
-))
-
 define gb_LinkTarget__use_libexttextcat
 $(call gb_LinkTarget_use_static_libraries,$(1),\
 	exttextcat \
@@ -830,10 +782,6 @@ endef
 
 else # !SYSTEM_LIBLANGTAG
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	langtag \
-))
-
 define gb_LinkTarget__use_liblangtag
 $(call gb_LinkTarget_use_unpacked,$(1),langtag)
 $(call gb_LinkTarget_set_include,$(1),\
@@ -955,12 +903,6 @@ endef
 
 else # ANDROID
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	rdf \
-	rasqal \
-	raptor2 \
-))
-
 define gb_LinkTarget__use_librdf
 $(call gb_LinkTarget_use_packages,$(1),raptor rasqal redland)
 $(call gb_LinkTarget_use_static_libraries,$(1),\
@@ -1035,10 +977,6 @@ endef
 
 else # ! SYSTEM_FREETYPE
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	freetype \
-))
-
 define gb_LinkTarget__use_freetype_headers
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,freetype)/include \
@@ -1069,10 +1007,6 @@ endef
 
 else # ! SYSTEM_FONTCONFIG
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	fontconfig \
-))
-
 define gb_LinkTarget__use_fontconfig
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,fontconfig) \
@@ -1098,9 +1032,6 @@ endef
 
 else ifeq ($(SYSTEM_GRAPHITE),NO)
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	graphite \
-))
 define gb_LinkTarget__use_graphite
 $(call gb_LinkTarget_use_unpacked,$(1),graphite)
 $(call gb_LinkTarget_set_include,$(1),\
@@ -1256,9 +1187,6 @@ endef
 
 else # SYSTEM_HARFBUZZ != YES
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	harfbuzz \
-))
 define gb_LinkTarget__use_harfbuzz
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,harfbuzz)/src \
@@ -1309,11 +1237,6 @@ $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
     crypto \
     ssl \
 ))
-else
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-    crypto \
-    ssl \
-))
 endif
 
 define gb_ExternalProject__use_openssl
@@ -1402,10 +1325,6 @@ endef
 
 else # !SYSTEM_CDR
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	cdr-0.0 \
-))
-
 define gb_LinkTarget__use_cdr
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libcdr)/inc \
@@ -1436,10 +1355,6 @@ endef
 
 else # !SYSTEM_ODFGEN
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	odfgen-0.0 \
-))
-
 define gb_LinkTarget__use_odfgen
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libodfgen)/inc \
@@ -1470,10 +1385,6 @@ endef
 
 else # !SYSTEM_MSPUB
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	mspub-0.0 \
-))
-
 define gb_LinkTarget__use_mspub
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libmspub)/inc \
@@ -1504,10 +1415,6 @@ endef
 
 else # !SYSTEM_VISIO
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	visio-0.0 \
-))
-
 define gb_LinkTarget__use_visio
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libvisio)/inc \
@@ -1539,10 +1446,6 @@ gb_ExternalProject__use_wpd :=
 
 else # !SYSTEM_WPD
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	wpd-0.9 \
-))
-
 define gb_LinkTarget__use_wpd
 $(call gb_LinkTarget_set_include,$(1),\
 	$(WPD_CFLAGS) \
@@ -1578,10 +1481,6 @@ gb_ExternalProject__use_wpg :=
 
 else # !SYSTEM_WPG
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	wpg-0.2 \
-))
-
 define gb_LinkTarget__use_wpg
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libwpg)/inc \
@@ -1617,10 +1516,6 @@ gb_ExternalProject__use_wps :=
 
 else # !SYSTEM_WPS
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	wps-0.2 \
-))
-
 define gb_LinkTarget__use_wps
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libwps)/inc \
@@ -1655,10 +1550,6 @@ endef
 
 else # !SYSTEM_MWAW
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	mwaw-0.1 \
-))
-
 define gb_LinkTarget__use_mwaw
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libmwaw)/inc \
@@ -1698,10 +1589,6 @@ endef
 
 ifeq ($(OS),ANDROID)
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
-	lcms2 \
-))
-
 define gb_LinkTarget__use_lcms2
 $(call gb_LinkTarget_use_package,$(1),lcms2)
 $(call gb_LinkTarget_set_include,$(1),\
@@ -1934,10 +1821,6 @@ endef
 
 else # !SYSTEM_LIBPNG
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	png \
-))
-
 define gb_LinkTarget__use_png
 $(call gb_LinkTarget_set_include,$(1),\
 	$(LIBPNG_CFLAGS) \
@@ -2026,12 +1909,6 @@ endef
 
 else # !SYSTEM_POPPLER
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	fofi \
-	Goo \
-	xpdf \
-))
-
 define gb_LinkTarget__use_poppler
 $(call gb_LinkTarget_use_package,$(1),xpdf)
 
@@ -2148,11 +2025,6 @@ endef
 
 else ifeq ($(SYSTEM_OPENLDAP),NO)
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	ldap \
-	lber \
-))
-
 define gb_LinkTarget__use_openldap
 $(call gb_LinkTarget_use_unpacked,$(1),openldap)
 $(call gb_LinkTarget_set_include,$(1),\
@@ -2223,10 +2095,6 @@ endif
 
 endef
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	$(if $(filter MSC,$(COM)),lib)pq \
-))
-
 endif # SYSTEM_POSTGRESQL
 
 ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
@@ -2300,11 +2168,6 @@ $(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,\
 	xpcom_core \
 ))
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	embed_base_s \
-	mozreg_s \
-))
-
 endif # DESKTOP
 
 ifeq ($(ENABLE_KDE),TRUE)
@@ -2505,14 +2368,6 @@ endef
 
 else # !SYSTEM_LIBORCUS
 
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	orcus \
-))
-
-$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,\
-	orcus-parser \
-))
-
 define gb_LinkTarget__use_orcus
 $(call gb_LinkTarget_use_unpacked,$(1),liborcus)
 $(call gb_LinkTarget_set_include,$(1),\
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
index 4a0f99c..04cda5d 100644
--- a/RepositoryFixes.mk
+++ b/RepositoryFixes.mk
@@ -55,9 +55,6 @@ gb_Library_DLLFILENAMES := $(patsubst rdf:rdf%,rdf:librdf%,$(gb_Library_DLLFILEN
 # libpyuno_wrapper.dll => pyuno.pyd
 gb_Library_DLLFILENAMES := $(patsubst pyuno:pyuno.dll,pyuno:pyuno$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd,$(gb_Library_DLLFILENAMES))
 
-gb_StaticLibrary_FILENAMES := $(patsubst png:png%,png:libpng%,$(gb_StaticLibrary_FILENAMES))
-gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES))
-
 ifeq ($(COM),GCC)
 gb_Library_FILENAMES := $(patsubst crypto:icrypto%,crypto:crypto%,$(gb_Library_FILENAMES))
 gb_Library_FILENAMES := $(patsubst exslt:iexslt%,exslt:libexslt$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
diff --git a/solenv/gbuild/ExternalProject.mk b/solenv/gbuild/ExternalProject.mk
index 1749e9ac..cd61cd5 100644
--- a/solenv/gbuild/ExternalProject.mk
+++ b/solenv/gbuild/ExternalProject.mk
@@ -159,11 +159,6 @@ endef
 #
 # gb_ExternalProject_use_static_libraries external staticlibraries
 define gb_ExternalProject_use_static_libraries
-ifneq (,$$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2)))
-$$(eval $$(call gb_Output_info, currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL))
-$$(eval $$(call gb_Output_error,Cannot link against static library/libraries $$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2)). Static libraries must be registered in Repository.mk))
-endif
-
 $(call gb_ExternalProject_get_preparation_target,$(1)) : \
 	$(foreach lib,$(2),$(call gb_StaticLibrary_get_target,$(lib)))
 
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index c98ea22..d6af980 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -110,19 +110,16 @@ define gb_Helper_init_registries
 gb_Executable_VALIDGROUPS := UREBIN SDK OOO NONE
 gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO RTVERLIBS UNOLIBS_URE UNOVERLIBS EXTENSIONLIBS
 gb_Library_VALIDINSTALLMODULES := BASE ONLINEUPDATE GRAPHICFILTER GNOME TDE IMPRESS KDE MATH OOO URE WRITER
-gb_StaticLibrary_VALIDGROUPS := PLAINLIBS
 gb_Jar_VALIDGROUPS := URE OOO OXT NONE
 
 $$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(eval gb_Executable_$$(group) :=))
 $$(foreach group,$$(gb_Library_VALIDGROUPS),$$(eval gb_Library_$$(group) :=))
-$$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(eval gb_StaticLibrary_$$(group) :=))
 $$(foreach group,$$(gb_Jar_VALIDGROUPS),$$(eval gb_Jar_$$(group) :=))
 
 endef
 
 define gb_Helper_collect_knownlibs
 gb_Library_KNOWNLIBS := $$(foreach group,$$(gb_Library_VALIDGROUPS),$$(gb_Library_$$(group)))
-gb_StaticLibrary_KNOWNLIBS := $$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(gb_StaticLibrary_$$(group)))
 gb_Executable_KNOWN := $$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(gb_Executable_$$(group)))
 gb_Jar_KNOWN := $$(foreach group,$$(gb_Jar_VALIDGROUPS),$$(gb_Jar_$$(group)))
 
@@ -178,21 +175,6 @@ gb_Library_MODULE_$(2) += $(filter-out $(gb_MERGEDLIBS) $(gb_URELIBS),$(3))
 
 endef
 
-define gb_Helper_register_static_libraries
-ifeq ($$(filter $(1),$$(gb_StaticLibrary_VALIDGROUPS)),)
-$$(eval $$(call gb_Output_error,$(1) is not a valid group for static libraries. Valid groups are: $$(gb_StaticLibrary_VALIDGROUPS)))
-endif
-$(foreach group,$(gb_StaticLibrary_VALIDGROUPS),\
- $(foreach target,$(2),\
-  $(if $(filter $(target),$(gb_StaticLibrary_$(group))),\
-   $(call gb_Output_error,gb_Helper_register_static_libraries: already registered: $(target)))))
-$(if $(filter-out $(words $(2)),$(words $(sort $(2)))),\
- $(call gb_Output_error,gb_Helper_register_static_libraries: contains duplicates: $(2)))
-
-gb_StaticLibrary_$(1) += $(2)
-
-endef
-
 define gb_Helper_register_jars
 ifeq ($$(filter $(1),$$(gb_Jar_VALIDGROUPS)),)
 $$(eval $$(call gb_Output_error,$(1) is not a valid group for jars. Valid groups are: $$(gb_Jar_VALIDGROUPS)))
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index dae3708..418b43f 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -907,11 +907,6 @@ endef
 
 # for a StaticLibrary, dependent libraries are not actually linked in
 define gb_LinkTarget_use_static_libraries
-ifneq (,$$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2)))
-$$(eval $$(call gb_Output_info, currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL))
-$$(eval $$(call gb_Output_error,Cannot link against static library/libraries $$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2)). Static libraries must be registered in Repository.mk))
-endif
-
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS += $$(if $$(filter-out StaticLibrary,$$(TARGETTYPE)),$(2))
 
 $(call gb_LinkTarget_get_target,$(1)) : $(foreach lib,$(2),$(call gb_StaticLibrary_get_target,$(lib)))
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index 6aec948..e25328b 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -23,7 +23,9 @@
 # defined globally in gbuild.mk
 #  gb_StaticLibrary_OUTDIRLOCATION := $(OUTDIR)/lib
 # defined by platform
-#  gb_StaticLibrary_FILENAMES
+#  gb_StaticLibrary_get_filename
+#  gb_StaticLibrary_PLAINEXT
+#  gb_StaticLibrary_StaticLibrary_platform
 
 
 # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
@@ -34,10 +36,6 @@ $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) :
 			$(AUXTARGETS))
 
 define gb_StaticLibrary_StaticLibrary
-ifeq (,$$(findstring $(1),$$(gb_StaticLibrary_KNOWNLIBS)))
-$$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL))
-$$(eval $$(call gb_Output_error,Static library $(1) must be registered in Repository.mk))
-endif
 $(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktargetname,$(1)))
 
 endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 7a0b2b8..1bcc4db 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -57,7 +57,7 @@ $(patsubst $(1):%,$(gb_Library_OUTDIRLOCATION)/%,$(filter $(1):%,$(gb_Library_FI
 endef
 
 define gb_StaticLibrary_get_target
-$(patsubst $(1):%,$(gb_StaticLibrary_OUTDIRLOCATION)/%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES)))
+$(gb_StaticLibrary_OUTDIRLOCATION)/$(call gb_StaticLibrary_get_filename,$(1))
 endef
 
 
@@ -235,11 +235,11 @@ $(patsubst $(1):%,$(WORKDIR)/Headers/Library/%,$(filter $(1):%,$(gb_Library_FILE
 endef
 
 define gb_StaticLibrary_get_external_headers_target
-$(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/StaticLibrary/%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES)))
+$(WORKDIR)/ExternalHeaders/StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
 endef
 
 define gb_StaticLibrary_get_headers_target
-$(patsubst $(1):%,$(WORKDIR)/Headers/StaticLibrary/%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES)))
+$(WORKDIR)/Headers/StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
 endef
 
 $(eval $(call gb_Helper_make_clean_targets,\
@@ -363,10 +363,6 @@ define gb_Library_get_filename
 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_FILENAMES)))
 endef
 
-define gb_StaticLibrary_get_filename
-$(patsubst $(1):%,%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES)))
-endef
-
 # Get dependencies needed for running the executable
 #
 # This is not strictly necessary, but it makes the use more similar to
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index 46d73fd..bd73801 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -189,17 +189,6 @@ $(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1
 endef
 
 
-# StaticLibrary class
-
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
-gb_StaticLibrary_StaticLibrary_platform =
-
-
 # Executable class
 
 gb_Executable_EXT :=
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index 7dde271..5b28abf 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -288,16 +288,6 @@ define gb_Library_get_dllname
 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
 endef
 
-# StaticLibrary class
-
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
-gb_StaticLibrary_StaticLibrary_platform =
-
 # Executable class
 
 gb_Executable_EXT := .exe
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk
index 37e2b7b..5464715 100644
--- a/solenv/gbuild/platform/com_GCC_class.mk
+++ b/solenv/gbuild/platform/com_GCC_class.mk
@@ -264,4 +264,10 @@ endif
 
 gb_ExternalProject_use_autoconf :=
 
+# StaticLibrary class
+
+gb_StaticLibrary_get_filename = lib$(1).a
+gb_StaticLibrary_PLAINEXT := .a
+gb_StaticLibrary_StaticLibrary_platform :=
+
 # vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index c08349d..841416e 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -191,7 +191,7 @@ $(call gb_Helper_abbreviate_dirs,\
 	unset INCLUDE && \
 	$(if $(filter YES,$(LIBRARY_X64)), $(LINK_X64_BINARY), $(gb_LINK)) \
 		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
-		$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
+		$(if $(filter StaticLibrary,$(TARGETTYPE)),-LIB) \
 		$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
 		$(if $(filter YES,$(LIBRARY_X64)),,$(if $(filter YES,$(TARGETGUI)), -SUBSYSTEM:WINDOWS$(MSC_SUBSYSTEM_VERSION), -SUBSYSTEM:CONSOLE$(MSC_SUBSYSTEM_VERSION))) \
 		$(if $(filter YES,$(LIBRARY_X64)), -MACHINE:X64) \
@@ -371,13 +371,9 @@ endef
 
 # StaticLibrary class
 
-gb_StaticLibrary_TARGETTYPEFLAGS := -LIB
-gb_StaticLibrary_SYSPRE :=
+gb_StaticLibrary_get_filename = $(1).lib
 gb_StaticLibrary_PLAINEXT := .lib
 
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
 define gb_StaticLibrary_StaticLibrary_platform
 $(call gb_LinkTarget_get_target,$(2)) \
 $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index a12644e..f7ecb71 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -253,17 +253,6 @@ $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))) : \
 	RPATH :=
 endef
 
-# StaticLibrary class
-
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
-gb_StaticLibrary_StaticLibrary_platform =
-
-
 # Executable class
 
 gb_Executable_EXT :=
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 2c0a836..5dfb5ac 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -278,18 +278,6 @@ endef
 
 gb_Library__set_soversion_script_platform = $(gb_Library__set_soversion_script)
 
-
-# StaticLibrary class
-
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
-gb_StaticLibrary_StaticLibrary_platform =
-
-
 # Executable class
 
 gb_Executable_EXT :=
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index c15f0fa..9b017ba 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -279,17 +279,6 @@ endef
 gb_Library__set_soversion_script_platform = $(gb_Library__set_soversion_script)
 
 
-# StaticLibrary class
-
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-
-gb_StaticLibrary_FILENAMES := \
-	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-
-gb_StaticLibrary_StaticLibrary_platform =
-
-
 # Executable class
 
 gb_Executable_EXT :=
commit bf06908b674251ea71875aa664a0f4a98d6781ab
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu Jun 6 10:25:42 2013 +0200

    further reduce GUIBASE usage; don't set it to headless
    
    Change-Id: I76916c15f380bd80e823845f52f32a1c444079da

diff --git a/configure.ac b/configure.ac
index 0be2012..236e683 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3966,7 +3966,7 @@ if test "$enable_headless" = "yes"; then
     if test "$GUIBASE" != "unx"; then
         AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice with --enable-headless])
     fi
-    GUIBASE=headless
+    GUIBASE=not-used
 fi
 
 INPATH="${OUTPATH}${PROEXT}"
diff --git a/desktop/Executable_oosplash.mk b/desktop/Executable_oosplash.mk
index 1e75f64..d3e3750 100644
--- a/desktop/Executable_oosplash.mk
+++ b/desktop/Executable_oosplash.mk
@@ -35,15 +35,13 @@ $(eval $(call gb_Executable_add_libs,oosplash,\
 
 endif
 
-ifneq ($(GUIBASE),headless)
+ifneq ($(ENABLE_HEADLESS),TRUE)
+
 ifneq ($(OS),WNT)
 $(eval $(call gb_Executable_add_libs,oosplash,\
     -lX11 \
 ))
 endif
-endif
-
-ifneq ($(ENABLE_HEADLESS),TRUE)
 
 $(eval $(call gb_Executable_add_defs,oosplash,\
     -DENABLE_QUICKSTART_LIBPNG \
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 0ad9e66..4bc5f12 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -145,7 +145,7 @@ $(eval $(call gb_Rdb_add_components,services,\
 			accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge \
 		) \
 	) \
-	$(if $(filter headless,$(GUIBASE)), \
+	$(if $(ENABLE_HEADLESS), \
 		vcl/vcl.headless \
 	) \
 	$(if $(filter-out WNT,$(OS)), \
@@ -295,7 +295,7 @@ $(eval $(call gb_Rdb_add_components,services,\
 	) \
 	$(if $(filter-out MACOSX WNT,$(OS)), \
 		desktop/unx/splash/splash \
-		$(if $(filter-out headless,$(GUIBASE)), \
+		$(if $(ENABLE_HEADLESS),, \
 			shell/source/backends/desktopbe/desktopbe1 \
 			vcl/vcl.unx \
 		) \
diff --git a/toolkit/Library_tk.mk b/toolkit/Library_tk.mk
index 8525e37..4d6280d 100644
--- a/toolkit/Library_tk.mk
+++ b/toolkit/Library_tk.mk
@@ -128,7 +128,7 @@ $(eval $(call gb_Library_add_cxxflags,tk,\
     $(gb_OBJCXXFLAGS)))
 endif
 
-ifneq ($(GUIBASE),headless)
+ifeq (,$(ENABLE_HEADLESS))
 ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
 $(eval $(call gb_Library_add_libs,tk,\
     -lX11 \
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 46532a2..8daa5bb8 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -27,7 +27,7 @@ else ifeq ($(OS),ANDROID)
 $(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.android))
 else ifeq ($(OS),IOS)
 $(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.ios))
-else ifeq ($(GUIBASE),headless)
+else ifeq ($(ENABLE_HEADLESS),TRUE)
 $(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.headless))
 else
 $(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.unx))
@@ -324,12 +324,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
 ))
 
 # handle X11 platforms, which have additional files and possibly system graphite
-ifeq ($(GUIBASE),unx)
-$(eval $(call gb_Library_add_exception_objects,vcl,\
-    vcl/generic/glyphs/graphite_serverfont \
-))
-endif
-ifeq ($(GUIBASE),headless)
+ifneq (,$(or $(filter unx,$(GUIBASE)),$(ENABLE_HEADLESS)))
 $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/generic/glyphs/graphite_serverfont \
 ))
@@ -538,7 +533,7 @@ $(eval $(call gb_Library_use_externals,vcl,\
 ))
 endif
 
-ifeq ($(GUIBASE),headless)
+ifeq ($(ENABLE_HEADLESS),TRUE)
 $(eval $(call gb_Library_add_defs,vcl,\
     -DSAL_DLLPREFIX=\"$(gb_Library_SYSPRE)\" \
     -DSAL_DLLPOSTFIX=\"$(gb_Library_OOOEXT)\" \
commit a714cf18b1c6cadae93df92376a11aeb98b65418
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Fri May 24 14:47:06 2013 +0200

    gbuild: install extension directly from workdir
    
    Also kill ExtensionTarget indirection causing duplication.
    
    Change-Id: I24f7e6d85df6acf2ededaade20dd1a788d916594

diff --git a/scp2/source/extensions/file_extensions.scp b/scp2/source/extensions/file_extensions.scp
index 521b9b4..df0f5d2 100644
--- a/scp2/source/extensions/file_extensions.scp
+++ b/scp2/source/extensions/file_extensions.scp
@@ -30,7 +30,7 @@ File gid_File_Oxt_Presentation_Minimizer
     TXT_FILE_BODY;
     Styles = (PACKED, ARCHIVE);
     Dir = gid_Brand_Dir_Share_Extensions_Presentation_Minimizer;
-    Name = "presentation-minimizer.oxt";
+    Name = "Extension/presentation-minimizer.oxt";
 End
 
 #endif
@@ -43,7 +43,7 @@ File gid_File_Oxt_MediaWiki
     TXT_FILE_BODY;
     Styles = (PACKED, ARCHIVE);
     Dir = gid_Brand_Dir_Share_Extensions_MediaWiki;
-    Name = "wiki-publisher.oxt";
+    Name = "Extension/wiki-publisher.oxt";
 End
 
 #endif
@@ -173,7 +173,7 @@ File gid_File_Oxt_NLPSolver
     TXT_FILE_BODY;
     Styles = (PACKED, ARCHIVE);
     Dir = gid_Brand_Dir_Share_Extensions_NLPSolver;
-    Name = "nlpsolver.oxt";
+    Name = "Extension/nlpsolver.oxt";
 End
 
 #endif
@@ -199,7 +199,7 @@ File gid_File_Oxt_MySQLConnector
     TXT_FILE_BODY;
     Styles = (PACKED, ARCHIVE);
     Dir = gid_Brand_Dir_Share_Extensions_MySQLConnector;
-    Name = "mysql-connector-ooo.oxt";
+    Name = "Extension/mysql-connector-ooo.oxt";
 End
 
 #endif
diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk
index 37ad1e2..3990e84 100644
--- a/solenv/gbuild/Extension.mk
+++ b/solenv/gbuild/Extension.mk
@@ -10,21 +10,143 @@
 
 # Extension class
 
-define gb_Extension_Extension
-$(call gb_ExtensionTarget_ExtensionTarget,$(1),$(2))
-
-$(call gb_Extension_get_target,$(1)) : $(call gb_ExtensionTarget_get_target,$(1))
-$(call gb_Extension_get_clean_target,$(1)) : $(call gb_ExtensionTarget_get_clean_target,$(1))
+# platform
+#  gb_Extension_LICENSEFILE_DEFAULT
+
+gb_Extension__get_preparation_target = $(WORKDIR)/Extension/$(1).prepare
+
+gb_Extension_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q)
+gb_Extension_XRMEXDEPS := $(call gb_Executable_get_runtime_dependencies,xrmex)
+gb_Extension_XRMEXCOMMAND := $(call gb_Executable_get_command,xrmex)
+
+gb_Extension_PROPMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,propex)
+gb_Extension_PROPMERGECOMMAND := $(call gb_Executable_get_command,propex)
+
+gb_Extension_TREEXDEPS := $(call gb_Executable_get_runtime_dependencies,treex)
+gb_Extension_TREEXCOMMAND := $(call gb_Executable_get_command,treex)
+
+gb_Extension_HELPEXDEPS := $(call gb_Executable_get_runtime_dependencies,helpex)
+gb_Extension_HELPEXCOMMAND := $(call gb_Executable_get_command,helpex)
+gb_Extension_HELPINDEXERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpIndexer)
+gb_Extension_HELPINDEXERCOMMAND := $(call gb_Executable_get_command,HelpIndexer)
+gb_Extension_HELPLINKERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpLinker)
+gb_Extension_HELPLINKERCOMMAND := $(call gb_Executable_get_command,HelpLinker)
+# does not contain en-US because it is special cased in gb_Extension_Extension
+gb_Extension_TRANS_LANGS := $(filter-out en-US,$(gb_WITH_LANG))
+gb_Extension_ALL_LANGS := en-US $(gb_Extension_TRANS_LANGS)
+
+# Substitute platform or copy if no platform has been set
+define gb_Extension__subst_platform
+$(if $(PLATFORM),\
+	sed \
+		-e 's/@PLATFORM@/$(PLATFORM)/' \
+		-e 's/@EXEC_EXTENSION@/$(gb_Executable_EXT)/' \
+		-e 's/@SHARED_EXTENSION@/$(gb_Library_DLLEXT)/' \
+		$(1) > $(2),\
+	cp -f $(1) $(2))
+endef
 
-$(call gb_Deliver_add_deliverable,$(call gb_Extension_get_target,$(1)),$(call gb_ExtensionTarget_get_target,$(1)),$(1))
+$(call gb_Extension_get_workdir,%)/.dir :
+	$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
+
+# remove extension directory in workdir and oxt file in workdir
+$(call gb_Extension_get_clean_target,%) :
+	$(call gb_Output_announce,$*,$(false),OXT,3)
+	$(call gb_Helper_abbreviate_dirs,\
+		rm -f -r $(call gb_Extension_get_workdir,$*) && \
+		rm -f $(call gb_Extension__get_preparation_target,$*) \
+			  $(call gb_Extension_get_target,$*) \
+	)
+
+# preparation target to delay adding files produced by e.g. UnpackedTarball
+$(call gb_Extension__get_preparation_target,%) :
+	$(call gb_Helper_abbreviate_dirs,\
+		mkdir -p $(dir $@) && touch $@)
+
+ifeq ($(strip $(gb_WITH_LANG)),)
+$(call gb_Extension_get_workdir,%)/description.xml :
+	$(call gb_Output_announce,$*/description.xml,$(true),CPY,3)
+	$(call gb_Helper_abbreviate_dirs,\
+		mkdir -p $(call gb_Extension_get_workdir,$*) && \
+		cp -f $(LOCATION)/description.xml $@)
+else
+$(call gb_Extension_get_workdir,%)/description.xml : $(gb_Extension_XRMEXDEPS)
+	$(call gb_Output_announce,$*/description.xml,$(true),XRM,3)
+	MERGEINPUT=`$(gb_MKTEMP)` && \
+	echo $(POFILES) > $${MERGEINPUT} && \
+	$(call gb_Helper_abbreviate_dirs,\
+		mkdir -p $(call gb_Extension_get_workdir,$*) && \
+		$(gb_Extension_XRMEXCOMMAND) \
+			-i $(filter %.xml,$^) \
+			-o $@ \
+			-m $${MERGEINPUT} \
+			-l all) && \
+	rm -rf $${MERGEINPUT}
+
+endif
+
+# rule to create oxt package in workdir
+# --filesync makes sure that all files in the oxt package will be removed that no longer are in $(FILES)
+$(call gb_Extension_get_target,%) : \
+		$(call gb_Extension_get_workdir,%)/description.xml
+	$(call gb_Output_announce,$*,$(true),OXT,3)
+	$(call gb_Helper_abbreviate_dirs,\
+		mkdir -p $(call gb_Extension_get_rootdir,$*)/META-INF \
+			$(if $(LICENSE),$(call gb_Extension_get_rootdir,$*)/registration) && \
+		$(call gb_Extension__subst_platform,$(call gb_Extension_get_workdir,$*)/description.xml,$(call gb_Extension_get_rootdir,$*)/description.xml) && \
+		$(call gb_Extension__subst_platform,$(LOCATION)/META-INF/manifest.xml,$(call gb_Extension_get_rootdir,$*)/META-INF/manifest.xml) && \
+		$(if $(LICENSE),cp -f $(LICENSE) $(call gb_Extension_get_rootdir,$*)/registration &&) \
+		$(if $(and $(gb_Extension_TRANS_LANGS),$(DESCRIPTION)),cp $(foreach lang,$(gb_Extension_TRANS_LANGS),$(call gb_Extension_get_workdir,$*)/description-$(lang).txt) $(call gb_Extension_get_rootdir,$*) &&) \
+		cd $(call gb_Extension_get_rootdir,$*) && \
+		$(gb_Extension_ZIPCOMMAND) -rX --filesync --must-match \
+			$(call gb_Extension_get_target,$*) \
+			$(sort $(FILES)))
+
+# set file list and location of manifest and description files
+# register target and clean target
+# add deliverable
+# add dependency for outdir target to workdir target (pattern rule for delivery is in Package.mk)
+#
+# gb_Extension_Extension extension srcdir
+define gb_Extension_Extension
+$(call gb_Extension_get_target,$(1)) : DESCRIPTION :=
+$(call gb_Extension_get_target,$(1)) : FILES := META-INF description.xml
+$(call gb_Extension_get_target,$(1)) : LICENSE :=
+$(call gb_Extension_get_target,$(1)) : LOCATION := $(SRCDIR)/$(2)
+$(call gb_Extension_get_target,$(1)) : PLATFORM := $(PLATFORMID)
+$(call gb_Extension_get_workdir,$(1))/description.xml : \
+	$(SRCDIR)/$(2)/description.xml
+$(call gb_Extension_get_workdir,$(1))/description.xml :| \
+	$(call gb_Extension__get_preparation_target,$(1))
+
+ifneq ($(strip $(gb_WITH_LANG)),)
+$(call gb_Extension_get_target,$(1)) : \
+	POFILES := $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
+$(call gb_Extension_get_workdir,$(1))/description.xml : \
+	$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
+$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) :
+endif
+
+$(foreach lang,$(gb_Extension_ALL_LANGS), \
+    $(call gb_Extension__compile_help_onelang,$(1),$(lang)))
 
 $$(eval $$(call gb_Module_register_target,$(call gb_Extension_get_target,$(1)),$(call gb_Extension_get_clean_target,$(1))))
 $(call gb_Helper_make_userfriendly_targets,$(1),Extension)
 
 endef
 
+# adding a file creates a dependency to it
+# file is copied to $(WORKDIR)
+# $(3) is the target of the copied file, and $(4) can be used to override that
+# with a different actual file, which is needed in gb_Extension_add_library
+# to make it work on Windows where the DLL doesn't have a gbuild target...
 define gb_Extension_add_file
-$(call gb_ExtensionTarget_add_file,$(1),$(2),$(3))
+$(call gb_Extension_get_target,$(1)) : FILES += $(2)
+$(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2)
+$(3) :| $(call gb_Extension__get_preparation_target,$(1))
+$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3)
+	mkdir -p $$(dir $$@) && \
+	cp -f $(if $(4),$(4),$(3)) $$@
 
 endef
 
@@ -35,38 +157,45 @@ endef
 # without any subpath. If no path is specified, they are added directly
 # to the root dir of the extension.
 define gb_Extension_add_files
-$(call gb_ExtensionTarget_add_files,$(1),$(2),$(3))
+$(foreach file,$(3),$(call gb_Extension_add_file,$(1),$(if $(strip $(2)),$(strip $(2))/)$(notdir $(file)),$(file)))
 
 endef
 
 # add a library from the solver; DO NOT use gb_Library_get_target
 define gb_Extension_add_library
-$(call gb_ExtensionTarget_add_library,$(1),$(2))
+$(call gb_Extension_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\
+	$(call gb_Library_get_target,$(2)),\
+	$(gb_Helper_OUTDIRLIBDIR)/$(call gb_Library_get_runtime_filename,$(2)))
 
 endef
 
 define gb_Extension_add_libraries
-$(call gb_ExtensionTarget_add_libraries,$(1),$(2))
+$(foreach lib,$(2),$(call gb_Extension_add_library,$(1),$(lib)))
 
 endef
 
 # add an executable from the solver
 define gb_Extension_add_executable
-$(call gb_ExtensionTarget_add_executable,$(1),$(2))
+$(call gb_Extension_add_file,$(1),$(notdir $(call gb_Executable_get_target,$(2))),\
+	$(call gb_Executable_get_target,$(2)),\
+	$(call gb_Executable_get_target,$(2)))
 
 endef
 
 define gb_Extension_add_executables
-$(call gb_ExtensionTarget_add_executables,$(1),$(2))
+$(foreach exe,$(2),$(call gb_Extension_add_executable,$(1),$(exe)))
 
 endef
 
 # localize .properties file
+# source file is copied to $(WORKDIR)
 define gb_Extension_localize_properties
-$(call gb_ExtensionTarget_localize_properties,$(1),$(2),$(3))
+$(foreach lang,$(gb_Extension_ALL_LANGS),\
+	$(call gb_Extension__localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang)))
 
 endef
 
+
 # add an .xhp help file, to be localized and compiled
 # $(1): extension identifier
 # $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
@@ -77,7 +206,9 @@ endef
 #     (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it
 #     is $(2)/$(4))
 define gb_Extension_add_helpfile
-$(call gb_ExtensionTarget_add_helpfile,$(1),$(2),$(3),$(4))
+$(foreach lang,$(gb_Extension_ALL_LANGS), \
+    $(call gb_Extension__localize_helpfile_onelang,$(1),$(2),$(3),$(4),$(lang)) \
+    $(call gb_Extension__add_compiled_help_dependency_onelang,$(1),$(lang)))
 
 endef
 
@@ -86,7 +217,8 @@ endef
 # $(2): absolute path prefix of en-US source files without $(3) suffixes
 # $(3): list of relative paths of .xhp files (see gb_Extension_add_helpfile)
 define gb_Extension_add_helpfiles
-$(call gb_ExtensionTarget_add_helpfiles,$(1),$(2),$(3))
+$(foreach helpfile,$(3), \
+    $(call gb_Extension_add_helpfile,$(1),$(2),$(helpfile),))
 
 endef
 
@@ -96,47 +228,239 @@ endef
 #     suffix
 # $(3): relative path of (target) help.tree file (e.g.,
 #     com.sun.wiki-publisher/help.tree)
-# $(4): optional relative path of source help.tree file, when it differs from $(3)
-#     (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it
-#     is $(2)/$(4))
+# $(4): relative path of source help.tree file
+# $(5): relative path of localized xhp files (PlatformID included)
 define gb_Extension_add_helptreefile
-$(call gb_ExtensionTarget_add_helptreefile,$(1),$(2),$(3),$(4),$(5))
+$(foreach lang,$(gb_Extension_ALL_LANGS), \
+    $(call gb_Extension__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \
+    $(call gb_Extension__add_compiled_help_dependency_onelang,$(1),$(lang)))
 
 endef
 
+# Use the default description file
 define gb_Extension_use_default_description
-$(call gb_ExtensionTarget_use_default_description,$(1))
+$(call gb_Extension_add_file,$(1),description-en-US.txt,$$(LOCATION)/description-en-US.txt)
+$(call gb_Extension_get_target,$(1)) : DESCRIPTION := $(true)
+ifneq ($(strip $(gb_WITH_LANG)),)
+$(call gb_Extension_get_target,$(1)) : FILES += $(foreach lang,$(gb_Extension_TRANS_LANGS),description-$(lang).txt)
+endif
 
 endef
 
+# Use the default license file
 define gb_Extension_use_default_license
-$(call gb_ExtensionTarget_use_default_license,$(1))
+$(call gb_Extension_get_target,$(1)) : FILES += registration
+$(call gb_Extension_get_target,$(1)) : LICENSE := $(gb_Extension_LICENSEFILE_DEFAULT)
+$(call gb_Extension_get_target,$(1)) : $(gb_Extension_LICENSEFILE_DEFAULT)
 
 endef
 
 define gb_Extension_use_unpacked
-$(call gb_ExtensionTarget_use_unpacked,$(1),$(2))
+$(call gb_Extension__get_preparation_target,$(1)) \
+	:| $(call gb_UnpackedTarball_get_final_target,$(2))
 
 endef
 
 define gb_Extension_use_package
-$(call gb_ExtensionTarget_use_package,$(1),$(2))
+$(call gb_Extension__get_preparation_target,$(1)) \
+	:| $(call gb_Package_get_target,$(2))
 
 endef
 
 define gb_Extension_use_packages
-$(call gb_ExtensionTarget_use_packages,$(1),$(2))
+$(foreach package,$(2),$(call gb_Extension_use_package,$(1),$(package)))
+
+endef
+
+
+define gb_Extension__localize_properties_onelang
+$(call gb_Extension_get_target,$(1)) : FILES += $(2)
+ifneq ($(filter-out en-US,$(4)),)
+ifneq ($(filter-out qtz,$(4)),)
+$(call gb_Extension_get_rootdir,$(1))/$(2) : \
+	POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
+$(call gb_Extension_get_rootdir,$(1))/$(2) : \
+	$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
+$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po :
+endif
+endif
+$(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2)
+$(call gb_Extension_get_rootdir,$(1))/$(2) \
+		:| $(call gb_Extension__get_preparation_target,$(1))
+$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3) \
+		$(gb_Extension_PROPMERGEDEPS)
+	$$(call gb_Output_announce,$(2),$(true),PRP,3)
+	$$(call gb_Helper_abbreviate_dirs, \
+		mkdir -p $$(dir $$@) && \
+		$(if $(filter qtz,$(4)), \
+			$(gb_Extension_PROPMERGECOMMAND) -i $$< -o $$@ -m -l $(4) \
+			, \
+			$(if $(filter-out en-US,$(4)), \
+				MERGEINPUT=`$(gb_MKTEMP)` && \
+				echo $$(POFILE) > $$$${MERGEINPUT} && \
+				$(gb_Extension_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \
+				rm -rf $$$${MERGEINPUT} \
+				, \
+				cp -f $$< $$@ \
+			) \
+		) \
+	)
+
+endef
+
+# localize one .xhp help file for one language; the result is stored as
+# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is
+# "en-US", the source file is just copied, not passed through helpex
+# $(1): extension identifier
+# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
+#     suffix
+# $(3): relative path of (target) .xhp file (see
+#     gb_Extension_add_helpfile)
+# $(4): optional relative path of source .xhp file (see
+#     gb_Extension_add_helpfile)
+# $(5): language
+define gb_Extension__localize_helpfile_onelang
+$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : HELPFILES += $(3)
+$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : \
+        $(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3)
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done : \
+        $(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3)
+ifneq ($(filter-out en-US,$(5)),)
+ifneq ($(filter-out qtz,$(5)),)
+$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \
+	POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
+$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \
+        $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
+$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) :
+endif
+endif
+$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \
+        $(if $(filter-out en-US,$(5)),$(gb_Extension_HELPEXDEPS)) | \
+        $(call gb_Extension_get_workdir,$(1))/help/.dir
+$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \
+        $(2)/$(or $(4),$(3))
+	$$(call gb_Output_announce,$(1) $(3) $(5),$(true),XHP,3)
+	$$(call gb_Helper_abbreviate_dirs, \
+		mkdir -p $$(dir $$@) && \
+		$(if $(filter qtz,$(5)), \
+			$(gb_Extension_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
+			, \
+			$(if $(filter-out en-US,$(5)), \
+				MERGEINPUT=`$(gb_MKTEMP)` && \
+				echo $$(POFILE) > $$$${MERGEINPUT} && \
+				$(gb_Extension_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \
+					-m $$$${MERGEINPUT} && \
+				rm -rf $$$${MERGEINPUT} \
+				, \
+				cp $$< $$@ \
+			) \
+		) && \
+		touch $(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done \
+	)
+
+endef
+
+# localize one help.tree for one language; the result is stored as
+# help/$(4)/$(3) in the extension's workdir;
+# $(1): extension identifier
+# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
+#     suffix
+# $(3): relative path of (target) help.tree file (see
+#     gb_Extension_add_helptreefile)
+# $(4): relative path of source help.tree file (see
+#     gb_Extension_add_helptreefile)
+# $(5): language
+# $(6): relative path of localized xhp files (PlatformID included)
+define gb_Extension__localize_helptreefile_onelang
+$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : \
+        $(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3)
+ifneq ($(filter-out en-US,$(5)),)
+ifneq ($(filter-out qtz,$(5)),)
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \
+	POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \
+        $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
+$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) :
+endif
+endif
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \
+        $(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \
+        $(gb_Extension_TREEXDEPS) | \
+        $(2)/$(4)
+$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \
+        $(2)/$(or $(4),$(3))
+	$$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3)
+	$$(call gb_Helper_abbreviate_dirs, \
+		mkdir -p $$(dir $$@) && \
+		$(if $(filter qtz,$(5)), \
+			$(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
+				-r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) \
+			, \
+			$(if $(filter-out en-US,$(5)), \
+				MERGEINPUT=`$(gb_MKTEMP)` && \
+				echo $$(POFILE) > $$$${MERGEINPUT} && \
+				$(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+					-m $$$${MERGEINPUT} \
+					-r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) && \
+				rm -rf $$$${MERGEINPUT} \
+				, \
+				$(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
+					-r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) \
+			) \
+		) \
+	)
 
 endef
 
-define gb_Extension_add_package_dependency
-$$(call gb_Output_error,\
- gb_Extension_add_package_dependency: use gb_Extension_use_package instead.)
+# compile help for one language; the result is stored as help/$(3)/ in the
+# extension's rootdir and marked for zipping into the .oxt
+# $(1): extension identifier
+# $(2): language
+# Target-specific HELPFILES: list of relative paths of .xhp files (see
+#     gb_Extension_add_helpfile)
+define gb_Extension__compile_help_onelang
+$(call gb_Extension_get_rootdir,$(1))/help/$(2).done : \
+        $(gb_Extension_HELPINDEXERDEPS) \
+        $(gb_Extension_HELPLINKERDEPS) \
+        $(OUTDIR_FOR_BUILD)/bin/embed.xsl \
+        $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \
+        $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl | \
+        $(call gb_Extension_get_rootdir,$(1))/help/.dir
+	$$(call gb_Output_announce,$(1) $(2),$(true),XHC,3)
+	$$(call gb_Helper_abbreviate_dirs, \
+        mkdir -p $$(basename $$@) && \
+        $(gb_Extension_HELPLINKERCOMMAND) -mod help \
+            -extlangsrc $(call gb_Extension_get_workdir,$(1))/help/$(2) \
+            -sty $(OUTDIR_FOR_BUILD)/bin/embed.xsl \
+            -extlangdest $$(basename $$@) \
+            -idxcaption $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \
+            -idxcontent $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl \
+            $$(HELPFILES) && \
+        (cd $(call gb_Extension_get_workdir,$(1))/help/$(2) && \
+            $(gb_Extension_ZIPCOMMAND) -r $$(basename $$@)/help.jar \
+            $$(HELPFILES)) && \
+        $(gb_Extension_HELPINDEXERCOMMAND) -lang $(2) -mod help \
+            -dir $$(basename $$@) && \
+            rm -fr $$(basename $$@)/caption $$(basename $$@)/content && \
+        touch $$@)
+
 endef
 
-define gb_Extension_add_package_dependencies
-$$(call gb_Output_error,\
- gb_Extension_add_package_dependencies: use gb_Extension_use_packages instead.)
+# establish the dependency that actually causes inclusion of the compiled help
+# into the .oxt, for one language; in principle, this would only need to be done
+# once per language iff the extension uses any help -- currently it is done from
+# each individual gb_Extension_add_helpfile call (and thus requires $strip
+# to remove duplicates from FILES)
+# $(1): extension identifier
+# $(2): language
+define gb_Extension__add_compiled_help_dependency_onelang
+$(call gb_Extension_get_target,$(1)) : FILES += help/$(2)
+$(call gb_Extension_get_target,$(1)) : \
+        $(call gb_Extension_get_rootdir,$(1))/help/$(2).done
+$(call gb_Extension_get_rootdir,$(1))/help/$(2).done \
+	:| $(call gb_Extension__get_preparation_target,$(1))
+
 endef
 
 # vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk
deleted file mode 100644
index b38f3c7..0000000
--- a/solenv/gbuild/ExtensionTarget.mk
+++ /dev/null
@@ -1,455 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-# ExtensionTarget class
-
-# platform
-#  gb_ExtensionTarget_LICENSEFILE_DEFAULT
-
-gb_ExtensionTarget__get_preparation_target = $(WORKDIR)/ExtensionTarget/$(1).prepare
-
-gb_ExtensionTarget_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q)
-gb_ExtensionTarget_XRMEXDEPS := $(call gb_Executable_get_runtime_dependencies,xrmex)
-gb_ExtensionTarget_XRMEXCOMMAND := $(call gb_Executable_get_command,xrmex)
-
-gb_ExtensionTarget_PROPMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,propex)
-gb_ExtensionTarget_PROPMERGECOMMAND := $(call gb_Executable_get_command,propex)
-
-gb_ExtensionTarget_TREEXDEPS := $(call gb_Executable_get_runtime_dependencies,treex)
-gb_ExtensionTarget_TREEXCOMMAND := $(call gb_Executable_get_command,treex)
-
-gb_ExtensionTarget_HELPEXDEPS := $(call gb_Executable_get_runtime_dependencies,helpex)
-gb_ExtensionTarget_HELPEXCOMMAND := $(call gb_Executable_get_command,helpex)
-gb_ExtensionTarget_HELPINDEXERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpIndexer)
-gb_ExtensionTarget_HELPINDEXERCOMMAND := $(call gb_Executable_get_command,HelpIndexer)
-gb_ExtensionTarget_HELPLINKERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpLinker)
-gb_ExtensionTarget_HELPLINKERCOMMAND := $(call gb_Executable_get_command,HelpLinker)
-# does not contain en-US because it is special cased in gb_ExtensionTarget_ExtensionTarget
-gb_ExtensionTarget_TRANS_LANGS := $(filter-out en-US,$(gb_WITH_LANG))
-gb_ExtensionTarget_ALL_LANGS := en-US $(gb_ExtensionTarget_TRANS_LANGS)
-
-# Substitute platform or copy if no platform has been set
-define gb_ExtensionTarget__subst_platform
-$(if $(PLATFORM),\
-	sed \
-		-e 's/@PLATFORM@/$(PLATFORM)/' \
-		-e 's/@EXEC_EXTENSION@/$(gb_Executable_EXT)/' \
-		-e 's/@SHARED_EXTENSION@/$(gb_Library_DLLEXT)/' \
-		$(1) > $(2),\
-	cp -f $(1) $(2))
-endef
-
-$(call gb_ExtensionTarget_get_workdir,%)/.dir :
-	$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
-
-# remove extension directory in workdir and oxt file in workdir
-$(call gb_ExtensionTarget_get_clean_target,%) :
-	$(call gb_Output_announce,$*,$(false),OXT,3)
-	$(call gb_Helper_abbreviate_dirs,\
-		rm -f -r $(call gb_ExtensionTarget_get_workdir,$*) && \
-		rm -f $(call gb_ExtensionTarget__get_preparation_target,$*) \
-			  $(call gb_ExtensionTarget_get_target,$*) \
-	)
-
-# preparation target to delay adding files produced by e.g. UnpackedTarball
-$(call gb_ExtensionTarget__get_preparation_target,%) :
-	$(call gb_Helper_abbreviate_dirs,\
-		mkdir -p $(dir $@) && touch $@)
-
-ifeq ($(strip $(gb_WITH_LANG)),)
-$(call gb_ExtensionTarget_get_workdir,%)/description.xml :
-	$(call gb_Output_announce,$*/description.xml,$(true),CPY,3)
-	$(call gb_Helper_abbreviate_dirs,\
-		mkdir -p $(call gb_ExtensionTarget_get_workdir,$*) && \
-		cp -f $(LOCATION)/description.xml $@)
-else
-$(call gb_ExtensionTarget_get_workdir,%)/description.xml : $(gb_ExtensionTarget_XRMEXDEPS)
-	$(call gb_Output_announce,$*/description.xml,$(true),XRM,3)
-	MERGEINPUT=`$(gb_MKTEMP)` && \
-	echo $(POFILES) > $${MERGEINPUT} && \
-	$(call gb_Helper_abbreviate_dirs,\
-		mkdir -p $(call gb_ExtensionTarget_get_workdir,$*) && \
-		$(gb_ExtensionTarget_XRMEXCOMMAND) \
-			-i $(filter %.xml,$^) \
-			-o $@ \
-			-m $${MERGEINPUT} \
-			-l all) && \
-	rm -rf $${MERGEINPUT}
-
-endif
-
-# rule to create oxt package in workdir
-# --filesync makes sure that all files in the oxt package will be removed that no longer are in $(FILES)
-$(call gb_ExtensionTarget_get_target,%) : \
-		$(call gb_ExtensionTarget_get_workdir,%)/description.xml
-	$(call gb_Output_announce,$*,$(true),OXT,3)
-	$(call gb_Helper_abbreviate_dirs,\
-		mkdir -p $(call gb_ExtensionTarget_get_rootdir,$*)/META-INF \
-			$(if $(LICENSE),$(call gb_ExtensionTarget_get_rootdir,$*)/registration) && \
-		$(call gb_ExtensionTarget__subst_platform,$(call gb_ExtensionTarget_get_workdir,$*)/description.xml,$(call gb_ExtensionTarget_get_rootdir,$*)/description.xml) && \
-		$(call gb_ExtensionTarget__subst_platform,$(LOCATION)/META-INF/manifest.xml,$(call gb_ExtensionTarget_get_rootdir,$*)/META-INF/manifest.xml) && \
-		$(if $(LICENSE),cp -f $(LICENSE) $(call gb_ExtensionTarget_get_rootdir,$*)/registration &&) \
-		$(if $(and $(gb_ExtensionTarget_TRANS_LANGS),$(DESCRIPTION)),cp $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),$(call gb_ExtensionTarget_get_workdir,$*)/description-$(lang).txt) $(call gb_ExtensionTarget_get_rootdir,$*) &&) \
-		cd $(call gb_ExtensionTarget_get_rootdir,$*) && \
-		$(gb_ExtensionTarget_ZIPCOMMAND) -rX --filesync --must-match \
-			$(call gb_ExtensionTarget_get_target,$*) \
-			$(sort $(FILES)))
-
-# set file list and location of manifest and description files
-# register target and clean target
-# add deliverable
-# add dependency for outdir target to workdir target (pattern rule for delivery is in Package.mk)
-#
-# gb_ExtensionTarget_ExtensionTarget extension srcdir
-define gb_ExtensionTarget_ExtensionTarget
-$(call gb_ExtensionTarget_get_target,$(1)) : DESCRIPTION :=
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES := META-INF description.xml
-$(call gb_ExtensionTarget_get_target,$(1)) : LICENSE :=
-$(call gb_ExtensionTarget_get_target,$(1)) : LOCATION := $(SRCDIR)/$(2)
-$(call gb_ExtensionTarget_get_target,$(1)) : PLATFORM := $(PLATFORMID)
-$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : \
-	$(SRCDIR)/$(2)/description.xml
-$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml :| \
-	$(call gb_ExtensionTarget__get_preparation_target,$(1))
-
-ifneq ($(strip $(gb_WITH_LANG)),)
-$(call gb_ExtensionTarget_get_target,$(1)) : \
-	POFILES := $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
-$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : \
-	$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po)
-$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) :
-endif
-
-$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
-    $(call gb_ExtensionTarget__compile_help_onelang,$(1),$(lang)))
-endef
-
-# Use the default license file
-define gb_ExtensionTarget_use_default_license
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += registration
-$(call gb_ExtensionTarget_get_target,$(1)) : LICENSE := $(gb_ExtensionTarget_LICENSEFILE_DEFAULT)
-$(call gb_ExtensionTarget_get_target,$(1)) : $(gb_ExtensionTarget_LICENSEFILE_DEFAULT)
-
-endef
-
-# Use the default description file
-define gb_ExtensionTarget_use_default_description
-$(call gb_ExtensionTarget_add_file,$(1),description-en-US.txt,$$(LOCATION)/description-en-US.txt)
-$(call gb_ExtensionTarget_get_target,$(1)) : DESCRIPTION := $(true)
-ifneq ($(strip $(gb_WITH_LANG)),)
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),description-$(lang).txt)
-endif
-
-endef
-
-# adding a file creates a dependency to it
-# file is copied to $(WORKDIR)
-# $(3) is the target of the copied file, and $(4) can be used to override that
-# with a different actual file, which is needed in gb_ExtensionTarget_add_library
-# to make it work on Windows where the DLL doesn't have a gbuild target...
-define gb_ExtensionTarget_add_file
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2)
-$(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2)
-$(3) :| $(call gb_ExtensionTarget__get_preparation_target,$(1))
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3)
-	mkdir -p $$(dir $$@) && \
-	cp -f $(if $(4),$(4),$(3)) $$@
-
-endef
-
-# Add several files at once
-#
-# This function avoids the need to specify each file's name twice. The
-# files are added directly under specified path in the extension,
-# without any subpath. If no path is specified, they are added directly
-# to the root dir of the extension.
-define gb_ExtensionTarget_add_files
-$(foreach file,$(3),$(call gb_ExtensionTarget_add_file,$(1),$(if $(strip $(2)),$(strip $(2))/)$(notdir $(file)),$(file)))
-
-endef
-
-# add a library from the solver; DO NOT use gb_Library_get_target
-define gb_ExtensionTarget_add_library
-$(call gb_ExtensionTarget_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\
-	$(call gb_Library_get_target,$(2)),\
-	$(gb_Helper_OUTDIRLIBDIR)/$(call gb_Library_get_runtime_filename,$(2)))
-endef
-
-define gb_ExtensionTarget_add_libraries
-$(foreach lib,$(2),$(call gb_ExtensionTarget_add_library,$(1),$(lib)))
-endef
-
-# add an executable from the solver
-define gb_ExtensionTarget_add_executable
-$(call gb_ExtensionTarget_add_file,$(1),$(notdir $(call gb_Executable_get_target,$(2))),\
-	$(call gb_Executable_get_target,$(2)),\
-	$(call gb_Executable_get_target,$(2)))
-endef
-
-define gb_ExtensionTarget_add_executables
-$(foreach exe,$(2),$(call gb_ExtensionTarget_add_executable,$(1),$(exe)))
-endef
-
-# localize .properties file
-# source file is copied to $(WORKDIR)
-define gb_ExtensionTarget_localize_properties
-$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS),\
-	$(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang)))
-endef
-
-define gb_ExtensionTarget_localize_properties_onelang
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2)
-ifneq ($(filter-out en-US,$(4)),)
-ifneq ($(filter-out qtz,$(4)),)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
-	POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \
-	$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po
-$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po :
-endif
-endif
-$(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) \
-		:| $(call gb_ExtensionTarget__get_preparation_target,$(1))
-$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3) \
-		$(gb_ExtensionTarget_PROPMERGEDEPS)
-	$$(call gb_Output_announce,$(2),$(true),PRP,3)
-	$$(call gb_Helper_abbreviate_dirs, \
-		mkdir -p $$(dir $$@) && \
-		$(if $(filter qtz,$(4)), \
-			$(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m -l $(4) \
-			, \
-			$(if $(filter-out en-US,$(4)), \
-				MERGEINPUT=`$(gb_MKTEMP)` && \
-				echo $$(POFILE) > $$$${MERGEINPUT} && \
-				$(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \
-				rm -rf $$$${MERGEINPUT} \
-				, \
-				cp -f $$< $$@ \
-			) \
-		) \
-	)
-
-endef
-
-# add an .xhp help file, to be localized and compiled
-# $(1): extension identifier
-# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
-#     suffix
-# $(3): relative path of (target) .xhp file (e.g.,
-#     com.sun.wiki-publisher/wiki.xhp)
-# $(4): optional relative path of source .xhp file, when it differs from $(3)
-#     (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it
-#     is $(2)/$(4))
-define gb_ExtensionTarget_add_helpfile
-$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
-    $(call gb_ExtensionTarget__localize_helpfile_onelang,$(1),$(2),$(3),$(4),$(lang)) \
-    $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang)))
-endef
-
-# add a help.tree file, to be localized and compiled
-# $(1): extension identifier
-# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
-#     suffix
-# $(3): relative path of (target) help.tree file (e.g.,
-#     com.sun.wiki-publisher/help.tree)
-# $(4): relative path of source help.tree file
-# $(5): relative path of localized xhp files (PlatformID included) 
-define gb_ExtensionTarget_add_helptreefile
-$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \
-    $(call gb_ExtensionTarget__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \
-    $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang)))
-endef
-
-# add a list of .xhp help files, to be localized and compiled
-# $(1): extension identifier
-# $(2): absolute path prefix of en-US source files without $(3) suffixes
-# $(3): list of relative paths of .xhp files (see
-#     gb_ExtensionTarget_add_helpfile)
-define gb_ExtensionTarget_add_helpfiles
-$(foreach helpfile,$(3), \
-    $(call gb_ExtensionTarget_add_helpfile,$(1),$(2),$(helpfile),))
-endef
-
-# localize one .xhp help file for one language; the result is stored as
-# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is
-# "en-US", the source file is just copied, not passed through helpex
-# $(1): extension identifier
-# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
-#     suffix
-# $(3): relative path of (target) .xhp file (see
-#     gb_ExtensionTarget_add_helpfile)
-# $(4): optional relative path of source .xhp file (see
-#     gb_ExtensionTarget_add_helpfile)
-# $(5): language
-define gb_ExtensionTarget__localize_helpfile_onelang
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : HELPFILES += $(3)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
-        $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done : \
-        $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3)
-ifneq ($(filter-out en-US,$(5)),)
-ifneq ($(filter-out qtz,$(5)),)
-$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
-	POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
-$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
-        $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3)))))
-$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) :
-endif
-endif
-$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
-        $(if $(filter-out en-US,$(5)),$(gb_ExtensionTarget_HELPEXDEPS)) | \
-        $(call gb_ExtensionTarget_get_workdir,$(1))/help/.dir
-$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \
-        $(2)/$(or $(4),$(3))
-	$$(call gb_Output_announce,$(1) $(3) $(5),$(true),XHP,3)
-	$$(call gb_Helper_abbreviate_dirs, \
-		mkdir -p $$(dir $$@) && \
-		$(if $(filter qtz,$(5)), \
-			$(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
-			, \
-			$(if $(filter-out en-US,$(5)), \
-				MERGEINPUT=`$(gb_MKTEMP)` && \
-				echo $$(POFILE) > $$$${MERGEINPUT} && \
-				$(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \
-					-m $$$${MERGEINPUT} && \
-				rm -rf $$$${MERGEINPUT} \
-				, \
-				cp $$< $$@ \
-			) \
-		) && \
-		touch $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done \
-	)
-
-endef
-
-
-# localize one help.tree for one language; the result is stored as
-# help/$(4)/$(3) in the extension's workdir;
-# $(1): extension identifier
-# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4))
-#     suffix
-# $(3): relative path of (target) help.tree file (see
-#     gb_ExtensionTarget_add_helptreefile)
-# $(4): relative path of source help.tree file (see
-#     gb_ExtensionTarget_add_helptreefile)
-# $(5): language
-# $(6): relative path of localized xhp files (PlatformID included) 
-define gb_ExtensionTarget__localize_helptreefile_onelang
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \
-        $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3)
-ifneq ($(filter-out en-US,$(5)),)
-ifneq ($(filter-out qtz,$(5)),)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
-	POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
-        $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4))))
-$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) :
-endif
-endif
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
-        $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
-        $(gb_ExtensionTarget_TREEXDEPS) | \
-        $(2)/$(4)
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \
-        $(2)/$(or $(4),$(3))
-	$$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3)
-	$$(call gb_Helper_abbreviate_dirs, \
-		mkdir -p $$(dir $$@) && \
-		$(if $(filter qtz,$(5)), \
-			$(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) -m \
-				-r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \
-			, \
-			$(if $(filter-out en-US,$(5)), \
-				MERGEINPUT=`$(gb_MKTEMP)` && \
-				echo $$(POFILE) > $$$${MERGEINPUT} && \
-				$(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
-					-m $$$${MERGEINPUT} \
-					-r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) && \
-				rm -rf $$$${MERGEINPUT} \
-				, \
-				$(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \
-					-r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \
-			) \
-		) \
-	)
-
-endef
-
-# compile help for one language; the result is stored as help/$(3)/ in the
-# extension's rootdir and marked for zipping into the .oxt
-# $(1): extension identifier
-# $(2): language
-# Target-specific HELPFILES: list of relative paths of .xhp files (see
-#     gb_ExtensionTarget_add_helpfile)
-define gb_ExtensionTarget__compile_help_onelang
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done : \
-        $(gb_ExtensionTarget_HELPINDEXERDEPS) \
-        $(gb_ExtensionTarget_HELPLINKERDEPS) \
-        $(OUTDIR_FOR_BUILD)/bin/embed.xsl \
-        $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \
-        $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl | \
-        $(call gb_ExtensionTarget_get_rootdir,$(1))/help/.dir
-	$$(call gb_Output_announce,$(1) $(2),$(true),XHC,3)
-	$$(call gb_Helper_abbreviate_dirs, \
-        mkdir -p $$(basename $$@) && \
-        $(gb_ExtensionTarget_HELPLINKERCOMMAND) -mod help \
-            -extlangsrc $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(2) \
-            -sty $(OUTDIR_FOR_BUILD)/bin/embed.xsl \
-            -extlangdest $$(basename $$@) \
-            -idxcaption $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \
-            -idxcontent $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl \
-            $$(HELPFILES) && \
-        (cd $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(2) && \
-            $(gb_ExtensionTarget_ZIPCOMMAND) -r $$(basename $$@)/help.jar \
-            $$(HELPFILES)) && \
-        $(gb_ExtensionTarget_HELPINDEXERCOMMAND) -lang $(2) -mod help \
-            -dir $$(basename $$@) && \
-            rm -fr $$(basename $$@)/caption $$(basename $$@)/content && \
-        touch $$@)
-
-endef
-
-# establish the dependency that actually causes inclusion of the compiled help
-# into the .oxt, for one language; in principle, this would only need to be done
-# once per language iff the extension uses any help -- currently it is done from
-# each individual gb_ExtensionTarget_add_helpfile call (and thus requires $strip
-# to remove duplicates from FILES)
-# $(1): extension identifier
-# $(2): language
-define gb_ExtensionTarget__add_compiled_help_dependency_onelang
-$(call gb_ExtensionTarget_get_target,$(1)) : FILES += help/$(2)
-$(call gb_ExtensionTarget_get_target,$(1)) : \
-        $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done
-$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done \
-	:| $(call gb_ExtensionTarget__get_preparation_target,$(1))
-
-endef
-
-
-define gb_ExtensionTarget_use_unpacked
-$(call gb_ExtensionTarget__get_preparation_target,$(1)) \
-	:| $(call gb_UnpackedTarball_get_final_target,$(2))
-
-endef
-
-define gb_ExtensionTarget_use_package
-$(call gb_ExtensionTarget__get_preparation_target,$(1)) \
-	:| $(call gb_Package_get_target,$(2))
-
-endef
-
-define gb_ExtensionTarget_use_packages
-$(foreach package,$(2),$(call gb_ExtensionTarget_use_package,$(1),$(package)))
-
-endef
-
-# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index cf9318f..7a0b2b8 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -24,7 +24,6 @@ gb_CliNativeLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliNativeLib
 gb_CliUnoApi_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliUnoApi_EXT)
 gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT)
 gb_Executable_get_target_for_build = $(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT_for_build)
-gb_Extension_get_target = $(OUTDIR)/bin/$(1).oxt
 gb_Pagein_get_outdir_target = $(OUTDIR)/bin/pagein-$(1)
 gb_PackagePart_get_destinations = \
 	$(INSTDIR) \
@@ -96,9 +95,9 @@ gb_GenCxxObject_get_target = $(WORKDIR)/GenCxxObject/$(1).o
 gb_Executable_get_external_headers_target = $(WORKDIR)/ExternalHeaders/Executable/$(1)
 gb_Executable_get_headers_target = $(WORKDIR)/Headers/Executable/$(1)
 gb_Executable_get_runtime_target = $(WORKDIR_FOR_BUILD)/Executable/$(1).run
-gb_ExtensionTarget_get_target = $(WORKDIR)/ExtensionTarget/$(1).oxt
-gb_ExtensionTarget_get_rootdir = $(WORKDIR)/ExtensionTarget/$(1)/root
-gb_ExtensionTarget_get_workdir = $(WORKDIR)/ExtensionTarget/$(1)
+gb_Extension_get_target = $(WORKDIR)/Extension/$(1).oxt
+gb_Extension_get_rootdir = $(WORKDIR)/Extension/$(1)/root
+gb_Extension_get_workdir = $(WORKDIR)/Extension/$(1)
 gb_ExternalPackage_get_target = $(WORKDIR)/ExternalPackage/$(1)
 gb_ExternalProject_get_statedir = $(WORKDIR)/ExternalProject/$(1)
 gb_ExternalProject_get_preparation_target = $(WORKDIR)/ExternalProject/$(1).prepare
@@ -259,7 +258,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
 	DescriptionTranslateTarget \
 	Dictionary \
 	ExternalPackage \
-	ExtensionTarget \
+	Extension \
 	Gallery \
 	GeneratedPackage \
 	HelpTarget \
@@ -328,7 +327,6 @@ $(eval $(call gb_Helper_make_outdir_clean_targets,\
 	CliNativeLibrary \
 	CliUnoApi \
 	Executable \
-	Extension \
 	InstallScript \
 	Library \
 	StaticLibrary \
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 34adec9..4b65f0e 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -331,9 +331,8 @@ include $(foreach class, \
 	Configuration \
 	HelpTarget \
 	AllLangHelp \
-	ExtensionTarget \
-	Dictionary \
 	Extension \
+	Dictionary \
 	InstallModuleTarget \
 	InstallModule \
 	InstallScript \
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index e81026e..46d73fd 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -254,9 +254,9 @@ gb_InstallScript_EXT := .ins
 gb_CliAssemblyTarget_POLICYEXT :=
 gb_CliAssemblyTarget_get_dll :=
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
 
 # UnpackedTarget class
 
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index 77632c5..7dde271 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -388,9 +388,9 @@ gb_InstallScript_EXT := .inf
 gb_CliAssemblyTarget_POLICYEXT :=
 gb_CliAssemblyTarget_get_dll :=
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt
 
 # UnpackedTarget class
 
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index c26582f..c08349d 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -563,9 +563,9 @@ gb_InstallScript_EXT := .inf
 gb_CliAssemblyTarget_POLICYEXT := $(gb_Library_DLLEXT)
 gb_CliAssemblyTarget_get_dll = $(OUTDIR)/bin/$(1)$(gb_CliAssemblyTarget_POLICYEXT)
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt
 
 # UnpackedTarget class
 
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 38aa268..a12644e 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -356,9 +356,9 @@ gb_InstallScript_EXT := .ins
 gb_CliAssemblyTarget_POLICYEXT :=
 gb_CliAssemblyTarget_get_dll :=
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
 
 # UnpackedTarget class
 
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index ed0dd5c..2c0a836 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -396,9 +396,9 @@ gb_InstallScript_EXT := .ins
 gb_CliAssemblyTarget_POLICYEXT :=
 gb_CliAssemblyTarget_get_dll :=
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
 
 # UnpackedTarget class
 
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index e68371d..c15f0fa 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -395,9 +395,9 @@ gb_InstallScript_EXT := .ins
 gb_CliAssemblyTarget_POLICYEXT :=
 gb_CliAssemblyTarget_get_dll :=
 
-# ExtensionTarget class
+# Extension class
 
-gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
+gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE
 
 # UnpackedTarget class
 
commit b8e09de4e00ae21728ddc9cc9179bc8f95d4cfc5
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Sun May 26 14:30:56 2013 +0200

    allow to install files from workdir
    
    Change-Id: Id711489ac631291fc11fe7698e5a0a4719db99d7

diff --git a/instsetoo_native/util/openoffice.lst.in b/instsetoo_native/util/openoffice.lst.in
index 2c8e8fd..ad8019b 100644
--- a/instsetoo_native/util/openoffice.lst.in
+++ b/instsetoo_native/util/openoffice.lst.in
@@ -82,7 +82,7 @@ LibreOffice
         downloadname    LibreOffice_{productversion}_{os}_install_{languages}
         langpackdownloadname    LibreOffice_{productversion}_languagepack_{os}_install_{languages}
         helppackdownloadname    LibreOffice_{productversion}_helppack_{os}_install_{languages}
-        include         {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{solarpath}/xml.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage
+        include         {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{solarpath}/xml.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage,{filelistpath}
     }
 }
 
@@ -138,7 +138,7 @@ LibreOffice_Dev
         downloadname    LibreOfficeDev_{productversion}_{os}_install_{languages}
         langpackdownloadname    LibreOfficeDev_{productversion}_languagepack_{os}_install_{languages}
         helppackdownloadname    LibreOfficeDev_{productversion}_helppack_{os}_install_{languages}
-        include         {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice_dev,{solarpath}/pck.{minor},{solarpath}/xml.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage
+        include         {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice_dev,{solarpath}/pck.{minor},{solarpath}/xml.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage,{filelistpath}
     }
 }
 
@@ -177,7 +177,7 @@ LibreOffice_SDK
         active 1
         compression 5
         script sdkoo
-        include {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage
+        include {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage,{filelistpath}
     }
 }
 
@@ -223,7 +223,7 @@ LibreOffice_Dev_SDK
         active 1
         compression 5
         script sdkoo
-        include {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage
+        include {solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor},{filelistpath}/PackageSet,{filelistpath}/Package,{filelistpath}/GeneratedPackage,{filelistpath}
     }
 }
 
@@ -262,7 +262,7 @@ LibreOffice_Test
         active 1
         compression 5
         script test
-        include {solarpath}/bin.{minor}/cppunit,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor}
+        include {solarpath}/bin.{minor}/cppunit,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{filelistpath}
     }
 }
 
@@ -308,6 +308,6 @@ LibreOffice_Dev_Test
         active 1
         compression 5
         script test
-        include {solarpath}/bin.{minor}/cppunit,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor}
+        include {solarpath}/bin.{minor}/cppunit,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{filelistpath}
     }
 }
commit 2b5e077656b2c58fa228c80bed19428bb8be79ef
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu May 23 23:38:07 2013 +0200

    gb_PackagePart_get_target unused
    
    Change-Id: I610523dd0b9fd88804c1a0c71d61fd88e8a8b814

diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index a3acfeb..cf9318f 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -38,7 +38,6 @@ gb_PackagePart_get_destinations = \
 	$(OUTDIR)/xml \
 
 gb_InstallScript_get_target = $(OUTDIR)/bin/$(1)$(gb_InstallScript_EXT)
-gb_PackagePart_get_target = $(OUTDIR)/$(1)
 gb_Rdb_get_outdir_target = $(OUTDIR)/xml/$(1).rdb
 gb_Rdb_get_outdir_target_for_build = $(OUTDIR_FOR_BUILD)/xml/$(1).rdb
 gb_ResTarget_get_outdir_target = $(OUTDIR)/bin/$(1).res
commit e555705b3f7764b6caaf07d585056325fb67b23c
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu May 23 23:36:43 2013 +0200

    gbuild: kill gb_Zip_get_outdir_target
    
    Change-Id: Ie1920be76f803b1dbfd7b94dcb7a834b88816c08

diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 1a33fb5..a3acfeb 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -46,9 +46,6 @@ gb_ResTarget_get_unittest_target = \
     $(OUTDIR)/unittest/install/program/resource/$(1).res
 gb_UnoApi_get_target = $(OUTDIR)/bin/$(1).rdb
 gb_Jar_get_outdir_target = $(OUTDIR)/bin/$(1).jar
-gb_Zip_get_outdir_target = $(OUTDIR)/pck/$(1).zip
-gb_Zip_get_outdir_target_for_build = $(OUTDIR_FOR_BUILD)/pck/$(1).zip
-# outdir targets: $(1) is path
 gb_Configuration_registry = $(OUTDIR)/xml/registry
 gb_XcsTarget_get_outdir_target = \
     $(gb_Configuration_registry)/schema$(if $(1),/)$(1)
@@ -228,7 +225,6 @@ gb_XcuModuleTarget_get_target = $(WORKDIR)/XcuModuleTarget/$(1)
 gb_XcuMergeTarget_get_target = $(WORKDIR)/XcuMergeTarget/$(1)
 gb_XcuResTarget_get_target = $(WORKDIR)/XcuResTarget/$(1)
 gb_Zip_get_target = $(WORKDIR)/Zip/$(1).zip
-gb_Zip_get_final_target = $(WORKDIR)/Zip/$(1).done
 
 gb_Library__get_final_target = $(WORKDIR)/Dummy/$(1)
 
diff --git a/solenv/gbuild/Zip.mk b/solenv/gbuild/Zip.mk
index 8fd7706..ae21f7f 100644
--- a/solenv/gbuild/Zip.mk
+++ b/solenv/gbuild/Zip.mk
@@ -27,11 +27,9 @@ gb_Zip_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q)
 $(call gb_Zip_get_clean_target,%) :
 	$(call gb_Output_announce,$*,$(false),ZIP,3)
 	$(call gb_Helper_abbreviate_dirs,\
-		rm -f $(call gb_Zip_get_target,$*) && \
-		rm -f $(call gb_Zip__get_preparation_target,$*) && \
-		rm -f $(call gb_Zip_get_final_target,$*) && \
 		$(if $(CLEAR_LOCATION),rm -rf $(gb_Package_Location_$*) &&) \
-		rm -f $(call gb_Zip_get_outdir_target,$*))
+		rm -f $(call gb_Zip_get_target,$*) && \
+		rm -f $(call gb_Zip__get_preparation_target,$*))
 
 # rule to create zip package in workdir
 # --filesync makes sure that all files in the zip package will be removed that no longer are in $(FILES)
@@ -44,12 +42,6 @@ $(call gb_Zip_get_target,%) :
 	cd $(LOCATION) && cat $${RESPONSEFILE} | tr "[:space:]" "\n" | $(gb_Zip_ZIPCOMMAND) - at rX --filesync --must-match $(call gb_Zip_get_target,$*) && \
 	rm -f $${RESPONSEFILE} )
 
-# the final target is a touch target; we use it as registered targets should be in workdir, not in outdir
-# the outdir target depends on the workdir target and is built by delivering the latter
-# the workdir target is created by cd'ing to the target directory and adding/updating the files
-$(call gb_Zip_get_final_target,%) : $(call gb_Zip_get_outdir_target,%)
-	touch $@
-
 # the preparation target is here to ensure proper ordering of actions in cases
 # when we want to, e.g., create a zip from files created by a custom target
 $(call gb_Zip__get_preparation_target,%) :
@@ -74,10 +66,6 @@ endef
 define gb_Zip_Zip_internal
 $(call gb_Zip_Zip_internal_nodeliver,$(1),$(2))
 
-$(call gb_Deliver_add_deliverable,$(call gb_Zip_get_outdir_target,$(1)),$(call gb_Zip_get_target,$(1)),$(1))
-$(call gb_Zip_get_outdir_target,$(1)) : $(call gb_Zip_get_target,$(1)) \
-	| $(dir $(call gb_Zip_get_outdir_target,$(1))).dir
-
 endef
 
 # depend on makefile to enforce a rebuild if files are removed from the zip
@@ -85,8 +73,8 @@ define gb_Zip_Zip
 $(call gb_Zip_Zip_internal,$(1),$(2))
 $(call gb_Zip_get_target,$(1)) : $(gb_Module_CURRENTMAKEFILE)
 
-$(eval $(call gb_Module_register_target,$(call gb_Zip_get_final_target,$(1)),$(call gb_Zip_get_clean_target,$(1))))
-$(call gb_Helper_make_userfriendly_targets,$(1),Zip,$(call gb_Zip_get_final_target,$(1)))
+$(eval $(call gb_Module_register_target,$(call gb_Zip_get_target,$(1)),$(call gb_Zip_get_clean_target,$(1))))
+$(call gb_Helper_make_userfriendly_targets,$(1),Zip,$(call gb_Zip_get_target,$(1)))
 
 endef
 
commit 85c6f80121230532485041e9fa2522d812eb3ca9
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu May 23 23:01:05 2013 +0200

    use .component files directly from workdir
    
    Change-Id: Idaf2e1c33dcdf060756b5739c4a8d904dbdc699b

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index dd48feb..3bb68e0 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -2966,7 +2966,7 @@ $(call gb_Executable_add_runtime_dependencies,$(1),\
 		ucb/source/core/ucb1 \
 		ucb/source/ucp/file/ucpfile1 \
 		unoxml/source/service/unoxml \
-	,$(call gb_ComponentTarget_get_outdir_target_for_build,$(component))) \
+	,$(call gb_ComponentTarget_get_target_for_build,$(component))) \
 	$(call gb_AllLangResTarget_get_target,ofa) \
 	$(call gb_Configuration_get_target,registry) \
 	$(call gb_Configuration_get_target,fcfg_langpack) \
@@ -3016,9 +3016,9 @@ endef
 # FIXME: the library target should be for build too
 define gb_Executable__register_saxparser
 $(call gb_Executable_add_runtime_dependencies,saxparser,\
-	$(call gb_ComponentTarget_get_outdir_target,sax/source/expatwrap/expwrap) \
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
 	$(call gb_Package_get_target_for_build,cppuhelper_unorc) \
+	$(call gb_Rdb_get_outdir_target_for_build,saxparser) \
 	$(call gb_Rdb_get_outdir_target_for_build,ure/services) \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
diff --git a/i18npool/CustomTarget_localedata.mk b/i18npool/CustomTarget_localedata.mk
index 7e8774c..f10769f 100644
--- a/i18npool/CustomTarget_localedata.mk
+++ b/i18npool/CustomTarget_localedata.mk
@@ -9,24 +9,21 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,i18npool/localedata))
 
-i18npool_LDDIR := $(call gb_CustomTarget_get_workdir,i18npool/localedata)
-
 i18npool_LD_NAMES := $(basename $(notdir $(wildcard $(SRCDIR)/i18npool/source/localedata/data/*.xml)))
 
-$(call gb_CustomTarget_get_target,i18npool/localedata) : \
-	$(foreach name,$(i18npool_LD_NAMES),$(i18npool_LDDIR)/localedata_$(name).cxx)
+$(eval $(call gb_CustomTarget_register_targets,i18npool/localedata,\
+	$(foreach name,$(i18npool_LD_NAMES),localedata_$(name).cxx) \
+))
 
 define i18npool_LD_RULE
-$(i18npool_LDDIR)/localedata_$(1).cxx : \
+$(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_$(1).cxx : \
 		$(SRCDIR)/i18npool/source/localedata/data/$(1).xml \
-		$(i18npool_LDDIR)/saxparser.rdb \
 		| $(call gb_Executable_get_runtime_dependencies,saxparser)
 	$$(call gb_Output_announce,$$(subst $(WORKDIR)/,,$$@),$(true),SAX,1)
 	$$(call gb_Helper_abbreviate_dirs, \
 		$(call gb_Helper_execute,saxparser) $(1) $$< $$@.tmp \
-			$(call gb_Helper_make_url,$(i18npool_LDDIR)/saxparser.rdb) \
-			-env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR) \
-			-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(i18npool_LDDIR)/saxparser.rdb)) \
+			-env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR)) \
+			-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_outdir_target_for_build,saxparser)) \
 			$(if $(findstring s,$(MAKEFLAGS)),> /dev/null 2>&1) && \
 		sed 's/\(^.*get[^;]*$$$$\)/SAL_DLLPUBLIC_EXPORT \1/' $$@.tmp > $$@ && \
 		rm $$@.tmp)
@@ -35,16 +32,4 @@ endef
 
 $(foreach name,$(i18npool_LD_NAMES),$(eval $(call i18npool_LD_RULE,$(name))))
 
-$(i18npool_LDDIR)/saxparser.rdb : $(i18npool_LDDIR)/saxparser.input \
-		$(SOLARENV)/bin/packcomponents.xslt \
-	| $(call gb_ExternalExecutable_get_dependencies,xsltproc)
-	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),RDB,1)
-	$(call gb_Helper_abbreviate_dirs, \
-		$(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam prefix $(OUTDIR_FOR_BUILD)/xml/ \
-			-o $@ $(SOLARENV)/bin/packcomponents.xslt $<)
-
-$(i18npool_LDDIR)/saxparser.input : $(call gb_ComponentTarget_get_outdir_target,sax/source/expatwrap/expwrap) | $(i18npool_LDDIR)/.dir
-	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
-	echo '<list><filename>component/sax/source/expatwrap/expwrap.component</filename></list>' > $@
-
 # vim: set noet sw=4 ts=4:
diff --git a/i18npool/Module_i18npool.mk b/i18npool/Module_i18npool.mk
index 1f78d51..73b0110 100644
--- a/i18npool/Module_i18npool.mk
+++ b/i18npool/Module_i18npool.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_Module_add_targets_for_build,i18npool,\
 	Executable_gendict \
 	Executable_genindex_data \
 	Executable_saxparser \
+	Rdb_saxparser \
 ))
 
 $(eval $(call gb_Module_add_check_targets,i18npool,\
diff --git a/i18npool/Rdb_saxparser.mk b/i18npool/Rdb_saxparser.mk
new file mode 100644
index 0000000..f3c2dda
--- /dev/null
+++ b/i18npool/Rdb_saxparser.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Rdb_Rdb,saxparser))
+
+$(eval $(call gb_Rdb_add_components,saxparser,\
+	sax/source/expatwrap/expwrap \
+))
+
+# vim:set noet sw=4 ts=4:
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index 7d97197..0957f9f 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -38,8 +38,7 @@ endef
 
 $(call gb_ComponentTarget_get_clean_target,%) :
 	$(call gb_Output_announce,$*,$(false),CMP,1)
-	rm -f $(call gb_ComponentTarget_get_outdir_target,$*) \
-		$(call gb_ComponentTarget_get_target,$*) \
+	rm -f $(call gb_ComponentTarget_get_target,$*) \
 
 
 # when a library is renamed, the component file needs to be rebuilt to match.
@@ -54,10 +53,6 @@ $(call gb_ComponentTarget_get_target,%) : \
 define gb_ComponentTarget_ComponentTarget
 $(call gb_ComponentTarget_get_target,$(1)) : COMPONENTPREFIX := $(2)
 $(call gb_ComponentTarget_get_target,$(1)) : LIBFILENAME := $(3)
-$(call gb_ComponentTarget_get_outdir_target,$(1)) : \
-	$(call gb_ComponentTarget_get_target,$(1)) \
-	| $(dir $(call gb_ComponentTarget_get_outdir_target,$(1))).dir
-$(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_target,$(1)),$(call gb_ComponentTarget_get_target,$(1)),$(1))
 
 endef
 
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index bf209d6..fd4b122 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -243,9 +243,9 @@ endef
 
 define gb_CppunitTest_use_component
 $(call gb_CppunitTest_get_target,$(1)) : \
-    $(call gb_ComponentTarget_get_outdir_target,$(2))
+    $(call gb_ComponentTarget_get_target,$(2))
 $(call gb_CppunitTest_get_target,$(1)) : \
-    UNO_SERVICES += $(call gb_ComponentTarget_get_outdir_target,$(2))
+    UNO_SERVICES += $(call gb_ComponentTarget_get_target,$(2))
 
 endef
 
diff --git a/solenv/gbuild/Gallery.mk b/solenv/gbuild/Gallery.mk
index 5ce7a6b..5d96f97 100644
--- a/solenv/gbuild/Gallery.mk
+++ b/solenv/gbuild/Gallery.mk
@@ -35,7 +35,7 @@ gb_Gallery_TRANSLATE := $(SOLARENV)/bin/desktop-translate.pl
 # TODO: this should be in RepositoryExternal.mk, but it would lead to
 # duplication. Fix.
 gb_Gallery_EXTRA_DEPENCENCIES := \
-	$(foreach component,$(gb_Gallery__UNO_COMPONENTS),$(call gb_ComponentTarget_get_outdir_target_for_build,$(component))) \
+	$(foreach component,$(gb_Gallery__UNO_COMPONENTS),$(call gb_ComponentTarget_get_target_for_build,$(component))) \
 	$(foreach api,$(gb_Gallery__UNO_TYPES),$(call gb_UnoApi_get_target,$(api)))
 
 gb_Gallery_INSTDIR := share/gallery
@@ -47,7 +47,7 @@ define gb_Gallery__make_env_args
 	module:$(call gb_Helper_make_url,$(gb_Configuration_registry)/spool)" \
 "-env:UNO_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_outdir_target_for_build,ure/services)) \
 	$(foreach item,$(gb_Gallery__UNO_COMPONENTS),\
-		$(call gb_Helper_make_url,$(call gb_ComponentTarget_get_outdir_target_for_build,$(item))))" \
+		$(call gb_Helper_make_url,$(call gb_ComponentTarget_get_target_for_build,$(item))))" \
 "-env:UNO_TYPES=$(foreach item,$(gb_Gallery__UNO_TYPES),\
 	$(call gb_Helper_make_url,$(call gb_UnoApi_get_target,$(item))))" \
 $(foreach dir,URE_INTERNAL_LIB_DIR LO_LIB_DIR,\
diff --git a/solenv/gbuild/Jar.mk b/solenv/gbuild/Jar.mk
index 889cc48..99f02d9 100644
--- a/solenv/gbuild/Jar.mk
+++ b/solenv/gbuild/Jar.mk
@@ -301,8 +301,7 @@ gb_Jar__get_componentprefix = \
 # layer must be specified explicitly in this macro (different to libraries)
 define gb_Jar_set_componentfile
 $(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Jar__get_componentprefix,$(3)),$(notdir $(call gb_Jar_get_target,$(1))))
-$(call gb_Jar_get_target,$(1)) : \
-	$(call gb_ComponentTarget_get_outdir_target,$(2))
+$(call gb_Jar_get_target,$(1)) : $(call gb_ComponentTarget_get_target,$(2))
 $(call gb_Jar_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(2))
 
 endef
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 1174a08..7b328bd 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -151,7 +151,7 @@ $(call gb_ComponentTarget_ComponentTarget,$(2),\
 	$(call gb_Library__get_componentprefix,$(gb_Library__get_name)),\
 	$(call gb_Library_get_runtime_filename,$(gb_Library__get_name)))
 $(call gb_Library__get_final_target,$(gb_Library__get_name)) : \
-	$(call gb_ComponentTarget_get_outdir_target,$(2))
+	$(call gb_ComponentTarget_get_target,$(2))
 $(call gb_ComponentTarget_get_target,$(2)) :| \
 	$(call gb_Library_get_target,$(gb_Library__get_name))
 $(call gb_Library_get_clean_target,$(gb_Library__get_name)) : \
diff --git a/solenv/gbuild/Pyuno.mk b/solenv/gbuild/Pyuno.mk
index 267f2b4..498a4de 100644
--- a/solenv/gbuild/Pyuno.mk
+++ b/solenv/gbuild/Pyuno.mk
@@ -60,7 +60,7 @@ gb_Pyuno__COMPONENTPREFIX := vnd.openoffice.pymodule:
 
 define gb_Pyuno_set_componentfile_full
 $(call gb_ComponentTarget_ComponentTarget,$(2),$(3),$(4))
-$(call gb_Pyuno_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2))
+$(call gb_Pyuno_get_target,$(1)) : $(call gb_ComponentTarget_get_target,$(2))
 $(call gb_Pyuno_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(2))
 
 endef
diff --git a/solenv/gbuild/Rdb.mk b/solenv/gbuild/Rdb.mk
index 9246b79..5bfa3a2 100644
--- a/solenv/gbuild/Rdb.mk
+++ b/solenv/gbuild/Rdb.mk
@@ -12,7 +12,7 @@ $(call gb_Helper_abbreviate_dirs,\
 	mkdir -p $(dir $@) && \
 	(\
 		echo '<list>' && \
-		$(foreach component,$(COMPONENTS),echo "<filename>$(call gb_ComponentTarget_get_outdir_target,$(component))</filename>" &&) \
+		$(foreach component,$(COMPONENTS),echo "<filename>$(call gb_ComponentTarget_get_target,$(component))</filename>" &&) \
 		echo '</list>' \
 	) > $(1).input && \
 	$(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $(1) $(SOLARENV)/bin/packcomponents.xslt $(1).input && \
@@ -40,7 +40,7 @@ $(call gb_Helper_make_userfriendly_targets,$(1),Rdb,$(call gb_Rdb_get_outdir_tar
 endef
 
 define gb_Rdb_add_component
-$(call gb_Rdb_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2))
+$(call gb_Rdb_get_target,$(1)) : $(call gb_ComponentTarget_get_target,$(2))
 $(call gb_Rdb_get_target,$(1)) : COMPONENTS += $(2)
 
 endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 09b2eb6..1a33fb5 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -22,8 +22,6 @@
 gb_CliLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliLibrary_EXT)
 gb_CliNativeLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliNativeLibrary_EXT)
 gb_CliUnoApi_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliUnoApi_EXT)
-gb_ComponentTarget_get_outdir_target = $(OUTDIR)/xml/component/$(1).component
-gb_ComponentTarget_get_outdir_target_for_build = $(OUTDIR_FOR_BUILD)/xml/component/$(1).component
 gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT)
 gb_Executable_get_target_for_build = $(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT_for_build)
 gb_Extension_get_target = $(OUTDIR)/bin/$(1).oxt
@@ -86,6 +84,7 @@ gb_CliNativeLibraryTarget_get_external_target = $(WORKDIR)/CliNativeLibraryTarge
 gb_CliNativeLibraryTarget_get_target = $(WORKDIR)/CliNativeLibraryTarget/$(1)$(gb_CliNativeLibraryTarget_EXT)
 gb_CliUnoApiTarget_get_target = $(WORKDIR)/CliUnoApiTarget/$(1)$(gb_CliUnoApiTarget_EXT)
 gb_ComponentTarget_get_target = $(WORKDIR)/ComponentTarget/$(1).component
+gb_ComponentTarget_get_target_for_build = $(WORKDIR_FOR_BUILD)/ComponentTarget/$(1).component
 gb_Configuration_get_preparation_target = $(WORKDIR)/Configuration/$(1).prepared
 gb_CppunitTest_get_target = $(WORKDIR)/CppunitTest/$(1).test
 gb_CppunitTestFakeExecutable_get_target = \


More information about the Libreoffice-commits mailing list