X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=build%2Fopenldap.m4;h=5a9bb11b6f7be43ed241790eda85a0eaa7cc9673;hb=825870a0725dceba602b5ce6f6f4f326038b4c21;hp=0fa1ecf0b3bbcb1a13bfe1925bc21d274ad4c82e;hpb=c112bc2ca1dd6a433b133c2068c1fe923704e91c;p=openldap
diff --git a/build/openldap.m4 b/build/openldap.m4
index 0fa1ecf0b3..5a9bb11b6f 100644
--- a/build/openldap.m4
+++ b/build/openldap.m4
@@ -2,7 +2,7 @@ dnl OpenLDAP Autoconf Macros
dnl $OpenLDAP$
dnl This work is part of OpenLDAP Software .
dnl
-dnl Copyright 1998-2008 The OpenLDAP Foundation.
+dnl Copyright 1998-2009 The OpenLDAP Foundation.
dnl All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
@@ -119,6 +119,17 @@ if test $ol_cv_cpp_ebcdic = yes ; then
fi
])
dnl
+dnl --------------------------------------------------------------------
+dnl Check for MSVC
+AC_DEFUN([OL_MSVC],
+[AC_REQUIRE_CPP()dnl
+AC_CACHE_CHECK([whether we are using MS Visual C++], ol_cv_msvc,
+[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
+#ifndef _MSC_VER
+#include <__FOO__/generate_error.h>
+#endif
+]])],[ol_cv_msvc=yes],[ol_cv_msvc=no])])])
+
dnl --------------------------------------------------------------------
dnl OpenLDAP version of STDC header check w/ EBCDIC support
AC_DEFUN([OL_HEADER_STDC],
@@ -288,24 +299,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 +318,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
-#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
-#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, [
-#include
-#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, [
+dnl Get major and minor version from
+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
#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, [
+AC_CACHE_CHECK([for Berkeley DB minor version in db.h], [ol_cv_bdb_minor],[
+ AC_LANG_CONFTEST([
#include
#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
-#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
-#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
-#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
-#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
-#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
-#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
-#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, [
-#include
-#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 +365,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 +372,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 +511,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 +529,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
@@ -684,37 +550,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
-#else
-# include
-#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
@@ -1086,7 +921,9 @@ AC_DEFUN([OL_LIB_FETCH],
LIBS="-lfetch -lcom_err $LIBS"
AC_CACHE_CHECK([fetch(3) library],ol_cv_lib_fetch,[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#ifdef HAVE_SYS_PARAM_H
#include
+#endif
#include
#include ]], [[struct url *u = fetchParseURL("file:///"); ]])],[ol_cv_lib_fetch=yes],[ol_cv_lib_fetch=no])])
LIBS=$ol_LIBS