summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/ntdb/libntdb.m441
-rw-r--r--source3/Makefile.in8
-rw-r--r--source3/configure.in47
3 files changed, 96 insertions, 0 deletions
diff --git a/lib/ntdb/libntdb.m4 b/lib/ntdb/libntdb.m4
new file mode 100644
index 00000000000..b713ababfdd
--- /dev/null
+++ b/lib/ntdb/libntdb.m4
@@ -0,0 +1,41 @@
+dnl find the ntdb sources. This is meant to work both for
+dnl ntdb standalone builds, and builds of packages using ntdb
+ntdbdir=""
+ntdbpaths=". lib/ntdb ntdb ../ntdb ../lib/ntdb"
+for d in $ntdbpaths; do
+ if test -f "$srcdir/$d/ntdb.c"; then
+ ntdbdir="$d"
+ AC_SUBST(ntdbdir)
+ break;
+ fi
+done
+if test x"$ntdbdir" = "x"; then
+ AC_MSG_ERROR([cannot find ntdb source in $ntdbpaths])
+fi
+NTDB_OBJ="check.o free.o hash.o io.o lock.o ntdb.o open.o pyntdb.o summary.o transaction.o traverse.o"
+AC_SUBST(NTDB_OBJ)
+AC_SUBST(LIBREPLACEOBJ)
+AC_SUBST(CCAN_OBJ)
+
+NTDB_LIBS=""
+AC_SUBST(NTDB_LIBS)
+
+NTDB_DEPS=""
+if test x$libreplace_cv_HAVE_FDATASYNC_IN_LIBRT = xyes ; then
+ NTDB_DEPS="$NTDB_DEPS -lrt"
+fi
+AC_SUBST(NTDB_DEPS)
+
+NTDB_CFLAGS="-I$ntdbdir"
+AC_SUBST(NTDB_CFLAGS)
+
+AC_CHECK_FUNCS(mmap pread pwrite getpagesize utime)
+AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h)
+
+AC_HAVE_DECL(pread, [#include <unistd.h>])
+AC_HAVE_DECL(pwrite, [#include <unistd.h>])
+
+if test x"$VERSIONSCRIPT" != "x"; then
+ EXPORTSFILE=ntdb.exports
+ AC_SUBST(EXPORTSFILE)
+fi
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 56c81d9aef0..f4b00a7ff03 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -115,6 +115,9 @@ LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
LIBTDB=@LIBTDB_STATIC@
LIBTDB_LIBS=@LIBTDB_LIBS@
TDB_DEPS=@TDB_DEPS@
+LIBNTDB=@LIBNTDB_STATIC@
+LIBNTDB_LIBS=@LIBNTDB_LIBS@
+NTDB_DEPS=@NTDB_DEPS@
LIBNETAPI=@LIBNETAPI_STATIC@ @LIBNETAPI_SHARED@
LIBNETAPI_LIBS=@LIBNETAPI_LIBS@
LIBSMBCLIENT_LIBS=@LIBSMBCLIENT_LIBS@
@@ -127,6 +130,11 @@ TDBTOOL = @TDBTOOL@
TDBDUMP = @TDBDUMP@
TDBRESTORE = @TDBRESTORE@
TDBTORTURE = @TDBTORTURE@
+NTDBBACKUP = @NTDBBACKUP@
+NTDBTOOL = @NTDBTOOL@
+NTDBDUMP = @NTDBDUMP@
+NTDBRESTORE = @NTDBRESTORE@
+NTDBTORTURE = @NTDBTORTURE@
PTHREADPOOLTEST = @PTHREADPOOLTEST@
INSTALLCMD=@INSTALL@
diff --git a/source3/configure.in b/source3/configure.in
index 6705a2716b5..c5775f810c5 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -1913,6 +1913,53 @@ then
AC_SUBST(TDBTORTURE)
fi
+AC_ARG_ENABLE(external_libntdb,
+ [AS_HELP_STRING([--enable-external-libntdb],
+ [Enable external ntdb [default=auto]])],
+ [ enable_external_libntdb=$enableval ],
+ [ enable_external_libntdb=auto ])
+
+if test "x$enable_external_libntdb" != xno
+then
+ PKG_CHECK_MODULES(LIBNTDB, ntdb >= 1.0,
+ [ enable_external_libntdb=yes ],
+ [
+ if test x$enable_external_libntdb = xyes; then
+ AC_MSG_ERROR([Unable to find libntdb])
+ else
+ enable_external_libntdb=no
+ fi
+ ])
+fi
+
+AC_SUBST(LIBNTDB_OBJ0)
+if test "x$enable_external_libntdb" = xno
+then
+ m4_include(../lib/ntdb/libntdb.m4)
+ LINK_LIBNTDB=STATIC
+ LIBNTDBVERSION=`grep ^VERSION ${ntdbdir}/wscript | sed -e "s/'//g" -e 's/.* //'`
+ SMB_LIBRARY(ntdb, 1, ${LIBNTDBVERSION})
+ LIBNTDB_OBJ0=""
+ LIBNTDB_LIBS="$LIBNTDB_LIBS $NTDB_DEPS"
+ for obj in ${NTDB_OBJ}; do
+ LIBNTDB_OBJ0="${LIBNTDB_OBJ0} ${ntdbdir}/${obj}"
+ done
+ AC_SUBST(LIBNTDB_OBJ0)
+ SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${NTDB_CFLAGS}"
+ SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CONFIGURE_CPPFLAGS} ${NTDB_CFLAGS}"
+
+ NTDBBACKUP="bin/ntdbbackup"
+ AC_SUBST(NTDBBACKUP)
+ NTDBDUMP="bin/ntdbdump"
+ AC_SUBST(NTDBDUMP)
+ NTDBRESTORE="bin/ntdbrestore"
+ AC_SUBST(NTDBRESTORE)
+ NTDBTOOL="bin/ntdbtool"
+ AC_SUBST(NTDBTOOL)
+ NTDBTORTURE="bin/ntdbtorture"
+ AC_SUBST(NTDBTORTURE)
+fi
+
SMB_LIBRARY(netapi, 0)
SMB_LIBRARY(smbclient, 0)
SMB_LIBRARY(smbsharemodes, 0)