diff options
Diffstat (limited to 'SoftHSMv2/m4/acx_botan.m4')
-rw-r--r-- | SoftHSMv2/m4/acx_botan.m4 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/SoftHSMv2/m4/acx_botan.m4 b/SoftHSMv2/m4/acx_botan.m4 new file mode 100644 index 0000000..ed93786 --- /dev/null +++ b/SoftHSMv2/m4/acx_botan.m4 @@ -0,0 +1,72 @@ +AC_DEFUN([ACX_BOTAN],[ + AC_ARG_WITH(botan, + AC_HELP_STRING([--with-botan=PATH],[Specify prefix of path of Botan]), + [ + BOTAN_PATH="$withval" + ], + [ + BOTAN_PATH="/usr/local" + ]) + + BOTAN_VERSION_MAJOR=2 + BOTAN_VERSION_MINOR=0 + AC_CHECK_FILE($BOTAN_PATH/include/botan-2/botan/version.h, + BOTAN_VERSION_MAJOR=2 + BOTAN_VERSION_MINOR=0, + AC_CHECK_FILE($BOTAN_PATH/include/botan-1.11/botan/version.h, + BOTAN_VERSION_MAJOR=1 + BOTAN_VERSION_MINOR=11, + AC_CHECK_FILE($BOTAN_PATH/include/botan-1.10/botan/version.h, + BOTAN_VERSION_MAJOR=1 + BOTAN_VERSION_MINOR=10, + AC_MSG_ERROR([Cannot find Botan includes])))) + AC_MSG_CHECKING(what are the Botan includes) + if test "x${BOTAN_VERSION_MAJOR}" = "x2"; then + BOTAN_INCLUDES="-I$BOTAN_PATH/include/botan-2" + else + BOTAN_INCLUDES="-I$BOTAN_PATH/include/botan-1.$BOTAN_VERSION_MINOR" + fi + AC_MSG_RESULT($BOTAN_INCLUDES) + + AC_MSG_CHECKING(what are the Botan libs) + if test "x${BOTAN_VERSION_MAJOR}" = "x2"; then + BOTAN_LIBS="-L$BOTAN_PATH/lib -lbotan-2" + else + BOTAN_LIBS="-L$BOTAN_PATH/lib -lbotan-1.$BOTAN_VERSION_MINOR" + fi + AC_MSG_RESULT($BOTAN_LIBS) + + if test "x${BOTAN_VERSION_MAJOR}" != "x1" -o "x${BOTAN_VERSION_MINOR}" != "x10"; then + AX_CXX_COMPILE_STDCXX_11([noext],[mandatory]) + fi + + tmp_CPPFLAGS=$CPPFLAGS + tmp_LIBS=$LIBS + + CPPFLAGS="$CPPFLAGS $BOTAN_INCLUDES" + LIBS="$LIBS $BOTAN_LIBS" + + AC_LANG_PUSH([C++]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include <botan/init.h> + #include <botan/version.h>], + [using namespace Botan; + LibraryInitializer::initialize(); + #if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR($1,$2,$3) + #error "Botan version too old"; + #endif])], + [AC_MSG_RESULT([checking for Botan >= v$1.$2.$3 ... yes])], + [AC_MSG_RESULT([checking for Botan >= v$1.$2.$3 ... no]) + AC_MSG_ERROR([Missing the correct version of the Botan library])] + ) + AC_LANG_POP([C++]) + + CPPFLAGS=$tmp_CPPFLAGS + LIBS=$tmp_LIBS + + AC_SUBST(BOTAN_INCLUDES) + AC_SUBST(BOTAN_LIBS) + AC_SUBST(BOTAN_VERSION_MAJOR) + AC_SUBST(BOTAN_VERSION_MINOR) +]) |