| 1 |
### F_CHECK_BERKELEYDB |
| 2 |
### |
| 3 |
### Check for the right version of the Berkeley DB library. |
| 4 |
|
| 5 |
AC_DEFUN([F_CHECK_BERKELEYDB], [ |
| 6 |
|
| 7 |
AC_ARG_WITH(db4, [ --with-db4=PREFIX Location of db4], |
| 8 |
[with_db4_includes="$withval/include" |
| 9 |
with_db4_libs="$withval/lib"]) |
| 10 |
AC_ARG_WITH(db4-includes, [ --with-db4-includes=PATH Location of db4 includes], |
| 11 |
with_db4_includes="$withval") |
| 12 |
AC_ARG_WITH(db4-libs, [ --with-db4-libs=PATH Location of db4 libs], |
| 13 |
with_db4_libs="$withval") |
| 14 |
|
| 15 |
if test -z "$with_db4_libs"; then |
| 16 |
with_db4_libs="/usr/lib" |
| 17 |
fi |
| 18 |
|
| 19 |
AC_CACHE_CHECK([for db4 compiler flags], ac_cv_db4_cflags, |
| 20 |
[ |
| 21 |
if test -n "${with_db4_includes}"; then |
| 22 |
ac_cv_db4_cflags="-I$with_db4_includes" |
| 23 |
fi |
| 24 |
]) |
| 25 |
DB4_CFLAGS=$ac_cv_db4_cflags |
| 26 |
AC_SUBST(DB4_CFLAGS) |
| 27 |
|
| 28 |
CPPFLAGS_save="$CPPFLAGS" |
| 29 |
CPPFLAGS="$DB4_CFLAGS $CPPFLAGS" |
| 30 |
AC_CHECK_HEADERS(db.h db4/db.h, break) |
| 31 |
|
| 32 |
AC_CACHE_CHECK([db4 header version], ac_cv_db4_header_version, |
| 33 |
[ |
| 34 |
AC_TRY_COMPILE([ |
| 35 |
#ifdef HAVE_DB4_DB_H |
| 36 |
#include <db4/db.h> |
| 37 |
#else |
| 38 |
#include <db.h> |
| 39 |
#endif |
| 40 |
],[ |
| 41 |
#if DB_VERSION_MAJOR != 4 |
| 42 |
#error |
| 43 |
#endif |
| 44 |
], :, AC_MSG_ERROR(Found db.h is not version 4)) |
| 45 |
|
| 46 |
ac_cv_db4_header_version=4 |
| 47 |
]) |
| 48 |
|
| 49 |
AC_CACHE_CHECK([for db4 library name], ac_cv_db4_ldadd, |
| 50 |
[ |
| 51 |
LIBS_save="$LIBS" |
| 52 |
ac_cv_db4_ldadd="" |
| 53 |
|
| 54 |
for name in db db4 db-3.1; do |
| 55 |
LIBS="$LIBS_save $with_db4_libs/lib${name}.a" |
| 56 |
AC_TRY_LINK([ |
| 57 |
#ifdef HAVE_DB4_DB_H |
| 58 |
#include <db4/db.h> |
| 59 |
#else |
| 60 |
#include <db.h> |
| 61 |
#endif |
| 62 |
],[ |
| 63 |
DB *db; |
| 64 |
db_create (&db, 0, 0); |
| 65 |
], [ |
| 66 |
ac_cv_db4_ldadd="$with_db4_libs/lib${name}.a" |
| 67 |
break |
| 68 |
]) |
| 69 |
done |
| 70 |
LIBS="$LIBS_save" |
| 71 |
|
| 72 |
if test -z "$ac_cv_db4_ldadd"; then |
| 73 |
AC_MSG_ERROR(Could not find db4 library) |
| 74 |
fi |
| 75 |
]) |
| 76 |
DB4_LDADD=$ac_cv_db4_ldadd |
| 77 |
AC_SUBST(DB4_LDADD) |
| 78 |
|
| 79 |
AC_CACHE_CHECK([that db4 library version matches header version], ac_cv_db4_lib_version_match, |
| 80 |
[ |
| 81 |
LIBS="$DB4_LDADD $LIBS" |
| 82 |
AC_TRY_RUN([ |
| 83 |
#ifdef HAVE_DB4_DB_H |
| 84 |
#include <db4/db.h> |
| 85 |
#else |
| 86 |
#include <db.h> |
| 87 |
#endif |
| 88 |
|
| 89 |
int |
| 90 |
main (void) |
| 91 |
{ |
| 92 |
int major, minor, patch; |
| 93 |
|
| 94 |
db_version (&major, &minor, &patch); |
| 95 |
return !(major == DB_VERSION_MAJOR && |
| 96 |
minor == DB_VERSION_MINOR && |
| 97 |
patch == DB_VERSION_PATCH); |
| 98 |
} |
| 99 |
], ac_cv_db4_lib_version_match=yes, ac_cv_db4_lib_version_match=no, |
| 100 |
ac_cv_db4_lib_version_match=yes) |
| 101 |
]) |
| 102 |
if test "$ac_cv_db4_lib_version_match" = no; then |
| 103 |
AC_MSG_ERROR(db4 headers and library do not match... multiple copies installed?) |
| 104 |
fi |
| 105 |
|
| 106 |
CPPFLAGS="$CPPFLAGS_save" |
| 107 |
LIBS="$LIBS_save" |
| 108 |
|
| 109 |
]) |