diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2012-11-22 09:22:08 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2012-11-22 09:22:08 +0000 |
commit | d3d33f1150a1e42d831b1e0d63ae6616caba1ffa (patch) | |
tree | 51f5e74095c81298d1e0375e347f437470f2cab6 /ACE/include/makeinclude | |
parent | ecafa4233c09c2f6f2015a4a3c687ec04b176610 (diff) | |
download | ATCD-d3d33f1150a1e42d831b1e0d63ae6616caba1ffa.tar.gz |
Thu Nov 22 09:20:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* include/makeinclude/platform_g++_common.GNU:
* include/makeinclude/rules.lib.GNU:
* include/makeinclude/rules.local.GNU:
* include/makeinclude/wrapper_macros.GNU:
Added support for versioned_so=2, that will create
for example libACE-6.1.6.so instead of libACE.so.6.1.6
* debian/patches/20-versioned_libs.diff:
Removed this file.
Diffstat (limited to 'ACE/include/makeinclude')
-rw-r--r-- | ACE/include/makeinclude/platform_g++_common.GNU | 2 | ||||
-rw-r--r-- | ACE/include/makeinclude/rules.lib.GNU | 28 | ||||
-rw-r--r-- | ACE/include/makeinclude/rules.local.GNU | 16 | ||||
-rw-r--r-- | ACE/include/makeinclude/wrapper_macros.GNU | 5 |
4 files changed, 41 insertions, 10 deletions
diff --git a/ACE/include/makeinclude/platform_g++_common.GNU b/ACE/include/makeinclude/platform_g++_common.GNU index 8dd0d9f7a55..291c259a71e 100644 --- a/ACE/include/makeinclude/platform_g++_common.GNU +++ b/ACE/include/makeinclude/platform_g++_common.GNU @@ -105,7 +105,7 @@ templates ?= automatic # If the platform file didn't already set versioned_so, default to 1. versioned_so ?= 1 with_ld ?= -ifeq ($(versioned_so),1) +ifneq ($(versioned_so),0) ifeq ($(with_ld),hpux) SOFLAGS += -Wl,+h -Wl,$(SONAME) else diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU index 5a93b35934f..3246912f54d 100644 --- a/ACE/include/makeinclude/rules.lib.GNU +++ b/ACE/include/makeinclude/rules.lib.GNU @@ -11,7 +11,7 @@ # Library versioning #--------------------------------------------------------------------------- -ifeq ($(versioned_so),1) +ifneq ($(versioned_so),0) # Turn on symbol versioning. The scheme that we follow is to allow # applications dependent on libraries, with same version numbers (major, # minor and beta) to run, but applications with dependencies on libraries @@ -20,13 +20,23 @@ ifeq ($(versioned_so),1) # Version number of the libraries # ifeq ($(SOVERSION),) - SOVERSION = .$(GNUACE_PROJECT_VERSION) + ifeq ($(versioned_so),1) + SOVERSION = .$(GNUACE_PROJECT_VERSION) + else ifeq ($(versioned_so),2) + SOVERSION = -$(GNUACE_PROJECT_VERSION) + else + $(error unknown value for versioned_so: $(versioned_so)) + endif endif # SOVERSION # Name that will be written into the dynamic library # ifeq ($(SONAME),) - SONAME = $(SHLIB)$(SOVERSION) + ifeq ($(versioned_so),1) + SONAME = $(SHLIB)$(SOVERSION) + else ifeq ($(versioned_so),2) + SONAME = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT) + endif endif # SONAME endif # versioned_so @@ -47,9 +57,15 @@ SHLIB ?= # Setup shared library variables, including versions. VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT)) CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT)) -VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION)) -CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION)) -SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION)) +ifneq ($(versioned_so),2) + VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION)) + CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION)) + SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION)) +else + VSHLIB = $(patsubst %.$(SOEXT),%,$(VSHLIB_NO_VER))$(SOVERSION).$(SOEXT) + CLEANUP_VSHLIB = $(patsubst %.$(SOEXT),%,$(CLEANUP_VSHLIB_NO_VER))$(SOVERSION).$(SOEXT) + SHLIB_WITH_VER = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT) +endif SHLIBA ?= VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT)) diff --git a/ACE/include/makeinclude/rules.local.GNU b/ACE/include/makeinclude/rules.local.GNU index ff9d3def7bd..6db75a7fe78 100644 --- a/ACE/include/makeinclude/rules.local.GNU +++ b/ACE/include/makeinclude/rules.local.GNU @@ -312,13 +312,23 @@ else #not vxworks_ntbuild fi else #firstword of LN_S is not cp, so we're using real symlinks ifneq ($(SOVERSION),) - @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \ + ifneq ($(versioned_so),2) + @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \ if test ! -s $@ ; then \ $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \ fi ; \ - fi + fi + else + @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \ + if test ! -s $@ ; then \ + $(RM) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \ + echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \ + $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \ + fi ; \ + fi + endif #versioned_so endif #SOVERSION @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \ if test ! -s $@ ; then \ @@ -351,6 +361,8 @@ ifneq ($(SHLIB_UNCHECKED),) -$(RM) $(SHLIB_UNCHECKED) ifeq ($(versioned_so),1) -$(RM) $(SHLIB_UNCHECKED)$(SOVERSION) +else ifeq ($(versioned_so),2) + -$(RM) $(SHLIB_UNCHECKED:.$(SOEXT)=$(SOVERSION).$(SOEXT)) endif endif diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU index d4c888502f0..3a173884310 100644 --- a/ACE/include/makeinclude/wrapper_macros.GNU +++ b/ACE/include/makeinclude/wrapper_macros.GNU @@ -78,7 +78,10 @@ # If versioned_so is 1 (enabled), the SOVERSION make # variable can also be set to specify the version info # to append to the name - it should have a leading '.' - -# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA. +# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA. If 2, +# the version will be appended to the name but *before* the +# $(SOEXT) - it should have a lead '-' - else it defaults to +# -ACE_MAJOR.ACE_MINOR.ACE_BETA. # wfmo Build with wfmo support (Win32 only) # winregistry Build with windows registry support (Win32 only) # winnt Build WinNT-specific projects (Win32 only) |