summaryrefslogtreecommitdiffstats
path: root/ctdb/lib
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2012-03-21 14:45:56 +1100
committerAmitay Isaacs <amitay@gmail.com>2012-03-30 12:33:28 +1100
commit634bbc546978011d85fb0ec76e2d0c7f53244049 (patch)
tree5c001a747976a0447017f6a3526e973ee2c05771 /ctdb/lib
parent13124e356ea2ede43ffa98dc0476330834c6cf3d (diff)
downloadsamba-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.m466
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)