tdb: add TDB_DEPS variable filled with required libraries
authorBjörn Jacke <bj@sernet.de>
Fri, 13 Aug 2010 12:53:22 +0000 (14:53 +0200)
committerBjörn Jacke <bj@sernet.de>
Fri, 13 Aug 2010 12:57:44 +0000 (14:57 +0200)
This is required for Solaris, which needs to link in librt to make use of
fdatasync().

lib/replace/libreplace.m4
lib/tdb/Makefile.in
lib/tdb/libtdb.m4
lib/tdb/tdb.mk
source3/Makefile.in
source3/configure.in

index 6da209db8a5d29e0fb66695a2a99227b22489abf..2303641d94509fb07f7529b73bdedce9895c1b1c 100644 (file)
@@ -108,7 +108,13 @@ AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror strerro
 AC_CHECK_FUNCS(vsyslog setlinebuf mktime ftruncate chsize rename)
 AC_CHECK_FUNCS(waitpid wait4 strlcpy strlcat initgroups memmove strdup)
 AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp dup2 dprintf vdprintf)
-AC_CHECK_FUNCS(isatty chown lchown link readlink symlink realpath fdatasync)
+AC_CHECK_FUNCS(isatty chown lchown link readlink symlink realpath)
+AC_CHECK_FUNCS(fdatasync,,[
+       # if we didn't find it, look in librt (Solaris hides it there...)
+       AC_CHECK_LIB(rt, fdatasync,
+               [libreplace_cv_HAVE_FDATASYNC_IN_LIBRT=yes
+               AC_DEFINE(HAVE_FDATASYNC, 1, Define to 1 if there is support for fdatasync)])
+])
 AC_CHECK_FUNCS(get_current_dir_name)
 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
index dc22ee3fea0138fd482388b9e6cea26a821e3b5c..f12a27a3500533da9ea9d790aab7eff3f64847ce 100644 (file)
@@ -35,6 +35,7 @@ tdbdir = @tdbdir@
 EXTRA_TARGETS = @DOC_TARGET@
 
 TDB_OBJ = @TDB_OBJ@ @LIBREPLACEOBJ@
+TDB_DEPS = @TDB_DEPS@
 
 SONAMEFLAG = @SONAMEFLAG@
 VERSIONSCRIPT = @VERSIONSCRIPT@
@@ -51,7 +52,7 @@ all:: showflags dirs $(PROGS) $(TDB_SOLIB) libtdb.a $(PYTHON_BUILD_TARGET) $(EXT
 
 install:: all
 $(TDB_SOLIB): $(TDB_OBJ)
-       $(SHLD) $(SHLD_FLAGS) -o $@ $(TDB_OBJ) $(VERSIONSCRIPT) $(EXPORTSFILE) $(SONAMEFLAG)$(TDB_SONAME)
+       $(SHLD) $(SHLD_FLAGS) -o $@ $(TDB_OBJ) $(VERSIONSCRIPT) $(EXPORTSFILE) $(TDB_DEPS) $(SONAMEFLAG)$(TDB_SONAME)
 
 shared-build: all
        ${INSTALLCMD} -d $(sharedbuilddir)/lib
index feae1c2cc678196b53839f78cef288795ee71ba2..fb8913aa16b3b5bdcaa3b9d2d0b679db106373ba 100644 (file)
@@ -20,6 +20,12 @@ AC_SUBST(LIBREPLACEOBJ)
 TDB_LIBS=""
 AC_SUBST(TDB_LIBS)
 
+TDB_DEPS=""
+if test x$libreplace_cv_HAVE_FDATASYNC_IN_LIBRT = xyes ; then
+       TDB_DEPS="$TDB_DEPS -lrt"
+fi
+AC_SUBST(TDB_DEPS)
+
 TDB_CFLAGS="-I$tdbdir/include"
 AC_SUBST(TDB_CFLAGS)
 
index ecc6f9fd08a6485fa68ac69589482aa7ca26076c..0dcd419da4fee6977ee7a3a9dfbd8616080c6fb7 100644 (file)
@@ -12,19 +12,19 @@ TDB_STLIB = libtdb.a
 TDB_LIB = $(TDB_STLIB) 
 
 bin/tdbtest$(EXEEXT): tools/tdbtest.o $(TDB_LIB)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtest tools/tdbtest.o -L. -ltdb -lgdbm
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtest tools/tdbtest.o -L. -ltdb -lgdbm $(TDB_DEPS)
 
 bin/tdbtool$(EXEEXT): tools/tdbtool.o $(TDB_LIB)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtool tools/tdbtool.o -L. -ltdb
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtool tools/tdbtool.o -L. -ltdb $(TDB_DEPS)
 
 bin/tdbtorture$(EXEEXT): tools/tdbtorture.o $(TDB_LIB)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtorture tools/tdbtorture.o -L. -ltdb
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtorture tools/tdbtorture.o -L. -ltdb $(TDB_DEPS)
 
 bin/tdbdump$(EXEEXT): tools/tdbdump.o $(TDB_LIB)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbdump tools/tdbdump.o -L. -ltdb
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbdump tools/tdbdump.o -L. -ltdb $(TDB_DEPS)
 
 bin/tdbbackup$(EXEEXT): tools/tdbbackup.o $(TDB_LIB)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbbackup tools/tdbbackup.o -L. -ltdb
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbbackup tools/tdbbackup.o -L. -ltdb $(TDB_DEPS)
 
 test:: abi_checks
 
@@ -48,7 +48,7 @@ pytdb.o: $(tdbdir)/pytdb.c
        $(CC) $(PICFLAG) -c $(tdbdir)/pytdb.c $(CFLAGS) `$(PYTHON_CONFIG) --cflags`
 
 tdb.$(SHLIBEXT): libtdb.$(SHLIBEXT) pytdb.o
-       $(SHLD) $(SHLD_FLAGS) -o $@ pytdb.o -L. -ltdb `$(PYTHON_CONFIG) --ldflags`
+       $(SHLD) $(SHLD_FLAGS) -o $@ pytdb.o -L. -ltdb `$(PYTHON_CONFIG) --ldflags` $(TDB_DEPS)
 
 install:: installdirs installbin installheaders installlibs \
                  $(PYTHON_INSTALL_TARGET) installdocs
index 4b3e6cbc58b47dc46ee0b1f847a224ecb9eef9b4..3599114394621c62b3a99dc569d5637037043ca8 100644 (file)
@@ -83,6 +83,7 @@ LIBTALLOC_LIBS=@LIBTALLOC_LIBS@
 LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
 LIBTDB=@LIBTDB_STATIC@ @LIBTDB_SHARED@
 LIBTDB_LIBS=@LIBTDB_LIBS@
+TDB_DEPS=@TDB_DEPS@
 LIBNETAPI=@LIBNETAPI_STATIC@ @LIBNETAPI_SHARED@
 LIBNETAPI_LIBS=@LIBNETAPI_LIBS@
 LIBSMBCLIENT_LIBS=@LIBSMBCLIENT_LIBS@
@@ -1992,7 +1993,7 @@ $(LIBTDB_SYMS): $(LIBTDB_HEADERS)
 
 $(LIBTDB_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBTDB_OBJ) $(LIBTDB_SYMS)
        @echo Linking shared library $@
-       @$(SHLD_DSO) $(LIBTDB_OBJ) $(LIBREPLACE_LIBS) \
+       @$(SHLD_DSO) $(LIBTDB_OBJ) $(LIBREPLACE_LIBS) $(TDB_DEPS) \
                @SONAMEFLAG@`basename $@`
 
 $(LIBTDB_SHARED_TARGET): $(LIBTDB_SHARED_TARGET_SONAME)
index 0023fe2a692d730bbfbeb629bea0b0440d9e4c1e..6b736712d8e8746f1d15ae88bea67dca40885acf 100644 (file)
@@ -2137,6 +2137,7 @@ then
        LINK_LIBTDB=STATIC
        SMB_LIBRARY(tdb, 1)
        LIBTDB_OBJ0=""
+       LIBTDB_LIBS="$LIBTDB_LIBS $TDB_DEPS"
        for obj in ${TDB_OBJ}; do
                LIBTDB_OBJ0="${LIBTDB_OBJ0} ${tdbdir}/${obj}"
        done