summaryrefslogtreecommitdiff
path: root/ACE/include/makeinclude
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2012-11-22 09:22:08 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2012-11-22 09:22:08 +0000
commitd3d33f1150a1e42d831b1e0d63ae6616caba1ffa (patch)
tree51f5e74095c81298d1e0375e347f437470f2cab6 /ACE/include/makeinclude
parentecafa4233c09c2f6f2015a4a3c687ec04b176610 (diff)
downloadATCD-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.GNU2
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU28
-rw-r--r--ACE/include/makeinclude/rules.local.GNU16
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU5
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)