summaryrefslogtreecommitdiff
path: root/solenv/gbuild/Library.mk
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-17 22:24:10 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:29 +0200
commitd343c57f982af1b2a9a37362e82e7369b6edf948 (patch)
tree605acc30b2923a5ad609f82791f4bf4500a739bc /solenv/gbuild/Library.mk
parentd263c22a0924ece4663c023618bba93fcb7300c3 (diff)
gbuild: make the versioned library the linktarget on Unixes
If there is a SOVERSION then the versioned library is a real file and the unversioned one just a symlink; better to have the real file be the target. - add gb_Library_UDK_MAJORVER variable for SOVERSION - remove version parameter of gb_Library_set_soversion_script; instead hardcode the SOVERSION since it must be included in the file name in gb_Library_FILENAMES anyway - store the unversioned symlink in the ILIBTARGET variable - via new gb_Library_get_workdir_target_versionlink function - removed gb_Helper_install call that resulted in both versioned and unversioned libs in instdir Change-Id: I2c6f1698f0e39fdb2c07964d43ed9485cbca0b30
Diffstat (limited to 'solenv/gbuild/Library.mk')
-rw-r--r--solenv/gbuild/Library.mk24
1 files changed, 12 insertions, 12 deletions
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 1fd48a88ea2a..33ee1e0c7e23 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -119,28 +119,28 @@ $(foreach aux,$(2),$(call gb_Library_add_auxtarget,$(1),$(aux)))
endef
-# gb_Library__add_soversion_link library package linkname
+# 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
+# call gb_Library__add_soversion_link,library,linkname
define gb_Library__add_soversion_link
-$(call gb_Library_add_auxtarget,$(1),$(2))
+$(call gb_Library_add_auxtarget,$(1),$(OUTDIR)/lib/$(notdir $(2)))
+$(call gb_LinkTarget_set_ilibtarget,$(call gb_Library_get_linktarget,$(1)),$(2))
endef
define gb_Library__set_soversion_script
-$(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2),$(3))
-$(call gb_Library_get_target,$(1)) : SOVERSION := $(2)
-$(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_target,$(1)).$(2))
-$(call gb_Helper_install,$(call gb_Library__get_final_target,$(1)), \
- $(call gb_Library_get_install_target,$(1)).$(2), \
- $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))).$(2))
+$(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2))
+$(call gb_Library_get_target,$(1)) : SOVERSION := $(gb_Library_UDK_MAJORVER)
+$(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_workdir_target_versionlink,$(1)))
endef
# for libraries that maintain stable ABI: set SOVERSION and version script
-# $(call gb_Library_set_soversion_script,soversion,versionscript)
+# $(call gb_Library_set_soversion_script,versionscript)
define gb_Library_set_soversion_script
-$(if $(2),,$(call gb_Output_error,gb_Library_set_soversion_script: no version))
-$(if $(3),,$(call gb_Output_error,gb_Library_set_soversion_script: no script))
-$(call gb_Library__set_soversion_script_platform,$(1),$(2),$(3))
+$(if $(2),,$(call gb_Output_error,gb_Library_set_soversion_script: no script))
+$(if $(3),$(call gb_Output_error,gb_Library_set_soversion_script: too many arguments))
+$(call gb_Library__set_soversion_script_platform,$(1),$(2))
endef
# The dependency from workdir component target to outdir library should ensure