@@ -13,14 +13,19 @@ ]) ], [ AC_LANG_PUSH(C) AC_MSG_CHECKING([for $3 protocol support]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ -#include -#include +#ifdef OPENSSL_HEADER_PREFIX +# define OPENSSL_HEADER(header) +#else +# define OPENSSL_HEADER(header)
+#endif +#include OPENSSL_HEADER(openssl/ssl.h) +#include OPENSSL_HEADER(openssl/opensslv.h) #if (SSLEAY_VERSION_NUMBER >= 0x0907000L) -# include +# include OPENSSL_HEADER(openssl/conf.h) #endif ], [ int x = $5; ])], [ AC_MSG_RESULT([yes]) @@ -81,10 +86,13 @@ openssldir="`AS_DIRNAME(["$openssldir"])`" else TCLTLS_SSL_LIBS="-L$openssldir/lib -lssl -lcrypto" fi TCLTLS_SSL_CFLAGS="-I$openssldir/include" + if test -n "$openssldir"; then + AC_DEFINE_UNQUOTED(OPENSSL_HEADER_PREFIX, [$openssldir/include], [Path to OpenSSL headers]) + fi TCLTLS_SSL_CPPFLAGS="-I$openssldir/include" fi pkgConfigExtraArgs='' if test "$TCLEXT_BUILD" = "static" -o "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then @@ -112,10 +120,14 @@ if test -z "$TCLTLS_SSL_CFLAGS"; then TCLTLS_SSL_CFLAGS="`"${PKGCONFIG}" openssl --cflags-only-other $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration]) fi if test -z "$TCLTLS_SSL_CPPFLAGS"; then TCLTLS_SSL_CPPFLAGS="`"${PKGCONFIG}" openssl --cflags-only-I $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration]) + opensslincdir="$(echo "${TCLTLS_SSL_CPPFLAGS}" | sed 's@^.*-I@@')" + if test -n "$opensslincdir"; then + AC_DEFINE_UNQUOTED(OPENSSL_HEADER_PREFIX, [$opensslincdir], [Path to OpenSSL headers]) + fi fi PKG_CONFIG_PATH="${PKG_CONFIG_PATH_SAVE}" if test "$TCLEXT_BUILD" = "static"; then dnl If we are doing a static build, save the linker flags for other programs to consume @@ -164,14 +176,19 @@ dnl Verify that basic functionality is there AC_LANG_PUSH(C) AC_MSG_CHECKING([if a basic OpenSSL program works]) AC_LINK_IFELSE([AC_LANG_PROGRAM([ -#include -#include +#ifdef OPENSSL_HEADER_PREFIX +# define OPENSSL_HEADER(header) +#else +# define OPENSSL_HEADER(header)
+#endif +#include OPENSSL_HEADER(openssl/ssl.h) +#include OPENSSL_HEADER(openssl/opensslv.h) #if (SSLEAY_VERSION_NUMBER >= 0x0907000L) -# include +# include OPENSSL_HEADER(openssl/conf.h) #endif ], [ SSL_library_init(); SSL_load_error_strings(); ])], [ @@ -192,13 +209,18 @@ AC_CACHE_VAL([tcltls_cv_func_tlsext_hostname], [ AC_LANG_PUSH(C) AC_MSG_CHECKING([for SSL_set_tlsext_host_name]) AC_LINK_IFELSE([AC_LANG_PROGRAM([ -#include +#ifdef OPENSSL_HEADER_PREFIX +# define OPENSSL_HEADER(header) +#else +# define OPENSSL_HEADER(header)
+#endif +#include OPENSSL_HEADER(openssl/ssl.h) #if (SSLEAY_VERSION_NUMBER >= 0x0907000L) -# include +# include OPENSSL_HEADER(openssl/conf.h) #endif ], [ (void)SSL_set_tlsext_host_name((void *) 0, (void *) 0); ])], [ AC_MSG_RESULT([yes])