]> arthur.barton.de Git - netatalk.git/blobdiff - macros/db3-check.m4
Support for BerkeleyDB 5.0
[netatalk.git] / macros / db3-check.m4
index 126c496b3f95c1a2781f390731789b359f82106d..7b3c64edecdb1e62bf586399cc6e98de652231a8 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: db3-check.m4,v 1.22 2010-04-03 07:11:36 franklahm Exp $
+dnl $Id: db3-check.m4,v 1.23 2010-04-12 14:28:48 franklahm Exp $
 dnl Autoconf macros to check for the Berkeley DB library
 
 dnl -- check header for minimum version and return version in
@@ -10,7 +10,10 @@ AC_DEFUN([NETATALK_BDB_HEADER],[
     atalk_cv_bdb_MAJOR=`grep DB_VERSION_MAJOR "$1/db.h" | cut -f 3`
     atalk_cv_bdb_MINOR=`grep DB_VERSION_MINOR "$1/db.h" | cut -f 3`
 
-    if test $DB_MAJOR_REQ -gt $atalk_cv_bdb_MAJOR ; then
+    if test $atalk_cv_bdb_MAJOR -gt $DB_MAJOR_REQ ; then
+        AC_MSG_RESULT([yes])
+        atalk_cv_bdbheader=yes
+    elif test $DB_MAJOR_REQ -gt $atalk_cv_bdb_MAJOR ; then
         AC_MSG_RESULT([no])
         atalk_cv_bdbheader=no
     elif test $DB_MINOR_REQ -gt $atalk_cv_bdb_MINOR ; then
@@ -28,7 +31,7 @@ AC_DEFUN([NETATALK_BDB_TRY_LINK],[
     atalk_cv_bdb_version=no
     maj=$atalk_cv_bdb_MAJOR
     min=$atalk_cv_bdb_MINOR
-    atalk_cv_bdb_try_libs="db$maj$min db$maj.$min db-$maj$min db-$maj.$min db"
+    atalk_cv_bdb_try_libs="db$maj$min db$maj.$min db-$maj$min db-$maj.$min db$maj-$maj.$min db"
 
     for lib in $atalk_cv_bdb_try_libs ; do
         LIBS="-l$lib $savedlibs"
@@ -40,7 +43,7 @@ AC_DEFUN([NETATALK_BDB_TRY_LINK],[
                 int major, minor, patch;
                 char *version_str;
                 version_str = db_version(&major, &minor, &patch);
-                if (major < DB_MAJOR_REQ || minor < DB_MINOR_REQ || patch < DB_PATCH_REQ) {
+                if ((major*100 + minor*10 + patch) < (DB_MAJOR_REQ*100 + DB_MINOR_REQ*10 + DB_PATCH_REQ)) {
                     printf("linking wrong library version (%d.%d.%d), ",major, minor, patch);
                     return (2);
                 }
@@ -84,7 +87,7 @@ AC_DEFUN([AC_PATH_BDB],[
     trybdbdir=""
     dobdbsearch=yes
     bdb_search_dirs="/usr/local /usr"
-    search_subdirs="/ /db4.7 /db47 /db4.6 /db46 /db4.5 /db45 /db4.4 /db44 /db4"
+    search_subdirs="/ /db5 /db5.0 /db50 /db4.8 /db48 /db4.7 /db47 /db4.6 /db46 /db4"
 
     bdbfound=no
     savedcflags="$CFLAGS"
@@ -115,7 +118,6 @@ AC_DEFUN([AC_PATH_BDB],[
             dobdbsearch=yes
         else
             bdb_search_dirs="$withval"
-            atalk_libname=lib
         fi
     )
 
@@ -158,6 +160,28 @@ AC_DEFUN([AC_PATH_BDB],[
                             bdbfound=yes
                             break;
                         fi
+
+                        dnl -- Search for 64bit lib in "lib" too
+                        if test x"$atalk_libname" = x"lib64" ; then
+                           bdblibdir="${bdbdir}/lib"
+                           bdbbindir="${bdbdir}/bin"
+
+                           CPPFLAGS="-I${bdbdir}/include${subdir} $CPPFLAGS"
+                           LDFLAGS="-L$bdblibdir $LDFLAGS"
+
+                           eval export $shlibpath_var=$bdblibdir
+                           NETATALK_BDB_TRY_LINK
+                           eval export $shlibpath_var=$saved_shlibpath_var
+
+                           if test x"${atalk_cv_bdb_version}" = x"yes"; then
+                              BDB_CFLAGS="-I${bdbdir}/include${subdir}"
+                              BDB_LIBS="-L${bdblibdir} ${atalk_cv_lib_db}"
+                              BDB_BIN="$bdbbindir"
+                              BDB_PATH="$bdbdir"
+                              bdbfound=yes
+                              break;
+                           fi
+                        fi
                     fi
                     CFLAGS="$savedcflags"
                     LDFLAGS="$savedldflags"