]> git.sur5r.net Git - bacula/bacula/commitdiff
Add support for soname setting in libtool.
authorMarco van Wieringen <mvw@planets.elm.net>
Tue, 10 Jan 2012 12:33:55 +0000 (13:33 +0100)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:50:26 +0000 (14:50 +0200)
We allow to specify the SONAME in a library so we can create
a libbaccats-<backend>-<version>.so which has an internal
soname of libbaccats-<version>.so This way each catalog
backend is a direct replacement of the dummy libbaccats
library and copying and linking works without the ldconfig
trying to be to smart. When no symlink exists ldconfig
will create one (it might point to the wrong one however)
but if you only install one it cannot go wrong. Also a
nice side effect is that if we create the symlink ldconfig
now doesn't replace it with a new one as it thinks its a
stale or wrong link.

install-default-backend is updated to create the symlink
in the same way that ldconfig does and point to the
libbaccats-<backend>.so which points to
libbaccats-<backend>-<version>.so

bacula/autoconf/ltmain.sh
bacula/src/cats/Makefile.in
bacula/src/cats/install-default-backend.in

index 3061e3c5a2f71da20e6715700280d02e4db3bdea..5ddcc7922e45cb23fba790eb9558effef2502118 100644 (file)
@@ -2428,6 +2428,7 @@ The following components of LINK-COMMAND are treated specially:
   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
   -shared           only do dynamic linking of libtool libraries
   -shrext SUFFIX    override the standard shared library file extension
+  -soname SONAME    override the standard shared object name
   -static           do not do any dynamic linking of uninstalled libtool libraries
   -static-libtool-libs
                     do not do any dynamic linking of libtool libraries
@@ -5422,6 +5423,11 @@ func_mode_link ()
          prev=
          continue
          ;;
+        soname)
+         soname_spec="$arg"
+         prev=
+         continue
+         ;;
        weak)
          func_append weak_libs " $arg"
          prev=
@@ -5741,6 +5747,11 @@ func_mode_link ()
        continue
        ;;
 
+      -soname)
+       prev=soname
+       continue
+       ;;
+
       -static | -static-libtool-libs)
        # The effects of -static are defined in a previous loop.
        # We used to do the same as -all-static on platforms that
index 2df93d77780b1859c19cd892f68e73447050b52f..e49c4840cd774f0aeca44afb2aac3f693587f6c0 100644 (file)
@@ -150,23 +150,28 @@ libbaccats.la: Makefile cats_dummy.lo
 
 libbaccats-mysql.la: Makefile $(MYSQL_LOBJS)
        @echo "Making $@ ..."
-       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(MYSQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) $(MYSQL_LIBS)
+       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(MYSQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
+                                                           -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(MYSQL_LIBS)
 
 libbaccats-postgresql.la: Makefile $(POSTGRESQL_LOBJS)
        @echo "Making $@ ..."
-       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(POSTGRESQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) $(POSTGRESQL_LIBS)
+       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(POSTGRESQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
+                                                           -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(POSTGRESQL_LIBS)
 
 libbaccats-sqlite3.la: Makefile $(SQLITE_LOBJS)
        @echo "Making $@ ..."
-       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(SQLITE_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) $(SQLITE_LIBS)
+       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(SQLITE_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
+                                                           -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(SQLITE_LIBS)
 
 #libbaccats-ingres.la: Makefile $(INGRES_LOBJS)
 #       @echo "Making $@ ..."
-#       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(INGRES_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) $(INGRES_LIBS)
+#       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(INGRES_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
+#                                                          -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(INGRES_LIBS)
 
 #libbaccats-dbi.la: Makefile $(DBI_LOBJS)
 #       @echo "Making $@ ..."
-#       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(DBI_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) $(DBI_LIBS)
+#       $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(DBI_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
+#                                                          -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(DBI_LIBS)
 
 Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
        cd $(topdir) \
index 54bc3d092fd6724eb8c8fb410ed0e2a214dfef9c..80eae6aefa4c76bc9591020ba67f6ac631c68a56 100755 (executable)
@@ -33,7 +33,7 @@ if [ -f ${install_dir}/libbaccats-${default_backend}-${library_version}${SHLIB_E
    # As all backends are in the same directory anyhow this should
    # always work.
    #
-   ln -s libbaccats-${default_backend}-${library_version}${SHLIB_EXT} \
+   ln -s libbaccats-${default_backend}${SHLIB_EXT} \
          ${install_dir}/libbaccats-${library_version}${SHLIB_EXT}
 fi