BIND 10 trac1640_2, updated. 812cea250215b93bd4567873910e2449f5b559ec [1640_2] try full compilation for potential botan settings
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Mar 12 18:33:25 UTC 2012
The branch, trac1640_2 has been updated
via 812cea250215b93bd4567873910e2449f5b559ec (commit)
from b78153aae59d37e4c2807c4d19c4b548be13adc0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 812cea250215b93bd4567873910e2449f5b559ec
Author: Jelte Jansen <jelte at isc.org>
Date: Mon Mar 12 19:32:42 2012 +0100
[1640_2] try full compilation for potential botan settings
for each output of -config or pkgconfig, try to see if it is not lying
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 93 insertions(+), 11 deletions(-)
-----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index ee3b967..3be5eb7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -495,6 +495,83 @@ if test "$lcov" != "no"; then
fi
AC_SUBST(USE_LCOV)
+# Simplified, non-caching AC_CHECK_PROG
+# Searches $PATH for the existence of argument 2,
+# and sets the full path to the variable in argument 1.
+# if not found, and a third argument is given, the value
+# is set to that.
+# Does not take full paths into account at this point,
+# and also works for single files only (arguments are not
+# stripped like in AC_CHECK_PROG)
+AC_DEFUN([ACX_CHECK_PROG_NONCACHE], [
+ RESULT=""
+ IFS_SAVED="$IFS"
+ IFS=":"
+ for cur_path in ${PATH} ; do
+ if test -e "${cur_path}/$2" ; then
+ RESULT="${cur_path}/$2"
+ fi
+ done
+ if test "$RESULT" = "" ; then
+ m4_ifvaln([$3], [$1=$3])
+ else
+ $1=$RESULT
+ fi
+ IFS="$IFS_SAVED"
+])
+
+# Botan helper test function
+# Tries to compile a program, given the output of the given
+# Arguments:
+# - name of tool (checked for path), must support --libs and --cflags
+# - fixed argument(s) for tool
+# - action if successful
+# - action if failed
+AC_DEFUN([ACX_TRY_BOTAN_TOOL], [
+ TOOL=$1
+ TOOL_ARG=$2
+ BOTAN_TOOL=""
+ ACX_CHECK_PROG_NONCACHE([BOTAN_TOOL], [${TOOL}], [""])
+ AC_MSG_CHECKING([for usability of ${TOOL} ${TOOL_ARG}])
+ if test "$BOTAN_TOOL" != "" ; then
+ if test -x ${BOTAN_TOOL}; then
+ BOTAN_LIBS=`$BOTAN_TOOL $TOOL_ARG --libs`
+ LIBS_SAVED=${LIBS}
+ LIBS="$LIBS $BOTAN_LIBS"
+ BOTAN_INCLUDES=`$BOTAN_TOOL $TOOL_ARG --cflags`
+ CPPFLAGS_SAVED=${CPPFLAGS}
+ CPPFLAGS="$BOTAN_INCLUDES $CPPFLAGS"
+ #AC_MSG_RESULT([found])
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <botan/botan.h>
+ #include <botan/hash.h>
+ ],
+ [using namespace Botan;
+ LibraryInitializer::initialize();
+ HashFunction *h = get_hash("MD5");
+ ])],
+ [ AC_MSG_RESULT([ok])
+ $3
+ ],
+ [ AC_MSG_RESULT([not usable])
+ $4
+ ]
+ )
+ LIBS=${LIBS_SAVED}
+ CPPFLAGS=${CPPFLAGS_SAVED}
+ else
+ AC_MSG_RESULT([not executable])
+ $4
+ fi
+ else
+ AC_MSG_RESULT([not found])
+ $4
+ fi
+ BOTAN_TOOL=""
+ AC_SUBST(BOTAN_TOOL)
+ ]
+)
+
# Check for Botan
botan_config="yes"
AC_ARG_WITH([botan-config],
@@ -520,8 +597,11 @@ else
# (1.8 is there just in case)
BOTAN_CONFIG_VERSIONS="botan-config-1.10 botan-config-1.9 botan-config-1.8 botan-config"
for botan_config in $BOTAN_CONFIG_VERSIONS; do
- AC_PATH_PROG([BOTAN_CONFIG], [${botan_config}])
- if test -x "${BOTAN_CONFIG}" ; then
+ ACX_TRY_BOTAN_TOOL([$botan_config],,
+ [ BOTAN_CONFIG="$botan_config" ],
+ []
+ )
+ if test "$BOTAN_CONFIG" != "" ; then
break
fi
done
@@ -533,19 +613,18 @@ else
# in their name, so we need to try them one by one
BOTAN_VERSIONS="botan-1.10 botan-1.9 botan-1.8"
for version in $BOTAN_VERSIONS; do
- AC_MSG_CHECKING([Checking botan version with pkg-config $version])
-
- if [ $PKG_CONFIG --exists ${version} ]; then
- AC_MSG_RESULT([found])
- BOTAN_CONFIG="$PKG_CONFIG ${version}"
- break
- else
- AC_MSG_RESULT([not found])
- fi
+ ACX_TRY_BOTAN_TOOL([pkg-config], ["$version --silence-errors"],
+ [ BOTAN_CONFIG="$PKG_CONFIG $version" ],
+ []
+ )
+ if test "$BOTAN_CONFIG" != "" ; then
+ break
+ fi
done
fi
fi
fi
+
if test "x${BOTAN_CONFIG}" != "x"
then
BOTAN_LIBS=`${BOTAN_CONFIG} --libs`
@@ -593,6 +672,9 @@ AC_SUBST(BOTAN_LDFLAGS)
AC_SUBST(BOTAN_LIBS)
AC_SUBST(BOTAN_INCLUDES)
+# Even though chances are high we already performed a real compilation check
+# in the search for the right (pkg)config data, we try again here, to
+# be sure.
CPPFLAGS_SAVED=$CPPFLAGS
CPPFLAGS="$BOTAN_INCLUDES $CPPFLAGS"
LIBS_SAVED="$LIBS"
More information about the bind10-changes
mailing list