| 1 |
AC_DEFUN([AX_CHECK_OPENSSL], [ |
| 2 |
AC_ARG_ENABLE(openssl, |
| 3 |
[ --enable-openssl[=DIR] Enable OpenSSL support (DIR optional). |
| 4 |
--disable-openssl Disable OpenSSL support. ], |
| 5 |
[ cf_enable_openssl=$enableval ], |
| 6 |
[ cf_enable_openssl="auto" ]) |
| 7 |
AC_MSG_CHECKING([for OpenSSL]) |
| 8 |
if test "$cf_enable_openssl" != "no"; then |
| 9 |
cf_openssl_basedir="" |
| 10 |
if test "$cf_enable_openssl" != "auto" && |
| 11 |
test "$cf_enable_openssl" != "yes"; then |
| 12 |
dnl Support for --enable-openssl=/some/place |
| 13 |
cf_openssl_basedir="${cf_enable_openssl}" |
| 14 |
else |
| 15 |
dnl Do the auto-probe here. Check some common directory paths. |
| 16 |
for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/lib /usr/lib/ssl\ |
| 17 |
/opt /opt/openssl /usr/local/openssl; do |
| 18 |
if test -f "${dirs}/include/openssl/opensslv.h"; then |
| 19 |
cf_openssl_basedir="${dirs}" |
| 20 |
break |
| 21 |
fi |
| 22 |
done |
| 23 |
unset dirs |
| 24 |
fi |
| 25 |
|
| 26 |
dnl Now check cf_openssl_found to see if we found anything. |
| 27 |
if test ! -z "$cf_openssl_basedir"; then |
| 28 |
if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h"; then |
| 29 |
CPPFLAGS="-I${cf_openssl_basedir}/include $CPPFLAGS" |
| 30 |
LDFLAGS="-L${cf_openssl_basedir}/lib $LDFLAGS" |
| 31 |
else |
| 32 |
dnl OpenSSL wasn't found in the directory specified. Naughty |
| 33 |
dnl administrator... |
| 34 |
cf_openssl_basedir="" |
| 35 |
fi |
| 36 |
else |
| 37 |
dnl Check for stock FreeBSD 4.x and 5.x systems, since their files |
| 38 |
dnl are in /usr/include and /usr/lib. In this case, we don't want to |
| 39 |
dnl change INCLUDES or LIBS, but still want to enable OpenSSL. |
| 40 |
dnl We can't do this check above, because some people want two versions |
| 41 |
dnl of OpenSSL installed (stock FreeBSD 4.x/5.x and /usr/local/ssl) |
| 42 |
dnl and they want /usr/local/ssl to have preference. |
| 43 |
if test -f "/usr/include/openssl/opensslv.h"; then |
| 44 |
cf_openssl_basedir="/usr" |
| 45 |
fi |
| 46 |
fi |
| 47 |
|
| 48 |
dnl If we have a basedir defined, then everything is okay. Otherwise, |
| 49 |
dnl we have a problem. |
| 50 |
if test ! -z "$cf_openssl_basedir"; then |
| 51 |
AC_MSG_RESULT([$cf_openssl_basedir]) |
| 52 |
cf_enable_openssl="yes" |
| 53 |
else |
| 54 |
AC_MSG_RESULT([not found. Please check your path.]) |
| 55 |
cf_enable_openssl="no" |
| 56 |
fi |
| 57 |
unset cf_openssl_basedir |
| 58 |
else |
| 59 |
dnl If --disable-openssl was specified |
| 60 |
AC_MSG_RESULT([disabled]) |
| 61 |
fi |
| 62 |
|
| 63 |
AS_IF([test "$cf_enable_openssl" != "no"], |
| 64 |
[AC_MSG_CHECKING(for OpenSSL 0.9.8o or above) |
| 65 |
AC_RUN_IFELSE([ |
| 66 |
AC_LANG_PROGRAM([ |
| 67 |
#include <openssl/opensslv.h> |
| 68 |
#include <stdlib.h>], |
| 69 |
[[ exit(!(OPENSSL_VERSION_NUMBER >= 0x009080ffL)); ]])], |
| 70 |
[cf_openssl_version_ok=yes], |
| 71 |
[cf_openssl_version_ok=no], |
| 72 |
[cf_openssl_version_ok=no]) |
| 73 |
|
| 74 |
AS_IF([test "$cf_openssl_version_ok" = "yes"], |
| 75 |
[AC_MSG_RESULT(found) |
| 76 |
|
| 77 |
AC_CHECK_LIB(crypto, RSA_free) |
| 78 |
AS_IF([test "$ac_cv_lib_crypto_RSA_free" = "yes"], |
| 79 |
[AC_CHECK_LIB(ssl, SSL_connect)]) |
| 80 |
],[AC_MSG_RESULT(no - OpenSSL support disabled) |
| 81 |
cf_enable_openssl="no"])]) |
| 82 |
|
| 83 |
AM_CONDITIONAL(ENABLE_SSL, [test "$ac_cv_lib_ssl_SSL_connect" = yes]) |
| 84 |
]) |