blob: 9265a01701abdbf802b15d0f8eebf868ca43ea95 [file] [log] [blame]
--- ./build/top.mk.orig 2014-10-24 14:34:59.260827298 +0200
+++ ./build/top.mk 2014-10-24 14:35:25.281168893 +0200
@@ -160,6 +160,7 @@
LTHREAD_LIBS = @LTHREAD_LIBS@
BDB_LIBS = @BDB_LIBS@
+MDB_LIBS = @MDB_LIBS@
SLAPD_NDB_LIBS = @SLAPD_NDB_LIBS@
LDAP_LIBLBER_LA = $(LDAP_LIBDIR)/liblber/liblber.la
--- ./build/openldap.m4.orig 2014-10-24 10:52:02.837221734 +0200
+++ ./build/openldap.m4 2014-10-24 11:31:02.748087966 +0200
@@ -563,6 +563,38 @@
], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
])
+dnl --------------------------------------------------------------------
+dnl Check for version compatility with back-mdb
+AC_DEFUN([OL_MDB_COMPAT],
+[AC_CACHE_CHECK([if LMDB version supported by MDB backends], [ol_cv_mdb_compat],[
+ AC_EGREP_CPP(__mdb_version_compat,[
+#include <lmdb.h>
+
+/* require 0.9.14 or later */
+#if MDB_VERSION_FULL >= 0x00000009000E
+ __mdb_version_compat
+#endif
+ ], [ol_cv_mdb_compat=yes], [ol_cv_mdb_compat=no])])
+])
+
+dnl
+dnl --------------------------------------------------------------------
+dnl Find any MDB
+AC_DEFUN([OL_MDB],
+[ol_cv_mdb=no
+AC_CHECK_HEADERS(lmdb.h)
+if test $ac_cv_header_lmdb_h = yes; then
+ OL_MDB_COMPAT
+
+ if test $ol_cv_mdb_compat != yes ; then
+ AC_MSG_ERROR([LMDB version incompatible with MDB backends])
+ fi
+
+ ol_cv_lib_mdb=-llmdb
+ ol_cv_mdb=yes
+fi
+])
+
dnl
dnl ====================================================================
dnl Check POSIX Thread version
--- ./servers/slapd/back-mdb/Makefile.in.orig 2014-10-24 10:31:30.860931076 +0200
+++ ./servers/slapd/back-mdb/Makefile.in 2014-10-24 14:33:33.803705424 +0200
@@ -25,11 +25,10 @@
extended.lo operational.lo \
attr.lo index.lo key.lo filterindex.lo \
dn2entry.lo dn2id.lo id2entry.lo idl.lo \
- nextid.lo monitor.lo mdb.lo midl.lo
+ nextid.lo monitor.lo
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries
-MDB_SUBDIR = $(srcdir)/$(LDAP_LIBDIR)/liblmdb
BUILD_OPT = "--enable-mdb"
BUILD_MOD = @BUILD_MDB@
@@ -44,7 +43,7 @@
LIBBASE = back_mdb
-XINCPATH = -I.. -I$(srcdir)/.. -I$(MDB_SUBDIR)
+XINCPATH = -I.. -I$(srcdir)/..
XDEFS = $(MODULES_CPPFLAGS)
all-local-lib: ../.backend
@@ -52,11 +51,5 @@
../.backend: lib$(LIBBASE).a
@touch $@
-mdb.lo: $(MDB_SUBDIR)/mdb.c
- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/mdb.c
-
-midl.lo: $(MDB_SUBDIR)/midl.c
- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/midl.c
-
veryclean-local-lib: FORCE
$(RM) $(XXHEADERS) $(XXSRCS) .links
--- ./configure.in.orig 2014-10-24 10:46:53.289139847 +0200
+++ ./configure.in 2014-10-24 10:51:34.372846374 +0200
@@ -519,6 +519,7 @@
dnl Initialize vars
LDAP_LIBS=
BDB_LIBS=
+MDB_LIBS=
SLAPD_NDB_LIBS=
SLAPD_NDB_INCS=
LTHREAD_LIBS=
@@ -1905,6 +1906,30 @@
fi
dnl ----------------------------------------------------------------
+ol_link_mdb=no
+
+if test $ol_enable_mdb != no; then
+ OL_MDB
+
+ if test $ol_cv_mdb = no ; then
+ AC_MSG_ERROR(MDB: LMDB not available)
+ fi
+
+ AC_DEFINE(HAVE_MDB,1,
+ [define this if LMDB is available])
+
+ dnl $ol_cv_lib_mdb should be yes or -llmdb
+ dnl (it could be no, but that would be an error
+ if test $ol_cv_lib_mdb != yes ; then
+ MDB_LIBS="$MDB_LIBS $ol_cv_lib_mdb"
+ fi
+
+ SLAPD_LIBS="$SLAPD_LIBS \$(MDB_LIBS)"
+
+ ol_link_mdb=yes
+fi
+
+dnl ----------------------------------------------------------------
if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
BUILD_LIBS_DYNAMIC=shared
@@ -3133,6 +3158,7 @@
AC_SUBST(LDAP_LIBS)
AC_SUBST(SLAPD_LIBS)
AC_SUBST(BDB_LIBS)
+AC_SUBST(MDB_LIBS)
AC_SUBST(SLAPD_NDB_LIBS)
AC_SUBST(SLAPD_NDB_INCS)
AC_SUBST(LTHREAD_LIBS)