dnl -*- mode: Autoconf; -*- dnl ----------------------------------------------------------------------------------------- dnl option for SSL support dnl ----------------------------------------------------------------------------------------- AC_ARG_WITH(openssl-inc, AS_HELP_STRING([--with-openssl-inc=DIR], [where the OpenSSL header files are located]), OPENSSL_CPPFLAGS="-I$withval" ) AC_ARG_WITH(openssl-lib, AS_HELP_STRING([--with-openssl-lib=DIR], [where the OpenSSL library files are located]), OPENSSL_LDFLAGS="-L$withval" ) dnl ----------------------------------------------------------------------------------------- dnl check for OpenSSL dnl ----------------------------------------------------------------------------------------- AC_MSG_NOTICE([--------------------------------------------------------------------------------]) AC_MSG_NOTICE([CHECKING FOR OPENSSL]) AC_MSG_NOTICE([--------------------------------------------------------------------------------]) AC_LANG(C) dnl ----------------------------------------------------------------------------------------- dnl save flags dnl ----------------------------------------------------------------------------------------- SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $OPENSSL_CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" SAVE_LIBS="$LIBS" dnl ----------------------------------------------------------------------------------------- dnl check for header and library dnl ----------------------------------------------------------------------------------------- AC_CHECK_HEADERS([openssl/ssl.h]) AC_CHECK_LIB([crypto], [CRYPTO_num_locks], OPENSSL_LIBS="-lcrypto $OPENSSL_LIBS", AC_MSG_ERROR([please install the OpenSSL library]), [-lz $LIBS]) AC_CHECK_LIB([ssl], [SSL_get_error], OPENSSL_LIBS="-lssl $OPENSSL_LIBS", AC_CHECK_LIB([ssl], [SSL_get_error], OPENSSL_LIBS="-lssl -ldl $OPENSSL_LIBS", AC_MSG_ERROR([Please install the OpenSSL library]), [-lcrypto -lz -ldl $LIBS]) [-lcrypto -lz $LIBS]) dnl check if SSLv23_method returns a const method AC_MSG_CHECKING([return type of SSLv23_method]) LIBS="-lcrypto -lssl -lz -ldl $LIBS" AC_TRY_COMPILE([#include ], [SSL_METHOD* meth = SSLv23_method();], tr_OPENSSL_NEEDS_CONST=no, tr_OPENSSL_NEEDS_CONST=yes) if test "x$tr_OPENSSL_NEEDS_CONST" = "xyes"; then AC_MSG_RESULT([SSL_METHOD const*]) AC_DEFINE_UNQUOTED(OPENSSL_NEEDS_CONST, 1, [true if SSLv23_method return SSL_METHOD const*]) else AC_MSG_RESULT([SSL_METHOD*]) fi dnl ----------------------------------------------------------------------------------------- dnl fix include and static libraries dnl ----------------------------------------------------------------------------------------- TR_INCLUDE([OPENSSL_CPPFLAGS]) dnl ----------------------------------------------------------------------------------------- dnl add substitutions dnl ----------------------------------------------------------------------------------------- AC_SUBST(OPENSSL_CPPFLAGS) AC_SUBST(OPENSSL_LDFLAGS) AC_SUBST(OPENSSL_LIBS) dnl ----------------------------------------------------------------------------------------- dnl grep openssl version number dnl ----------------------------------------------------------------------------------------- cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include main () { long sdnhg36ed = OPENSSL_VERSION_TEXT ; } _ACEOF AC_MSG_CHECKING([OPENSSL version]) eval "$ac_cpp conftest.$ac_ext" | fgrep "long sdnhg36ed" | awk '{print $4 " " $5 " " $6 " " $7 " " $8 " " $9}' > conftest.output TRI_OPENSSL_VERSION=`head -1 conftest.output | sed -e 's: *$::'` AC_MSG_RESULT([$TRI_OPENSSL_VERSION]) rm -f conftest* dnl ----------------------------------------------------------------------------------------- dnl verify version number dnl ----------------------------------------------------------------------------------------- OPENSSL_WARNING="" AC_TRY_COMPILE( [#include ], [#if OPENSSL_VERSION_NUMBER < 0x1000107fL #error OpenSSL version is too old ... #endif], [ ], [OPENSSL_WARNING=" WARNING: OpenSSL version should be 1.0.1g or higher" AC_MSG_WARN([OpenSSL version should be 1.0.1g or higher.]) ]) dnl ----------------------------------------------------------------------------------------- dnl restore flags dnl ----------------------------------------------------------------------------------------- LDFLAGS="$SAVE_LDFLAGS" CPPFLAGS="$SAVE_CPPFLAGS" LIBS="$SAVE_LIBS" dnl ----------------------------------------------------------------------------------------- dnl informational output dnl ----------------------------------------------------------------------------------------- LIB_INFO="$LIB_INFO|OPENSSL VERSION: ${TRI_OPENSSL_VERSION}${OPENSSL_WARNING}" LIB_INFO="$LIB_INFO|OPENSSL_CPPFLAGS: ${OPENSSL_CPPFLAGS}" LIB_INFO="$LIB_INFO|OPENSSL_LDFLAGS: ${OPENSSL_LDFLAGS}" LIB_INFO="$LIB_INFO|OPENSSL_LIBS: ${OPENSSL_LIBS}" LIB_INFO="$LIB_INFO|." dnl Local Variables: dnl mode: outline-minor dnl outline-regexp: "^\\(dnl --SECTION--\\)" dnl End: