summaryrefslogtreecommitdiff
path: root/solenv/gbuild/platform/solaris.mk
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-18 15:03:50 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:31 +0200
commit70c35265f517ef372cb739d4cc64499abf57a838 (patch)
tree0bab65cbe9bde238d965a151dd14b3e9d7d031ca /solenv/gbuild/platform/solaris.mk
parentc0c7df91469d3306baa6708b0a8ab4eadc0e9097 (diff)
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
Diffstat (limited to 'solenv/gbuild/platform/solaris.mk')
-rw-r--r--solenv/gbuild/platform/solaris.mk19
1 files changed, 10 insertions, 9 deletions
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 185f92ea5f5b..5ff75ae7c7eb 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -154,7 +154,7 @@ gb_LinkTarget__RPATHS := \
OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
SDKBIN:\dORIGIN/../../ure-link/lib \
OXT: \
- NONE:\dORIGIN/../lib:\dORIGIN \
+ NONE:\dORIGIN/../Library \
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR)
gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
@@ -187,15 +187,16 @@ $(call gb_Helper_abbreviate_dirs,\
$(LIBS) \
$(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 $(notdir $(1)) $(ILIBTARGET)) \
- $(if $(filter Library,$(TARGETTYPE)),&& \
- readelf -d $(1) | grep SONAME > $(1).exports.tmp ; \
+ $(if $(SOVERSIONSCRIPT),&& ln -sf ../../ure-link/lib/$(notdir $(1)) $(ILIBTARGET)))
+ $(if $(filter Library,$(TARGETTYPE)), $(call gb_Helper_abbreviate_dirs,\
+ readelf -d $(1) | grep SONAME > $(WORKDIR)/LinkTarget/$(2).exports.tmp; \
$(NM) --dynamic --extern-only --defined-only --format=posix $(1) \
| cut -d' ' -f1-2 \
- >> $(1).exports.tmp && \
- if cmp -s $(1).exports.tmp $(1).exports; \
- then rm $(1).exports.tmp; \
- else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \
+ >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
+ if cmp -s $(WORKDIR)/LinkTarget/$(2).exports.tmp $(WORKDIR)/LinkTarget/$(2).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))
endef
@@ -311,7 +312,7 @@ gb_CppunitTest_get_filename = libtest_$(1).so
gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
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