diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-09-17 22:24:10 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-09-22 11:08:29 +0200 |
commit | d343c57f982af1b2a9a37362e82e7369b6edf948 (patch) | |
tree | 605acc30b2923a5ad609f82791f4bf4500a739bc /solenv/gbuild/Library.mk | |
parent | d263c22a0924ece4663c023618bba93fcb7300c3 (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.mk | 24 |
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 |