[svn-commits] russell: trunk r546 - /trunk/Makefile

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Apr 22 10:30:37 CDT 2008


Author: russell
Date: Tue Apr 22 10:30:37 2008
New Revision: 546

URL: http://svn.digium.com/view/libpri?view=rev&rev=546
Log:
All versions of libpri have been installed as libpri.so.1.0, even though
the API and ABI have changed over time.  This patch changes the Makefile
to install the library as libpri.so.1.6 to indicate that this is not
compatible with previous versions.  In the future, this should be changed
as we make ABI changes.

(closes issue #10376)
Reported by: tzafrir
Patches:
      libpri-soname.diff uploaded by tzafrir (license 46)
	  -- with very minor changes by me

Modified:
    trunk/Makefile

Modified: trunk/Makefile
URL: http://svn.digium.com/view/libpri/trunk/Makefile?view=diff&rev=546&r1=545&r2=546
==============================================================================
--- trunk/Makefile (original)
+++ trunk/Makefile Tue Apr 22 10:30:37 2008
@@ -32,14 +32,19 @@
 OSARCH=$(shell uname -s)
 PROC?=$(shell uname -m)
 
+# SONAME version; should be changed on every ABI change
+# please don't change it needlessly; it's perfectly fine to have a SONAME
+# of 1.2 and a version of 1.4.x
+SONAME:=1.6
+
 STATIC_LIBRARY=libpri.a
-DYNAMIC_LIBRARY=libpri.so.1.0
+DYNAMIC_LIBRARY:=libpri.so.$(SONAME)
 STATIC_OBJS=copy_string.o pri.o q921.o prisched.o q931.o pri_facility.o
 DYNAMIC_OBJS=copy_string.lo pri.lo q921.lo prisched.lo q931.lo pri_facility.lo
 CFLAGS=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -fPIC $(ALERTING) $(LIBPRI_COUNTERS)
 INSTALL_PREFIX=$(DESTDIR)
 INSTALL_BASE=/usr
-SOFLAGS = -Wl,-hlibpri.so.1.0
+SOFLAGS:=-Wl,-h$(DYNAMIC_LIBRARY)
 LDCONFIG = /sbin/ldconfig
 ifneq (,$(findstring X$(OSARCH)X, XLinuxX XGNU/kFreeBSDX))
 LDCONFIG_FLAGS=-n
@@ -54,7 +59,6 @@
 CFLAGS += -DSOLARIS -I../zaptel-solaris
 LDCONFIG = 
 LDCONFIG_FLAGS = \# # Trick to comment out the period in the command below
-SOSLINK = ln -sf libpri.so.1.0 libpri.so.1
 #INSTALL_PREFIX = /opt/asterisk  # Uncomment out to install in standard Solaris location for 3rd party code
 endif
 
@@ -92,20 +96,19 @@
 	install -m 644 libpri.h $(INSTALL_PREFIX)$(INSTALL_BASE)/include
 	install -m 755 $(DYNAMIC_LIBRARY) $(INSTALL_PREFIX)$(INSTALL_BASE)/lib
 	if [ -x /usr/sbin/sestatus ] && ( /usr/sbin/sestatus | grep "SELinux status:" | grep -q "enabled"); then /sbin/restorecon -v $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/$(DYNAMIC_LIBRARY); fi
-	( cd $(INSTALL_PREFIX)$(INSTALL_BASE)/lib ; ln -sf libpri.so.1.0 libpri.so ; ln -sf libpri.so.1.0 libpri.so.1 )
+	( cd $(INSTALL_PREFIX)$(INSTALL_BASE)/lib ; ln -sf libpri.so.$(SONAME) libpri.so)
 	install -m 644 $(STATIC_LIBRARY) $(INSTALL_PREFIX)$(INSTALL_BASE)/lib
 	if test $$(id -u) = 0; then $(LDCONFIG) $(LDCONFIG_FLAGS) $(INSTALL_PREFIX)$(INSTALL_BASE)/lib; fi
 else
 	install -f $(INSTALL_PREFIX)$(INSTALL_BASE)/include -m 644 libpri.h
 	install -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib -m 755 $(DYNAMIC_LIBRARY)
-	( cd $(INSTALL_PREFIX)$(INSTALL_BASE)/lib ; ln -sf libpri.so.1.0 libpri.so ; $(SOSLINK) )
+	( cd $(INSTALL_PREFIX)$(INSTALL_BASE)/lib ; ln -sf libpri.so.$(SONAME) libpri.so)
 	install -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib -m 644 $(STATIC_LIBRARY)
 endif
 
 uninstall:
 	@echo "Removing Libpri"
-	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/libpri.so.1.0
-	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/libpri.so.1
+	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/libpri.so.$(SONAME)
 	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/libpri.so
 	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/lib/libpri.a
 	rm -f $(INSTALL_PREFIX)$(INSTALL_BASE)/include/libpri.h
@@ -136,12 +139,10 @@
 $(DYNAMIC_LIBRARY): $(DYNAMIC_OBJS)
 	$(CC) -shared $(SOFLAGS) -o $@ $(DYNAMIC_OBJS)
 	$(LDCONFIG) $(LDCONFIG_FLAGS) .
-	ln -sf libpri.so.1.0 libpri.so
-	ln -sf libpri.so.1.0 libpri.so.1
-	$(SOSLINK)
+	ln -sf libpri.so.$(SONAME) libpri.so
 
 clean:
-	rm -f *.o *.so *.lo *.so.1 *.so.1.0
+	rm -f *.o *.so *.lo *.so.$(SONAME)
 	rm -f testprilib $(STATIC_LIBRARY) $(DYNAMIC_LIBRARY)
 	rm -f pritest pridump
 	rm -f .depend




More information about the svn-commits mailing list