📄 dbm.m4
字号:
dnl if present: sets apu_db_header, apu_db_lib, and apu_db_version
dnl
AC_DEFUN(APU_CHECK_DB42, [
places=$1
if test -z "$places"; then
places="std /usr/local/BerkeleyDB.4.2 /boot/home/config"
fi
APU_CHECK_BERKELEY_DB("4", "2", "-1",
"$places",
"db42/db.h db4/db.h db.h",
"db-4.2 db4 db"
)
if test "$apu_have_db" = "1"; then
apu_db_version=4
fi
])
dnl
dnl APU_CHECK_DB43: is DB4.3 present?
dnl
dnl if present: sets apu_db_header, apu_db_lib, and apu_db_version
dnl
AC_DEFUN(APU_CHECK_DB43, [
places=$1
if test -z "$places"; then
places="std /usr/local/BerkeleyDB.4.3 /boot/home/config"
fi
APU_CHECK_BERKELEY_DB("4", "3", "-1",
"$places",
"db43/db.h db4/db.h db.h",
"db-4.3 db43 db4 db"
)
if test "$apu_have_db" = "1"; then
apu_db_version=4
fi
])
AC_DEFUN(APU_CHECK_DB, [
requested=$1
check_places=$2
case "$requested" in
db)
APU_CHECK_DB_ALL("$check_places")
if test "$apu_have_db" = "0"; then
AC_MSG_ERROR(Berkeley db requested, but not found)
fi
;;
db1)
APU_CHECK_DB1("$check_places")
if test "$apu_db_version" != "1"; then
AC_MSG_ERROR(Berkeley db1 not found)
fi
;;
db185)
APU_CHECK_DB185("$check_places")
if test "$apu_db_version" != "185"; then
AC_MSG_ERROR(Berkeley db185 not found)
fi
;;
db2)
APU_CHECK_DB2("$check_places")
if test "$apu_db_version" != "2"; then
AC_MSG_ERROR(Berkeley db2 not found)
fi
;;
db3)
APU_CHECK_DB3("$check_places")
if test "$apu_db_version" != "3"; then
AC_MSG_ERROR(Berkeley db3 not found)
fi
;;
db4)
APU_CHECK_DB4("$check_places")
if test "$apu_db_version" != "4"; then
AC_MSG_ERROR(Berkeley db4 not found)
fi
;;
db41)
APU_CHECK_DB41("$check_places")
if test "$apu_db_version" != "4"; then
AC_MSG_ERROR(Berkeley db4 not found)
fi
;;
db42)
APU_CHECK_DB42("$check_places")
if test "$apu_db_version" != "4"; then
AC_MSG_ERROR(Berkeley db4 not found)
fi
;;
db43)
APU_CHECK_DB43("$check_places")
if test "$apu_db_version" != "4"; then
AC_MSG_ERROR(Berkeley db4 not found)
fi
;;
default)
APU_CHECK_DB_ALL("$check_places")
;;
esac
])
dnl
dnl APU_CHECK_DB_ALL: Try all Berkeley DB versions, from 4.3 to 1.
dnl
AC_DEFUN(APU_CHECK_DB_ALL, [
all_places=$1
APU_CHECK_DB43("$all_places")
if test "$apu_db_version" != "4"; then
APU_CHECK_DB42("$all_places")
if test "$apu_db_version" != "4"; then
APU_CHECK_DB41("$all_places")
if test "$apu_db_version" != "4"; then
APU_CHECK_DB4("$all_places")
if test "$apu_db_version" != "4"; then
APU_CHECK_DB3("$all_places")
if test "$apu_db_version" != "3"; then
APU_CHECK_DB2("$all_places")
if test "$apu_db_version" != "2"; then
APU_CHECK_DB1("$all_places")
if test "$apu_db_version" != "1"; then
APU_CHECK_DB185("$all_places")
fi
fi
fi
fi
fi
fi
fi
AC_MSG_CHECKING(for Berkeley DB)
if test "$apu_have_db" = "1"; then
AC_MSG_RESULT(found db$apu_db_version)
else
AC_MSG_RESULT(not found)
fi
])
dnl
dnl APU_CHECK_DBM: see what kind of DBM backend to use for apr_dbm.
dnl
AC_DEFUN(APU_CHECK_DBM, [
apu_use_sdbm=0
apu_use_ndbm=0
apu_use_gdbm=0
apu_use_db=0
dnl it's in our codebase
apu_have_sdbm=1
apu_have_gdbm=0
apu_have_ndbm=0
apu_have_db=0
apu_db_header=db.h # default so apu_select_dbm.h is syntactically correct
apu_db_version=0
AC_ARG_WITH(dbm, [
--with-dbm=DBM choose the DBM type to use.
DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43}
], [
if test "$withval" = "yes"; then
AC_MSG_ERROR([--with-dbm needs to specify a DBM type to use.
One of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43])
fi
requested="$withval"
], [
requested=default
])
AC_ARG_WITH([gdbm], [
--with-gdbm=DIR specify GDBM location
], [
apu_have_gdbm=0
if test "$withval" = "yes"; then
AC_CHECK_HEADER(gdbm.h, AC_CHECK_LIB(gdbm, gdbm_open, [apu_have_gdbm=1]))
elif test "$withval" = "no"; then
apu_have_gdbm=0
else
CPPFLAGS="-I$withval/include"
LIBS="-L$withval/lib "
AC_MSG_CHECKING(checking for gdbm in $withval)
AC_CHECK_HEADER(gdbm.h, AC_CHECK_LIB(gdbm, gdbm_open, [apu_have_gdbm=1]))
if test "$apu_have_gdbm" != "0"; then
APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include])
fi
fi
], [
apu_have_gdbm=0
AC_CHECK_HEADER(gdbm.h, AC_CHECK_LIB(gdbm, gdbm_open, [apu_have_gdbm=1]))
])
AC_ARG_WITH([ndbm], [
--with-ndbm=PATH
Find the NDBM header and library in \`PATH/include' and
\`PATH/lib'. If PATH is of the form \`HEADER:LIB', then search
for header files in HEADER, and the library in LIB. If you omit
the \`=PATH' part completely, the configure script will search
for NDBM in a number of standard places.
], [
apu_have_ndbm=0
if test "$withval" = "yes"; then
AC_MSG_CHECKING(checking for ndbm in the usual places)
apu_want_ndbm=1
NDBM_INC=""
NDBM_LDFLAGS=""
elif test "$withval" = "no"; then
apu_want_ndbm=0
else
apu_want_ndbm=1
case "$withval" in
*":"*)
NDBM_INC="-I`echo $withval |sed -e 's/:.*$//'`"
NDBM_LDFLAGS="-L`echo $withval |sed -e 's/^.*://'`"
AC_MSG_CHECKING(checking for ndbm includes with $NDBM_INC libs with $NDBM_LDFLAGS )
;;
*)
NDBM_INC="-I$withval/include"
NDBM_LDFLAGS="-L$withval/lib"
AC_MSG_CHECKING(checking for ndbm includes in $withval)
;;
esac
fi
save_cppflags="$CPPFLAGS"
save_ldflags="$LDFLAGS"
CPPFLAGS="$CPPFLAGS $NDBM_INC"
LDFLAGS="$LDFLAGS $NDBM_LDFLAGS"
dnl db_ndbm_open is what sleepcat's compatibility library actually has in it's lib
if test "$apu_want_ndbm" != "0"; then
AC_CHECK_HEADER(ndbm.h,
AC_CHECK_LIB(c, dbm_open, [apu_have_ndbm=1;apu_ndbm_lib=c],
AC_CHECK_LIB(dbm, dbm_open, [apu_have_ndbm=1;apu_ndbm_lib=dbm],
AC_CHECK_LIB(db, dbm_open, [apu_have_ndbm=1;apu_ndbm_lib=db],
AC_CHECK_LIB(db, __db_ndbm_open, [apu_have_ndbm=1;apu_ndbm_lib=db])
)
)
)
)
if test "$apu_have_ndbm" != "0"; then
if test "$withval" != "yes"; then
APR_ADDTO(APRUTIL_INCLUDES, [$NDBM_INC])
APR_ADDTO(APRUTIL_LDFLAGS, [$NDBM_LDFLAGS])
fi
elif test "$withval" != "yes"; then
AC_ERROR( NDBM not found in the specified directory)
fi
fi
CPPFLAGS="$save_cppflags"
LDFLAGS="$save_ldflags"
], [
dnl don't check it no one has asked us for it
apu_have_ndbm=0
])
if test -n "$apu_db_xtra_libs"; then
saveddbxtralibs="$LIBS"
LIBS="$apu_db_xtra_libs $LIBS"
fi
dnl We're going to try to find the highest version of Berkeley DB supported.
AC_ARG_WITH([berkeley-db], [
--with-berkeley-db=PATH
Find the Berkeley DB header and library in \`PATH/include' and
\`PATH/lib'. If PATH is of the form \`HEADER:LIB', then search
for header files in HEADER, and the library in LIB. If you omit
the \`=PATH' part completely, the configure script will search
for Berkeley DB in a number of standard places.
], [
if test "$withval" = "yes"; then
apu_want_db=1
user_places=""
elif test "$withval" = "no"; then
apu_want_db=0
else
apu_want_db=1
user_places="$withval"
fi
if test "$apu_want_db" != "0"; then
APU_CHECK_DB($requested, $user_places)
if test "$apu_have_db" = "0"; then
AC_ERROR(Berkeley DB not found.)
fi
fi
],[
APU_CHECK_DB($requested, "")
])
if test -n "$apu_db_xtra_libs"; then
LIBS="$saveddbxtralibs"
fi
case "$requested" in
sdbm)
apu_use_sdbm=1
apu_default_dbm=sdbm
;;
gdbm)
apu_use_gdbm=1
apu_default_dbm=gdbm
;;
ndbm)
apu_use_ndbm=1
apu_default_dbm=ndbm
;;
db)
apu_use_db=1
apu_default_dbm=db
;;
db1)
apu_use_db=1
apu_default_dbm=db1
;;
db185)
apu_use_db=1
apu_default_dbm=db185
;;
db2)
apu_use_db=1
apu_default_dbm=db2
;;
db3)
apu_use_db=1
apu_default_dbm=db3
;;
db4)
apu_use_db=1
apu_default_dbm=db4
;;
db41)
apu_use_db=1
apu_default_dbm=db4
;;
db42)
apu_use_db=1
apu_default_dbm=db4
;;
db43)
apu_use_db=1
apu_default_dbm=db4
;;
default)
dnl ### use more sophisticated DBMs for the default?
apu_default_dbm="sdbm (default)"
apu_use_sdbm=1
;;
*)
AC_MSG_ERROR([--with-dbm=$look_for is an unknown DBM type.
Use one of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42])
;;
esac
dnl Yes, it'd be nice if we could collate the output in an order
dnl so that the AC_MSG_CHECKING would be output before the actual
dnl checks, but it isn't happening now.
AC_MSG_CHECKING(for default DBM)
AC_MSG_RESULT($apu_default_dbm)
AC_SUBST(apu_use_sdbm)
AC_SUBST(apu_use_gdbm)
AC_SUBST(apu_use_ndbm)
AC_SUBST(apu_use_db)
AC_SUBST(apu_have_sdbm)
AC_SUBST(apu_have_gdbm)
AC_SUBST(apu_have_ndbm)
AC_SUBST(apu_have_db)
AC_SUBST(apu_db_header)
AC_SUBST(apu_db_version)
dnl Since we have already done the AC_CHECK_LIB tests, if we have it,
dnl we know the library is there.
if test "$apu_have_gdbm" = "1"; then
APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lgdbm])
APR_ADDTO(APRUTIL_LIBS,[-lgdbm])
fi
if test "$apu_have_ndbm" = "1"; then
APR_ADDTO(APRUTIL_EXPORT_LIBS,[-l$apu_ndbm_lib])
APR_ADDTO(APRUTIL_LIBS,[-l$apu_ndbm_lib])
fi
if test "$apu_have_db" = "1"; then
APR_ADDTO(APRUTIL_EXPORT_LIBS,[-l$apu_db_lib])
APR_ADDTO(APRUTIL_LIBS,[-l$apu_db_lib])
if test -n "apu_db_xtra_libs"; then
APR_ADDTO(APRUTIL_EXPORT_LIBS,[$apu_db_xtra_libs])
APR_ADDTO(APRUTIL_LIBS,[$apu_db_xtra_libs])
fi
fi
])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -