[Libreoffice-commits] core.git: Branch 'feature/instdirlinktargets' - 32 commits - android/sdremote basic/Library_sb.mk bridges/Library_cpp_uno.mk cairo/ExternalProject_cairo.mk chart2/Library_chartcontroller.mk cli_ure/Executable_climaker.mk cli_ure/Library_cli_cppuhelper_native.mk cli_ure/Module_cli_ure.mk cli_ure/Package_cli_basetypes_copy.mk configure.ac cppuhelper/Library_cppuhelper.mk cppu/Library_cppu.mk cppu/Library_purpenvhelper.mk cppunit/ExternalProject_cppunit.mk desktop/Executable_crashrep.com.mk desktop/Executable_soffice_bin.mk desktop/Executable_soffice.bin.mk desktop/Executable_unopkg.bin.mk desktop/Executable_unopkg.com.mk desktop/Module_desktop.mk desktop/Package_soffice_bin.mk editeng/Library_editeng.mk extensions/Package_OOoSpotlightImporter.mk formula/Library_for.mk framework/Library_fwe.mk harfbuzz/ExternalPackage_harfbuzz.mk harfbuzz/Module_harfbuzz.mk hunspell/ExternalPackage_hunspell.mk hunspell/Module_hunspell.mk hyphen/ExternalPackage_hyphen.mk i18npool/CustomT arget_localedata.mk ios/Executable_LibreOffice.mk libcdr/ExternalPackage_libcdr.mk libcdr/Module_libcdr.mk libexttextcat/ExternalPackage_exttextcat.mk libexttextcat/Module_libexttextcat.mk liblangtag/ExternalPackage_langtag.mk liblangtag/Module_liblangtag.mk libmspub/ExternalPackage_libmspub.mk libmspub/Module_libmspub.mk libmwaw/ExternalPackage_libmwaw.mk libmwaw/Module_libmwaw.mk libodfgen/ExternalPackage_libodfgen.mk libodfgen/Module_libodfgen.mk liborcus/ExternalProject_liborcus.mk libvisio/ExternalPackage_libvisio.mk libvisio/Module_libvisio.mk libwpd/ExternalPackage_libwpd.mk libwpd/Module_libwpd.mk libwpg/ExternalPackage_libwpg.mk libwpg/Module_libwpg.mk libwps/ExternalPackage_libwps.mk libwps/Module_libwps.mk mythes/ExternalPackage_mythes.mk mythes/Module_mythes.mk odk/CustomTarget_check.mk odk/Module_odk.mk odk/Package_bin.mk odk/Package_cli.mk odk/Package_lib.mk odk/Package_unowinreg.mk openldap/ExternalPackage_openldap.mk openldap/Module_openldap.mk openssl/Extern alPackage_openssl.mk poppler/ExternalPackage_poppler.mk poppler/Module_poppler.mk postgresql/ExternalProject_postgresql.mk python3/ExternalProject_python3.mk pyuno/Executable_python_wrapper.mk pyuno/source RepositoryExternal.mk RepositoryFixes.mk Repository.mk RepositoryModule_host.mk sal/Executable_cppunittester.mk salhelper/Library_salhelper.mk sal/Library_sal.mk sal/qa scaddins/Library_analysis.mk scaddins/Library_date.mk scaddins/Library_pricing.mk sc/Library_scfilt.mk sc/Library_sc.mk scp2/AutoInstall.mk scp2/inc scp2/source sfx2/Library_sfx.mk smoketest/Executable_libtest.mk solenv/bin solenv/gbuild solenv/Package_gdb.mk starmath/Library_sm.mk svtools/Library_svt.mk svx/Library_svxcore.mk sw/Library_sw.mk sw/Module_sw.mk testtools/CustomTarget_bridgetest.mk testtools/CustomTarget_uno_test.mk unotest/source vcl/Library_vcl.mk writerperfect/Library_wpftdraw.mk writerperfect/Library_wpftwriter.mk xmlsecurity/Library_xsec_xmlsec.mk

Michael Stahl mstahl at redhat.com
Sat Sep 21 06:11:11 PDT 2013


Rebased ref, commits from common ancestor:
commit 9c4954a070c3794325f11a1794c4b10ec693e918
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 14:25:39 2013 +0200

    make the PythonTest run on WNT
    
    - fix the PATH
    - file url needs to start with file:///X:/ (three slashes, literal :)
    
    Change-Id: I0d16d1e946fd06ba5523961c23c3b46872c0c050

diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 0369775..d20dde1 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -440,7 +440,7 @@ endef
 
 # PythonTest class
 
-gb_PythonTest_PRECOMMAND := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY_PATH_VAR):+$$$(gb_Helper_LIBRARY_PATH_VAR):}$(gb_DEVINSTALLROOT)/URE/bin:$(gb_DEVINSTALLROOT)/program:$(OUTDIR)/bin
+gb_PythonTest_PRECOMMAND := $(gb_Helper_set_ld_path)
 
 # SrsPartTarget class
 
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 202c67c..7048d8e 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -72,11 +72,9 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,sw,\
 endif
 
 ifneq ($(DISABLE_PYTHON),TRUE)
-ifneq ($(OS),WNT)
 $(eval $(call gb_Module_add_subsequentcheck_targets,sw,\
 	PythonTest_sw_python \
 ))
 endif
-endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/unotest/source/python/org/libreoffice/unotest.py b/unotest/source/python/org/libreoffice/unotest.py
index 883d3a4..3da77ff 100644
--- a/unotest/source/python/org/libreoffice/unotest.py
+++ b/unotest/source/python/org/libreoffice/unotest.py
@@ -193,7 +193,11 @@ class UnoInProcess:
         props = [("Hidden", True), ("ReadOnly", False), ("AsTemplate", True)]
         loadProps = tuple([mkPropertyValue(name, value) for (name, value) in props])
         path = os.getenv("TDOC")
-        url = "file://" + quote(path) + "/" + quote(file)
+        if os.name == "nt":
+            # do not quote drive letter - it must be "X:"
+            url = "file:///" + path + "/" + quote(file)
+        else:
+            url = "file://" + quote(path) + "/" + quote(file)
         self.xDoc = desktop.loadComponentFromURL(url, "_blank", 0, loadProps)
         assert(self.xDoc)
         return self.xDoc
commit 49570a6ddcc644c1ad367bc082c7147dda6a7b77
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 11:55:51 2013 +0200

    gbuild: clean up naming of PDB files for MSVC
    
    There are 2 of these, one is written to by cl.exe and read by link.exe
    and the second one written by link.exe.  Name the second one as the
    linktargetname with .pdb appended, no need to substitue 5 different
    crazy suffixes.
    
    Change-Id: I2decad898ed1292b069bdda3124ce6f6c3667108

diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index fda55f6..0369775 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -136,13 +136,12 @@ gb_LinkTarget_INCLUDE :=\
 	$(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \
 	-I$(BUILDDIR)/config_$(gb_Side) \
 
-gb_LinkTarget_get_pdbfile = \
- $(WORKDIR)/LinkTarget/pdb/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).pdb
-# substitute .pyd here because pyuno has to follow python's crazy conventions
-gb_LinkTarget_get_pdbfile2 = \
- $(WORKDIR)/LinkTarget/$(patsubst %.dll,%.pdb,$(patsubst %.pyd,%.dll,$(call gb_LinkTarget__get_workdir_linktargetname,$(1))))
+gb_LinkTarget_get_pdbfile_in = \
+ $(WORKDIR)/LinkTarget/$(basename $(call gb_LinkTarget__get_workdir_linktargetname,$(1)))_objects.pdb
+gb_LinkTarget_get_pdbfile_out = \
+ $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).pdb
 gb_LinkTarget_get_ilkfile = \
- $(WORKDIR)/LinkTarget/$(patsubst %.dll,%.ilk,$(patsubst %.pyd,%.dll,$(call gb_LinkTarget__get_workdir_linktargetname,$(1))))
+ $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).ilk
 gb_LinkTarget_get_manifestfile = \
  $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).manifest
 
@@ -299,8 +298,8 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
 $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.lib,%.exp,$(3)) \
 	$(call gb_LinkTarget_get_manifestfile,$(2)) \
-	$(call gb_LinkTarget_get_pdbfile,$(2)) \
-	$(call gb_LinkTarget_get_pdbfile2,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_in,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_out,$(2)) \
 	$(call gb_LinkTarget_get_ilkfile,$(2)) \
 )
 
@@ -309,7 +308,7 @@ $(call gb_Library_add_default_nativeres,$(1),$(1)/default)
 $(call gb_Deliver_add_deliverable,$(OUTDIR)/lib/$(notdir $(3)),$(3),$(1))
 
 $(call gb_LinkTarget_get_target,$(2)) \
-$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile_in,$(2))
 
 endef
 
@@ -354,10 +353,10 @@ gb_StaticLibrary_PLAINEXT := .lib
 
 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))
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile_in,$(2))
 
 $(call gb_LinkTarget_add_auxtargets,$(2),\
-	$(call gb_LinkTarget_get_pdbfile,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_in,$(2)) \
 )
 
 endef
@@ -376,13 +375,13 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
 
 $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.lib,%.exp,$(3)) \
-	$(call gb_LinkTarget_get_pdbfile2,$(2)).pdb \
-	$(call gb_LinkTarget_get_pdbfile,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_out,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_in,$(2)) \
 	$(call gb_LinkTarget_get_manifestfile,$(2)) \
 )
 
 $(call gb_LinkTarget_get_target,$(2)) \
-$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE := $(call gb_LinkTarget_get_pdbfile,$(2))
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE := $(call gb_LinkTarget_get_pdbfile_in,$(2))
 $(call gb_LinkTarget_get_target,$(2)) : TARGETGUI :=
 
 endef
@@ -405,13 +404,13 @@ $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.lib,%.exp,$(3)) \
 	$(3) \
 	$(call gb_LinkTarget_get_manifestfile,$(2)) \
-	$(call gb_LinkTarget_get_pdbfile2,$(2)) \
-	$(call gb_LinkTarget_get_pdbfile,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_out,$(2)) \
+	$(call gb_LinkTarget_get_pdbfile_in,$(2)) \
 	$(call gb_LinkTarget_get_ilkfile,$(2)) \
 )
 
 $(call gb_LinkTarget_get_target,$(2)) \
-$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile_in,$(2))
 
 endef
 
commit 4f60bc0f6103e40144e624a7cb2478af3e9ce794
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 01:47:44 2013 +0200

    gbuild: MSVC: ignore LIBS for static libraries
    
    Not sure if it causes actual problems but all other platforms ignore
    LIBS on static libraries already when linking.
    
    Change-Id: I8a5ff4b2243b625827f82b0f64f007cea7c9d7c5

diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index f4cec3b..fda55f6 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -196,8 +196,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		@$${RESPONSEFILE} \
 		$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))) \
 		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \
-		$(T_LIBS) \
-		$(if $(filter-out StaticLibrary,$(TARGETTYPE)),user32.lib) \
+		$(if $(filter-out StaticLibrary,$(TARGETTYPE)),$(T_LIBS) user32.lib) \
 		$(if $(filter-out StaticLibrary,$(TARGETTYPE)),-manifestfile:$(WORKDIR)/LinkTarget/$(2).manifest) \
 		-pdb:$(WORKDIR)/LinkTarget/$(2).pdb \
 		$(if $(ILIBTARGET),-out:$(1) -implib:$(ILIBTARGET),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \
commit b77d69510dbee9b6e1f3024fa56163760dfe2106
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 10:55:26 2013 +0200

    gbuild: remove static libraries from OUTDIR
    
    Refactor to find and link static libraries directly in WORKDIR.
    
    - gb_StaticLibrary_get_target is now same as the gb_LinkTarget_get_target
    - fix the StaticLibrary clean target
    
    Change-Id: Icf29d32d6487747a2e39d4599ceebccfead04667

diff --git a/odk/Package_lib.mk b/odk/Package_lib.mk
index d1dc1d6..c9758f8 100644
--- a/odk/Package_lib.mk
+++ b/odk/Package_lib.mk
@@ -7,7 +7,7 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-$(eval $(call gb_Package_Package,odk_lib,$(OUTDIR)/lib))
+$(eval $(call gb_Package_Package,odk_lib,$(WORKDIR)/LinkTarget/StaticLibrary))
 
 $(eval $(call gb_Package_set_outdir,odk_lib,$(INSTDIR)))
 
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index 0cc7177..2b3e6c7 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -21,7 +21,6 @@
 # Static Library class
 
 # defined globally in gbuild.mk
-#  gb_StaticLibrary_OUTDIRLOCATION := $(OUTDIR)/lib
 # defined by platform
 #  gb_StaticLibrary_get_filename
 #  gb_StaticLibrary_PLAINEXT
@@ -29,11 +28,10 @@
 
 
 # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
-.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT)
-$(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) :
+.PHONY : $(WORKDIR)/Clean/StaticLibrary/%
+$(WORKDIR)/Clean/StaticLibrary/% :
 	$(call gb_Helper_abbreviate_dirs,\
-		rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \
-			$(AUXTARGETS))
+		rm -f $(AUXTARGETS))
 
 define gb_StaticLibrary_StaticLibrary
 $(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktarget,$(1)))
@@ -44,14 +42,13 @@ endef
 define gb_StaticLibrary__StaticLibrary_impl
 $(call gb_LinkTarget_LinkTarget,$(2),StaticLibrary_$(1),NONE)
 $(call gb_LinkTarget_set_targettype,$(2),StaticLibrary)
-$(call gb_StaticLibrary_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
+$(call gb_StaticLibrary_get_target,$(1)) : \
 	| $(dir $(call gb_StaticLibrary_get_target,$(1))).dir
 $(call gb_StaticLibrary_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
 $(call gb_StaticLibrary_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_StaticLibrary_StaticLibrary_platform,$(1),$(2))
 $$(eval $$(call gb_Module_register_target,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_StaticLibrary_get_clean_target,$(1))))
 $(call gb_Helper_make_userfriendly_targets,$(1),StaticLibrary)
-$(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
 
 endef
 
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 6de3504..2dd36bf 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -53,9 +53,7 @@ gb_Executable_get_target_for_build = $(gb_Executable__get_linktarget_target)
 # FIXME: cleanup?
 gb_Library_get_target = $(gb_Library__get_linktarget_target)
 
-define gb_StaticLibrary_get_target
-$(gb_StaticLibrary_OUTDIRLOCATION)/$(call gb_StaticLibrary_get_filename,$(1))
-endef
+gb_StaticLibrary_get_target = $(gb_StaticLibrary__get_linktarget_target)
 
 
 # workdir target patterns
@@ -297,6 +295,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
 	SdiTarget \
 	SrsTarget \
 	SrsTemplateTarget \
+	StaticLibrary \
 	ThesaurusIndexTarget \
 	CppunitTest \
 	CppunitTestFakeExecutable \
@@ -328,7 +327,6 @@ $(eval $(call gb_Helper_make_outdir_clean_targets,\
 	CliNativeLibrary \
 	CliUnoApi \
 	InstallScript \
-	StaticLibrary \
 	UnoApi \
 ))
 
@@ -437,7 +435,6 @@ gb_Executable_BINDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Executable
 gb_Library_OUTDIRLOCATION = $(if $(filter WNT,$(OS)),$(OUTDIR)/bin,$(OUTDIR)/lib)
 gb_Library_DLLDIR = $(WORKDIR)/LinkTarget/Library
 gb_CppunitTest_DLLDIR = $(WORKDIR)/LinkTarget/CppunitTest
-gb_StaticLibrary_OUTDIRLOCATION = $(OUTDIR)/lib
 
 # static variables declared here because they are used globally
 
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk
index a8cd146..6fef56e 100644
--- a/solenv/gbuild/platform/com_GCC_class.mk
+++ b/solenv/gbuild/platform/com_GCC_class.mk
@@ -220,6 +220,7 @@ gb_StaticLibrary_PLAINEXT := .a
 gb_StaticLibrary_StaticLibrary_platform :=
 
 gb_LinkTarget_get_linksearchpath_for_layer = \
+	-L$(WORKDIR)/LinkTarget/StaticLibrary \
 	-L$(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib \
 	$(foreach layer,\
 		$(subst +, ,$(patsubst $(1):%.,%,\
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index bf5a79c..f4cec3b 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -147,6 +147,7 @@ gb_LinkTarget_get_manifestfile = \
  $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).manifest
 
 gb_LinkTarget_get_linksearchpath_for_layer = \
+	-LIBPATH:$(WORKDIR)/LinkTarget/StaticLibrary \
 	-LIBPATH:$(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib \
 	$(if $(filter OXT,$(1)),\
 		-LIBPATH:$(WORKDIR)/LinkTarget/ExtensionLibrary, \
commit 4f1c7c77f1ef7ae15bd6358cefef64456f3042c4
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 19:32:31 2013 +0200

    stop delivering lots of external static libraries
    
    Change-Id: Id0c5908adbdec40346c1b62304d1f72ed077ca54

diff --git a/harfbuzz/ExternalPackage_harfbuzz.mk b/harfbuzz/ExternalPackage_harfbuzz.mk
deleted file mode 100644
index e6420aa..0000000
--- a/harfbuzz/ExternalPackage_harfbuzz.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,harfbuzz,harfbuzz))
-
-$(eval $(call gb_ExternalPackage_use_external_project,harfbuzz,harfbuzz))
-
-$(eval $(call gb_ExternalPackage_add_files,harfbuzz,lib,\
-	src/.libs/libharfbuzz.a \
-	src/.libs/libharfbuzz-icu.a \
-))
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/harfbuzz/Module_harfbuzz.mk b/harfbuzz/Module_harfbuzz.mk
index d3e693f..af64eff 100644
--- a/harfbuzz/Module_harfbuzz.mk
+++ b/harfbuzz/Module_harfbuzz.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,harfbuzz))
 ifeq ($(ENABLE_HARFBUZZ)-$(SYSTEM_HARFBUZZ),TRUE-NO)
 
 $(eval $(call gb_Module_add_targets,harfbuzz,\
-	ExternalPackage_harfbuzz \
 	ExternalProject_harfbuzz \
 	UnpackedTarball_harfbuzz \
 ))
diff --git a/hunspell/ExternalPackage_hunspell.mk b/hunspell/ExternalPackage_hunspell.mk
deleted file mode 100644
index 1cabd19..0000000
--- a/hunspell/ExternalPackage_hunspell.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,hunspell,hunspell))
-
-ifneq ($(COM),MSC)
-
-$(eval $(call gb_ExternalPackage_use_external_project,hunspell,hunspell))
-
-$(eval $(call gb_ExternalPackage_add_file,hunspell,lib/libhunspell.a,src/hunspell/.libs/libhunspell-1.3.a))
-
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/hunspell/Module_hunspell.mk b/hunspell/Module_hunspell.mk
index 357873c..6acd732 100644
--- a/hunspell/Module_hunspell.mk
+++ b/hunspell/Module_hunspell.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,hunspell))
 ifeq ($(SYSTEM_HUNSPELL),NO)
 $(eval $(call gb_Module_add_targets,hunspell,\
 	UnpackedTarball_hunspell \
-	ExternalPackage_hunspell \
 ))
 ifeq ($(COM),MSC)
 $(eval $(call gb_Module_add_targets,hunspell,\
diff --git a/hyphen/ExternalPackage_hyphen.mk b/hyphen/ExternalPackage_hyphen.mk
index cae0764..13303cc 100644
--- a/hyphen/ExternalPackage_hyphen.mk
+++ b/hyphen/ExternalPackage_hyphen.mk
@@ -9,20 +9,12 @@
 
 $(eval $(call gb_ExternalPackage_ExternalPackage,hyphen,hyphen))
 
-ifneq ($(COM),MSC)
-
-$(eval $(call gb_ExternalPackage_use_external_project,hyphen,hyphen))
-
-ifeq ($(SYSTEM_HYPH),NO)
-$(eval $(call gb_ExternalPackage_add_file,hyphen,lib/libhyphen.a,.libs/libhyphen.a))
-endif
-
-endif
-
 ifeq ($(WITH_MYSPELL_DICTS),YES)
-$(eval $(call gb_ExternalPackage_add_files,hyphen,bin,\
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,hyphen,bin,\
     hyph_en_US.dic \
 ))
+
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/libcdr/ExternalPackage_libcdr.mk b/libcdr/ExternalPackage_libcdr.mk
deleted file mode 100644
index 908ce60..0000000
--- a/libcdr/ExternalPackage_libcdr.mk
+++ /dev/null
@@ -1,21 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libcdr,libcdr))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libcdr,libcdr))
-
-ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,libcdr,lib/cdr-0.0.lib,src/lib/.libs/libcdr-0.0.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libcdr,lib/libcdr-0.0.a,src/lib/.libs/libcdr-0.0.a))
-endif
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/libcdr/Module_libcdr.mk b/libcdr/Module_libcdr.mk
index 9074a9e..5e5726d 100644
--- a/libcdr/Module_libcdr.mk
+++ b/libcdr/Module_libcdr.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,libcdr))
 ifeq ($(SYSTEM_CDR),NO)
 
 $(eval $(call gb_Module_add_targets,libcdr,\
-	ExternalPackage_libcdr \
 	ExternalProject_libcdr \
 	UnpackedTarball_libcdr \
 ))
diff --git a/libexttextcat/ExternalPackage_exttextcat.mk b/libexttextcat/ExternalPackage_exttextcat.mk
deleted file mode 100644
index 11a2acb..0000000
--- a/libexttextcat/ExternalPackage_exttextcat.mk
+++ /dev/null
@@ -1,16 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,exttextcat,exttextcat))
-
-$(eval $(call gb_ExternalPackage_use_external_project,exttextcat,exttextcat))
-
-$(eval $(call gb_ExternalPackage_add_file,exttextcat,lib/libexttextcat.a,src/.libs/libexttextcat-2.0.a))
-
-# vim: set noet sw=4 ts=4:
diff --git a/libexttextcat/Module_libexttextcat.mk b/libexttextcat/Module_libexttextcat.mk
index 29c4815..c1396de 100644
--- a/libexttextcat/Module_libexttextcat.mk
+++ b/libexttextcat/Module_libexttextcat.mk
@@ -20,7 +20,6 @@ $(eval $(call gb_Module_add_targets,libexttextcat,\
 ))
 else
 $(eval $(call gb_Module_add_targets,libexttextcat,\
-	ExternalPackage_exttextcat \
 	ExternalProject_exttextcat \
 ))
 endif
diff --git a/liblangtag/ExternalPackage_langtag.mk b/liblangtag/ExternalPackage_langtag.mk
deleted file mode 100644
index 02816dd..0000000
--- a/liblangtag/ExternalPackage_langtag.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,langtag,langtag))
-
-$(eval $(call gb_ExternalPackage_use_external_project,langtag,langtag))
-
-ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,langtag,lib/langtag.lib,liblangtag/.libs/liblangtag.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,langtag,lib/liblangtag.a,liblangtag/.libs/liblangtag.a))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/liblangtag/Module_liblangtag.mk b/liblangtag/Module_liblangtag.mk
index 3d68c54..a1bcdab 100644
--- a/liblangtag/Module_liblangtag.mk
+++ b/liblangtag/Module_liblangtag.mk
@@ -15,7 +15,6 @@ ifeq ($(SYSTEM_LIBLANGTAG),NO)
 $(eval $(call gb_Module_add_targets,liblangtag,\
 	UnpackedTarball_langtag \
 	ExternalPackage_langtag_data \
-	ExternalPackage_langtag \
 	ExternalProject_langtag \
 	ExternalPackage_liblangtag_data \
 ))
diff --git a/libmspub/ExternalPackage_libmspub.mk b/libmspub/ExternalPackage_libmspub.mk
deleted file mode 100644
index 8ecc85d..0000000
--- a/libmspub/ExternalPackage_libmspub.mk
+++ /dev/null
@@ -1,21 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libmspub,libmspub))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libmspub,libmspub))
-
-ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,libmspub,lib/mspub-0.0.lib,src/lib/.libs/libmspub-0.0.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libmspub,lib/libmspub-0.0.a,src/lib/.libs/libmspub-0.0.a))
-endif
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/libmspub/Module_libmspub.mk b/libmspub/Module_libmspub.mk
index 12cdfd31..0755aca 100644
--- a/libmspub/Module_libmspub.mk
+++ b/libmspub/Module_libmspub.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,libmspub))
 ifeq ($(SYSTEM_MSPUB),NO)
 
 $(eval $(call gb_Module_add_targets,libmspub,\
-	ExternalPackage_libmspub \
 	ExternalProject_libmspub \
 	UnpackedTarball_libmspub \
 ))
diff --git a/libmwaw/ExternalPackage_libmwaw.mk b/libmwaw/ExternalPackage_libmwaw.mk
deleted file mode 100644
index 578054f..0000000
--- a/libmwaw/ExternalPackage_libmwaw.mk
+++ /dev/null
@@ -1,21 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libmwaw,libmwaw))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libmwaw,libmwaw))
-
-ifeq ($(OS)$(COM),WNTMSC)
-$(eval $(call gb_ExternalPackage_add_file,libmwaw,lib/mwaw-0.1.lib,src/lib/.libs/libmwaw-0.1.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libmwaw,lib/libmwaw-0.1.a,src/lib/.libs/libmwaw-0.1.a))
-endif
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/libmwaw/Module_libmwaw.mk b/libmwaw/Module_libmwaw.mk
index 5c6766d..36e7561 100644
--- a/libmwaw/Module_libmwaw.mk
+++ b/libmwaw/Module_libmwaw.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,libmwaw))
 ifeq ($(SYSTEM_MWAW),NO)
 
 $(eval $(call gb_Module_add_targets,libmwaw,\
-	ExternalPackage_libmwaw \
 	ExternalProject_libmwaw \
 	UnpackedTarball_libmwaw \
 ))
diff --git a/libodfgen/ExternalPackage_libodfgen.mk b/libodfgen/ExternalPackage_libodfgen.mk
deleted file mode 100644
index ad7a3d1..0000000
--- a/libodfgen/ExternalPackage_libodfgen.mk
+++ /dev/null
@@ -1,21 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libodfgen,libodfgen))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libodfgen,libodfgen))
-
-ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,lib/odfgen-0.0.lib,src/.libs/libodfgen-0.0.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,lib/libodfgen-0.0.a,src/.libs/libodfgen-0.0.a))
-endif
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/libodfgen/Module_libodfgen.mk b/libodfgen/Module_libodfgen.mk
index d20392f..ca58a27 100644
--- a/libodfgen/Module_libodfgen.mk
+++ b/libodfgen/Module_libodfgen.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,libodfgen))
 ifeq ($(SYSTEM_ODFGEN),NO)
 
 $(eval $(call gb_Module_add_targets,libodfgen,\
-	ExternalPackage_libodfgen \
 	ExternalProject_libodfgen \
 	UnpackedTarball_libodfgen \
 ))
diff --git a/libvisio/ExternalPackage_libvisio.mk b/libvisio/ExternalPackage_libvisio.mk
deleted file mode 100644
index 1f2a68c..0000000
--- a/libvisio/ExternalPackage_libvisio.mk
+++ /dev/null
@@ -1,21 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libvisio,libvisio))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libvisio,libvisio))
-
-ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,libvisio,lib/visio-0.0.lib,src/lib/.libs/libvisio-0.0.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libvisio,lib/libvisio-0.0.a,src/lib/.libs/libvisio-0.0.a))
-endif
-
-
-# vim: set noet sw=4 ts=4:
diff --git a/libvisio/Module_libvisio.mk b/libvisio/Module_libvisio.mk
index 56ef74c..9a8159f 100644
--- a/libvisio/Module_libvisio.mk
+++ b/libvisio/Module_libvisio.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,libvisio))
 ifeq ($(SYSTEM_VISIO),NO)
 
 $(eval $(call gb_Module_add_targets,libvisio,\
-	ExternalPackage_libvisio \
 	ExternalProject_libvisio \
 	UnpackedTarball_libvisio \
 ))
diff --git a/libwpd/ExternalPackage_libwpd.mk b/libwpd/ExternalPackage_libwpd.mk
deleted file mode 100644
index 2e7cd09..0000000
--- a/libwpd/ExternalPackage_libwpd.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libwpd,libwpd))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libwpd,libwpd))
-
-ifeq ($(OS)$(COM),WNTMSC)
-$(eval $(call gb_ExternalPackage_add_file,libwpd,lib/wpd-0.9.lib,src/lib/.libs/libwpd-0.9.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libwpd,lib/libwpd-0.9.a,src/lib/.libs/libwpd-0.9.a))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/libwpd/Module_libwpd.mk b/libwpd/Module_libwpd.mk
index 401644a..f852c5c 100644
--- a/libwpd/Module_libwpd.mk
+++ b/libwpd/Module_libwpd.mk
@@ -13,7 +13,6 @@ ifeq ($(SYSTEM_WPD),NO)
 
 $(eval $(call gb_Module_add_targets,libwpd,\
 	ExternalProject_libwpd \
-	ExternalPackage_libwpd \
 	UnpackedTarball_libwpd \
 ))
 
diff --git a/libwpg/ExternalPackage_libwpg.mk b/libwpg/ExternalPackage_libwpg.mk
deleted file mode 100644
index b804836..0000000
--- a/libwpg/ExternalPackage_libwpg.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libwpg,libwpg))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libwpg,libwpg))
-
-ifeq ($(OS)$(COM),WNTMSC)
-$(eval $(call gb_ExternalPackage_add_file,libwpg,lib/wpg-0.2.lib,src/lib/.libs/libwpg-0.2.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libwpg,lib/libwpg-0.2.a,src/lib/.libs/libwpg-0.2.a))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/libwpg/Module_libwpg.mk b/libwpg/Module_libwpg.mk
index 17abb68..411e71f 100644
--- a/libwpg/Module_libwpg.mk
+++ b/libwpg/Module_libwpg.mk
@@ -13,7 +13,6 @@ ifeq ($(SYSTEM_WPG),NO)
 
 $(eval $(call gb_Module_add_targets,libwpg,\
 	ExternalProject_libwpg \
-	ExternalPackage_libwpg \
 	UnpackedTarball_libwpg \
 ))
 
diff --git a/libwps/ExternalPackage_libwps.mk b/libwps/ExternalPackage_libwps.mk
deleted file mode 100644
index 960ae1b..0000000
--- a/libwps/ExternalPackage_libwps.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,libwps,libwps))
-
-$(eval $(call gb_ExternalPackage_use_external_project,libwps,libwps))
-
-ifeq ($(OS)$(COM),WNTMSC)
-$(eval $(call gb_ExternalPackage_add_file,libwps,lib/wps-0.2.lib,src/lib/.libs/libwps-0.2.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,libwps,lib/libwps-0.2.a,src/lib/.libs/libwps-0.2.a))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/libwps/Module_libwps.mk b/libwps/Module_libwps.mk
index c5fd166..ee163f0 100644
--- a/libwps/Module_libwps.mk
+++ b/libwps/Module_libwps.mk
@@ -13,7 +13,6 @@ ifeq ($(SYSTEM_WPS),NO)
 
 $(eval $(call gb_Module_add_targets,libwps,\
 	ExternalProject_libwps \
-	ExternalPackage_libwps \
 	UnpackedTarball_libwps \
 ))
 
diff --git a/mythes/ExternalPackage_mythes.mk b/mythes/ExternalPackage_mythes.mk
deleted file mode 100644
index cd8907c..0000000
--- a/mythes/ExternalPackage_mythes.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,mythes,mythes))
-
-ifneq ($(COM),MSC)
-
-$(eval $(call gb_ExternalPackage_use_external_project,mythes,mythes))
-
-$(eval $(call gb_ExternalPackage_add_file,mythes,lib/libmythes.a,.libs/libmythes-1.2.a))
-
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/mythes/Module_mythes.mk b/mythes/Module_mythes.mk
index 7a210c0..4d9ac64 100644
--- a/mythes/Module_mythes.mk
+++ b/mythes/Module_mythes.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,mythes))
 ifeq ($(SYSTEM_MYTHES),NO)
 $(eval $(call gb_Module_add_targets,mythes,\
 	UnpackedTarball_mythes \
-	ExternalPackage_mythes \
 ))
 ifeq ($(COM),MSC)
 $(eval $(call gb_Module_add_targets,mythes,\
diff --git a/openldap/ExternalPackage_openldap.mk b/openldap/ExternalPackage_openldap.mk
deleted file mode 100644
index daacf1f..0000000
--- a/openldap/ExternalPackage_openldap.mk
+++ /dev/null
@@ -1,20 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,openldap,openldap))
-
-$(eval $(call gb_ExternalPackage_use_external_project,openldap,openldap))
-
-$(eval $(call gb_ExternalPackage_add_files,openldap,lib,\
-	libraries/libldap/.libs/libldap.a \
-	libraries/libldap_r/.libs/libldap_r.a \
-	libraries/liblber/.libs/liblber.a \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/openldap/Module_openldap.mk b/openldap/Module_openldap.mk
index 658695c..cb3f0ce 100644
--- a/openldap/Module_openldap.mk
+++ b/openldap/Module_openldap.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Module_Module,openldap))
 ifeq ($(SYSTEM_OPENLDAP),NO)
 
 $(eval $(call gb_Module_add_targets,openldap,\
-	ExternalPackage_openldap \
 	ExternalProject_openldap \
 	UnpackedTarball_openldap \
 ))
diff --git a/openssl/ExternalPackage_openssl.mk b/openssl/ExternalPackage_openssl.mk
index a707bb8..8d19869 100644
--- a/openssl/ExternalPackage_openssl.mk
+++ b/openssl/ExternalPackage_openssl.mk
@@ -20,10 +20,5 @@ $(eval $(call gb_ExternalPackage_add_libraries_for_install,openssl,bin,\
 	out32dll/ssleay32.dll \
 	out32dll/libeay32.dll \
 ))
-else
-$(eval $(call gb_ExternalPackage_add_files,openssl,lib,\
-	libcrypto.a \
-	libssl.a \
-))
 endif
 # vim: set noet sw=4 ts=4:
diff --git a/poppler/ExternalPackage_poppler.mk b/poppler/ExternalPackage_poppler.mk
deleted file mode 100644
index 9e3e687..0000000
--- a/poppler/ExternalPackage_poppler.mk
+++ /dev/null
@@ -1,24 +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/.
-#
-
-$(eval $(call gb_ExternalPackage_ExternalPackage,poppler,poppler))
-
-$(eval $(call gb_ExternalPackage_use_external_project,poppler,poppler))
-
-ifeq ($(OS)$(COM),WNTMSC)
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/poppler.lib,poppler/.libs/libpoppler.lib))
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/fofi.lib,fofi/.libs/libfofi.lib))
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/goo.lib,goo/.libs/libgoo.lib))
-else
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/libpoppler.a,poppler/.libs/libpoppler.a))
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/libfofi.a,fofi/.libs/libfofi.a))
-$(eval $(call gb_ExternalPackage_add_file,poppler,lib/libgoo.a,goo/.libs/libgoo.a))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/poppler/Module_poppler.mk b/poppler/Module_poppler.mk
index 953c4d0..910145a 100644
--- a/poppler/Module_poppler.mk
+++ b/poppler/Module_poppler.mk
@@ -13,7 +13,6 @@ ifeq ($(SYSTEM_POPPLER),NO)
 
 $(eval $(call gb_Module_add_targets,poppler,\
 	ExternalProject_poppler \
-	ExternalPackage_poppler \
 	UnpackedTarball_poppler \
 ))
 
commit 66bbae0045c32be776df32c4b4fdea5194cf7986
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 19:28:36 2013 +0200

    find lots of external static libraries in UnpackedTarball dir
    
    Note: do NOT put file paths to static libraries into FOO_LIBS variables
    that are passed to bundled externals that are built with --enable-static:
    on Mac OS X this will result in .a archives that contain other .a
    archives as entries, and trying to link those results in errors like:
    
    ld: warning: ignoring file .../libodfgen-0.0.a, file was built for
    archive which is not the architecture being linked (i386)
    
    Change-Id: If2c5a458058e4da76f80b3643e55b489d1edee24

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 23b477a..c9fba80 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -395,12 +395,18 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,mythes) \
 	$$(INCLUDE) \
 )
+
+ifeq ($(COM),MSC)
 $(call gb_LinkTarget_use_package,$(1),\
 	mythes \
 )
 $(call gb_LinkTarget_use_static_libraries,$(1),\
 	mythes \
 )
+else
+$(call gb_LinkTarget_add_libs,$(1),$(MYTHES_LIBS))
+$(call gb_LinkTarget_use_external_project,$(1),mythes)
+endif
 
 endef
 
@@ -470,9 +476,15 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,hyphen)\
 	$$(INCLUDE) \
 )
+
+ifeq ($(COM),MSC)
 $(call gb_LinkTarget_use_static_libraries,$(1),\
 	hyphen \
 )
+else
+$(call gb_LinkTarget_add_libs,$(1),$(HYPHEN_LIB))
+$(call gb_LinkTarget_use_external_project,$(1),hyphen)
+endif
 
 endef
 
@@ -500,9 +512,15 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,hunspell/src/hunspell)\
 	$$(INCLUDE) \
 )
+
+ifeq ($(COM),MSC)
 $(call gb_LinkTarget_use_static_libraries,$(1),\
 	hunspell \
 )
+else
+$(call gb_LinkTarget_add_libs,$(1),$(HUNSPELL_LIBS))
+$(call gb_LinkTarget_use_external_project,$(1),hunspell)
+endif
 
 endef
 
@@ -707,15 +725,23 @@ endef
 else # !SYSTEM_LIBEXTTEXTCAT
 
 define gb_LinkTarget__use_libexttextcat
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	exttextcat \
-)
-
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,exttextcat/src) \
 	$$(INCLUDE) \
 )
 
+ifeq ($(COM),MSC)
+$(call gb_LinkTarget_use_static_libraries,$(1),\
+	exttextcat \
+)
+else
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,exttextcat)/src/.libs/libexttextcat-2.0.a\
+)
+$(call gb_LinkTarget_use_external_project,$(1),mythes)
+endif
+
+
 endef
 
 endif # SYSTEM_LIBEXTTEXTCAT
@@ -842,9 +868,8 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,langtag) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	langtag \
-)
+$(call gb_LinkTarget_add_libs,$(1),$(LIBLANGTAG_LIBS))
+$(call gb_LinkTarget_use_external_project,$(1),langtag)
 
 endef
 
@@ -1233,16 +1258,11 @@ else # SYSTEM_HARFBUZZ != YES
 
 define gb_LinkTarget__use_harfbuzz
 $(call gb_LinkTarget_set_include,$(1),\
-	-I$(call gb_UnpackedTarball_get_dir,harfbuzz)/src \
+	$(HARFBUZZ_CFLAGS) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	harfbuzz \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	harfbuzz \
-	harfbuzz-icu \
-)
+$(call gb_LinkTarget_add_libs,$(1),$(HARFBUZZ_LIBS))
+$(call gb_LinkTarget_use_external_project,$(1),harfbuzz)
 
 endef
 
@@ -1305,10 +1325,11 @@ $(call gb_LinkTarget_use_libraries,$(1),\
 	ssl \
 )
 else
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	crypto \
-	ssl \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,openssl)/libssl.a \
+	$(call gb_UnpackedTarball_get_dir,openssl)/libcrypto.a \
 )
+$(call gb_LinkTarget_use_external_project,$(1),openssl)
 ifeq ($(OS),SOLARIS)
 $(call gb_LinkTarget_add_libs,$(1),\
 	-lnsl \
@@ -1375,13 +1396,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libcdr)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libcdr \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	cdr-0.0 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libcdr)/src/lib/.libs/libcdr-0.0$(gb_StaticLibrary_PLAINEXT) \
 )
-
+$(call gb_LinkTarget_use_external_project,$(1),libcdr)
 endef
 
 endif # SYSTEM_CDR
@@ -1405,12 +1423,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libodfgen)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libodfgen \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	odfgen-0.0 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libodfgen)/src/.libs/libodfgen-0.0$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libodfgen)
 
 endef
 
@@ -1435,12 +1451,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libmspub)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libmspub \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	mspub-0.0 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libmspub)/src/lib/.libs/libmspub-0.0$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libmspub)
 
 endef
 
@@ -1465,12 +1479,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libvisio)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libvisio \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	visio-0.0 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libvisio)/src/lib/.libs/libvisio-0.0$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libvisio)
 
 endef
 
@@ -1496,16 +1508,14 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$(WPD_CFLAGS) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libwpd \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	wpd-0.9 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libwpd)/src/lib/.libs/libwpd-0.9$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libwpd)
 
 endef
 define gb_ExternalProject__use_wpd
-$(call gb_ExternalProject_use_package,$(1),libwpd)
+$(call gb_ExternalProject_use_external_project,$(1),libwpd)
 
 endef
 
@@ -1531,16 +1541,14 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libwpg)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libwpg \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	wpg-0.2 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libwpg)/src/lib/.libs/libwpg-0.2$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libwpg)
 
 endef
 define gb_ExternalProject__use_wpg
-$(call gb_ExternalProject_use_package,$(1),libwpg)
+$(call gb_ExternalProject_use_external_project,$(1),libwpg)
 
 endef
 
@@ -1566,16 +1574,14 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libwps)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libwps \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	wps-0.2 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libwps)/src/lib/.libs/libwps-0.2$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libwps)
 
 endef
 define gb_ExternalProject__use_wps
-$(call gb_ExternalProject_use_package,$(1),libwps)
+$(call gb_ExternalProject_use_external_project,$(1),libwps)
 
 endef
 
@@ -1600,12 +1606,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libmwaw)/inc \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),\
-	libmwaw \
-)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	mwaw-0.1 \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libmwaw)/src/lib/.libs/libmwaw-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
+$(call gb_LinkTarget_use_external_project,$(1),libmwaw)
 
 endef
 
@@ -1976,7 +1980,7 @@ endef
 else # !SYSTEM_POPPLER
 
 define gb_LinkTarget__use_poppler
-$(call gb_LinkTarget_use_package,$(1),poppler)
+$(call gb_LinkTarget_use_external_project,$(1),poppler)
 
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,poppler) \
@@ -1985,10 +1989,10 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	fofi \
-	goo \
-	poppler \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,poppler)/fofi/.libs/libfofi$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,poppler)/goo/.libs/libgoo$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,poppler)/poppler/.libs/libpoppler$(gb_StaticLibrary_PLAINEXT) \
 )
 
 ifeq ($(OS),MACOSX)
@@ -2089,6 +2093,8 @@ $(call gb_LinkTarget_add_libs,$(1),\
 
 endef
 
+gb_ExternalProject__use_openldap :=
+
 else ifeq ($(SYSTEM_OPENLDAP),NO)
 
 define gb_LinkTarget__use_openldap
@@ -2097,17 +2103,23 @@ $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,openldap/include) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_package,$(1),openldap)
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	ldap \
-	lber \
+$(call gb_LinkTarget_use_external_project,$(1),openldap)
+$(call gb_LinkTarget_add_libs,$(1), \
+	$(call gb_UnpackedTarball_get_dir,openldap)/libraries/libldap/.libs/libldap.a \
+	$(call gb_UnpackedTarball_get_dir,openldap)/libraries/liblber/.libs/liblber.a \
 )
 
 endef
 
+define gb_ExternalProject__use_openldap
+$(call gb_ExternalProject_use_external_project,$(1),openldap)
+
+endef
+
 else # no openldap
 
 gb_LinkTarget__use_openldap :=
+gb_ExternalProject__use_openldap :=
 
 endif # SYSTEM_OPENLDAP
 
@@ -2192,9 +2204,7 @@ else # !SYSTEM_POSTGRESQL
 
 define gb_LinkTarget__use_postgresql
 
-$(call gb_LinkTarget_use_packages,$(1),\
-	postgresql \
-)
+$(call gb_LinkTarget_use_external_project,$(1),postgresql)
 
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,postgresql)/src/include \
@@ -2202,8 +2212,8 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	$(if $(filter MSC,$(COM)),lib)pq \
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,postgresql)/src/interfaces/libpq/libpq$(gb_StaticLibrary_PLAINEXT) \
 )
 
 ifeq ($(OS)$(COM),WNTMSC)
@@ -2492,12 +2502,14 @@ endef
 else # !SYSTEM_LIBORCUS
 
 define gb_LinkTarget__use_orcus
-$(call gb_LinkTarget_use_unpacked,$(1),liborcus)
+$(call gb_LinkTarget_use_external_project,$(1),liborcus)
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,liborcus/include) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_use_static_libraries,$(1),orcus)
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs/liborcus-0.6$(gb_StaticLibrary_PLAINEXT) \
+)
 
 $(if $(filter YES,$(SYSTEM_BOOST)), \
     $(call gb_LinkTarget_add_ldflags,$(1),$(BOOST_LDFLAGS)) \
@@ -2507,8 +2519,9 @@ $(if $(filter YES,$(SYSTEM_BOOST)), \
 endef
 
 define gb_LinkTarget__use_orcus-parser
-$(call gb_LinkTarget_use_static_libraries,$(1),\
-	orcus-parser \
+$(call gb_LinkTarget_use_external_project,$(1),liborcus)
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs/liborcus-parser-0.6$(gb_StaticLibrary_PLAINEXT) \
 )
 
 endef
diff --git a/cairo/ExternalProject_cairo.mk b/cairo/ExternalProject_cairo.mk
index 1aac702..90420f6 100644
--- a/cairo/ExternalProject_cairo.mk
+++ b/cairo/ExternalProject_cairo.mk
@@ -33,12 +33,11 @@ $(call gb_ExternalProject_get_state_target,cairo,build) :
 	./configure \
 		$(if $(debug),STRIP=" ") \
 		CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS)" \
-		LDFLAGS='-L$(OUTDIR)/lib' \
 		$(if $(filter ANDROID IOS,$(OS)),PKG_CONFIG=./dummy_pkg_config) \
 		pixman_CFLAGS="-I$(call gb_UnpackedTarball_get_dir,pixman)/pixman" \
 		pixman_LIBS="-L$(call gb_UnpackedTarball_get_dir,pixman)/pixman/.libs -lpixman-1" \
 		COMPRESS=$(if $(filter YES,$(SYSTEM_ZLIB)),compress,z_compress) \
-		ZLIB3RDLIB=-lz \
+		ZLIB3RDLIB="$(if $(filter YES,$(SYSTEM_ZLIB)),,-L$(WORKDIR)/LinkTarget/StaticLibrary) -lz" \
 		png_REQUIRES="trick_configure_into_using_png_CFLAGS_and_LIBS" \
 		png_CFLAGS="$(LIBPNG_CFLAGS)" png_LIBS="$(LIBPNG_LIBS)" \
 		$(if $(filter IOS,$(OS)),--disable-shared,--disable-static) \
diff --git a/configure.ac b/configure.ac
index c145970..967d195 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7687,7 +7687,7 @@ libo_CHECK_SYSTEM_MODULE([libcmis],[CMIS],[libcmis-0.4 >= 0.4.0])
 dnl ===================================================================
 dnl Check for system libwpd
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.9 >= 0.9.5 libwpd-stream-0.9 >= 0.9.5],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${OUTDIR}/lib -lwpdlib"])
+libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.9 >= 0.9.5 libwpd-stream-0.9 >= 0.9.5],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs -lwpd-0.9"])
 
 dnl ===================================================================
 dnl Check for system lcms2
@@ -7737,12 +7737,12 @@ AC_SUBST([SYSTEM_FREETYPE])
 dnl ===================================================================
 dnl Check for system libwps
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.2],["-I${WORKDIR}/UnpackedTarball/libwps/inc"],["-L${OUTDIR}/lib -lwpslib"])
+libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.2],["-I${WORKDIR}/UnpackedTarball/libwps/inc"],["-L${WORKDIR}/UnpackedTarball/libwps/src/lib/.libs -lwps-0.2"])
 
 dnl ===================================================================
 dnl Check for system libwpg
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.2],["-I${WORKDIR}/UnpackedTarball/libwpg/inc"],["-L${OUTDIR}/lib -lwpglib"])
+libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.2],["-I${WORKDIR}/UnpackedTarball/libwpg/inc"],["-L${WORKDIR}/UnpackedTarball/libwpg/src/lib/.libs -lwpg-0.2"])
 
 # ===================================================================
 # Check for system libxslt
@@ -8125,7 +8125,7 @@ if test "$ENABLE_MARIADBC" = "TRUE"; then
         AC_MSG_RESULT([internal])
         SYSTEM_MARIADB=NO
         MARIADB_CFLAGS="-I${WORKDIR}/UnpackedTarball/mariadb/include"
-        MARIADB_LIBS="-L${OUTDIR}/lib -lmariadblib"
+        MARIADB_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -lmariadblib"
         BUILD_TYPE="$BUILD_TYPE MARIADB"
     fi
 
@@ -8952,9 +8952,9 @@ if test $_os != WINNT -a $_os != Darwin -a $_os != iOS; then
     AC_MSG_RESULT([yes])
     ENABLE_HARFBUZZ="TRUE"
     if $PKG_CONFIG --atleast-version 0.9.18 harfbuzz; then
-        libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.18])
+        libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.18],["-I${WORKDIR}/UnpackedTarball/harfbuzz/src"],["-L${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz -lharfbuzz-icu"])
     else
-        libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz >= 0.9.10])
+        libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz >= 0.9.10],[-I${WORKDIR}/UnpackedTarball/harfbuzz/src],[${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz.a ${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz-icu.a])
     fi
 else
     AC_MSG_RESULT([no])
@@ -9273,7 +9273,11 @@ else
     AC_MSG_RESULT([internal])
     SYSTEM_HUNSPELL=NO
     HUNSPELL_CFLAGS="-I${WORKDIR}/UnpackedTarball/hunspell/src/hunspell"
-    HUNSPELL_LIBS="-L${OUTDIR}/lib -lhunspell"
+    if test "$COM" = "MSC"; then
+        HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib"
+    else
+        HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.3"
+    fi
     BUILD_TYPE="$BUILD_TYPE HUNSPELL"
 fi
 AC_SUBST(SYSTEM_HUNSPELL)
@@ -9307,6 +9311,11 @@ else
     AC_MSG_RESULT([internal])
     SYSTEM_HYPH=NO
     BUILD_TYPE="$BUILD_TYPE HYPHEN"
+    if test "$COM" = "MSC"; then
+        HYPHEN_LIB="${WORKDIR}/LinkTarget/StaticLibrary/hyphen.lib"
+    else
+        HYPHEN_LIB="-L${WORKDIR}/UnpackedTarball/hyphen/.libs -lhyphen"
+    fi
 fi
 AC_SUBST(SYSTEM_HYPH)
 AC_SUBST(HYPHEN_LIB)
@@ -9340,6 +9349,11 @@ else
     AC_MSG_RESULT([internal])
     SYSTEM_MYTHES=NO
     BUILD_TYPE="$BUILD_TYPE MYTHES"
+    if test "$COM" = "MSC"; then
+        MYTHES_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/mythes.lib"
+    else
+        MYTHES_LIBS="-L${WORKDIR}/UnpackedTarball/mythes/.libs -lmythes-1.2"
+    fi
 fi
 AC_SUBST(SYSTEM_MYTHES)
 AC_SUBST(MYTHES_CFLAGS)
@@ -11652,6 +11666,11 @@ if test "$enable_liblangtag" = "yes" -o \( "$enable_liblangtag" = "" -a $_os !=
         SYSTEM_LIBLANGTAG=NO
         AC_MSG_RESULT([no])
         BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
+        if test "$COM" = "MSC"; then
+            LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs/liblangtag.lib"
+        else
+            LIBLANGTAG_LIBS="-L${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs -llangtag"
+        fi
     fi
 else
     AC_MSG_RESULT([no])
@@ -11665,7 +11684,7 @@ dnl ===================================================================
 dnl Test whether to build libpng or rely on the system version
 dnl ===================================================================
 
-libo_CHECK_SYSTEM_MODULE([libpng],[LIBPNG],[libpng],["-I${WORKDIR}/UnpackedTarball/png"],["-L${OUTDIR}/lib -lpng"])
+libo_CHECK_SYSTEM_MODULE([libpng],[LIBPNG],[libpng],["-I${WORKDIR}/UnpackedTarball/png"],["-L${WORKDIR}/LinkTarget/StaticLibrary -lpng"])
 
 dnl ===================================================================
 dnl Check for runtime JVM search path
diff --git a/liborcus/ExternalProject_liborcus.mk b/liborcus/ExternalProject_liborcus.mk
index 43b4621..5790131 100644
--- a/liborcus/ExternalProject_liborcus.mk
+++ b/liborcus/ExternalProject_liborcus.mk
@@ -38,7 +38,7 @@ endif
 ifeq ($(SYSTEM_BOOST),YES)
 liborcus_LIBS+=$(BOOST_SYSTEM_LIB)
 else
-liborcus_LIBS+=$(SOLARLIB) -lboostsystem
+liborcus_LIBS+=-L$(gb_StaticLibrary_WORKDIR) -lboostsystem
 endif
 ifeq ($(OS),ANDROID)
 liborcus_LIBS+=-lgnustl_shared -lm
diff --git a/postgresql/ExternalProject_postgresql.mk b/postgresql/ExternalProject_postgresql.mk
index 428eded..1cbaed0 100644
--- a/postgresql/ExternalProject_postgresql.mk
+++ b/postgresql/ExternalProject_postgresql.mk
@@ -9,9 +9,8 @@
 
 $(eval $(call gb_ExternalProject_ExternalProject,postgresql))
 
-$(eval $(call gb_ExternalProject_use_package,postgresql,openldap))
-
 $(eval $(call gb_ExternalProject_use_externals,postgresql,\
+	openldap \
 	openssl \
 	zlib \
 ))
@@ -43,7 +42,7 @@ $(call gb_ExternalProject_get_state_target,postgresql,build) :
 			$(if $(and $(filter NO,$(SYSTEM_OPENSSL)), $(filter-out YES,$(DISABLE_OPENSSL))),\
 			-I$(call gb_UnpackedTarball_get_dir,openssl/include))" \
 			$(if $(filter NO,$(SYSTEM_OPENLDAP)), \
-			LDFLAGS="-L$(OUTDIR)/lib" \
+			LDFLAGS="-L$(call gb_UnpackedTarball_get_dir,openldap)/libraries/libldap/.libs -L$(call gb_UnpackedTarball_get_dir,openldap)/libraries/liblber/.libs -L$(OUTDIR)/lib" \
 			EXTRA_LDAP_LIBS="-llber -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4" \
 			) \
 		&& cd src/interfaces/libpq \
diff --git a/python3/ExternalProject_python3.mk b/python3/ExternalProject_python3.mk
index e79a28e..3abf24a 100644
--- a/python3/ExternalProject_python3.mk
+++ b/python3/ExternalProject_python3.mk
@@ -80,8 +80,8 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
 			)" \
 		$(if $(python3_cflags),CFLAGS='$(python3_cflags)') \
 		LDFLAGS="$(strip $(LDFLAGS) \
-			$(if $(filter YES,$(SYSTEM_OPENSSL)),, -L$(OUTDIR)/lib) \
-			$(if $(filter YES,$(SYSTEM_EXPAT)),, -L$(OUTDIR)/lib) \
+			$(if $(filter YES,$(SYSTEM_OPENSSL)),, -L$(call gb_UnpackedTarball_get_dir,openssl)) \
+			$(if $(filter YES,$(SYSTEM_EXPAT)),, -L$(gb_StaticLibrary_WORKDIR)) \
 			$(if $(SYSBASE), -L$(SYSBASE)/usr/lib) \
 			$(if $(filter WNT-GCC,$(OS)-$(COM)), -shared-libgcc \
 				$(if $(filter YES,$(MINGW_SHARED_GCCLIB)),-Wl$(COMMA)--enable-runtime-pseudo-reloc-v2 -Wl$(COMMA)--export-all-symbols)) \
diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk
index 75ee0fe..25a49ea 100644
--- a/sc/Library_scfilt.mk
+++ b/sc/Library_scfilt.mk
@@ -29,9 +29,12 @@ $(eval $(call gb_Library_use_custom_headers,scfilt,\
 ))
 
 $(eval $(call gb_Library_use_externals,scfilt,\
+	orcus \
+	orcus-parser \
 	boost_headers \
 	boostsystem \
 	mdds_headers \
+	zlib \
 ))
 
 $(eval $(call gb_Library_use_libraries,scfilt,\
@@ -63,12 +66,6 @@ $(eval $(call gb_Library_use_libraries,scfilt,\
 	$(gb_UWINAPI) \
 ))
 
-$(eval $(call gb_Library_use_externals,scfilt,\
-	orcus \
-	orcus-parser \
-	zlib \
-))
-
 $(eval $(call gb_Library_add_exception_objects,scfilt,\
 	sc/source/filter/dif/difexp \
 	sc/source/filter/dif/difimp \
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 92f7474..6de3504 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -429,6 +429,7 @@ endef
 
 # static members declared here because they are used globally
 
+gb_StaticLibrary_WORKDIR = $(WORKDIR)/LinkTarget/StaticLibrary
 gb_Library_WORKDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Library
 gb_Executable_BINDIR = $(WORKDIR)/LinkTarget/Executable
 gb_Executable_BINDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Executable
diff --git a/writerperfect/Library_wpftdraw.mk b/writerperfect/Library_wpftdraw.mk
index 5bb7fda..2033ca0 100644
--- a/writerperfect/Library_wpftdraw.mk
+++ b/writerperfect/Library_wpftdraw.mk
@@ -54,8 +54,8 @@ $(eval $(call gb_Library_use_externals,wpftdraw,\
     mspub \
 	odfgen \
 	visio \
-	wpd \
 	wpg \
+	wpd \
 	zlib \
 ))
 
diff --git a/writerperfect/Library_wpftwriter.mk b/writerperfect/Library_wpftwriter.mk
index 7dc5203..502668f 100644
--- a/writerperfect/Library_wpftwriter.mk
+++ b/writerperfect/Library_wpftwriter.mk
@@ -51,9 +51,9 @@ $(eval $(call gb_Library_use_externals,wpftwriter,\
 	boost_headers \
 	mwaw \
 	odfgen \
-	wpd \
-	wpg \
 	wps \
+	wpg \
+	wpd \
 	zlib \
 ))
 
diff --git a/xmlsecurity/Library_xsec_xmlsec.mk b/xmlsecurity/Library_xsec_xmlsec.mk
index e8fb908..164bec2 100644
--- a/xmlsecurity/Library_xsec_xmlsec.mk
+++ b/xmlsecurity/Library_xsec_xmlsec.mk
@@ -32,17 +32,6 @@ $(eval $(call gb_Library_add_defs,xsec_xmlsec,\
 	-DXMLSEC_NO_XSLT \
 ))
 
-ifeq ($(OS),WNT)
-$(eval $(call gb_Library_use_libraries,xsec_xmlsec,\
-	xmlsec1 \
-))
-else
-$(eval $(call gb_Library_use_static_libraries,xsec_xmlsec,\
-	xmlsec1 \
-))
-endif
-
-
 $(eval $(call gb_Library_use_libraries,xsec_xmlsec,\
 	comphelper \
 	cppu \
@@ -88,6 +77,7 @@ $(eval $(call gb_Library_add_defs,xsec_xmlsec,\
 ))
 
 $(eval $(call gb_Library_use_libraries,xsec_xmlsec,\
+	xmlsec1 \
 	xmlsec1-mscrypto \
 ))
 
@@ -115,11 +105,13 @@ $(eval $(call gb_Library_add_defs,xsec_xmlsec,\
 
 ifeq ($(OS)$(CROSS_COMPILING),WNTYES)
 $(eval $(call gb_Library_use_libraries,xsec_xmlsec,\
+	xmlsec1 \
 	xmlsec1-nss \
 ))
 else
-$(eval $(call gb_Library_use_static_libraries,xsec_xmlsec,\
-	xmlsec1-nss \
+$(eval $(call gb_Library_add_libs,xsec_xmlsec,\
+	$(call gb_UnpackedTarball_get_dir,xmlsec)/src/nss/.libs/libxmlsec1-nss.a \
+	$(call gb_UnpackedTarball_get_dir,xmlsec)/src/.libs/libxmlsec1.a \
 ))
 endif
 
commit 6fbdf69ad6996d13868180610711c9737b32fbc1
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 18:27:11 2013 +0200

    gbuild: rename LinkTarget variable LIBS
    
    LIBS is apparently used by autotools build system and passed to
    configure at least in mythes and hunspell, where the LinkTarget variable
    could cause problems by inheritance.
    
    Change-Id: Ia267dd0a24c96914208869d7b47552b44a701735

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 12ad888..459d1b9 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -589,7 +589,7 @@ $(call gb_LinkTarget_get_headers_target,$(1)) \
 $(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS := $$(gb_LinkTarget_LDFLAGS) $(call gb_LinkTarget_get_linksearchpath_for_layer,$(3)) $(call gb_LinkTarget__get_ldflags,$(2))
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_LIBS :=
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS :=
-$(call gb_LinkTarget_get_target,$(1)) : LIBS :=
+$(call gb_LinkTarget_get_target,$(1)) : T_LIBS :=
 $(call gb_LinkTarget_get_target,$(1)) : TARGETTYPE :=
 $(call gb_LinkTarget_get_target,$(1)) : LIBRARY_X64 :=
 $(call gb_LinkTarget_get_headers_target,$(1)) \
@@ -777,7 +777,7 @@ endef
 
 # call gb_LinkTarget_add_libs,linktarget,libs
 define gb_LinkTarget_add_libs
-$(call gb_LinkTarget_get_target,$(1)) : LIBS += $(2)
+$(call gb_LinkTarget_get_target,$(1)) : T_LIBS += $(2)
 
 endef
 
@@ -786,7 +786,7 @@ endef
 # exceptional cases this disable method may be used
 # call gb_LinkTarget_disable_standard_system_libs,linktarget
 define gb_LinkTarget_disable_standard_system_libs
-$(call gb_LinkTarget_get_target,$(1)) : LIBS := $$(filter-out $$(gb_STDLIBS),$$(LIBS))
+$(call gb_LinkTarget_get_target,$(1)) : T_LIBS := $$(filter-out $$(gb_STDLIBS),$$(T_LIBS))
 
 endef
 
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index d75cb17..57c695c 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -122,7 +122,7 @@ define gb_LinkTarget__command_dynamiclink
 		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
 		$(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
 		$(wildcard $(OUTDIR)/lib/*.a) \
-		$(LIBS) \
+		$(T_LIBS) \
 		-o $(1))
 endef
 
diff --git a/solenv/gbuild/platform/android.mk b/solenv/gbuild/platform/android.mk
index 33b3d08..23839b1 100644
--- a/solenv/gbuild/platform/android.mk
+++ b/solenv/gbuild/platform/android.mk
@@ -49,7 +49,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
 		-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
-		$(LIBS) \
+		$(T_LIBS) \
 		$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \
 		-o $(1))
 endef
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index af84d35..bf5a79c 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -195,7 +195,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		@$${RESPONSEFILE} \
 		$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))) \
 		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \
-		$(LIBS) \
+		$(T_LIBS) \
 		$(if $(filter-out StaticLibrary,$(TARGETTYPE)),user32.lib) \
 		$(if $(filter-out StaticLibrary,$(TARGETTYPE)),-manifestfile:$(WORKDIR)/LinkTarget/$(2).manifest) \
 		-pdb:$(WORKDIR)/LinkTarget/$(2).pdb \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 5d601af..e23fd94 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -150,7 +150,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
-		$(LIBS) \
+		$(T_LIBS) \
 		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
 		-o $(1) && \
 	$(if $(SOVERSIONSCRIPT),ln -sf $(1) $(ILIBTARGET),:) && \
diff --git a/solenv/gbuild/platform/mingw.mk b/solenv/gbuild/platform/mingw.mk
index e36343b..c3b319e 100644
--- a/solenv/gbuild/platform/mingw.mk
+++ b/solenv/gbuild/platform/mingw.mk
@@ -110,7 +110,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(NATIVERES) \
 		$(if $(LINKED_STATIC_LIBS),-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group) \
 		$(patsubst lib%.a,-l%,$(patsubst lib%.dll.a,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))))) \
-		$(LIBS) \
+		$(T_LIBS) \
 		-Wl$(COMMA)-Map$(COMMA)$(WORKDIR)/LinkTarget/$(2).map \
 		-o $(1)))
 endef
@@ -130,7 +130,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(NATIVERES) \
 		$(if $(LINKED_STATIC_LIBS),-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group) \
 		$(patsubst lib%.a,-l%,$(patsubst lib%.dll.a,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))))) \
-		$(LIBS) \
+		$(T_LIBS) \
 		-Wl$(COMMA)-Map$(COMMA)$(WORKDIR)/LinkTarget/$(2).map \
 		-Wl$(COMMA)--out-implib$(COMMA)$(ILIBTARGET) \
 		-o $(1) \
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index e684116..8505f06 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -183,7 +183,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
 		-Wl$(COMMA)--start-group \
-		$(LIBS) \
+		$(T_LIBS) \
 		$(foreach lib,$(LINKED_STATIC_LIBS),\
 			$(call gb_StaticLibrary_get_target,$(lib))) \
 		-Wl$(COMMA)--end-group \
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index beb2567..c839db1 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -185,7 +185,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
 		-Wl$(COMMA)--start-group \
-		$(LIBS) \
+		$(T_LIBS) \
 		$(foreach lib,$(LINKED_STATIC_LIBS),\
 			$(call gb_StaticLibrary_get_target,$(lib))) \
 		-Wl$(COMMA)--end-group \
commit 02be68affdca83f25b357a68c2b2cb351fe472e1
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 18:05:02 2013 +0200

    gbuild: change linking order on ELF platforms
    
    If there are static libraries in $(LIBS) then things get really annoying
    if they depend on other static libs that are StaticLibraries, e.g. orcus
    and boost_system.  So reorder this to include $(LIBS) in the --start-group
    --end-group and hope that doesn't break anything.
    
    Hopefully $(LIBS) does not need -Wl$(COMMA)--no-as-needed, that should
    only be required for $(LINKEDLIBS).
    
    Change-Id: Ie15239a0fb7b5295f85941150e2c60912be73bfb

diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 5ff75ae..e684116 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -182,9 +182,12 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
-		-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
-		-Wl$(COMMA)--no-as-needed \
+		-Wl$(COMMA)--start-group \
 		$(LIBS) \
+		$(foreach lib,$(LINKED_STATIC_LIBS),\
+			$(call gb_StaticLibrary_get_target,$(lib))) \
+		-Wl$(COMMA)--end-group \
+		-Wl$(COMMA)--no-as-needed \
 		$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \
 		-o $(1) \
 	$(if $(SOVERSIONSCRIPT),&& ln -sf ../../ure-link/lib/$(notdir $(1)) $(ILIBTARGET)))
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index d8a690f..beb2567 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -184,9 +184,12 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
-		-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
-		-Wl$(COMMA)--no-as-needed \
+		-Wl$(COMMA)--start-group \
 		$(LIBS) \
+		$(foreach lib,$(LINKED_STATIC_LIBS),\
+			$(call gb_StaticLibrary_get_target,$(lib))) \
+		-Wl$(COMMA)--end-group \
+		-Wl$(COMMA)--no-as-needed \
 		$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \
 		-o $(1) \
 	$(if $(SOVERSIONSCRIPT),&& ln -sf ../../ure-link/lib/$(notdir $(1)) $(ILIBTARGET)))
commit dee116e1e752b2c8cb2feaaa2acfd48ab1fe5c9c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 19 00:08:31 2013 +0200

    gbuild: remove executables from OUTDIR and WORKDIR
    
    Call and link executables directly in INSTDIR.
    
    - gb_Library_get_target is now same as the gb_LinkTarget_get_target
    - disable gb_Library_add_auxtarget, no auxtargets need to be copied
    - adjust paths of all external executables to OUTDIR_FOR_BUILD for now
    - use lazy assignment instead of := in AllLangResTarget because it's
      read before Executable
    - link.exe generates an import library for lots of executables
      because they export symbols, especially since commit
      0ffab9363d527d55b12b9b09d7136ca1c9d171e0
      "force 'main' to always be DLLPUBLIC."
    
    Change-Id: I3e1ee7425dd430bb83c7cd59e265869a0541b38d

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index deabb65..23b477a 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3004,7 +3004,7 @@ gb_ExternalExecutable__register_xmllint :=
 else # ! SYSTEM_LIBXML_FOR_BUILD
 
 define gb_ExternalExecutable__register_xmllint
-$(call gb_ExternalExecutable_set_internal,xmllint)
+$(call gb_ExternalExecutable_set_internal,xmllint,$(OUTDIR_FOR_BUILD)/bin/xmllint$(gb_Executable_EXT_for_build))
 
 endef
 
@@ -3017,7 +3017,7 @@ gb_ExternalExecutable__register_xsltproc :=
 else # ! SYSTEM_LIBXSLT_FOR_BUILD
 
 define gb_ExternalExecutable__register_xsltproc
-$(call gb_ExternalExecutable_set_internal,xsltproc)
+$(call gb_ExternalExecutable_set_internal,xsltproc,$(OUTDIR_FOR_BUILD)/bin/xsltproc$(gb_Executable_EXT_for_build))
 $(call gb_ExternalExecutable_add_dependencies,xsltproc,$(call gb_Package_get_target,xslt))
 
 endef
@@ -3066,7 +3066,7 @@ endef
 else # ! SYSTEM_GENBRK
 
 define gb_ExternalExecutable__register_genbrk
-$(call gb_ExternalExecutable_set_internal,genbrk)
+$(call gb_ExternalExecutable_set_internal,genbrk,$(OUTDIR_FOR_BUILD)/bin/genbrk$(gb_Executable_EXT_for_build))
 $(call gb_ExternalExecutable_add_dependencies,genbrk,\
 	$(call gb_Package_get_target_for_build,icu) \
 )
@@ -3085,7 +3085,7 @@ endef
 else # ! SYSTEM_GENCCODE
 
 define gb_ExternalExecutable__register_genccode
-$(call gb_ExternalExecutable_set_internal,genccode)
+$(call gb_ExternalExecutable_set_internal,genccode,$(OUTDIR_FOR_BUILD)/bin/genccode$(gb_Executable_EXT_for_build))
 $(call gb_ExternalExecutable_add_dependencies,genccode,\
 	$(call gb_Package_get_target_for_build,icu) \
 )
@@ -3104,7 +3104,7 @@ endef
 else # ! SYSTEM_GENCMN
 
 define gb_ExternalExecutable__register_gencmn
-$(call gb_ExternalExecutable_set_internal,gencmn)
+$(call gb_ExternalExecutable_set_internal,gencmn,$(OUTDIR_FOR_BUILD)/bin/gencmn$(gb_Executable_EXT_for_build))
 $(call gb_ExternalExecutable_add_dependencies,gencmn,\
 	$(call gb_Package_get_target_for_build,icu) \
 )
diff --git a/android/sdremote/Makefile b/android/sdremote/Makefile
index 78b89eb..740c6f6 100644
--- a/android/sdremote/Makefile
+++ b/android/sdremote/Makefile
@@ -38,8 +38,8 @@ $(call android_get_po,$(1)):
 	mkdir -p res/values-$(1)
 	$(if $(filter-out qtz,$(1)), \
 	    echo $(SRCDIR)/translations/source/$(1)/android/sdremote/res/values.po > translations-$(1).db &&\
-	    $(OUTDIR_FOR_BUILD)/bin/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m translations-$(1).db -l $(1), \
-	    $(OUTDIR_FOR_BUILD)/bin/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m -l $(1))
+	    $(gb_Executable_BINDIR_FOR_BUILD)/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m translations-$(1).db -l $(1), \
+	    $(gb_Executable_BINDIR_FOR_BUILD)/stringex -i res/values/strings.xml -o res/values-$(1)/strings.xml -m -l $(1))
 
 endef
 
diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index 6721a98..905cbd7 100644
--- a/solenv/gbuild/AllLangResTarget.mk
+++ b/solenv/gbuild/AllLangResTarget.mk
@@ -39,7 +39,7 @@
 # SrsPartMergeTarget class
 
 gb_SrsPartMergeTarget_TRANSEXDEPS := $(call gb_Executable_get_runtime_dependencies,transex3)
-gb_SrsPartMergeTarget_TRANSEXCOMMAND := $(call gb_Executable_get_command,transex3)
+gb_SrsPartMergeTarget_TRANSEXCOMMAND = $(call gb_Executable_get_command,transex3)
 
 define gb_SrsPartMergeTarget__command
 MERGEINPUT=`$(gb_MKTEMP)` && \
@@ -77,7 +77,7 @@ endef
 #  gb_SrsPartTarget__command_dep
 
 gb_ResTarget_RSCDEPS := $(call gb_Executable_get_runtime_dependencies,rsc)
-gb_ResTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,rsc)
+gb_ResTarget_RSCCOMMAND = SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD) $(call gb_Executable_get_command,rsc)
 
 define gb_SrsPartTarget__command
 $(call gb_Helper_abbreviate_dirs,\
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index c12287b..433ee0e 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -26,6 +26,7 @@ gb_Executable_LAYER_DIRS := \
 	UREBIN:$(gb_INSTROOT)/$(LIBO_URE_BIN_FOLDER) \
 	OOO:$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME) \
 	SDKBIN:$(INSTDIR)/$(gb_Package_SDKDIRNAME)/bin \
+	NONE:$(gb_Executable_BINDIR) \
 
 $(dir $(call gb_Executable_get_runtime_target,%)).dir :
 	$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
@@ -62,22 +63,17 @@ define gb_Executable__Executable_impl
 $(call gb_LinkTarget_LinkTarget,$(2),Executable_$(1),$(call gb_Executable_get_layer,$(1)))
 $(call gb_LinkTarget_set_targettype,$(2),Executable)
 $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
-$(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
-	| $(dir $(call gb_Executable_get_target,$(1))).dir
+$(call gb_Executable_get_target,$(1)) : \
+	| $(dir $(call gb_Executable_get_target,$(1))).dir \
+	  $(gb_Executable_BINDIR)/.dir
 $(call gb_Executable_get_runtime_target,$(1)) :| $(dir $(call gb_Executable_get_runtime_target,$(1))).dir
 $(call gb_Executable_get_runtime_target,$(1)) : $(call gb_Executable_get_target_for_build,$(1))
 $(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
 $(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS :=
-$(call gb_Executable_Executable_platform,$(1),$(2))
+$(call gb_Executable_Executable_platform,$(1),$(2),$(gb_Executable_BINDIR)/$(1).lib)
 
-$(if $(call gb_Executable__get_dir_for_exe,$(1)), \
-$(call gb_Helper_install,$(call gb_Executable_get_target,$(1)), \
-	$(call gb_Executable_get_install_target,$(1)), \
-	$(call gb_LinkTarget_get_target,$(2))) \
-)
 $$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1))))
 $(call gb_Helper_make_userfriendly_targets,$(1),Executable)
-$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
 
 endef
 
@@ -85,14 +81,8 @@ define gb_Executable_set_targettype_gui
 $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))) : TARGETGUI := $(2)
 endef
 
-# The auxtarget is delivered via the rule in Package.mk.
-# gb_Executable_add_auxtarget executable outdirauxtarget
 define gb_Executable_add_auxtarget
-$(call gb_LinkTarget_add_auxtarget,$(call gb_Executable_get_linktarget,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))))/$(notdir $(2)))
-$(call gb_Executable_get_target,$(1)) : $(2)
-$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))))/$(notdir $(2))
-$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS += $(2)
-
+$(call gb_Output_error,gb_Executable_add_auxtarget should no longer be necessary)
 endef
 
 define gb_Executable_forward_to_Linktarget
diff --git a/solenv/gbuild/ExternalExecutable.mk b/solenv/gbuild/ExternalExecutable.mk
index f934b62..0d2a8cc 100644
--- a/solenv/gbuild/ExternalExecutable.mk
+++ b/solenv/gbuild/ExternalExecutable.mk
@@ -121,11 +121,12 @@ endef
 # Set the executable as internal
 #
 # Optionally set a specific executable target to use (if the target
-# $(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT_for_build) is not suitable).
+# $(gb_Executable_BINDIR_FOR_BUILD)/$(1)$(gb_Executable_EXT_for_build) is
+# not suitable).
 #
 # gb_ExternalExecutable_set_internal executable call?
 define gb_ExternalExecutable_set_internal
-$(call gb_ExternalExecutable__set_internal,$(1),$(if $(strip $(2)),$(2),$(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT_for_build)))
+$(call gb_ExternalExecutable__set_internal,$(1),$(if $(strip $(2)),$(2),$(gb_Executable_BINDIR_FOR_BUILD)/$(1)$(gb_Executable_EXT_for_build)))
 
 endef
 
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 512597b..92f7474 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -45,13 +45,10 @@ gb_XcuDataTarget_get_outdir_target = $(gb_Configuration_registry)/data/$(1)
 gb_XcuLangpackTarget_get_outdir_target = $(gb_Configuration_registry)/spool/$(1)
 gb_XcuModuleTarget_get_outdir_target = $(gb_Configuration_registry)/spool/$(1)
 
-define gb_Executable_get_target
-$(patsubst $(1):%,$(OUTDIR)/bin/%,$(filter $(1):%,$(gb_Executable_FILENAMES)))
-endef
+gb_Executable_get_target = $(gb_Executable__get_linktarget_target)
 
-define gb_Executable_get_target_for_build
-$(patsubst $(1):%,$(OUTDIR_FOR_BUILD)/bin/%,$(filter $(1):%,$(gb_Executable_FILENAMES_FOR_BUILD)))
-endef
+# FIXME broken
+gb_Executable_get_target_for_build = $(gb_Executable__get_linktarget_target)
 
 # FIXME: cleanup?
 gb_Library_get_target = $(gb_Library__get_linktarget_target)
@@ -391,7 +388,7 @@ define gb_Executable__get_workdir_linktargetname
 Executable/$(call gb_Executable_get_filename,$(1))
 endef
 define gb_Executable__get_linktarget_target
-$(WORKDIR)/LinkTarget/$(call gb_Executable__get_workdir_linktargetname,$(1))
+$(call gb_Executable_get_install_target,$(1))
 endef
 define gb_Executable_get_linktarget
 $(call gb_Executable__get_workdir_linktargetname,$(1))<>$(call gb_Executable__get_linktarget_target,$(1))
@@ -434,6 +431,7 @@ endef
 
 gb_Library_WORKDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Library
 gb_Executable_BINDIR = $(WORKDIR)/LinkTarget/Executable
+gb_Executable_BINDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Executable
 # FIXME move platform
 gb_Library_OUTDIRLOCATION = $(if $(filter WNT,$(OS)),$(OUTDIR)/bin,$(OUTDIR)/lib)
 gb_Library_DLLDIR = $(WORKDIR)/LinkTarget/Library
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 97ec264..fafd5d4 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -20,7 +20,7 @@
 # UnoApiPartTarget
 
 gb_UnoApiPartTarget_IDLCDEPS := $(call gb_Executable_get_runtime_dependencies,idlc)
-gb_UnoApiPartTarget_IDLCCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,idlc)
+gb_UnoApiPartTarget_IDLCCOMMAND := SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD) $(call gb_Executable_get_command,idlc)
 
 # The .urd files are actually created by the gb_UnoApiPartTarget__command,
 # invoked for the per-directory .done files.
@@ -79,9 +79,9 @@ endif
 # UnoApiTarget
 
 gb_UnoApiTarget_REGCOMPAREDEPS := $(call gb_Executable_get_runtime_dependencies,regcompare)
-gb_UnoApiTarget_REGCOMPARECOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,regcompare)
+gb_UnoApiTarget_REGCOMPARECOMMAND := SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD) $(call gb_Executable_get_command,regcompare)
 gb_UnoApiTarget_REGMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,regmerge) $(call gb_Executable_get_runtime_dependencies,reg2unoidl)
-gb_UnoApiTarget_REGMERGECOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,regmerge)
+gb_UnoApiTarget_REGMERGECOMMAND := SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,regmerge)
 
 gb_UnoApiTarget_TYPESRDB := $(call gb_UnoApiTarget_get_target,types)
 
@@ -89,7 +89,7 @@ define gb_UnoApiTarget__command_impl
 RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(1).oldformat $(2) $(3)) && \
 $(gb_UnoApiTarget_REGMERGECOMMAND) @$${RESPONSEFILE} && \
 rm -f $${RESPONSEFILE} && \
-SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin \
+SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD) \
 	$(call gb_Executable_get_command,reg2unoidl) \
 	$(foreach rdb,$(4),$(call gb_UnoApiTarget_get_target,$(rdb))) \
 	$(1).oldformat $(1)
@@ -286,7 +286,7 @@ $(eval $(call gb_Output_error,gb_UnoApiHeadersTarget_select_variant must be defi
 endif
 
 gb_UnoApiHeadersTarget_CPPUMAKERDEPS := $(call gb_Executable_get_runtime_dependencies,cppumaker)
-gb_UnoApiHeadersTarget_CPPUMAKERCOMMAND := SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(call gb_Executable_get_command,cppumaker)
+gb_UnoApiHeadersTarget_CPPUMAKERCOMMAND := SOLARBINDIR=$(gb_Executable_BINDIR_FOR_BUILD) $(call gb_Executable_get_command,cppumaker)
 
 define gb_UnoApiHeadersTarget__command
 	$(gb_UnoApiHeadersTarget_CPPUMAKERCOMMAND) \
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 92c2391..af84d35 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -370,15 +370,17 @@ gb_Executable_TARGETTYPEFLAGS := $(gb_Windows_PE_TARGETTYPEFLAGS)
 
 gb_Executable_get_rpath :=
 
+# surprisingly some executables have exports so link.exe creates import lib
 define gb_Executable_Executable_platform
+$(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
+
 $(call gb_LinkTarget_add_auxtargets,$(2),\
-	$(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \
+	$(patsubst %.lib,%.exp,$(3)) \
+	$(call gb_LinkTarget_get_pdbfile2,$(2)).pdb \
 	$(call gb_LinkTarget_get_pdbfile,$(2)) \
+	$(call gb_LinkTarget_get_manifestfile,$(2)) \
 )
 
-$(call gb_Executable_add_auxtarget,$(1),$(call gb_Executable_get_target,$(1)).manifest)
-$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest,$(1))
-
 $(call gb_LinkTarget_get_target,$(2)) \
 $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE := $(call gb_LinkTarget_get_pdbfile,$(2))
 $(call gb_LinkTarget_get_target,$(2)) : TARGETGUI :=
@@ -444,10 +446,11 @@ gb_PythonTest_PRECOMMAND := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY
 # SrsPartTarget class
 
 ifeq ($(gb_FULLDEPS),$(true))
-gb_SrsPartTarget__command_target = $(OUTDIR)/bin/makedepend$(gb_Executable_EXT)
+# FIXME this is used before TargetLocations is read?
+gb_SrsPartTarget__command_target = $(WORKDIR)/LinkTarget/Executable/makedepend.exe
 define gb_SrsPartTarget__command_dep
 $(call gb_Helper_abbreviate_dirs,\
-	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+	$(call gb_Executable_get_target,makedepend) \
 		$(INCLUDE) \
 		$(DEFS) \
 		$(2) \
@@ -485,12 +488,13 @@ $(eval $(call gb_Helper_make_dep_targets,\
 ))
 
 ifeq ($(gb_FULLDEPS),$(true))
-gb_WinResTarget__command_target = $(OUTDIR)/bin/makedepend$(gb_Executable_EXT)
+# FIXME this is used before TargetLocations is read?
+gb_WinResTarget__command_target = $(WORKDIR)/LinkTarget/Executable/makedepend.exe
 define gb_WinResTarget__command_dep
 $(call gb_Output_announce,RC:$(2),$(true),DEP,1)
 $(call gb_Helper_abbreviate_dirs,\
 	mkdir -p $(dir $(1)) && \
-	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+	$(call gb_Executable_get_target,makedepend) \
 		$(INCLUDE) \
 		$(DEFS) \
 		$(RCFILE) \
diff --git a/solenv/gbuild/platform/mingw.mk b/solenv/gbuild/platform/mingw.mk
index ceb6767..e36343b 100644
--- a/solenv/gbuild/platform/mingw.mk
+++ b/solenv/gbuild/platform/mingw.mk
@@ -321,12 +321,12 @@ $(eval $(call gb_Helper_make_dep_targets,\
 ))
 
 ifeq ($(gb_FULLDEPS),$(true))
-gb_WinResTarget__command_target = $(OUTDIR_FOR_BUILD)/bin/makedepend
+gb_WinResTarget__command_target = $(gb_Executable_BINDIR_FOR_BUILD)/makedepend
 define gb_WinResTarget__command_dep
 $(call gb_Output_announce,RC:$(2),$(true),DEP,1)
 $(call gb_Helper_abbreviate_dirs,\
 	mkdir -p $(dir $(1)) && \
-	$(OUTDIR_FOR_BUILD)/bin/makedepend \
+	$(gb_Executable_BINDIR_FOR_BUILD)/makedepend \
 		$(INCLUDE) \
 		$(DEFS) \
 		$(RCFILE) \
commit b50e9b914c73ba28c852e575f790ddef0bad1b0b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 01:39:41 2013 +0200

    add some dependencies on ure/services.rdb
    
    ... so that custom targets in i18npool run.  Can't remember if that is a
    pre-existing problem or caused by one of my changes.
    
    Change-Id: Ic0aa1f2b8600f4951d30a5ac6f3ade1a4fb2d313

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 1503df5..deabb65 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -2900,6 +2900,7 @@ $(call gb_Executable_add_runtime_dependencies,climaker,\
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
 	$(call gb_Package_get_target_for_build,cppuhelper_unorc) \
 	$(call gb_Rdb_get_target_for_build,ure/services) \
+	$(gb_INSTROOT)/$(LIBO_URE_SHARE_FOLDER)/misc/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
 endef
@@ -2932,6 +2933,7 @@ $(call gb_Executable_add_runtime_dependencies,gengal,\
 	)) \
 	$(call gb_Package_get_target_for_build,cppuhelper_unorc) \
 	$(call gb_Rdb_get_target_for_build,ure/services) \
+	$(gb_INSTROOT)/$(LIBO_URE_SHARE_FOLDER)/misc/services.rdb \
 	$(call gb_UnoApi_get_target,offapi) \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
@@ -2963,6 +2965,7 @@ $(call gb_Executable_add_runtime_dependencies,localize,\
 )
 endef
 
+# FIXME ure/services.rdb needs cleanup
 # The dependencies on ure/services.rdb and udkapi.rdb are implicitly required
 # due to the settings for URE_SERVICES and URE_TYPES in cppuhelper/source/unorc:
 # FIXME: the library target should be for build too
@@ -2972,6 +2975,7 @@ $(call gb_Executable_add_runtime_dependencies,saxparser,\
 	$(call gb_Package_get_target_for_build,cppuhelper_unorc) \
 	$(call gb_Rdb_get_target_for_build,saxparser) \
 	$(call gb_Rdb_get_target_for_build,ure/services) \
+	$(gb_INSTROOT)/$(LIBO_URE_SHARE_FOLDER)/misc/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
 endef
@@ -2985,6 +2989,7 @@ $(call gb_Executable_add_runtime_dependencies,uno,\
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
 	$(call gb_Package_get_target_for_build,cppuhelper_unorc) \
 	$(call gb_Rdb_get_target_for_build,ure/services) \
+	$(gb_INSTROOT)/$(LIBO_URE_SHARE_FOLDER)/misc/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
 endef
commit b6640d379dc730f72bd8e83a57b4bf37b0867eec
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 01:34:26 2013 +0200

    desktop: soffice.bin and unopkg.bin cleanup
    
    Clean up the horrible mess around unopkg.bin unopkg.com unopkg.exe and
    soffice.bin soffice.exe and crashrep.com executables and associated
    renaming via Packages in the desktop makefiles by simply using
    RepositoryFixes to correct the names.
    
    Change-Id: I4d3a549462cfa90a63d62b35db1b0407b25239f7

diff --git a/Repository.mk b/Repository.mk
index 5a2b78e..ae22ce3 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -83,7 +83,7 @@ $(eval $(call gb_Helper_register_executables,OOO, \
 	$(if $(ENABLE_NPAPI_INTO_BROWSER),nsplugin) \
 	$(if $(filter-out ANDROID IOS MACOSX WNT,$(OS)),oosplash) \
 	$(if $(ENABLE_NPAPI_FROM_BROWSER),pluginapp.bin) \
-	$(if $(filter-out WNT,$(OS)),soffice.bin) \
+	soffice_bin \
 	spadmin.bin \
 	$(if $(filter $(GUIBASE)$(ENABLE_TDE),unxTRUE), \
 		tdefilepicker \
@@ -93,7 +93,7 @@ $(eval $(call gb_Helper_register_executables,OOO, \
 		kdefilepicker \
 	) \
 	ui-previewer \
-	$(if $(filter DESKTOP,$(BUILD_TYPE)),unopkg.bin) \
+	$(if $(filter DESKTOP,$(BUILD_TYPE)),unopkg_bin) \
 	xpdfimport \
 	$(if $(filter WNT,$(OS)), \
 		crashrep_com \
@@ -106,13 +106,11 @@ $(eval $(call gb_Helper_register_executables,OOO, \
 		senddoc \
 		simpress \
 		soffice \
-		soffice_bin \
 		smath \
 		sweb \
 		swriter \
 		unoinfo \
 		unopkg \
-		unopkg_bin \
 		unopkg_com \
 	) \
 ))
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
index 07a733b..db0a302 100644
--- a/RepositoryFixes.mk
+++ b/RepositoryFixes.mk
@@ -23,10 +23,15 @@ gb_Executable_FILENAMES := $(foreach group,$(gb_Executable_VALIDGROUPS),\
 	$(foreach exe,$(gb_Executable_$(group)),$(exe):$(exe)$(gb_Executable_EXT)))
 
 gb_Executable_FILENAMES := $(patsubst uno:uno,uno:uno.bin,$(gb_Executable_FILENAMES))
+gb_Executable_FILENAMES := $(patsubst unopkg_bin:unopkg_bin%,unopkg_bin:unopkg.bin,$(gb_Executable_FILENAMES))
+gb_Executable_FILENAMES := $(patsubst unopkg_com:unopkg_com%,unopkg_com:unopkg.com,$(gb_Executable_FILENAMES))
+gb_Executable_FILENAMES := $(patsubst crashrep_com:crashrep_com%,crashrep_com:crashrep.com,$(gb_Executable_FILENAMES))
 gb_Executable_FILENAMES := $(patsubst gengal:gengal,gengal:gengal.bin,$(gb_Executable_FILENAMES))
 
 ifeq ($(OS),MACOSX)
-gb_Executable_FILENAMES := $(patsubst soffice.bin:soffice.bin,soffice.bin:soffice,$(gb_Executable_FILENAMES))
+gb_Executable_FILENAMES := $(patsubst soffice_bin:soffice_bin,soffice_bin:soffice,$(gb_Executable_FILENAMES))
+else
+gb_Executable_FILENAMES := $(patsubst soffice_bin:soffice_bin%,soffice_bin:soffice.bin,$(gb_Executable_FILENAMES))
 endif
 
 gb_Executable_FILENAMES_FOR_BUILD := $(subst $(gb_Executable_EXT),$(gb_Executable_EXT_for_build),$(gb_Executable_FILENAMES))
diff --git a/desktop/Executable_crashrep.com.mk b/desktop/Executable_crashrep.com.mk
index 13807cd..15d69bf 100644
--- a/desktop/Executable_crashrep.com.mk
+++ b/desktop/Executable_crashrep.com.mk
@@ -23,8 +23,4 @@ $(eval $(call gb_Executable_add_exception_objects,crashrep_com,\
     desktop/win32/source/guistdio/guistdio \
 ))
 
-# the resulting executable is called crashrep_com.exe, copy it to crashrep.com
-$(eval $(call gb_Package_Package,crashrep_com,$(OUTDIR)/bin))
-$(eval $(call gb_Package_add_file,crashrep_com,bin/crashrep.com,crashrep_com.exe))
-
 # vim: set ts=4 sw=4 et:
diff --git a/desktop/Executable_soffice.bin.mk b/desktop/Executable_soffice.bin.mk
index d7d6043..90b56fd 100644
--- a/desktop/Executable_soffice.bin.mk
+++ b/desktop/Executable_soffice.bin.mk
@@ -7,22 +7,22 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-$(eval $(call gb_Executable_Executable,soffice.bin))
+$(eval $(call gb_Executable_Executable,soffice_bin))
 
-$(eval $(call gb_Executable_set_targettype_gui,soffice.bin,YES))
+$(eval $(call gb_Executable_set_targettype_gui,soffice_bin,YES))
 
-$(eval $(call gb_Executable_set_include,soffice.bin,\
+$(eval $(call gb_Executable_set_include,soffice_bin,\
     $$(INCLUDE) \
     -I$(SRCDIR)/desktop/source/inc \
 ))
 
-$(eval $(call gb_Executable_use_libraries,soffice.bin,\
+$(eval $(call gb_Executable_use_libraries,soffice_bin,\
     sal \
     sofficeapp \
 	$(gb_UWINAPI) \
 ))
 
-$(eval $(call gb_Executable_add_cobjects,soffice.bin,\
+$(eval $(call gb_Executable_add_cobjects,soffice_bin,\
     desktop/source/app/main \
 ))
 
@@ -34,4 +34,40 @@ $(eval $(call gb_Executable_set_ldflags,\
 
 endif
 
+ifeq ($(OS),WNT)
+
+$(eval $(call gb_Executable_use_static_libraries,soffice_bin,\
+    ooopathutils \
+    winextendloaderenv \
+))
+
+$(eval $(call gb_Executable_set_targettype_gui,soffice_bin,YES))
+
+$(eval $(call gb_Executable_add_nativeres,soffice_bin,sofficebin/officeloader))
+
+ifeq ($(COM),MSC)
+
+$(eval $(call gb_Executable_add_ldflags,soffice_bin,\
+    /STACK:10000000 \
+))
+
+# HACK: Copy manifest to $(OUTDIR)/bin under the right name. The
+# executable is copied in Package_soffice_bin, but that does not work
+# for the manifest, for some reason...
+$(call gb_Module_get_target,desktop) : $(OUTDIR)/bin/soffice.bin.manifest
+
+$(OUTDIR)/bin/soffice.bin.manifest : $(call gb_Executable_get_target,soffice_bin)
+$(call gb_Executable_get_clean_target,soffice_bin) : $(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest
+
+$(OUTDIR)/bin/soffice.bin.manifest : $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,soffice_bin))
+	$(call gb_Deliver_deliver,$(call gb_LinkTarget_get_manifestfile,$(call gb_LinkTarget__get_workdir_linktargetname,$(call gb_Executable_get_linktarget,soffice_bin))),$@)
+
+.PHONY : $(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest
+$(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest :
+	rm -f $(OUTDIR)/bin/soffice.bin.manifest
+
+endif
+
+endif
+
 # vim: set ts=4 sw=4 et:
diff --git a/desktop/Executable_soffice_bin.mk b/desktop/Executable_soffice_bin.mk
deleted file mode 100644
index 83d32b6..0000000
--- a/desktop/Executable_soffice_bin.mk
+++ /dev/null
@@ -1,59 +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/.
-#
-
-$(eval $(call gb_Executable_Executable,soffice_bin))
-
-$(eval $(call gb_Executable_set_targettype_gui,soffice_bin,YES))
-
-$(eval $(call gb_Executable_set_include,soffice_bin,\
-    $$(INCLUDE) \
-    -I$(SRCDIR)/desktop/source/inc \
-))
-
-$(eval $(call gb_Executable_use_libraries,soffice_bin,\
-    sal \
-    sofficeapp \
-	$(gb_UWINAPI) \
-))
-
-$(eval $(call gb_Executable_add_cobjects,soffice_bin,\
-    desktop/source/app/main \
-))
-
-$(eval $(call gb_Executable_use_static_libraries,soffice_bin,\
-    ooopathutils \
-    winextendloaderenv \
-))
-
-ifeq ($(COM),MSC)
-
-$(eval $(call gb_Executable_add_ldflags,soffice_bin,\
-    /STACK:10000000 \
-))
-
-# HACK: Copy manifest to $(OUTDIR)/bin under the right name. The
-# executable is copied in Package_soffice_bin, but that does not work
-# for the manifest, for some reason...
-$(call gb_Module_get_target,desktop) : $(OUTDIR)/bin/soffice.bin.manifest
-
-$(OUTDIR)/bin/soffice.bin.manifest : $(call gb_Executable_get_target,soffice_bin)
-$(call gb_Executable_get_clean_target,soffice_bin) : $(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest
-
-$(OUTDIR)/bin/soffice.bin.manifest : $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,soffice_bin))
-	$(call gb_Deliver_deliver,$<.manifest,$@)
-
-.PHONY : $(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest
-$(WORKDIR)/Clean/OutDir/bin/soffice.bin.manifest :
-	rm -f $(OUTDIR)/bin/soffice.bin.manifest
-
-endif
-
-$(eval $(call gb_Executable_add_nativeres,soffice_bin,sofficebin/officeloader))
-
-# vim: set ts=4 sw=4 et:
diff --git a/desktop/Executable_unopkg.bin.mk b/desktop/Executable_unopkg.bin.mk
index 90736db..2ee1985 100644
--- a/desktop/Executable_unopkg.bin.mk
+++ b/desktop/Executable_unopkg.bin.mk
@@ -7,22 +7,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-ifeq ($(OS),WNT)
-desktop_UNOPKGBIN := unopkg_bin
-else
-desktop_UNOPKGBIN := unopkg.bin
-endif
+$(eval $(call gb_Executable_Executable,unopkg_bin))
 
-$(eval $(call gb_Executable_Executable,$(desktop_UNOPKGBIN)))
+$(eval $(call gb_Executable_set_targettype_gui,unopkg_bin,YES))
 
-$(eval $(call gb_Executable_set_targettype_gui,$(desktop_UNOPKGBIN),YES))
-
-$(eval $(call gb_Executable_set_include,$(desktop_UNOPKGBIN),\
+$(eval $(call gb_Executable_set_include,unopkg_bin,\
     $$(INCLUDE) \
     -I$(SRCDIR)/desktop/source/inc \
 ))
 
-$(eval $(call gb_Executable_use_libraries,$(desktop_UNOPKGBIN),\
+$(eval $(call gb_Executable_use_libraries,unopkg_bin,\
     comphelper \
     sal \
     tl \
@@ -30,16 +24,8 @@ $(eval $(call gb_Executable_use_libraries,$(desktop_UNOPKGBIN),\
 	$(gb_UWINAPI) \
 ))
 
-$(eval $(call gb_Executable_add_cobjects,$(desktop_UNOPKGBIN),\
+$(eval $(call gb_Executable_add_cobjects,unopkg_bin,\
     desktop/source/pkgchk/unopkg/unopkg_main \
 ))
 
-ifeq ($(OS),WNT)
-
-# the resulting executable is called $(desktop_UNOPKGBIN).exe, copy it to $(desktop_UNOPKGBIN)
-$(eval $(call gb_Package_Package,$(desktop_UNOPKGBIN),$(OUTDIR)/bin))
-$(eval $(call gb_Package_add_file,$(desktop_UNOPKGBIN),bin/unopkg.bin,$(desktop_UNOPKGBIN).exe))
-
-endif
-
 # vim: set ts=4 sw=4 et:
diff --git a/desktop/Executable_unopkg.com.mk b/desktop/Executable_unopkg.com.mk
index bcff06a..2c46d2c 100644
--- a/desktop/Executable_unopkg.com.mk
+++ b/desktop/Executable_unopkg.com.mk
@@ -19,8 +19,4 @@ $(eval $(call gb_Executable_add_exception_objects,unopkg_com,\
     desktop/win32/source/guistdio/unopkgio \
 ))
 
-# the resulting executable is called unopkg_com.exe, copy it to unopkg.com
-$(eval $(call gb_Package_Package,unopkg_com,$(OUTDIR)/bin))
-$(eval $(call gb_Package_add_file,unopkg_com,bin/unopkg.com,unopkg_com.exe))
-
 # vim: set ts=4 sw=4 et:
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index 847f036..8c1dd94 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -32,6 +32,7 @@ endif
 
 ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
 $(eval $(call gb_Module_add_targets,desktop,\
+    Executable_soffice.bin \
     Executable_unopkg.bin \
     Library_migrationoo2 \
     Library_migrationoo3 \
@@ -45,12 +46,6 @@ $(eval $(call gb_Module_add_targets,desktop,\
     Pagein_writer \
 ))
 
-ifneq ($(OS),WNT)
-$(eval $(call gb_Module_add_targets,desktop,\
-    Executable_soffice.bin \
-))
-endif
-
 ifneq ($(OS),MACOSX)
 ifneq ($(OS),WNT)
 $(eval $(call gb_Module_add_targets,desktop,\
@@ -74,13 +69,11 @@ $(eval $(call gb_Module_add_targets,desktop,\
     Executable_simpress \
     Executable_smath \
     Executable_soffice \
-    Executable_soffice_bin \
     Executable_sweb \
     Executable_swriter \
     Executable_unoinfo \
     Executable_unopkg \
     Executable_unopkg.com \
-    Package_soffice_bin \
     WinResTarget_quickstart \
     WinResTarget_sbase \
     WinResTarget_scalc \
diff --git a/desktop/Package_soffice_bin.mk b/desktop/Package_soffice_bin.mk
deleted file mode 100644
index acc9cab..0000000
--- a/desktop/Package_soffice_bin.mk
+++ /dev/null
@@ -1,16 +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/.
-#
-
-$(eval $(call gb_Package_Package,desktop_soffice_bin,$(gb_Executable_BINDIR)))
-
-$(eval $(call gb_Package_set_outdir,desktop_soffice_bin,$(gb_INSTROOT)))
-
-$(eval $(call gb_Package_add_file,desktop_soffice_bin,$(LIBO_BIN_FOLDER)/soffice.bin,soffice_bin$(gb_Executable_EXT)))
-
-# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index f19f83e..8eb6ac6 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -531,17 +531,10 @@ End
 
 #ifndef MACOSX
 File gid_Brand_File_Bin_Soffice_Bin
-#ifdef WNT
-// FIXME quick hack
-    Dir = FILELIST_DIR;
-    Name = "desktop_soffice_bin.filelist";
-    Styles = (FILELIST, PACKED);
-#else
     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Styles = (PACKED);
     Name = "soffice.bin";
-#endif
 End
 #endif
 
commit 9cba5cd8bdb073b5dc50545afdbdb648cc96575c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 01:35:41 2013 +0200

    cli_ure: copy cli_basetypes to INSTDIR/sdk/bin
    
    The library is already in the URE/bin directory, but that is not
    sufficient to be able to run sdk/bin/climaker.exe.
    
    There are apparently 4 ways for a .net/CLR executable to locate
    shared libraries:
    1) in the same directory as the executable
    2) in some mysterious "GAC" thing in C:/Windows
       (which is presumably how it works if you actually install LO)
    3) via an application configuration file entry "probing",
       which only works when it's in a sub-directory of the
       one the executable is in
    4) via a DEVPATH variable, but that only works with a
       special configuration entry in a system "machine config" file
       of the .net framework
    
    Specifically PATH is apparently ignored.  Since building on Windows is
    enough of a PITA already and we don't want developers to have to edit
    another config file, put another copy of the library into sdk/bin.
    
    http://tutorials.csharp-online.net/.NET_CLR_Components%E2%80%94Resolving_Names_to_Locations
    http://tutorials.csharp-online.net/.NET_CLR_Components%E2%80%94CLR_Loader
    
    Change-Id: I511957ad9a9a918ed0c316126304a1980fb2d289

diff --git a/cli_ure/Executable_climaker.mk b/cli_ure/Executable_climaker.mk
index db7e42c..f1aaf62 100644
--- a/cli_ure/Executable_climaker.mk
+++ b/cli_ure/Executable_climaker.mk
@@ -9,6 +9,10 @@
 

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list