]> git.sur5r.net Git - openldap/commitdiff
Handle preprocessor whitespace. Start error message on new line.
authorQuanah Gibson-Mount <quanah@openldap.org>
Thu, 18 Sep 2008 00:54:33 +0000 (00:54 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 18 Sep 2008 00:54:33 +0000 (00:54 +0000)
Updated BerkeleyDB version tests

build/openldap.m4
configure.in

index 0fa1ecf0b3bbcb1a13bfe1925bc21d274ad4c82e..dfb9f90898f5e5b5233c64d7aa46b4b706502b36 100644 (file)
@@ -288,24 +288,6 @@ AC_DEFUN([OL_BERKELEY_DB_TRY],
 #define NULL ((void*)0)
 #endif
 ]], [[
-#if DB_VERSION_MAJOR > 1
-       {
-               char *version;
-               int major, minor, patch;
-
-               version = db_version( &major, &minor, &patch );
-
-               if( major != DB_VERSION_MAJOR ||
-                       minor < DB_VERSION_MINOR )
-               {
-                       printf("Berkeley DB version mismatch\n"
-                               "\theader: %s\n\tlibrary: %s\n",
-                               DB_VERSION_STRING, version);
-                       return 1;
-               }
-       }
-#endif
-
 #if DB_VERSION_MAJOR > 2
        db_env_create( NULL, 0 );
 #elif DB_VERSION_MAJOR > 1
@@ -325,166 +307,44 @@ fi
 ])
 dnl
 dnl --------------------------------------------------------------------
-dnl Try to locate appropriate library
-AC_DEFUN([OL_BERKELEY_DB_LINK],
-[ol_cv_lib_db=no
-
-dnl Determine major version
-AC_CACHE_CHECK([for Berkeley DB major version], [ol_cv_bdb_major],[
-       ol_cv_bdb_major=0
-       if test $ol_cv_bdb_major = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MAJOR
-#      define DB_VERSION_MAJOR 1
-#endif
-#if DB_VERSION_MAJOR == 4
-__db_version
-#endif
-               ], [ol_cv_bdb_major=4], [:])
-       fi
-       if test $ol_cv_bdb_major = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MAJOR
-#      define DB_VERSION_MAJOR 1
-#endif
-#if DB_VERSION_MAJOR == 3
-__db_version
-#endif
-               ], [ol_cv_bdb_major=3], [:])
-       fi
-       if test $ol_cv_bdb_major = 0 ; then
-               AC_EGREP_CPP(__db_version, [
+dnl Get major and minor version from <db.h>
+AC_DEFUN([OL_BDB_HEADER_VERSION],
+[AC_CACHE_CHECK([for Berkeley DB major version in db.h], [ol_cv_bdb_major],[
+       AC_LANG_CONFTEST([
 #include <db.h>
 #ifndef DB_VERSION_MAJOR
 #      define DB_VERSION_MAJOR 1
 #endif
-#if DB_VERSION_MAJOR == 2
-__db_version
-#endif
-               ], [ol_cv_bdb_major=2], [:])
-       fi
-       if test $ol_cv_bdb_major = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MAJOR
-#      define DB_VERSION_MAJOR 1
-#endif
-#if DB_VERSION_MAJOR == 1
-__db_version
-#endif
-               ], [ol_cv_bdb_major=1], [:])
-       fi
-
-       if test $ol_cv_bdb_major = 0 ; then
-               AC_MSG_ERROR([Unknown Berkeley DB major version])
-       fi
+__db_version DB_VERSION_MAJOR
+])
+       set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none
+       ol_cv_bdb_major=${3}
 ])
+case $ol_cv_bdb_major in [[1-9]]*) : ;; *)
+       AC_MSG_ERROR([Unknown Berkeley DB major version in db.h]) ;;
+esac
 
 dnl Determine minor version
-AC_CACHE_CHECK([for Berkeley DB minor version], [ol_cv_bdb_minor],[
-       ol_cv_bdb_minor=0
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 9
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=9], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 8
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=8], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 7
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=7], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 6
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=6], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 5
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=5], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 4
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=4], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 3
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=3], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
-#include <db.h>
-#ifndef DB_VERSION_MINOR
-#      define DB_VERSION_MINOR 0
-#endif
-#if DB_VERSION_MINOR == 2
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=2], [:])
-       fi
-       if test $ol_cv_bdb_minor = 0 ; then
-               AC_EGREP_CPP(__db_version, [
+AC_CACHE_CHECK([for Berkeley DB minor version in db.h], [ol_cv_bdb_minor],[
+       AC_LANG_CONFTEST([
 #include <db.h>
 #ifndef DB_VERSION_MINOR
 #      define DB_VERSION_MINOR 0
 #endif
-#if DB_VERSION_MINOR == 1
-__db_version
-#endif
-               ], [ol_cv_bdb_minor=1], [:])
-       fi
+__db_version DB_VERSION_MINOR
+])
+       set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none
+       ol_cv_bdb_minor=${3}
 ])
+case $ol_cv_bdb_minor in [[0-9]]*) : ;; *)
+       AC_MSG_ERROR([Unknown Berkeley DB minor version in db.h]) ;;
+esac
+])
+dnl
+dnl --------------------------------------------------------------------
+dnl Try to locate appropriate library
+AC_DEFUN([OL_BERKELEY_DB_LINK],
+[ol_cv_lib_db=no
 
 if test $ol_cv_bdb_major = 4 ; then
        OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_m,[-ldb-4.$ol_cv_bdb_minor])
@@ -494,18 +354,6 @@ if test $ol_cv_bdb_major = 4 ; then
        OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4])
        OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
        OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
-
-elif test $ol_cv_bdb_major = 3 ; then
-       OL_BERKELEY_DB_TRY(ol_cv_db_db3,[-ldb3])
-       OL_BERKELEY_DB_TRY(ol_cv_db_db_3,[-ldb-3])
-
-elif test $ol_cv_bdb_major = 2 ; then
-       OL_BERKELEY_DB_TRY(ol_cv_db_db2,[-ldb2])
-       OL_BERKELEY_DB_TRY(ol_cv_db_db_2,[-ldb-2])
-
-elif test $ol_cv_bdb_major = 1 ; then
-       OL_BERKELEY_DB_TRY(ol_cv_db_db1,[-ldb1])
-       OL_BERKELEY_DB_TRY(ol_cv_db_db_1,[-ldb-1])
 fi
 OL_BERKELEY_DB_TRY(ol_cv_db_none)
 ])
@@ -513,7 +361,7 @@ dnl
 dnl --------------------------------------------------------------------
 dnl Check if Berkeley DB version
 AC_DEFUN([OL_BERKELEY_DB_VERSION],
-[AC_CACHE_CHECK([for Berkeley DB version match], [ol_cv_berkeley_db_version], [
+[AC_CACHE_CHECK([for Berkeley DB library and header version match], [ol_cv_berkeley_db_version], [
        ol_LIBS="$LIBS"
        LIBS="$LTHREAD_LIBS $LIBS"
        if test $ol_cv_lib_db != yes ; then
@@ -652,6 +500,13 @@ AC_DEFUN([OL_BERKELEY_DB],
 [ol_cv_berkeley_db=no
 AC_CHECK_HEADERS(db.h)
 if test $ac_cv_header_db_h = yes; then
+       OL_BDB_HEADER_VERSION
+       OL_BDB_COMPAT
+
+       if test $ol_cv_bdb_compat != yes ; then
+               AC_MSG_ERROR([BerkeleyDB version incompatible with BDB/HDB backends])
+       fi
+
        OL_BERKELEY_DB_LINK
        if test "$ol_cv_lib_db" != no ; then
                ol_cv_berkeley_db=yes
@@ -663,7 +518,7 @@ fi
 dnl --------------------------------------------------------------------
 dnl Check for version compatility with back-bdb
 AC_DEFUN([OL_BDB_COMPAT],
-[AC_CACHE_CHECK([Berkeley DB version for BDB/HDB backends], [ol_cv_bdb_compat],[
+[AC_CACHE_CHECK([if Berkeley DB version supported by BDB/HDB backends], [ol_cv_bdb_compat],[
        AC_EGREP_CPP(__db_version_compat,[
 #include <db.h>
 
@@ -684,37 +539,6 @@ AC_DEFUN([OL_BDB_COMPAT],
        ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
 ])
 
-dnl --------------------------------------------------------------------
-dnl Find old Berkeley DB 1.85/1.86
-AC_DEFUN([OL_BERKELEY_COMPAT_DB],
-[AC_CHECK_HEADERS(db_185.h db.h)
-if test $ac_cv_header_db_185_h = yes || test $ac_cv_header_db_h = yes; then
-       AC_CACHE_CHECK([if Berkeley DB header compatibility], [ol_cv_header_db1],[
-               AC_EGREP_CPP(__db_version_1,[
-#if HAVE_DB_185_H
-#      include <db_185.h>
-#else
-#      include <db.h>
-#endif
-
- /* this check could be improved */
-#ifndef DB_VERSION_MAJOR
-#      define DB_VERSION_MAJOR 1
-#endif
-
-#if DB_VERSION_MAJOR == 1 
-       __db_version_1
-#endif
-],     [ol_cv_header_db1=yes], [ol_cv_header_db1=no])])
-
-       if test $ol_cv_header_db1 = yes ; then
-               OL_BERKELEY_DB_LINK
-               if test "$ol_cv_lib_db" != no ; then
-                       ol_cv_berkeley_db=yes
-               fi
-       fi
-fi
-])
 dnl
 dnl ====================================================================
 dnl Check POSIX Thread version 
index 52f9e7e39c572fc3d769686f28f62e3b589f6f5d..6e395ac288ebc7fff70b0fb15ed2c8fdf35e327e 100644 (file)
@@ -1850,12 +1850,6 @@ if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
                BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
        fi
 
-       OL_BDB_COMPAT
-
-       if test $ol_cv_bdb_compat != yes ; then
-               AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
-       fi
-
        SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
 
        ol_link_bdb=yes