From: Oswald B. <os...@us...> - 2004-09-08 16:28:20
|
CVS commit by ossi: sanitize the OpenSSL detection M +50 -16 configure.in 1.31 --- isync/configure.in #1.30:1.31 @@ -18,23 +18,57 @@ m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))]) -ssl=false +have_ssl_paths= AC_ARG_WITH(ssl, - AS_HELP_STRING([--with-ssl=DIR], [yes/no/OpenSSL installation root [detect]]), + AS_HELP_STRING([--with-ssl[=PATH]], [where to look for SSL [detect]]), [ob_cv_with_ssl=$withval]) if test "x$ob_cv_with_ssl" != xno; then - if test -d "$ob_cv_with_ssl/lib"; then - CPFLAGS="$CPPFLAGS -I$ob_cv_with_ssl/include" - LDFLAGS="$LDFLAGS -L$ob_cv_with_ssl/lib" + case $ob_cv_with_ssl in + ""|yes) + dnl Detect the pkg-config tool, as it may have extra info about the openssl + dnl installation we can use. I *believe* this is what we are expected to do + dnl on really recent Redhat Linux hosts. + AC_PATH_PROG(PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin) + if test "$PKGCONFIG" != "no" ; then + AC_MSG_CHECKING([OpenSSL presence with pkg-config]) + if $PKGCONFIG --exists openssl; then + SSL_LIBS=`$PKGCONFIG --libs-only-l openssl` + SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl` + SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl` + have_ssl_paths=yes + AC_MSG_RESULT([found]) + else + AC_MSG_RESULT([not found]) + fi + fi + ;; + *) + SSL_LDFLAGS=-L$ob_cv_with_ssl/lib$libsuff + SSL_CPPFLAGS=-I$ob_cv_with_ssl/include + ;; + esac + if test -z "$have_ssl_paths"; then + sav_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $SSL_LDFLAGS" + AC_CHECK_LIB(dl, dlopen, [LIBDL=-ldl]) + AC_CHECK_LIB(crypto, CRYPTO_lock, [LIBCRYPTO=-lcrypto]) + AC_CHECK_LIB(ssl, SSL_connect, + [SSL_LIBS="-lssl $LIBCRYPTO $LIBDL" have_ssl_paths=yes]) + LDFLAGS=$sav_LDFLAGS + fi + + sav_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" + AC_CHECK_HEADER(openssl/ssl.h, , [have_ssl_paths=]) + CPPFLAGS=$sav_CPPFLAGS + + if test -z "$have_ssl_paths"; then + if test -n "$ob_cv_with_ssl"; then + AC_MSG_ERROR([OpenSSL libs and/or includes were not found where specified]) fi - AC_CHECK_LIB(crypto, ERR_error_string, [cryptolib=" -lcrypto"]) - AC_CHECK_LIB(ssl, SSL_library_init, [ - SSL_LIBS="-lssl$cryptolib" - AC_DEFINE(HAVE_LIBSSL, 1, [Define if you want SSL support]) - ssl=true - ],[ - if test -n "$ob_cv_with_ssl"; then - AC_MSG_ERROR([can't find OpenSSL]) - fi - ]) + else + AC_DEFINE(HAVE_SSL, 1, [if you have the OpenSSL libraries]) + CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" + LDFLAGS="$LDFLAGS $SSL_LDFLAGS" + fi fi AC_SUBST(SSL_LIBS) @@ -62,5 +96,5 @@ AC_OUTPUT(Makefile src/Makefile src/compat/Makefile isync.spec) -if $ssl; then +if test -n "$have_ssl_paths"; then AC_MSG_RESULT([ Using SSL |