diff options
author | Amitay Isaacs <amitay@gmail.com> | 2012-03-21 14:45:56 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@gmail.com> | 2012-03-30 12:33:28 +1100 |
commit | 634bbc546978011d85fb0ec76e2d0c7f53244049 (patch) | |
tree | 5c001a747976a0447017f6a3526e973ee2c05771 /ctdb/lib | |
parent | 13124e356ea2ede43ffa98dc0476330834c6cf3d (diff) | |
download | samba-634bbc546978011d85fb0ec76e2d0c7f53244049.tar.gz samba-634bbc546978011d85fb0ec76e2d0c7f53244049.tar.xz samba-634bbc546978011d85fb0ec76e2d0c7f53244049.zip |
build: Use system tdb library if available
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
(This used to be ctdb commit 10ab88a5c822ac403a70a9cd1a6c81020eb91d08)
Diffstat (limited to 'ctdb/lib')
-rw-r--r-- | ctdb/lib/tdb/libtdb.m4 | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/ctdb/lib/tdb/libtdb.m4 b/ctdb/lib/tdb/libtdb.m4 index 3fe700ff1c0..dde4e0d0e90 100644 --- a/ctdb/lib/tdb/libtdb.m4 +++ b/ctdb/lib/tdb/libtdb.m4 @@ -1,28 +1,52 @@ -dnl find the tdb sources. This is meant to work both for -dnl tdb standalone builds, and builds of packages using tdb -tdbdir="" -tdbpaths=". lib/tdb tdb ../tdb ../lib/tdb" -for d in $tdbpaths; do - if test -f "$srcdir/$d/common/tdb.c"; then - tdbdir="$d" - AC_SUBST(tdbdir) - break; - fi -done -if test x"$tdbdir" = "x"; then - AC_MSG_ERROR([cannot find tdb source in $tdbpaths]) -fi -TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o" -TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o common/check.o common/hash.o" -AC_SUBST(TDB_OBJ) -AC_SUBST(LIBREPLACEOBJ) +dnl Check to see if we should use the included tdb -TDB_LIBS="" -AC_SUBST(TDB_LIBS) +INCLUDED_TDB=auto +AC_ARG_WITH(included-tdb, + [AC_HELP_STRING([--with-included-tdb], [use bundled tdb library, not from system])], + [ INCLUDED_TDB=$withval ]) -TDB_CFLAGS="-I$tdbdir/include" +AC_SUBST(TDB_LIBS) AC_SUBST(TDB_CFLAGS) +if test x"$INCLUDED_TDB" != x"yes" ; then + AC_CHECK_HEADERS(tdb.h) + AC_CHECK_LIB(tdb, tdb_transaction_write_lock_mark, [ TDB_LIBS="-ltdb" ]) + if test x"$ac_cv_header_tdb_h" = x"no" -o x"$ac_cv_lib_tdb_tdb_transaction_write_lock_mark" = x"no" ; then + INCLUDED_TDB=yes + TDB_CFLAGS="" + else + INCLUDED_TDB=no + fi +fi + +AC_MSG_CHECKING(whether to use included tdb) +AC_MSG_RESULT($INCLUDED_TDB) +if test x"$INCLUDED_TDB" != x"no" ; then + dnl find the tdb sources. This is meant to work both for + dnl tdb standalone builds, and builds of packages using tdb + tdbdir="" + tdbpaths=". lib/tdb tdb ../tdb ../lib/tdb" + for d in $tdbpaths; do + if test -f "$srcdir/$d/common/tdb.c"; then + tdbdir="$d" + AC_SUBST(tdbdir) + break; + fi + done + if test x"$tdbdir" = "x"; then + AC_MSG_ERROR([cannot find tdb source in $tdbpaths]) + fi + TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o" + TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o common/check.o common/hash.o" + AC_SUBST(TDB_OBJ) + + TDB_LIBS="" + AC_SUBST(TDB_LIBS) + + TDB_CFLAGS="-I$tdbdir/include" + AC_SUBST(TDB_CFLAGS) +fi + AC_CHECK_FUNCS(mmap pread pwrite getpagesize utime) AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h) |