Update SoftHSM v2.0 to the latest version
[aaf/sshsm.git] / SoftHSMv2 / m4 / acx_botan.m4
index ed93786..346a180 100644 (file)
@@ -1,39 +1,64 @@
 AC_DEFUN([ACX_BOTAN],[
+       WITH_BOTAN=
        AC_ARG_WITH(botan,
                AC_HELP_STRING([--with-botan=PATH],[Specify prefix of path of Botan]),
                [
                        BOTAN_PATH="$withval"
+                       WITH_BOTAN=1
                ],
                [
                        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"
+       if test -n "${PKG_CONFIG}" && test -z "${WITH_BOTAN}"; then
+               PKG_CHECK_MODULES([BOTAN], [botan-2 >= $1.$2.$3], [
+                       BOTAN_VERSION_MAJOR=2
+                       BOTAN_VERSION_MINOR=0
+               ],[
+                       PKG_CHECK_MODULES([BOTAN], [botan-1.11 >= $1.$2.$3], [
+                               BOTAN_VERSION_MAJOR=1
+                               BOTAN_VERSION_MINOR=11
+                       ],[
+                               PKG_CHECK_MODULES([BOTAN], [botan-1.10 >= $1.$2.$3], [
+                                       BOTAN_VERSION_MAJOR=1
+                                       BOTAN_VERSION_MINOR=10
+                               ],[
+                                       AC_MSG_ERROR([Cannot find Botan])
+                               ])
+                       ])
+               ])
        else
-               BOTAN_INCLUDES="-I$BOTAN_PATH/include/botan-1.$BOTAN_VERSION_MINOR"
+               BOTAN_VERSION_MAJOR=2
+               BOTAN_VERSION_MINOR=0
+               if test -f "$BOTAN_PATH/include/botan-2/botan/version.h"; then
+                       BOTAN_VERSION_MAJOR=2
+                       BOTAN_VERSION_MINOR=0
+               elif test -f "$BOTAN_PATH/include/botan-1.11/botan/version.h"; then
+                       BOTAN_VERSION_MAJOR=1
+                       BOTAN_VERSION_MINOR=11
+               elif test -f "$BOTAN_PATH/include/botan-1.10/botan/version.h"; then
+                       BOTAN_VERSION_MAJOR=1
+                       BOTAN_VERSION_MINOR=10
+               else
+                       AC_MSG_ERROR([Cannot find Botan includes])
+               fi
+
+               if test "x${BOTAN_VERSION_MAJOR}" = "x2"; then
+                       BOTAN_CFLAGS="-I$BOTAN_PATH/include/botan-2"
+                       BOTAN_LIBS="-L$BOTAN_PATH/lib -lbotan-2"
+               else
+                       BOTAN_CFLAGS="-I$BOTAN_PATH/include/botan-1.$BOTAN_VERSION_MINOR"
+                       BOTAN_LIBS="-L$BOTAN_PATH/lib -lbotan-1.$BOTAN_VERSION_MINOR"
+               fi
+
+               AC_SUBST(BOTAN_CFLAGS)
+               AC_SUBST(BOTAN_LIBS)
        fi
-       AC_MSG_RESULT($BOTAN_INCLUDES)
+
+       AC_MSG_CHECKING(what are the Botan includes)
+       AC_MSG_RESULT($BOTAN_CFLAGS)
 
        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
@@ -43,7 +68,7 @@ AC_DEFUN([ACX_BOTAN],[
        tmp_CPPFLAGS=$CPPFLAGS
        tmp_LIBS=$LIBS
 
-       CPPFLAGS="$CPPFLAGS $BOTAN_INCLUDES"
+       CPPFLAGS="$CPPFLAGS $BOTAN_CFLAGS"
        LIBS="$LIBS $BOTAN_LIBS"
 
        AC_LANG_PUSH([C++])
@@ -65,8 +90,6 @@ AC_DEFUN([ACX_BOTAN],[
        CPPFLAGS=$tmp_CPPFLAGS
        LIBS=$tmp_LIBS
 
-       AC_SUBST(BOTAN_INCLUDES)
-       AC_SUBST(BOTAN_LIBS)
        AC_SUBST(BOTAN_VERSION_MAJOR)
        AC_SUBST(BOTAN_VERSION_MINOR)
 ])