From 7e80b89d48a3c9c048be4d75bae11f12a6d37f2c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 19 Jun 2012 12:43:17 +0930 Subject: [PATCH] ntdb: add autoconf support. This is copied from tdb; we build the utilities, but as nothing else links against it, we shouldn't be adding anything to the normal samba binary sizes. Signed-off-by: Rusty Russell Autobuild-User(master): Rusty Russell Autobuild-Date(master): Tue Jun 19 07:31:06 CEST 2012 on sn-devel-104 --- lib/ntdb/libntdb.m4 | 41 ++++++++++++++++++++++++++++++++++++++ source3/Makefile.in | 8 ++++++++ source3/configure.in | 47 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 lib/ntdb/libntdb.m4 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 ]) +AC_HAVE_DECL(pwrite, [#include ]) + +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) -- 2.34.1