Kaydet (Commit) 70c35265 authored tarafından Michael Stahl's avatar Michael Stahl

gbuild: remove libraries from OUTDIR and WORKDIR

Refactor everything to find and link libraries directly in INSTDIR.

- add gb_LinkTarget_get_linksearchpath_for_layer, and use it to set up
  -L paths for T_LDFLAGS in such a way that only allowed libraries
  can be linked against; i.e. it's not possible to link URE
  linktargets against OOO or not-installed libraries
- gb_Library_get_target is now same as the gb_LinkTarget_get_target
  (TODO: this needs cleanup)
- since a pattern rule won't work for linking libraries in INSTDIR,
  add a separate per-file rule for every INSTDIR lib
- pattern rule can't find link target in the clean target any more
  so add a LINKTARGET variable
- disable gb_Library_add_auxtarget, no auxtargets need to be copied
- tweak the call to gb_Library_Library_platform to pass in a path
  in sdk/lib for the versioned URE libs
- fix the Library clean target
- add LAYER parameter to gb_LinkTarget_LinkTarget
- adjust platform link commands
- MSVC link command now uses explicit -manifestfile and -pdb
  parameters to keep misc. files out of INSTDIR
- remove gb_Helper_OUTDIR_FOR_BUILDLIBDIR
- adjust Extension, CppunitTest,  JunitTest, PythonTest, Gallery,
  various CustomTargets to search INSTDIR
- remove SDK library symlinks and import libs from odk/Package_lib
- on Mac OS X, put .dylib symlinks into sdk/lib even though those
  are not packaged and would be created by the SDK configury;
  we need these to be somewhere for linking anyway
- add a (unfortunately cyclic) dependency on Package ure_install to sal

Change-Id: I70d88742f8c8232ad7b9521416275c67b64fe6cf
üst c0c7df91
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
# #
$(eval $(call gb_Package_Package,extensions_OOoSpotlightImporter,$(OUTDIR)/lib)) $(eval $(call gb_Package_Package,extensions_OOoSpotlightImporter,$(gb_Library_DLLDIR)))
$(eval $(call gb_Package_set_outdir,extensions_OOoSpotlightImporter,$(gb_INSTROOT))) $(eval $(call gb_Package_set_outdir,extensions_OOoSpotlightImporter,$(gb_INSTROOT)))
......
...@@ -22,7 +22,7 @@ $(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_$(1).cxx : \ ...@@ -22,7 +22,7 @@ $(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_$(1).cxx : \
$$(call gb_Output_announce,$$(subst $(WORKDIR)/,,$$@),$(true),SAX,1) $$(call gb_Output_announce,$$(subst $(WORKDIR)/,,$$@),$(true),SAX,1)
$$(call gb_Helper_abbreviate_dirs, \ $$(call gb_Helper_abbreviate_dirs, \
$$(call gb_Helper_execute,saxparser) $(1) $$< $$@.tmp \ $$(call gb_Helper_execute,saxparser) $(1) $$< $$@.tmp \
-env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR)) \ -env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME)) \
-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target_for_build,saxparser)) \ -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target_for_build,saxparser)) \
$(if $(findstring s,$(MAKEFLAGS)),> /dev/null 2>&1) && \ $(if $(findstring s,$(MAKEFLAGS)),> /dev/null 2>&1) && \
sed 's/\(^.*get[^;]*$$$$\)/SAL_DLLPUBLIC_EXPORT \1/' $$@.tmp > $$@ && \ sed 's/\(^.*get[^;]*$$$$\)/SAL_DLLPUBLIC_EXPORT \1/' $$@.tmp > $$@ && \
......
...@@ -12,27 +12,7 @@ $(eval $(call gb_Package_Package,odk_lib,$(OUTDIR)/lib)) ...@@ -12,27 +12,7 @@ $(eval $(call gb_Package_Package,odk_lib,$(OUTDIR)/lib))
$(eval $(call gb_Package_set_outdir,odk_lib,$(INSTDIR))) $(eval $(call gb_Package_set_outdir,odk_lib,$(INSTDIR)))
$(eval $(call gb_Package_add_files,odk_lib,$(gb_Package_SDKDIRNAME)/lib,\ $(eval $(call gb_Package_add_files,odk_lib,$(gb_Package_SDKDIRNAME)/lib,\
$(if $(filter MSC,$(COM)),\
$(foreach lib,\
cppu \
cppuhelper \
purpenvhelper \
sal \
salhelper \
,$(call gb_Library_get_ilibfilename,$(lib)) \
) \
) \
$(if $(filter LINUX,$(OS)),$(notdir $(call gb_StaticLibrary_get_target,salcpprt))) \ $(if $(filter LINUX,$(OS)),$(notdir $(call gb_StaticLibrary_get_target,salcpprt))) \
)) ))
ifneq (,$(filter-out MACOSX WNT,$(OS)))
define odk_add_sybolic_link
$(call gb_Package_add_symbolic_link,odk_lib,$(gb_Package_SDKDIRNAME)/lib/$(basename $(1)),../../ure-link/lib/$(1))
endef
$(foreach lib,cppu cppuhelper purpenvhelper sal salhelper,\
$(eval $(call odk_add_sybolic_link,$(call gb_Library_get_runtime_filename,$(lib)))))
endif
# vim: set noet sw=4 ts=4: # vim: set noet sw=4 ts=4:
...@@ -346,15 +346,13 @@ static PyObject* initPoniesMode( ...@@ -346,15 +346,13 @@ static PyObject* initPoniesMode(
xContext->getServiceManager(), xContext->getServiceManager(),
com::sun::star::uno::UNO_QUERY_THROW); com::sun::star::uno::UNO_QUERY_THROW);
if (!xMSF.is()) { abort(); } if (!xMSF.is()) { abort(); }
char *const outdir = getenv("OUTDIR"); char *const testlib = getenv("TEST_LIB");
if (!outdir) { abort(); } if (!testlib) { abort(); }
OString const libname = (OString(OString(outdir, strlen(outdir)) + OString const libname = OString(testlib, strlen(testlib))
#ifdef _WIN32 #ifdef _WIN32
"/bin/")).replaceAll(OString('/'), OString('\\')) .replaceAll(OString('/'), OString('\\'))
#else
"/lib/"))
#endif #endif
+ SAL_MODULENAME("test"); ;
oslModule const mod( osl_loadModuleAscii(libname.getStr(), oslModule const mod( osl_loadModuleAscii(libname.getStr(),
SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL) ); SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL) );
if (!mod) { abort(); } if (!mod) { abort(); }
......
...@@ -33,6 +33,10 @@ $(eval $(call gb_Library_add_defs,sal,\ ...@@ -33,6 +33,10 @@ $(eval $(call gb_Library_add_defs,sal,\
-DSRCDIR="\"$(SRCDIR)\"" \ -DSRCDIR="\"$(SRCDIR)\"" \
)) ))
# need the "ure-link" symlink to exist in INSTDIR so it's possible to link sal
# FIXME: this creates cyclic dependency between ure and sal modules
$(eval $(call gb_Library_use_package,sal,ure_install))
$(eval $(call gb_Library_use_libraries,sal,\ $(eval $(call gb_Library_use_libraries,sal,\
$(if $(filter $(OS),ANDROID), \ $(if $(filter $(OS),ANDROID), \
lo-bootstrap \ lo-bootstrap \
......
...@@ -59,10 +59,10 @@ $(if $(URE),\ ...@@ -59,10 +59,10 @@ $(if $(URE),\
"-env:UNO_TYPES=$(foreach item,$(UNO_TYPES),$(call gb_Helper_make_url,$(item)))") \ "-env:UNO_TYPES=$(foreach item,$(UNO_TYPES),$(call gb_Helper_make_url,$(item)))") \
$(if $(strip $(UNO_SERVICES)),\ $(if $(strip $(UNO_SERVICES)),\
"-env:UNO_SERVICES=$(foreach item,$(UNO_SERVICES),$(call gb_Helper_make_url,$(item)))") \ "-env:UNO_SERVICES=$(foreach item,$(UNO_SERVICES),$(call gb_Helper_make_url,$(item)))") \
$(foreach dir,URE_INTERNAL_LIB_DIR LO_LIB_DIR,\ -env:URE_INTERNAL_LIB_DIR=$(call gb_Helper_make_url,$(gb_INSTROOT)/$(LIBO_URE_LIB_FOLDER)) \
-env:$(dir)=$(call gb_Helper_make_url,$(gb_CppunitTest_LIBDIR))) \ -env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME)) \
--protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \ --protector $(call gb_Library_get_target,unoexceptionprotector) unoexceptionprotector \
--protector unobootstrapprotector$(gb_Library_DLLEXT) unobootstrapprotector \ --protector $(call gb_Library_get_target,unobootstrapprotector) unobootstrapprotector \
) $(ARGS) ) $(ARGS)
endef endef
...@@ -102,7 +102,7 @@ endef ...@@ -102,7 +102,7 @@ endef
# call gb_CppunitTest__CppunitTest_impl,cppunittest,linktarget # call gb_CppunitTest__CppunitTest_impl,cppunittest,linktarget
define gb_CppunitTest__CppunitTest_impl define gb_CppunitTest__CppunitTest_impl
$(call gb_LinkTarget_LinkTarget,$(2),CppunitTest_$(1)) $(call gb_LinkTarget_LinkTarget,$(2),CppunitTest_$(1),NONE)
$(call gb_LinkTarget_set_targettype,$(2),CppunitTest) $(call gb_LinkTarget_set_targettype,$(2),CppunitTest)
$(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS)) $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
$(call gb_LinkTarget_add_defs,$(2),\ $(call gb_LinkTarget_add_defs,$(2),\
......
...@@ -59,7 +59,7 @@ endef ...@@ -59,7 +59,7 @@ endef
# call gb_Executable__Executable_impl,exe,linktarget # call gb_Executable__Executable_impl,exe,linktarget
define gb_Executable__Executable_impl define gb_Executable__Executable_impl
$(call gb_LinkTarget_LinkTarget,$(2),Executable_$(1)) $(call gb_LinkTarget_LinkTarget,$(2),Executable_$(1),$(call gb_Executable_get_layer,$(1)))
$(call gb_LinkTarget_set_targettype,$(2),Executable) $(call gb_LinkTarget_set_targettype,$(2),Executable)
$(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS)) $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
$(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \ $(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
......
...@@ -161,7 +161,7 @@ endef ...@@ -161,7 +161,7 @@ endef
# add a library from the solver; DO NOT use gb_Library_get_target # add a library from the solver; DO NOT use gb_Library_get_target
define gb_Extension_add_library define gb_Extension_add_library
$(call gb_Extension_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\ $(call gb_Extension_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\
$(gb_Helper_OUTDIRLIBDIR)/$(call gb_Library_get_runtime_filename,$(2))) $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(2))))
endef endef
......
...@@ -199,7 +199,7 @@ define gb_ExternalPackage__add_file_for_install ...@@ -199,7 +199,7 @@ define gb_ExternalPackage__add_file_for_install
$(call gb_ExternalPackage_add_file,$(1),$(2),$(4)) $(call gb_ExternalPackage_add_file,$(1),$(2),$(4))
$(call gb_Helper_install,$(call gb_ExternalPackage_get_target,$(1)), \ $(call gb_Helper_install,$(call gb_ExternalPackage_get_target,$(1)), \
$(gb_INSTROOT)/$(3), \ $(3), \
$(call gb_UnpackedTarball_get_dir,$(gb_ExternalPackage_UNPACKED_$(1)))/$(4)) $(call gb_UnpackedTarball_get_dir,$(gb_ExternalPackage_UNPACKED_$(1)))/$(4))
$(call gb_UnpackedTarball_get_dir,$(gb_ExternalPackage_UNPACKED_$(1)))/$(4) :| \ $(call gb_UnpackedTarball_get_dir,$(gb_ExternalPackage_UNPACKED_$(1)))/$(4) :| \
...@@ -218,7 +218,7 @@ endef ...@@ -218,7 +218,7 @@ endef
# #
# gb_ExternalPackage_add_library_for_install package dest src library? # gb_ExternalPackage_add_library_for_install package dest src library?
define gb_ExternalPackage_add_library_for_install define gb_ExternalPackage_add_library_for_install
$(call gb_ExternalPackage__add_file_for_install,$(1),$(2),$(if $(4),$(call gb_Library_get_instdir,$(4)),$(gb_Package_PROGRAMDIRNAME))/$(notdir $(2)),$(3)) $(call gb_ExternalPackage__add_file_for_install,$(1),$(2),$(if $(4),$(call gb_Library_get_instdir,$(4)),$(gb_INSTROOT)/$(gb_Package_PROGRAMDIRNAME))/$(notdir $(2)),$(3))
endef endef
...@@ -238,7 +238,7 @@ endef ...@@ -238,7 +238,7 @@ endef
# #
# gb_ExternalPackage_add_jar_for_install package dest src # gb_ExternalPackage_add_jar_for_install package dest src
define gb_ExternalPackage_add_jar_for_install define gb_ExternalPackage_add_jar_for_install
$(call gb_ExternalPackage__add_file_for_install,$(1),$(2),$(gb_Package_PROGRAMDIRNAME)/classes/$(notdir $(2)),$(3)) $(call gb_ExternalPackage__add_file_for_install,$(1),$(2),$(gb_INSTROOT)/$(gb_Package_PROGRAMDIRNAME)/classes/$(notdir $(2)),$(3))
endef endef
......
...@@ -53,8 +53,8 @@ define gb_Gallery__make_env_args ...@@ -53,8 +53,8 @@ define gb_Gallery__make_env_args
$(call gb_Helper_make_url,$(call gb_ComponentTarget_get_target_for_build,$(item))))" \ $(call gb_Helper_make_url,$(call gb_ComponentTarget_get_target_for_build,$(item))))" \
"-env:UNO_TYPES=$(foreach item,$(gb_Gallery__UNO_TYPES),\ "-env:UNO_TYPES=$(foreach item,$(gb_Gallery__UNO_TYPES),\
$(call gb_Helper_make_url,$(call gb_UnoApi_get_target,$(item))))" \ $(call gb_Helper_make_url,$(call gb_UnoApi_get_target,$(item))))" \
$(foreach dir,URE_INTERNAL_LIB_DIR LO_LIB_DIR,\ -env:URE_INTERNAL_LIB_DIR=$(call gb_Helper_make_url,$(gb_INSTROOT)/$(LIBO_URE_LIB_FOLDER)) \
-env:$(dir)=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR))) -env:LO_LIB_DIR=$(call gb_Helper_make_url,$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME))
endef endef
define gb_Gallery__command define gb_Gallery__command
......
...@@ -215,17 +215,6 @@ $(1) : $(2) | $(dir $(1)).dir ...@@ -215,17 +215,6 @@ $(1) : $(2) | $(dir $(1)).dir
$(call gb_Deliver_add_deliverable,$(1),$(2),$(1)) $(call gb_Deliver_add_deliverable,$(1),$(2),$(1))
endef endef
# 4th parameter overrides 3rd for the dependency, necessary for Library
# which needs to copy DLL but that must not be a real target...
define gb_Library__install
$(1) :| $(2)
$(2) : $(4) | $(dir $(2)).dir
cp $(3) $$@
$(call gb_Deliver_add_deliverable,$(2),$(3),$(2))
endef
# gb_Helper_OUTDIRLIBDIR is set by the platform to the path the dynamic linker need to use # gb_Helper_OUTDIRLIBDIR is set by the platform to the path the dynamic linker need to use
# for libraries from the OUTDIR # for libraries from the OUTDIR
......
...@@ -57,7 +57,7 @@ $(call gb_JunitTest_get_target,%) : ...@@ -57,7 +57,7 @@ $(call gb_JunitTest_get_target,%) :
$(CLEAN_CMD) $(CLEAN_CMD)
define gb_JunitTest_JunitTest define gb_JunitTest_JunitTest
$(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$$(gb_CLASSPATHSEP)$(OUTDIR)/lib $(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$$(gb_CLASSPATHSEP)$(gb_INSTROOT)/$(LIBO_URE_LIB_FOLDER)
$(call gb_JunitTest_get_target,$(1)) : CLASSES := $(call gb_JunitTest_get_target,$(1)) : CLASSES :=
$(eval $(call gb_JunitTest_JunitTest_platform,$(1))) $(eval $(call gb_JunitTest_JunitTest_platform,$(1)))
......
...@@ -30,22 +30,26 @@ ...@@ -30,22 +30,26 @@
# gb_Library_Library_platform # gb_Library_Library_platform
gb_Library_LAYER_DIRS := \ gb_Library_LAYER_DIRS := \
OOO:$(gb_PROGRAMDIRNAME) \ URELIB:$(gb_INSTROOT)/$(LIBO_URE_LIB_FOLDER) \
URELIB:$(LIBO_URE_LIB_FOLDER) OOO:$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME) \
OXT:$(WORKDIR)/LinkTarget/ExtensionLibrary \
NONE:$(gb_Library_DLLDIR) \
# doesn't do anything, just used for hooking up component target # doesn't do anything, just used for hooking up component target
.PHONY: $(call gb_Library__get_final_target,%) .PHONY: $(call gb_Library__get_final_target,%)
# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) .PHONY : $(WORKDIR)/Clean/Library/%
$(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) : $(WORKDIR)/Clean/Library/% :
$(call gb_Helper_abbreviate_dirs,\ $(call gb_Helper_abbreviate_dirs,\
rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \ rm -f $(call gb_Library_get_exports_target,$*) \
$(AUXTARGETS)) $(AUXTARGETS))
gb_Library__get_dir_for_layer = $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_LAYER_DIRS))) gb_Library__get_dir_for_layer = $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_LAYER_DIRS)))
gb_Library_get_instdir = $(call gb_Library__get_dir_for_layer,$(call gb_Library_get_layer,$(1))) gb_Library_get_instdir = $(call gb_Library__get_dir_for_layer,$(call gb_Library_get_layer,$(1)))
gb_Library_get_install_target = $(gb_INSTROOT)/$(call gb_Library_get_instdir,$(1))/$(call gb_Library_get_runtime_filename,$(1)) gb_Library_get_install_target = $(call gb_Library_get_instdir,$(1))/$(call gb_Library_get_runtime_filename,$(1))
gb_Library_get_ilib_target = $(if $(filter $(1),$(gb_Library_RTVERLIBS) $(gb_Library_UNOVERLIBS)),$(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib/$(call gb_Library_get_ilibfilename,$(1)),$(gb_Library_DLLDIR)/$(call gb_Library_get_ilibfilename,$(1)))
define gb_Library_Library define gb_Library_Library
$(call gb_Postprocess_register_target,AllLibraries,Library,$(1)) $(call gb_Postprocess_register_target,AllLibraries,Library,$(1))
...@@ -73,63 +77,47 @@ endef ...@@ -73,63 +77,47 @@ endef
# call gb_Library__Library_impl,library,linktarget # call gb_Library__Library_impl,library,linktarget
define gb_Library__Library_impl define gb_Library__Library_impl
$(call gb_LinkTarget_LinkTarget,$(2),Library_$(1)) $(call gb_LinkTarget_LinkTarget,$(2),Library_$(1),$(call gb_Library_get_layer,$(1)))
$(call gb_LinkTarget_set_targettype,$(2),Library) $(call gb_LinkTarget_set_targettype,$(2),Library)
$(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS)) $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
$(call gb_LinkTarget_add_defs,$(2),\ $(call gb_LinkTarget_add_defs,$(2),\
$(gb_Library_DEFS) \ $(gb_Library_DEFS) \
) )
$(call gb_Library__get_final_target,$(1)) : $(call gb_Library_get_target,$(1)) $(call gb_Library__get_final_target,$(1)) : $(call gb_Library_get_target,$(1))
$(call gb_Library_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \ $(call gb_Library_get_exports_target,$(1)) : $(call gb_Library_get_target,$(1))
| $(dir $(call gb_Library_get_target,$(1))).dir $(call gb_Library_get_target,$(1)) : \
| $(dir $(call gb_Library_get_target,$(1))).dir \
$(dir $(call gb_Library_get_ilib_target,$(1))).dir \
$(gb_Library_DLLDIR)/.dir
$(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2)) $(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Library_get_clean_target,$(1)) : AUXTARGETS :=
$(call gb_Library_Library_platform,$(1),$(2),$(gb_Library_DLLDIR)/$(call gb_Library_get_ilibfilename,$(1))) $(call gb_Library_Library_platform,$(1),$(2),$(call gb_Library_get_ilib_target,$(1)))
$(if $(and $(call gb_Library_get_instdir,$(1)),$(filter-out $(gb_MERGEDLIBS),$(1))),\
$(call gb_Library__install,$(call gb_Library__get_final_target,$(1)), \
$(call gb_Library_get_install_target,$(1)), \
$(gb_Library_DLLDIR)/$(call gb_Library_get_runtime_filename,$(1)), \
$(call gb_LinkTarget_get_target,$(2))) \
)
$$(eval $$(call gb_Module_register_target,$(call gb_Library__get_final_target,$(1)),$(call gb_Library_get_clean_target,$(1)))) $$(eval $$(call gb_Module_register_target,$(call gb_Library__get_final_target,$(1)),$(call gb_Library_get_clean_target,$(1))))
$(call gb_Helper_make_userfriendly_targets,$(1),Library,$(call gb_Library__get_final_target,$(1))) $(call gb_Helper_make_userfriendly_targets,$(1),Library,$(call gb_Library__get_final_target,$(1)))
$(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
endef endef
# Custom definition that does not simply forward to LinkTarget,
# because there are cases where the auxtargets are not delivered to solver...
# The auxtarget is delivered via the rule in Package.mk.
# gb_Library_add_auxtarget library outdirauxtarget
define gb_Library_add_auxtarget define gb_Library_add_auxtarget
$(call gb_LinkTarget_add_auxtarget,$(call gb_Library_get_linktarget,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))))/$(notdir $(2))) $(call gb_Output_error,gb_Library_add_auxtarget should no longer be necessary)
$(call gb_Library_get_target,$(1)) : $(2)
$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))))/$(notdir $(2))
$(2) :| $(dir $(2)).dir
$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS += $(2)
endef endef
define gb_Library_add_auxtargets define gb_Library_add_auxtargets
$(foreach aux,$(2),$(call gb_Library_add_auxtarget,$(1),$(aux))) $(call gb_Output_error,gb_Library_add_auxtargets should no longer be necessary)
endef endef
# we actually (ab)use ILIBTARGET here to store the unversioned symlink - # we actually (ab)use ILIBTARGET here to store the unversioned symlink -
# it serves a similar purpose to an MSVC import library, as input for linker # it serves a similar purpose to an MSVC import library, as input for linker
# call gb_Library__add_soversion_link,library,linkname # call gb_Library__add_soversion_link,library,linkname
define gb_Library__add_soversion_link define gb_Library__add_soversion_link
$(call gb_Library_add_auxtarget,$(1),$(OUTDIR)/lib/$(notdir $(2)))
$(call gb_LinkTarget_set_ilibtarget,$(call gb_Library_get_linktarget,$(1)),$(2)) $(call gb_LinkTarget_set_ilibtarget,$(call gb_Library_get_linktarget,$(1)),$(2))
endef endef
define gb_Library__set_soversion_script define gb_Library__set_soversion_script
$(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2)) $(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2))
$(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_workdir_target_versionlink,$(1))) $(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_versionlink_target,$(1)))
endef endef
......
...@@ -54,6 +54,15 @@ gb_LinkTarget__get_objcxxflags=$(if $(OBJCXXFLAGS),$(OBJCXXFLAGS),$(call gb_Link ...@@ -54,6 +54,15 @@ gb_LinkTarget__get_objcxxflags=$(if $(OBJCXXFLAGS),$(OBJCXXFLAGS),$(call gb_Link
# call gb_LinkTarget__get_ldflags,linktargetmakefilename # call gb_LinkTarget__get_ldflags,linktargetmakefilename
gb_LinkTarget__get_ldflags=$(if $(LDFLAGS),$(LDFLAGS),$(call gb_LinkTarget__get_debugldflags,$(1))) gb_LinkTarget__get_ldflags=$(if $(LDFLAGS),$(LDFLAGS),$(call gb_LinkTarget__get_debugldflags,$(1)))
gb_LinkTarget_LAYER_LINKPATHS := \
URELIB:URELIB. \
UREBIN:URELIB. \
SDKBIN:URELIB. \
OOO:URELIB+OOO. \
OXT:OXT. \
NONE:URELIB+OOO+NONE. \
# Overview of dependencies and tasks of LinkTarget # Overview of dependencies and tasks of LinkTarget
# #
# target task depends on # target task depends on
...@@ -378,11 +387,10 @@ $(WORKDIR)/Clean/LinkTarget/% : ...@@ -378,11 +387,10 @@ $(WORKDIR)/Clean/LinkTarget/% :
$(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_dep_target,$(object))) \ $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_dep_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_dep_target,$(object))) \ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_dep_target,$(object))) \
$(call gb_LinkTarget_get_target,$*) \ $(call gb_LinkTarget_get_target,$(LINKTARGET)) \
$(call gb_LinkTarget_get_dep_target,$*) \ $(call gb_LinkTarget_get_dep_target,$(LINKTARGET)) \
$(call gb_LinkTarget_get_headers_target,$*) \ $(call gb_LinkTarget_get_headers_target,$(LINKTARGET)) \
$(call gb_LinkTarget_get_objects_list,$*) \ $(call gb_LinkTarget_get_objects_list,$(LINKTARGET)) \
$(call gb_LinkTarget_get_target,$*).exports \
$(ILIBTARGET) \ $(ILIBTARGET) \
$(AUXTARGETS)) && \ $(AUXTARGETS)) && \
cat $${RESPONSEFILE} /dev/null | xargs -n 200 rm -fr && \ cat $${RESPONSEFILE} /dev/null | xargs -n 200 rm -fr && \
...@@ -425,12 +433,15 @@ mv $${TEMPFILE} $(1) ...@@ -425,12 +433,15 @@ mv $${TEMPFILE} $(1)
endef endef
$(WORKDIR)/LinkTarget/%/.dir :
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
# Target for the .exports of the shared library, to speed up incremental build. # Target for the .exports of the shared library, to speed up incremental build.
# This deliberately does nothing if the file exists; the file is actually # This deliberately does nothing if the file exists; the file is actually
# written in gb_LinkTarget__command_dynamiclink. # written in gb_LinkTarget__command_dynamiclink.
# Put this pattern rule here so it overrides the one below. # Put this pattern rule here so it overrides the one below.
# (this is rather ugly: because of % the functions cannot be used) # (this is rather ugly: because of % the functions cannot be used)
$(WORKDIR)/LinkTarget/Library/%.exports : $(gb_Library_OUTDIRLOCATION)/% $(WORKDIR)/LinkTarget/Library/%.exports :
$(if $(wildcard $@),,mkdir -p $(dir $@) && touch $@) $(if $(wildcard $@),,mkdir -p $(dir $@) && touch $@)
# This recipe actually also builds the dep-target as a side-effect, which # This recipe actually also builds the dep-target as a side-effect, which
...@@ -439,6 +450,16 @@ $(WORKDIR)/LinkTarget/Library/%.exports : $(gb_Library_OUTDIRLOCATION)/% ...@@ -439,6 +450,16 @@ $(WORKDIR)/LinkTarget/Library/%.exports : $(gb_Library_OUTDIRLOCATION)/%
$(WORKDIR)/LinkTarget/% : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY) $(WORKDIR)/LinkTarget/% : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY)
$(call gb_LinkTarget__command_impl,$@,$*) $(call gb_LinkTarget__command_impl,$@,$*)
# call gb_LinkTarget__make_installed_rule,linktarget
define gb_LinkTarget__make_installed_rule
$(call gb_LinkTarget_get_target,$(1)) : $(call gb_LinkTarget_get_headers_target,$(1))
$$(call gb_LinkTarget__command_impl,$(call gb_LinkTarget_get_target,$(1)),$(call gb_LinkTarget__get_workdir_linktargetname,$(1)))
endef
# it's not possible to use a pattern rule for files in INSTDIR because
# it would inevitably conflict with the pattern rule for Package
# (especially since external libraries are delivered via Package)
# call gb_LinkTarget__command_impl,linktargettarget,linktargetname # call gb_LinkTarget__command_impl,linktargettarget,linktargetname
define gb_LinkTarget__command_impl define gb_LinkTarget__command_impl
$(if $(gb_FULLDEPS),\ $(if $(gb_FULLDEPS),\
...@@ -448,7 +469,7 @@ define gb_LinkTarget__command_impl ...@@ -448,7 +469,7 @@ define gb_LinkTarget__command_impl
$(if $(filter $(true),$(call gb_LinkTarget__is_build_lib,$(2))),\ $(if $(filter $(true),$(call gb_LinkTarget__is_build_lib,$(2))),\
$(call gb_LinkTarget__command,$(1),$(2)),\ $(call gb_LinkTarget__command,$(1),$(2)),\
mkdir -p $(dir $(1)) && echo invalid > $(1) \ mkdir -p $(dir $(1)) && echo invalid > $(1) \
$(if $(SOVERSIONSCRIPT),&& echo invalid > $(basename $(1)))),\ $(if $(SOVERSIONSCRIPT),&& echo invalid > $(WORKDIR)/LinkTarget/$(2))),\
$(call gb_LinkTarget__command,$(1),$(2))) $(call gb_LinkTarget__command,$(1),$(2)))
$(call gb_LinkTarget__command_objectlist,$(WORKDIR)/LinkTarget/$(2).objectlist) $(call gb_LinkTarget__command_objectlist,$(WORKDIR)/LinkTarget/$(2).objectlist)
endef endef
...@@ -515,8 +536,9 @@ $(call gb_LinkTarget_get_headers_target,%) : ...@@ -515,8 +536,9 @@ $(call gb_LinkTarget_get_headers_target,%) :
# local variable of the same name is considered obscure, the target local # local variable of the same name is considered obscure, the target local
# variables have a T_ prefix. # variables have a T_ prefix.
# #
# call gb_LinkTarget_LinkTarget,linktarget,linktargetmakefilename # call gb_LinkTarget_LinkTarget,linktarget,linktargetmakefilename,layer
define gb_LinkTarget_LinkTarget define gb_LinkTarget_LinkTarget
$(call gb_LinkTarget_get_clean_target,$(1)) : LINKTARGET := $(1)
$(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS := $(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS :=
$(call gb_LinkTarget_get_headers_target,$(1)) : SELF := $(call gb_LinkTarget__get_workdir_linktargetname,$(1)) $(call gb_LinkTarget_get_headers_target,$(1)) : SELF := $(call gb_LinkTarget__get_workdir_linktargetname,$(1))
$(call gb_LinkTarget_get_target,$(1)) : ILIBTARGET := $(call gb_LinkTarget_get_target,$(1)) : ILIBTARGET :=
...@@ -563,7 +585,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS ...@@ -563,7 +585,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS
$(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE) $(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE)
$(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS := $$(gb_LinkTarget_LDFLAGS) $(call gb_LinkTarget__get_ldflags,$(2)) $(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_LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS := $(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : LIBS := $(call gb_LinkTarget_get_target,$(1)) : LIBS :=
...@@ -611,6 +633,9 @@ endif ...@@ -611,6 +633,9 @@ endif
gb_LinkTarget_CXX_SUFFIX_$(call gb_LinkTarget__get_workdir_linktargetname,$(1)) := cxx gb_LinkTarget_CXX_SUFFIX_$(call gb_LinkTarget__get_workdir_linktargetname,$(1)) := cxx
# installed linktargets need a rule to build!
$(if $(findstring $(INSTDIR),$(1)),$(call gb_LinkTarget__make_installed_rule,$(1)))
endef endef
# call gb_LinkTarget_set_soversion_script,linktarget,soversionscript # call gb_LinkTarget_set_soversion_script,linktarget,soversionscript
......
...@@ -41,6 +41,7 @@ $(call gb_PythonTest_get_target,%) : ...@@ -41,6 +41,7 @@ $(call gb_PythonTest_get_target,%) :
$(if $(G_SLICE),G_SLICE=$(G_SLICE)) \ $(if $(G_SLICE),G_SLICE=$(G_SLICE)) \
$(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \ $(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \
$(DEFS) \ $(DEFS) \
TEST_LIB=$(call gb_Library_get_target,test) \
URE_BOOTSTRAP=vnd.sun.star.pathname:$(call gb_Helper_get_rcfile,$(gb_DEVINSTALLROOT)/$(LIBO_ETC_FOLDER)/fundamental) \ URE_BOOTSTRAP=vnd.sun.star.pathname:$(call gb_Helper_get_rcfile,$(gb_DEVINSTALLROOT)/$(LIBO_ETC_FOLDER)/fundamental) \
PYTHONPATH="$(PYPATH)" \ PYTHONPATH="$(PYPATH)" \
UserInstallation=$(call gb_Helper_make_url,$(dir $(call gb_PythonTest_get_target,$*))user) \ UserInstallation=$(call gb_Helper_make_url,$(dir $(call gb_PythonTest_get_target,$*))user) \
......
...@@ -42,7 +42,7 @@ endef ...@@ -42,7 +42,7 @@ endef
# call gb_StaticLibrary__StaticLibrary_impl,staticlib,linktarget # call gb_StaticLibrary__StaticLibrary_impl,staticlib,linktarget
define gb_StaticLibrary__StaticLibrary_impl define gb_StaticLibrary__StaticLibrary_impl
$(call gb_LinkTarget_LinkTarget,$(2),StaticLibrary_$(1)) $(call gb_LinkTarget_LinkTarget,$(2),StaticLibrary_$(1),NONE)
$(call gb_LinkTarget_set_targettype,$(2),StaticLibrary) $(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)) : $(call gb_LinkTarget_get_target,$(2)) \
| $(dir $(call gb_StaticLibrary_get_target,$(1))).dir | $(dir $(call gb_StaticLibrary_get_target,$(1))).dir
......
...@@ -53,9 +53,8 @@ define gb_Executable_get_target_for_build ...@@ -53,9 +53,8 @@ define gb_Executable_get_target_for_build
$(patsubst $(1):%,$(OUTDIR_FOR_BUILD)/bin/%,$(filter $(1):%,$(gb_Executable_FILENAMES_FOR_BUILD))) $(patsubst $(1):%,$(OUTDIR_FOR_BUILD)/bin/%,$(filter $(1):%,$(gb_Executable_FILENAMES_FOR_BUILD)))
endef endef
define gb_Library_get_target # FIXME: cleanup?
$(patsubst $(1):%,$(gb_Library_OUTDIRLOCATION)/%,$(filter $(1):%,$(gb_Library_FILENAMES))) gb_Library_get_target = $(gb_Library__get_linktarget_target)
endef
define gb_StaticLibrary_get_target define gb_StaticLibrary_get_target
$(gb_StaticLibrary_OUTDIRLOCATION)/$(call gb_StaticLibrary_get_filename,$(1)) $(gb_StaticLibrary_OUTDIRLOCATION)/$(call gb_StaticLibrary_get_filename,$(1))
...@@ -232,8 +231,8 @@ define gb_Library_get_exports_target ...@@ -232,8 +231,8 @@ define gb_Library_get_exports_target
$(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)).exports $(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)).exports
endef endef
define gb_Library_get_workdir_target_versionlink define gb_Library_get_versionlink_target
$(WORKDIR)/LinkTarget/$(basename $(call gb_Library__get_workdir_linktargetname,$(1))) $(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib/$(basename $(call gb_Library_get_filename,$(1)))
endef endef
gb_Library__get_final_target = $(WORKDIR)/Dummy/$(1) gb_Library__get_final_target = $(WORKDIR)/Dummy/$(1)
...@@ -280,6 +279,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ ...@@ -280,6 +279,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
JavaClassSet \ JavaClassSet \
Jar \ Jar \
JunitTest \ JunitTest \
Library \
Module \ Module \
PackagePart \ PackagePart \
Package \ Package \
...@@ -330,7 +330,6 @@ $(eval $(call gb_Helper_make_outdir_clean_targets,\ ...@@ -330,7 +330,6 @@ $(eval $(call gb_Helper_make_outdir_clean_targets,\
CliNativeLibrary \ CliNativeLibrary \
CliUnoApi \ CliUnoApi \
InstallScript \ InstallScript \
Library \
StaticLibrary \ StaticLibrary \
UnoApi \ UnoApi \
)) ))
...@@ -399,7 +398,7 @@ define gb_Library__get_workdir_linktargetname ...@@ -399,7 +398,7 @@ define gb_Library__get_workdir_linktargetname
Library/$(call gb_Library_get_filename,$(1)) Library/$(call gb_Library_get_filename,$(1))
endef endef
define gb_Library__get_linktarget_target define gb_Library__get_linktarget_target
$(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)) $(if $(filter-out $(gb_MERGEDLIBS),$(1)),$(call gb_Library_get_install_target,$(1)),$(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)))
endef endef
# this returns a tuple of both the linktargetname, and the target file # this returns a tuple of both the linktargetname, and the target file
define gb_Library_get_linktarget define gb_Library_get_linktarget
...@@ -430,6 +429,7 @@ endef ...@@ -430,6 +429,7 @@ endef
# static members declared here because they are used globally # static members declared here because they are used globally
gb_Library_WORKDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Library
gb_Executable_BINDIR = $(WORKDIR)/LinkTarget/Executable gb_Executable_BINDIR = $(WORKDIR)/LinkTarget/Executable
# FIXME move platform # FIXME move platform
gb_Library_OUTDIRLOCATION = $(if $(filter WNT,$(OS)),$(OUTDIR)/bin,$(OUTDIR)/lib) gb_Library_OUTDIRLOCATION = $(if $(filter WNT,$(OS)),$(OUTDIR)/bin,$(OUTDIR)/lib)
......
...@@ -219,4 +219,12 @@ gb_StaticLibrary_get_filename = lib$(1).a ...@@ -219,4 +219,12 @@ gb_StaticLibrary_get_filename = lib$(1).a
gb_StaticLibrary_PLAINEXT := .a gb_StaticLibrary_PLAINEXT := .a
gb_StaticLibrary_StaticLibrary_platform := gb_StaticLibrary_StaticLibrary_platform :=
gb_LinkTarget_get_linksearchpath_for_layer = \
-L$(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib \
$(foreach layer,\
$(subst +, ,$(patsubst $(1):%.,%,\
$(filter $(1):%.,$(gb_LinkTarget_LAYER_LINKPATHS)))),\
$(patsubst $(layer):%,-L%,\
$(filter $(layer):%,$(gb_Library_LAYER_DIRS))))
# vim: set noet sw=4 ts=4: # vim: set noet sw=4 ts=4:
...@@ -181,7 +181,7 @@ else ...@@ -181,7 +181,7 @@ else
gb_Helper_LIBRARY_PATH_VAR := LD_LIBRARY_PATH gb_Helper_LIBRARY_PATH_VAR := LD_LIBRARY_PATH
endif endif
gb_Helper_set_ld_path := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY_PATH_VAR):+$$$(gb_Helper_LIBRARY_PATH_VAR):}"$(OUTDIR_FOR_BUILD)/lib:$(INSTDIR)/ure/lib:$(INSTDIR)/program" gb_Helper_set_ld_path := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY_PATH_VAR):+$$$(gb_Helper_LIBRARY_PATH_VAR):}"$(OUTDIR_FOR_BUILD)/lib:$(gb_INSTROOT)/$(LIBO_URE_LIB_FOLDER):$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME)"
# $(1): list of directory pathnames to append at the end of the ld path # $(1): list of directory pathnames to append at the end of the ld path
define gb_Helper_extend_ld_path define gb_Helper_extend_ld_path
...@@ -194,6 +194,5 @@ file://$(strip $(1)) ...@@ -194,6 +194,5 @@ file://$(strip $(1))
endef endef
gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/lib gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/lib
gb_Helper_OUTDIR_FOR_BUILDLIBDIR := $(OUTDIR_FOR_BUILD)/lib
gb_Helper_get_rcfile = $(1)rc gb_Helper_get_rcfile = $(1)rc
...@@ -138,6 +138,7 @@ gb_LinkTarget_INCLUDE :=\ ...@@ -138,6 +138,7 @@ gb_LinkTarget_INCLUDE :=\
gb_LinkTarget_get_pdbfile = \ gb_LinkTarget_get_pdbfile = \
$(WORKDIR)/LinkTarget/pdb/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).pdb $(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 = \ gb_LinkTarget_get_pdbfile2 = \
$(WORKDIR)/LinkTarget/$(patsubst %.dll,%.pdb,$(patsubst %.pyd,%.dll,$(call gb_LinkTarget__get_workdir_linktargetname,$(1)))) $(WORKDIR)/LinkTarget/$(patsubst %.dll,%.pdb,$(patsubst %.pyd,%.dll,$(call gb_LinkTarget__get_workdir_linktargetname,$(1))))
gb_LinkTarget_get_ilkfile = \ gb_LinkTarget_get_ilkfile = \
...@@ -145,6 +146,12 @@ gb_LinkTarget_get_ilkfile = \ ...@@ -145,6 +146,12 @@ gb_LinkTarget_get_ilkfile = \
gb_LinkTarget_get_manifestfile = \ gb_LinkTarget_get_manifestfile = \
$(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).manifest $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).manifest
gb_LinkTarget_get_linksearchpath_for_layer = \
-LIBPATH:$(INSTDIR)/$(gb_Package_SDKDIRNAME)/lib \
$(if $(filter OXT,$(1)),\
-LIBPATH:$(WORKDIR)/LinkTarget/ExtensionLibrary, \
-LIBPATH:$(WORKDIR)/LinkTarget/Library)
# avoid fatal error LNK1170 for Library_merged # avoid fatal error LNK1170 for Library_merged
define gb_LinkTarget_MergedResponseFile define gb_LinkTarget_MergedResponseFile
cut -f -1000 -d ' ' $${RESPONSEFILE} > $${RESPONSEFILE}.1 && \ cut -f -1000 -d ' ' $${RESPONSEFILE} > $${RESPONSEFILE}.1 && \
...@@ -190,18 +197,22 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -190,18 +197,22 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \
$(LIBS) \ $(LIBS) \
$(if $(filter-out StaticLibrary,$(TARGETTYPE)),user32.lib) \ $(if $(filter-out StaticLibrary,$(TARGETTYPE)),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} \ $(if $(ILIBTARGET),-out:$(1) -implib:$(ILIBTARGET),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \
$(if $(ILIBTARGET),; if [ ! -f $(ILIBTARGET) ]; then rm -f $(1) && false; fi) \ $(if $(filter Library,$(TARGETTYPE)),; if [ ! -f $(ILIBTARGET) ]; then rm -f $(1); exit 42; fi) \
$(if $(filter Library,$(TARGETTYPE)),&& if [ -f $(1).manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(1).manifest -outputresource:$(1)\;2 && touch -r $(1) $(1).manifest $(ILIBTARGET); fi) \ $(if $(filter Library,$(TARGETTYPE)),&& if [ -f $(WORKDIR)/LinkTarget/$(2).manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(WORKDIR)/LinkTarget/$(2).manifest -outputresource:$(1)\;2 && touch -r $(1) $(WORKDIR)/LinkTarget/$(2).manifest $(ILIBTARGET); fi) \
$(if $(filter Executable,$(TARGETTYPE)),&& if [ -f $(1).manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(1).manifest -outputresource:$(1)\;1 && touch -r $(1) $(1).manifest; fi) \ $(if $(filter Executable,$(TARGETTYPE)),&& if [ -f $(WORKDIR)/LinkTarget/$(2).manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(WORKDIR)/LinkTarget/$(2).manifest -outputresource:$(1)\;1 && touch -r $(1) $(WORKDIR)/LinkTarget/$(2).manifest; fi) \
$(if $(filter YES,$(TARGETGUI)),&& if [ -f $(SRCDIR)/solenv/inc/DeclareDPIAware.manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(SRCDIR)/solenv/inc/DeclareDPIAware.manifest -updateresource:$(1)\;1 ; fi) \ $(if $(filter YES,$(TARGETGUI)),&& if [ -f $(SRCDIR)/solenv/inc/DeclareDPIAware.manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(SRCDIR)/solenv/inc/DeclareDPIAware.manifest -updateresource:$(1)\;1 ; fi) \
$(if $(filter Library,$(TARGETTYPE)),&& \ $(if $(filter Library,$(TARGETTYPE)),&& \
echo $(notdir $(1)) > $(1).exports.tmp && \ echo $(notdir $(1)) > $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
$(if $(filter YES,$(LIBRARY_X64)),$(LINK_X64_BINARY),$(gb_LINK)) \ $(if $(filter YES,$(LIBRARY_X64)),$(LINK_X64_BINARY),$(gb_LINK)) \
-dump -exports $(ILIBTARGET) >> $(1).exports.tmp && \ -dump -exports $(ILIBTARGET) \
if cmp -s $(1).exports.tmp $(1).exports; \ >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
then rm $(1).exports.tmp; \ if cmp -s $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports; \
else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ then rm $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
else mv $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports && \
touch -r $(1) $(WORKDIR)/LinkTarget/$(2).exports; \
fi) \ fi) \
; exit $$RC) ; exit $$RC)
endef endef
...@@ -287,22 +298,9 @@ $(call gb_LinkTarget_add_auxtargets,$(2),\ ...@@ -287,22 +298,9 @@ $(call gb_LinkTarget_add_auxtargets,$(2),\
$(patsubst %.lib,%.exp,$(3)) \ $(patsubst %.lib,%.exp,$(3)) \
$(call gb_LinkTarget_get_manifestfile,$(2)) \ $(call gb_LinkTarget_get_manifestfile,$(2)) \
$(call gb_LinkTarget_get_pdbfile,$(2)) \ $(call gb_LinkTarget_get_pdbfile,$(2)) \
)
$(call gb_Library_add_auxtarget,$(1),$(OUTDIR)/lib/$(notdir $(3)))
# substitute .pyd here because pyuno has to follow python's crazy conventions
ifneq ($(ENABLE_CRASHDUMP),)
$(call gb_Library_add_auxtargets,$(1),\
$(OUTDIR)/bin/$(patsubst %.dll,%.pdb,$(patsubst %.pyd,%.dll,$(call gb_Library_get_filename,$(1)))) \
$(OUTDIR)/bin/$(patsubst %.dll,%.ilk,$(patsubst %.pyd,%.dll,$(call gb_Library_get_filename,$(1)))) \
)
else
$(call gb_LinkTarget_add_auxtargets,$(2),\
$(call gb_LinkTarget_get_pdbfile2,$(2)) \ $(call gb_LinkTarget_get_pdbfile2,$(2)) \
$(call gb_LinkTarget_get_ilkfile,$(2)) \ $(call gb_LinkTarget_get_ilkfile,$(2)) \
) )
endif
$(call gb_Library_add_default_nativeres,$(1),$(1)/default) $(call gb_Library_add_default_nativeres,$(1),$(1)/default)
...@@ -390,7 +388,7 @@ endef ...@@ -390,7 +388,7 @@ endef
gb_CppunitTest_DEFS := -D_DLL gb_CppunitTest_DEFS := -D_DLL
# cppunittester.exe is in the cppunit subdirectory of ${OUTDIR}/bin, # cppunittester.exe is in the cppunit subdirectory of ${OUTDIR}/bin,
# thus it won't find its DLLs unless ${OUTDIR}/bin is added to PATH. # thus it won't find its DLLs unless ${OUTDIR}/bin is added to PATH.
gb_CppunitTest_CPPTESTPRECOMMAND := $(gb_Helper_set_ld_path) gb_CppunitTest_CPPTESTPRECOMMAND := $(gb_Helper_set_ld_path):"$(shell cygpath -w $(gb_Library_DLLDIR))"
gb_CppunitTest_LIBDIR := $(gb_Helper_OUTDIRLIBDIR) gb_CppunitTest_LIBDIR := $(gb_Helper_OUTDIRLIBDIR)
gb_CppunitTest_get_filename = test_$(1).dll gb_CppunitTest_get_filename = test_$(1).dll
...@@ -542,7 +540,7 @@ gb_InstallScript_EXT := .inf ...@@ -542,7 +540,7 @@ gb_InstallScript_EXT := .inf
# CliAssemblyTarget class # CliAssemblyTarget class
gb_CliAssemblyTarget_POLICYEXT := $(gb_Library_DLLEXT) gb_CliAssemblyTarget_POLICYEXT := $(gb_Library_DLLEXT)
gb_CliAssemblyTarget_get_dll = $(OUTDIR)/bin/$(1)$(gb_CliAssemblyTarget_POLICYEXT) gb_CliAssemblyTarget_get_dll = $(call gb_Library__get_dir_for_layer,URELIB)/$(1)$(gb_CliAssemblyTarget_POLICYEXT)
# Extension class # Extension class
......
...@@ -303,9 +303,8 @@ gb_LTOFLAGS := $(if $(filter TRUE,$(ENABLE_LTO)),-GL) ...@@ -303,9 +303,8 @@ gb_LTOFLAGS := $(if $(filter TRUE,$(ENABLE_LTO)),-GL)
# Helper class # Helper class
gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/bin gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/bin
gb_Helper_OUTDIR_FOR_BUILDLIBDIR := $(OUTDIR_FOR_BUILD)/bin
# need windows path with backslashes here # need windows path with backslashes here
gb_Helper_set_ld_path := PATH="$(shell cygpath -w $(OUTDIR)/bin)" gb_Helper_set_ld_path := PATH="$(shell cygpath -w $(OUTDIR)/bin);$(shell cygpath -w $(INSTDIR)/$(LIBO_URE_LIB_FOLDER));$(shell cygpath -w $(INSTDIR)/$(gb_PROGRAMDIRNAME))"
# vim: set noet sw=4: # vim: set noet sw=4:
...@@ -153,7 +153,7 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -153,7 +153,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(LIBS) \ $(LIBS) \
$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
-o $(1) && \ -o $(1) && \
$(if $(SOVERSIONSCRIPT),ln -sf $(notdir $(1)) $(ILIBTARGET),:) && \ $(if $(SOVERSIONSCRIPT),ln -sf $(1) $(ILIBTARGET),:) && \
$(if $(filter Executable,$(TARGETTYPE)), \ $(if $(filter Executable,$(TARGETTYPE)), \
$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app $(LAYER) $(1) &&) \ $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app $(LAYER) $(1) &&) \
$(if $(filter Library Bundle CppunitTest,$(TARGETTYPE)),\ $(if $(filter Library Bundle CppunitTest,$(TARGETTYPE)),\
...@@ -162,12 +162,14 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -162,12 +162,14 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(filter Executable,$(TARGETTYPE)), \ $(if $(filter Executable,$(TARGETTYPE)), \
(codesign --identifier=$(MACOSX_BUNDLE_IDENTIFIER).$(notdir $(1)) --sign $(MACOSX_CODESIGNING_IDENTITY) --force $(1) || true) &&)) \ (codesign --identifier=$(MACOSX_BUNDLE_IDENTIFIER).$(notdir $(1)) --sign $(MACOSX_CODESIGNING_IDENTITY) --force $(1) || true) &&)) \
$(if $(filter Library,$(TARGETTYPE)),\ $(if $(filter Library,$(TARGETTYPE)),\
otool -l $(1) | grep -A 5 LC_ID_DYLIB > $(1).exports.tmp && \ otool -l $(1) | grep -A 5 LC_ID_DYLIB \
> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
$(NM) -g -P $(1) | cut -d' ' -f1-2 | grep -v U$$ \ $(NM) -g -P $(1) | cut -d' ' -f1-2 | grep -v U$$ \
>> $(1).exports.tmp && \ >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
if cmp -s $(1).exports.tmp $(1).exports; \ if cmp -s $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports; \
then rm $(1).exports.tmp; \ then rm $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ else mv $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports && \
touch -r $(1) $(WORKDIR)/LinkTarget/$(2).exports; \
fi &&) \ fi &&) \
:) :)
endef endef
...@@ -281,7 +283,7 @@ endef ...@@ -281,7 +283,7 @@ endef
# CppunitTest class # CppunitTest class
gb_CppunitTest_CPPTESTPRECOMMAND := $(gb_Helper_set_ld_path) gb_CppunitTest_CPPTESTPRECOMMAND := $(gb_Helper_set_ld_path):"$(gb_Library_DLLDIR)"
gb_CppunitTest_LIBDIR := $(gb_Helper_OUTDIRLIBDIR) gb_CppunitTest_LIBDIR := $(gb_Helper_OUTDIRLIBDIR)
gb_CppunitTest_get_filename = libtest_$(1).dylib gb_CppunitTest_get_filename = libtest_$(1).dylib
gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename) gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
......
...@@ -111,7 +111,7 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -111,7 +111,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(LINKED_STATIC_LIBS),-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group) \ $(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))))) \ $(patsubst lib%.a,-l%,$(patsubst lib%.dll.a,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))))) \
$(LIBS) \ $(LIBS) \
-Wl$(COMMA)-Map$(COMMA)$(basename $(1)).map \ -Wl$(COMMA)-Map$(COMMA)$(WORKDIR)/LinkTarget/$(2).map \
-o $(1))) -o $(1)))
endef endef
...@@ -131,7 +131,7 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -131,7 +131,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(LINKED_STATIC_LIBS),-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group) \ $(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))))) \ $(patsubst lib%.a,-l%,$(patsubst lib%.dll.a,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_ilibfilename,$(lib))))) \
$(LIBS) \ $(LIBS) \
-Wl$(COMMA)-Map$(COMMA)$(dir $(1))$(notdir $(basename $(1)).map) \ -Wl$(COMMA)-Map$(COMMA)$(WORKDIR)/LinkTarget/$(2).map \
-Wl$(COMMA)--out-implib$(COMMA)$(ILIBTARGET) \ -Wl$(COMMA)--out-implib$(COMMA)$(ILIBTARGET) \
-o $(1) \ -o $(1) \
$(if $(findstring s,$(MAKEFLAGS)),> /dev/null)) $(if $(findstring s,$(MAKEFLAGS)),> /dev/null))
...@@ -161,6 +161,8 @@ define gb_LinkTarget_use_system_win32_libs ...@@ -161,6 +161,8 @@ define gb_LinkTarget_use_system_win32_libs
$(call gb_LinkTarget_add_libs,$(1),$(foreach lib,$(2),-l$(patsubst oldnames,moldname,$(lib)))) $(call gb_LinkTarget_add_libs,$(1),$(foreach lib,$(2),-l$(patsubst oldnames,moldname,$(lib))))
endef endef
gb_LinkTarget_get_mapfile = \
$(WORKDIR)/LinkTarget/$(patsubst %.dll,%.map,$(call gb_LinkTarget__get_workdir_linktargetname,$(1)))
# Library class # Library class
...@@ -228,9 +230,9 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3)) ...@@ -228,9 +230,9 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
$(call gb_Library_get_target,$(1)) :| $(OUTDIR)/bin/.dir $(call gb_Library_get_target,$(1)) :| $(OUTDIR)/bin/.dir
$(call gb_Library_add_auxtargets,$(1), \ $(call gb_LinkTarget_add_auxtargets,$(2), \
$(OUTDIR)/bin/$(notdir $(3)) \ $(3) \
$(OUTDIR)/bin/$(patsubst %.dll,%.map,$(call gb_Library_get_filename,$(1))) \ $(call gb_LinkTarget_get_mapfile,$(2)) \
) )
$(call gb_Library_add_default_nativeres,$(1),$(1)/default) $(call gb_Library_add_default_nativeres,$(1),$(1)/default)
...@@ -289,7 +291,7 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3)) ...@@ -289,7 +291,7 @@ $(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
$(call gb_LinkTarget_add_auxtargets,$(2),\ $(call gb_LinkTarget_add_auxtargets,$(2),\
$(3) \ $(3) \
$(patsubst %.dll,%.map,$(call gb_LinkTarget_get_target,$(2))) \ $(call gb_LinkTarget_get_mapfile,$(2)) \
) )
endef endef
......
...@@ -154,7 +154,7 @@ gb_LinkTarget__RPATHS := \ ...@@ -154,7 +154,7 @@ gb_LinkTarget__RPATHS := \
OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
SDKBIN:\dORIGIN/../../ure-link/lib \ SDKBIN:\dORIGIN/../../ure-link/lib \
OXT: \ OXT: \
NONE:\dORIGIN/../lib:\dORIGIN \ NONE:\dORIGIN/../Library \
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR)
gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
...@@ -187,15 +187,16 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -187,15 +187,16 @@ $(call gb_Helper_abbreviate_dirs,\
$(LIBS) \ $(LIBS) \
$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \ $(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) \ -o $(1) \
$(if $(SOVERSIONSCRIPT),&& ln -sf $(notdir $(1)) $(ILIBTARGET)) \ $(if $(SOVERSIONSCRIPT),&& ln -sf ../../ure-link/lib/$(notdir $(1)) $(ILIBTARGET)))
$(if $(filter Library,$(TARGETTYPE)),&& \ $(if $(filter Library,$(TARGETTYPE)), $(call gb_Helper_abbreviate_dirs,\
readelf -d $(1) | grep SONAME > $(1).exports.tmp ; \ readelf -d $(1) | grep SONAME > $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
$(NM) --dynamic --extern-only --defined-only --format=posix $(1) \ $(NM) --dynamic --extern-only --defined-only --format=posix $(1) \
| cut -d' ' -f1-2 \ | cut -d' ' -f1-2 \
>> $(1).exports.tmp && \ >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
if cmp -s $(1).exports.tmp $(1).exports; \ if cmp -s $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports; \
then rm $(1).exports.tmp; \ then rm $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ else mv $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports && \
touch -r $(1) $(WORKDIR)/LinkTarget/$(2).exports; \
fi)) fi))
endef endef
...@@ -311,7 +312,7 @@ gb_CppunitTest_get_filename = libtest_$(1).so ...@@ -311,7 +312,7 @@ gb_CppunitTest_get_filename = libtest_$(1).so
gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename) gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
define gb_CppunitTest_CppunitTest_platform define gb_CppunitTest_CppunitTest_platform
$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library__get_rpath,$(call gb_LinkTarget__get_rpath_for_layer,NONE))
endef endef
......
...@@ -155,7 +155,7 @@ gb_LinkTarget__RPATHS := \ ...@@ -155,7 +155,7 @@ gb_LinkTarget__RPATHS := \
OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
SDKBIN:\dORIGIN/../../ure-link/lib \ SDKBIN:\dORIGIN/../../ure-link/lib \
OXT: \ OXT: \
NONE:\dORIGIN/../lib:\dORIGIN \ NONE:\dORIGIN/../Library \
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) gb_LinkTarget_CFLAGS := $(gb_CFLAGS)
gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS)
...@@ -189,15 +189,16 @@ $(call gb_Helper_abbreviate_dirs,\ ...@@ -189,15 +189,16 @@ $(call gb_Helper_abbreviate_dirs,\
$(LIBS) \ $(LIBS) \
$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \ $(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) \ -o $(1) \
$(if $(SOVERSIONSCRIPT),&& ln -sf $(notdir $(1)) $(ILIBTARGET)) \ $(if $(SOVERSIONSCRIPT),&& ln -sf ../../ure-link/lib/$(notdir $(1)) $(ILIBTARGET)))
$(if $(filter Library,$(TARGETTYPE)),&& \ $(if $(filter Library,$(TARGETTYPE)), $(call gb_Helper_abbreviate_dirs,\
readelf -d $(1) | grep SONAME > $(1).exports.tmp ; \ readelf -d $(1) | grep SONAME > $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
$(NM) --dynamic --extern-only --defined-only --format=posix $(1) \ $(NM) --dynamic --extern-only --defined-only --format=posix $(1) \
| cut -d' ' -f1-2 \ | cut -d' ' -f1-2 \
>> $(1).exports.tmp && \ >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
if cmp -s $(1).exports.tmp $(1).exports; \ if cmp -s $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports; \
then rm $(1).exports.tmp; \ then rm $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ else mv $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).exports && \
touch -r $(1) $(WORKDIR)/LinkTarget/$(2).exports; \
fi)) fi))
endef endef
...@@ -307,7 +308,7 @@ gb_CppunitTest_get_filename = libtest_$(1).so ...@@ -307,7 +308,7 @@ gb_CppunitTest_get_filename = libtest_$(1).so
gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename) gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
define gb_CppunitTest_CppunitTest_platform define gb_CppunitTest_CppunitTest_platform
$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library__get_rpath,$(call gb_LinkTarget__get_rpath_for_layer,NONE))
endef endef
......
...@@ -32,7 +32,7 @@ $(testtools_BRIDGEDIR)/bridgetest_server$(testtools_BATCHSUFFIX) :| $(testtools_ ...@@ -32,7 +32,7 @@ $(testtools_BRIDGEDIR)/bridgetest_server$(testtools_BATCHSUFFIX) :| $(testtools_
"-s com.sun.star.test.bridge.CppTestObject" \ "-s com.sun.star.test.bridge.CppTestObject" \
"-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \ "-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \
"--singleaccept" \ "--singleaccept" \
"-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR))" \ "-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD))" \
"-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \ "-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \
"-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \ "-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \
> $@) > $@)
...@@ -62,7 +62,7 @@ $(testtools_BRIDGEDIR)/bridgetest_inprocess_java$(testtools_BATCHSUFFIX) :| $(te ...@@ -62,7 +62,7 @@ $(testtools_BRIDGEDIR)/bridgetest_inprocess_java$(testtools_BATCHSUFFIX) :| $(te
"$(gb_Helper_LIBRARY_PATH_VAR)=\$${$(gb_Helper_LIBRARY_PATH_VAR):+\$$$(gb_Helper_LIBRARY_PATH_VAR):}$(OUTDIR)/lib" \ "$(gb_Helper_LIBRARY_PATH_VAR)=\$${$(gb_Helper_LIBRARY_PATH_VAR):+\$$$(gb_Helper_LIBRARY_PATH_VAR):}$(OUTDIR)/lib" \
"$(call gb_Executable_get_target_for_build,uno)" \ "$(call gb_Executable_get_target_for_build,uno)" \
"-s com.sun.star.test.bridge.BridgeTest" \ "-s com.sun.star.test.bridge.BridgeTest" \
"-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR))" \ "-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD))" \
"-env:URE_INTERNAL_JAVA_DIR=file://$(OUTDIR)/bin" \ "-env:URE_INTERNAL_JAVA_DIR=file://$(OUTDIR)/bin" \
"-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \ "-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \
"-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \ "-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \
...@@ -77,7 +77,7 @@ $(testtools_BRIDGEDIR)/bridgetest_client$(testtools_BATCHSUFFIX) :| $(testtools_ ...@@ -77,7 +77,7 @@ $(testtools_BRIDGEDIR)/bridgetest_client$(testtools_BATCHSUFFIX) :| $(testtools_
"$(call gb_Executable_get_target_for_build,uno)" \ "$(call gb_Executable_get_target_for_build,uno)" \
"-s com.sun.star.test.bridge.BridgeTest --" \ "-s com.sun.star.test.bridge.BridgeTest --" \
"-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \ "-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \
"-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR))" \ "-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD))" \
"-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \ "-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services))" \
"-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \ "-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)" \
> $@) > $@)
......
...@@ -22,7 +22,7 @@ $(call gb_CustomTarget_get_target,testtools/uno_test) : \ ...@@ -22,7 +22,7 @@ $(call gb_CustomTarget_get_target,testtools/uno_test) : \
$(call gb_Executable_get_command,uno) \ $(call gb_Executable_get_command,uno) \
-s com.sun.star.test.bridge.BridgeTest \ -s com.sun.star.test.bridge.BridgeTest \
-- com.sun.star.test.bridge.CppTestObject \ -- com.sun.star.test.bridge.CppTestObject \
-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Helper_OUTDIR_FOR_BUILDLIBDIR)) \ -env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD)) \
-env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services)) \ -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services)) \
-env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)) -env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment