1
dnl $Id: db3-check.m4,v 1.7.4.3 2003/06/06 19:51:15 srittau Exp $
2
dnl Autoconf macro to check for the Berkeley DB library
4
AC_DEFUN([AC_PATH_BDB], [
1
dnl $Id: db3-check.m4,v 1.11.6.9 2004/08/11 03:01:11 bfernhomberg Exp $
2
dnl Autoconf macros to check for the Berkeley DB library
5
AC_DEFUN([NETATALK_BDB_LINK_TRY],
6
[if test $atalk_cv_lib_db = no ; then
7
AC_MSG_CHECKING([for Berkeley DB link (]ifelse($2,,default,$2)[)])
8
atalk_DB_LIB=ifelse($2,,-ldb,$2)
10
LIBS="$atalk_DB_LIB $LIBS"
16
int major, minor, patch;
18
version = db_version( &major, &minor, &patch );
24
if test $$1 = yes ; then
25
atalk_cv_lib_db=ifelse($2,,-ldb,$2)
31
AC_DEFUN([NETATALK_BDB_CHECK_VERSION],
34
LIBS="${atalk_cv_lib_db} $LIBS"
36
AC_MSG_CHECKING([Berkeley DB library version >= ${DB_MAJOR_REQ}.${DB_MINOR_REQ}.${DB_PATCH_REQ}])
45
int major, minor, patch;
48
version_str = db_version(&major, &minor, &patch);
50
/* check library version */
51
if (major < DB_MAJOR_REQ || minor < DB_MINOR_REQ || patch < DB_PATCH_REQ) {
52
printf("library version too old (%d.%d.%d), ",major, minor, patch);
56
/* check header and library match */
57
if ( major != DB_VERSION_MAJOR || minor != DB_VERSION_MINOR || patch != DB_VERSION_PATCH) {
58
printf("header/library version mismatch (%d.%d.%d/%d.%d.%d), ",
59
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, major, minor, patch);
63
printf("%d.%d.%d, ",major, minor, patch);
66
], atalk_cv_bdb_version="yes", atalk_cv_bdb_version="no", atalk_cv_bdb_version="cross")
69
if test ${atalk_cv_bdb_version} = "yes"; then
78
AC_DEFUN([NETATALK_BDB_HEADER],
82
dnl check for header version
83
AC_MSG_CHECKING(ifelse($1,,default,$1)[/db.h version >= ${DB_MAJOR_REQ}.${DB_MINOR_REQ}.${DB_PATCH_REQ}])
93
/* check header version */
94
if (DB_VERSION_MAJOR < DB_MAJOR_REQ || DB_VERSION_MINOR < DB_MINOR_REQ ||
95
DB_VERSION_PATCH < DB_PATCH_REQ ) {
96
printf("header file version too old (%d.%d.%d), ", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
100
printf("%d.%d.%d, ", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
103
], atalk_cv_bdbheader="yes", atalk_cv_bdbheader="no", atalk_cv_bdbheader="cross")
105
if test ${atalk_cv_bdbheader} = "no"; then
111
CFLAGS="$savedcflags"
115
AC_DEFUN([NETATALK_BERKELEY_LINK],
118
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_2,[-ldb-4.2])
119
NETATALK_BDB_LINK_TRY(atalk_cv_db_db42,[-ldb42])
120
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_42,[-ldb-42])
121
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_2,[-ldb-4-2])
122
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_1,[-ldb-4.1])
123
NETATALK_BDB_LINK_TRY(atalk_cv_db_db41,[-ldb41])
124
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_41,[-ldb-41])
125
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_1,[-ldb-4-1])
126
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4,[-ldb-4])
127
NETATALK_BDB_LINK_TRY(atalk_cv_db_db4,[-ldb4])
128
NETATALK_BDB_LINK_TRY(atalk_cv_db_db,[-ldb])
132
AC_DEFUN([AC_PATH_BDB],
136
bdb_search_dirs="/usr/local/include /usr/include"
137
search_subdirs="/db4.2 /db42 /db4.1 /db41 /db4 /"
139
dnl required BDB version
144
dnl make sure atalk_libname is defined beforehand
145
[[ -n "$atalk_libname" ]] || AC_MSG_ERROR([internal error, atalk_libname undefined])
147
dnl define the required BDB version
148
AC_DEFINE_UNQUOTED(DB_MAJOR_REQ, ${DB_MAJOR_REQ}, [Required BDB version, major])
149
AC_DEFINE_UNQUOTED(DB_MINOR_REQ, ${DB_MINOR_REQ}, [Required BDB version, minor])
150
AC_DEFINE_UNQUOTED(DB_PATCH_REQ, ${DB_PATCH_REQ}, [Required BDB version, patch])
7
[ --with-bdb=PATH specify path to Berkeley DB installation],
8
if test "x$withval" != "xno"; then
154
[ --with-bdb=PATH specify path to Berkeley DB installation[[auto]]],
155
if test "x$withval" = "xno"; then
157
elif test "x$withval" = "xyes"; then
160
bdb_search_dirs="$withval/include $withval"
14
for bdbdir in "" "$trybdbdir" "$trybdbdir/include" "$trybdbdir/include/db3" "/usr/local/BerkeleyDB.3.3/include" "/usr/local/include/db3" "/usr/local/include" "/usr/include/db3" "/usr/include" ; do
15
if test -f "$bdbdir/db.h" ; then
16
bdblibdir="`echo $bdbdir | sed 's/include\/db3$/lib/'`"
17
bdblibdir="`echo $bdblibdir | sed 's/include$/lib/'`"
18
bdbbindir="`echo $bdbdir | sed 's/include\/db3$/bin/'`"
19
bdbbindir="`echo $bdbbindir | sed 's/include$/bin/'`"
166
savedcflags="$CFLAGS"
167
savedldflags="$LDFLAGS"
168
savedcppflags="$CPPFLAGS"
22
savedldflags="$LDFLAGS"
23
CFLAGS="$CFLAGS -I$bdbdir"
24
LDFLAGS="-L$bdblibdir $LDFLAGS"
25
AC_CHECK_LIB(db, main, [
27
if test "$bdbdir" != "/usr/include"; then
28
BDB_CFLAGS="-I$bdbdir"
30
if test "$bdblibdir" != "/usr/lib"; then
31
BDB_LIBS="-L$bdblibdir"
33
BDB_LIBS="$BDB_LIBS -ldb"
35
BDB_PATH="`echo $bdbdir | sed 's,include/db3$,,'`"
36
BDB_PATH="`echo $BDB_PATH | sed 's,include$,,'`"
39
LDFLAGS="$savedldflags"
171
if test "x$dobdbsearch" = "xyes"; then
172
for bdbdir in $bdb_search_dirs; do
173
if test $bdbfound = "yes"; then
176
for subdir in ${search_subdirs}; do
177
AC_MSG_CHECKING([for Berkeley DB headers in ${bdbdir}${subdir}])
178
if test -f "${bdbdir}${subdir}/db.h" ; then
180
NETATALK_BDB_HEADER([${bdbdir}${subdir}])
181
if test ${atalk_cv_bdbheader} != "no"; then
183
dnl bdblibdir="`echo $bdbdir | sed 's/\/include\/db4\.*.*//'`"
184
bdblibdir="`echo $bdbdir | sed 's/\/include\/db4.*//'`"
185
bdblibdir="`echo $bdblibdir | sed 's/\/include$//'`"
186
bdblibdir="${bdblibdir}/${atalk_libname}"
187
dnl bdbbindir="`echo $bdbdir | sed 's/include\/db4\.*.*/bin/'`"
188
bdbbindir="`echo $bdbdir | sed 's/\/include\/db4.*/bin/'`"
189
bdbbindir="`echo $bdbbindir | sed 's/include$/bin/'`"
191
CPPFLAGS="-I${bdbdir}${subdir} $CFLAGS"
193
LDFLAGS="-L$bdblibdir $LDFLAGS"
194
NETATALK_BERKELEY_LINK
195
if test x"${atalk_cv_lib_db}" != x"no"; then
196
NETATALK_BDB_CHECK_VERSION
197
if test x"${atalk_cv_bdb_version}" != x"no"; then
198
BDB_LIBS="-L${bdblibdir} ${atalk_cv_lib_db}"
199
BDB_CFLAGS="-I${bdbdir}${subdir}"
201
BDB_PATH="`echo $bdbdir | sed 's,include\/db4$,,'`"
202
BDB_PATH="`echo $BDB_PATH | sed 's,include$,,'`"
207
CFLAGS="$savedcflags"
208
LDFLAGS="$savedldflags"
209
CPPFLAGS="$savedcppflags"
219
CFLAGS="$savedcflags"
220
LDFLAGS="$savedldflags"
221
CPPFLAGS="$savedcppflags"
44
224
if test "x$bdbfound" = "xyes"; then
45
225
ifelse([$1], , :, [$1])