Added library versioning for shared libraries
authorPekka Riikonen <priikone@silcnet.org>
Thu, 28 Nov 2002 15:20:09 +0000 (15:20 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 28 Nov 2002 15:20:09 +0000 (15:20 +0000)
CHANGES
configure.in.pre
lib/Makefile.am.pre

diff --git a/CHANGES b/CHANGES
index 15b5754a1a0b6e5b2a5ba452179847fc62ff473f..813a3d4e0673d5c115f9210238e439b4fbf535f7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Thu Nov 28 16:19:18 CET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added library versioning for shared libraries.  Affected
+         files configure.in.pre and lib/Makefile.am.pre.
+
 Wed Nov 27 21:51:52 CET 2002  Jochen Eisinger <c0ffee@penguin-breeder.org>
 
        * Display INVITE and BAN lists as specified by SILC 1.2
index 56728edaf5ea95da9fef1a9524aa927442914e9b..2dffa23e7f7b4ae24595e2b4a3c15cc3890c57ee 100644 (file)
@@ -60,6 +60,47 @@ if test "$GCC"; then
   CFLAGS="-Wall -finline-functions $CFLAGS"
 fi
 
+#
+# Library versioning.
+#
+# Do the releases and library versioning according to following rules:
+#
+#  - If any code has changed in library, increment [LIB]_REVISION
+#  - If functions were added, set [LIB]_REVISION to 0
+#  - If functions were added, removed or changed, increment [LIB]_CURRENT
+#  - If functions were added, increment [LIB]_AGE
+#  - If functions were removed, set [LIB]_AGE to 0
+#
+# where [LIB] is LIBSILC and LIBSILCCLIENT, and where "functions" means
+# functions public interfaces.
+#
+# The LIB_BASE_VERSION defines the SILC software major.minor version and 
+# it is increment only when these version numbers actually change.
+#
+
+# Base version for libraries.  Do not change this unless SILC version
+# changes too.
+LIB_BASE_VERSION=1.0
+
+# libsilc versions
+LIBSILC_CURRENT=0
+LIBSILC_REVISION=0
+LIBSILC_AGE=0
+
+# libsilcclient versions
+LIBSILCCLIENT_CURRENT=0
+LIBSILCCLIENT_REVISION=0
+LIBSILCCLIENT_AGE=0
+
+# Substitute the version numbers
+AC_SUBST(LIB_BASE_VERSION)
+AC_SUBST(LIBSILC_CURRENT)
+AC_SUBST(LIBSILC_REVISION)
+AC_SUBST(LIBSILC_AGE)
+AC_SUBST(LIBSILCCLIENT_CURRENT)
+AC_SUBST(LIBSILCCLIENT_REVISION)
+AC_SUBST(LIBSILCCLIENT_AGE)
+
 #
 # Program checking
 #
@@ -1085,7 +1126,7 @@ if test "x$silc_dist" = "xsilc-server" ||
    test "x$silc_dist" = "xsilc-toolkit"; then
   silcd="yes"
   if test x$without_silcd = xtrue; then
-    without_silcd="no"
+    silcd="no"
   fi
 echo " Compile SILC Server ...........: $silcd"
 echo " Server configuration file .....: $summary_silcd_configfile"
index 626978adbd9d5a726596e9de5aeaab92b91b3b3c..952b0eaf68edf346d3d2218e23651f97a7a1073f 100644 (file)
@@ -88,15 +88,25 @@ silcclient.dll: libsilcclient.a
        -mno-cygwin -o silcclient.dll libsilcclient.a -L. -lsilc -lwsock32
 endif
 
+LIB_BASE_VERSION=@LIB_BASE_VERSION@
+LIBSILC_CURRENT=@LIBSILC_CURRENT@
+LIBSILC_REVISION=@LIBSILC_REVISION@
+LIBSILC_AGE=@LIBSILC_AGE@
+LIBSILCCLIENT_CURRENT=@LIBSILCCLIENT_CURRENT@
+LIBSILCCLIENT_REVISION=@LIBSILCCLIENT_REVISION@
+LIBSILCCLIENT_AGE=@LIBSILCCLIENT_AGE@
+
 libsilc.a:
        find $(SILCLIB_DIRS) -type f -name *.lo | xargs \
        $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) \
-       -rpath $(libdir) -o libsilc.la
+       -version-info $(LIBSILC_CURRENT):$(LIBSILC_REVISION):$(LIBSILC_AGE) \
+       -release $(LIB_BASE_VERSION) -rpath $(libdir) -o libsilc.la
 
 libsilcclient.a:
        find $(SILCCLIENTLIB_DIRS) -type f -name *.lo | xargs \
        $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) \
-       -rpath $(libdir) -o libsilcclient.la
+       -version-info $(LIBSILCCLIENT_CURRENT):$(LIBSILCCLIENT_REVISION):$(LIBSILCCLIENT_AGE) \
+       -release $(LIB_BASE_VERSION) -rpath $(libdir) -o libsilcclient.la
 
 if SILC_DIST_TOOLKIT
 SILC_EXTRA_DIST = doc