X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=m4%2Fopenssl.m4;h=2ef9c37853104a993e731e55d8b950710bd38145;hp=3fef464b55b7a5b06e2ec602b1c50c02a821707b;hb=ede6671c1354eeab86936efda32f6cdb3b3fd8d5;hpb=5344832be1126967ff340cf6bd270a377bb8e487 diff --git a/m4/openssl.m4 b/m4/openssl.m4 index 3fef464b..2ef9c378 100644 --- a/m4/openssl.m4 +++ b/m4/openssl.m4 @@ -1,54 +1,41 @@ dnl Check to find the OpenSSL headers/libraries - AC_DEFUN(tinc_OPENSSL, [ - - AC_CACHE_CHECK([for openssl], tinc_cv_openssl_include, - [ - AC_ARG_WITH(openssl, - [ --with-openssl=DIR OpenSSL library and headers prefix], - [echo -ne 'prefix...' - openssl_lib="$withval/lib" - openssl_include="$withval/include"] - ) - AC_ARG_WITH(openssl-include, - [ --with-openssl-include=DIR OpenSSL headers directory], - [echo -ne 'includes...' - openssl_include="$withvall"] + tinc_ac_save_CPPFLAGS="$CPPFLAGS" + + AC_ARG_WITH(openssl-include, + [ --with-openssl-include=DIR OpenSSL headers directory (without trailing /openssl)], + [openssl_include="$withval" + CFLAGS="$CFLAGS -I$withval" + CPPFLAGS="$CPPFLAGS -I$withval"] + ) + + AC_ARG_WITH(openssl-lib, + [ --with-openssl-lib=DIR OpenSSL library directory], + [openssl_lib="$withval" + LIBS="$LIBS -L$withval"] + ) + + AC_CHECK_HEADERS(openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h, + [], + [AC_MSG_ERROR("OpenSSL header files not found."); break] + ) + + CPPFLAGS="$tinc_ac_save_CPPFLAGS" + + AC_CHECK_LIB(crypto, SHA1_version, + [LIBS="$LIBS -lcrypto"], + [AC_MSG_ERROR("OpenSSL libraries not found.")] + ) + + AC_CHECK_FUNCS(RAND_pseudo_bytes) + + AC_CHECK_FUNC(dlopen, + [], + AC_CHECK_LIB(dl, dlopen, + [LIBS="$LIBS -ldl"], + [AC_MSG_ERROR("OpenSSL depends on libdl.")] ) - AC_ARG_WITH(openssl-lib, - [ --with-openssl-lib=DIR OpenSSL library directory], - [echo -ne 'libraries...' - openssl_lib="$withval"] - ) - -if test "x$openssl_lib" != "x" ; then - LIBS="$LIBS -L$openssl_lib" -fi -if test "x$openssl_include" != "x" ; then - INCLUDES="$INCLUDES -I$openssl_include" -fi - -AC_MSG_RESULT([done.]) - ]) - -libcrypto=none -AC_CHECK_LIB(crypto, SHA1_version, [ - libcrypto=yes -]) - -if test $libcrypto = none; then - AC_MSG_ERROR( -[It seems like OpenSSL is not installed on this system. But perhaps -you need to supply the exact location of the headers and libraries. -You can try running configure with the --with-openssl=/DIRECTORY -parameter. If you installed the headers and libraries in a different -location you can use --with-openssl-include=/DIR and ---with-openssl-lib=/DIR.]) - -else - LIBS="$LIBS -lcrypto" -fi - + ) ])