2f1adad0741f9b0bfdd04e2cf0c9cffb04fa10cb
[aaf/sshsm.git] / SoftHSMv2 / m4 / acx_openssl.m4
1 AC_DEFUN([ACX_OPENSSL],[
2         AC_ARG_WITH(openssl,
3                 AC_HELP_STRING([--with-openssl=PATH],[Specify prefix of path of OpenSSL]),
4                 [
5                         OPENSSL_INCLUDES="-I$withval/include"
6                         OPENSSL_LIBDIRS="-L$withval/lib"
7                 ],
8                 [
9                         OPENSSL_INCLUDES=""
10                         OPENSSL_LIBDIRS=""
11                 ])
12
13         AC_MSG_CHECKING(what are the OpenSSL includes)
14         AC_MSG_RESULT($OPENSSL_INCLUDES)
15
16         AC_MSG_CHECKING(what are the OpenSSL libs)
17         OPENSSL_LIBS="$OPENSSL_LIBDIRS -lcrypto"
18         AC_MSG_RESULT($OPENSSL_LIBS)
19
20         tmp_CPPFLAGS=$CPPFLAGS
21         tmp_LIBS=$LIBS
22
23         CPPFLAGS="$CPPFLAGS $OPENSSL_INCLUDES"
24         LIBS="$OPENSSL_LIBS $LIBS"
25
26         AC_CHECK_HEADERS([openssl/ssl.h],,[AC_MSG_ERROR([Can't find OpenSSL headers])])
27         AC_CHECK_LIB(crypto, BN_new,,[AC_MSG_ERROR([Can't find OpenSSL library])])
28
29         AC_MSG_CHECKING([for OpenSSL version])
30         CHECK_OPENSSL_VERSION=m4_format(0x%02x%02x%02x000L, $1, $2, $3)
31         AC_LANG_PUSH([C])
32         AC_CACHE_VAL([acx_cv_lib_openssl_sufficient],[
33                 acx_cv_lib_openssl_sufficient=no
34                 AC_COMPILE_IFELSE([
35                         AC_LANG_SOURCE([[
36                                 #include <openssl/ssl.h>
37                                 #include <openssl/opensslv.h>
38                                 int main()
39                                 {
40                                 #ifndef OPENSSL_VERSION_NUMBER
41                                 #error "OpenSSL version undefined"
42                                 #endif
43                                 #if OPENSSL_VERSION_NUMBER >= $CHECK_OPENSSL_VERSION
44                                         return 0;
45                                 #else
46                                 #error "OpenSSL too old"
47                                 #endif
48                                 }
49                         ]])
50                 ],[
51                         AC_MSG_RESULT([>= $1.$2.$3])
52                         acx_cv_lib_openssl_sufficient=yes
53                 ],[
54                         AC_MSG_RESULT([< $1.$2.$3])
55                         AC_MSG_ERROR([OpenSSL library too old ($1.$2.$3 or later required)])
56                 ])
57         ])
58         AC_LANG_POP([C])
59
60         CPPFLAGS=$tmp_CPPFLAGS
61         LIBS=$tmp_LIBS
62
63         AC_SUBST(OPENSSL_INCLUDES)
64         AC_SUBST(OPENSSL_LIBS)
65 ])