mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
d6d402bd2b
Very old shells suffered from bugs which meant that prefixing variables with an "x" to ensure that the lefthand side of a comparison always started with an alphanumeric character was needed. Modern shells don't suffer from this issue (i.e Bash was fixed in 1996). In any case, we've already got unprefixed checks used in our codebase, i.e https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L292, and have dependencies (in depends) that also use unprefixed comparisons. I think it's time that we can consolidate on not using the x-prefix workaround. At best it's mostly just confusing. More info: https://github.com/koalaman/shellcheck/wiki/SC2268 https://www.vidarholen.net/contents/blog/?p=1035
98 lines
3.4 KiB
Text
98 lines
3.4 KiB
Text
dnl Copyright (c) 2013-2015 The Bitcoin Core developers
|
|
dnl Distributed under the MIT software license, see the accompanying
|
|
dnl file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
AC_DEFUN([BITCOIN_FIND_BDB48],[
|
|
AC_ARG_VAR([BDB_CFLAGS], [C compiler flags for BerkeleyDB, bypasses autodetection])
|
|
AC_ARG_VAR([BDB_LIBS], [Linker flags for BerkeleyDB, bypasses autodetection])
|
|
|
|
if test "$use_bdb" = "no"; then
|
|
use_bdb=no
|
|
elif test "$BDB_CFLAGS" = ""; then
|
|
AC_MSG_CHECKING([for Berkeley DB C++ headers])
|
|
BDB_CPPFLAGS=
|
|
bdbpath=X
|
|
bdb48path=X
|
|
bdbdirlist=
|
|
for _vn in 4.8 48 4 5 5.3 ''; do
|
|
for _pfx in b lib ''; do
|
|
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
|
|
done
|
|
done
|
|
for searchpath in $bdbdirlist ''; do
|
|
test -n "${searchpath}" && searchpath="${searchpath}/"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <${searchpath}db_cxx.h>
|
|
]],[[
|
|
#if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 8) || DB_VERSION_MAJOR > 4)
|
|
#error "failed to find bdb 4.8+"
|
|
#endif
|
|
]])],[
|
|
if test "$bdbpath" = "X"; then
|
|
bdbpath="${searchpath}"
|
|
fi
|
|
],[
|
|
continue
|
|
])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <${searchpath}db_cxx.h>
|
|
]],[[
|
|
#if !(DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8)
|
|
#error "failed to find bdb 4.8"
|
|
#endif
|
|
]])],[
|
|
bdb48path="${searchpath}"
|
|
break
|
|
],[])
|
|
done
|
|
if test "$bdbpath" = "X"; then
|
|
use_bdb=no
|
|
AC_MSG_RESULT([no])
|
|
AC_MSG_WARN([libdb_cxx headers missing])
|
|
AC_MSG_WARN(AC_PACKAGE_NAME[ requires this library for BDB (legacy) wallet support])
|
|
AC_MSG_WARN([Passing --without-bdb will suppress this warning])
|
|
elif test "$bdb48path" = "X"; then
|
|
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
|
|
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 4.8])],[
|
|
AC_MSG_WARN([Found Berkeley DB other than 4.8])
|
|
AC_MSG_WARN([BDB (legacy) wallets opened by this build will not be portable!])
|
|
use_bdb=yes
|
|
],[
|
|
AC_MSG_WARN([Found Berkeley DB other than 4.8])
|
|
AC_MSG_WARN([BDB (legacy) wallets opened by this build would not be portable!])
|
|
AC_MSG_WARN([If this is intended, pass --with-incompatible-bdb])
|
|
AC_MSG_WARN([Passing --without-bdb will suppress this warning])
|
|
use_bdb=no
|
|
])
|
|
else
|
|
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb48path}],db_cxx)
|
|
bdbpath="${bdb48path}"
|
|
use_bdb=yes
|
|
fi
|
|
else
|
|
BDB_CPPFLAGS=${BDB_CFLAGS}
|
|
fi
|
|
AC_SUBST(BDB_CPPFLAGS)
|
|
|
|
if test "$use_bdb" = "no"; then
|
|
use_bdb=no
|
|
elif test "$BDB_LIBS" = ""; then
|
|
# TODO: Ideally this could find the library version and make sure it matches the headers being used
|
|
for searchlib in db_cxx-4.8 db_cxx db4_cxx; do
|
|
AC_CHECK_LIB([$searchlib],[main],[
|
|
BDB_LIBS="-l${searchlib}"
|
|
break
|
|
])
|
|
done
|
|
if test "$BDB_LIBS" = ""; then
|
|
AC_MSG_WARN([libdb_cxx headers missing])
|
|
AC_MSG_WARN(AC_PACKAGE_NAME[ requires this library for BDB (legacy) wallet support])
|
|
AC_MSG_WARN([Passing --without-bdb will suppress this warning])
|
|
fi
|
|
fi
|
|
if test "$use_bdb" != "no"; then
|
|
AC_SUBST(BDB_LIBS)
|
|
AC_DEFINE([USE_BDB], [1], [Define if BDB support should be compiled in])
|
|
use_bdb=yes
|
|
fi
|
|
])
|