X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=configure.in;h=f8da5dd42613bc85cd16649f9266f8b9a86fec49;hp=9cce2217cff0570fea1c5f0e19227f729f14465e;hb=6e0e330f5caf66db1b237917b9aae428e8f3e1b6;hpb=48acf01149e9fceeab15f47602ce013b4aa500cc diff --git a/configure.in b/configure.in index 9cce2217..f8da5dd4 100644 --- a/configure.in +++ b/configure.in @@ -129,12 +129,6 @@ if test -n "$auto_cflags"; then fi fi -dnl -dnl Configure our included libtool and make sure it's regenerated when needed -dnl -AC_PROG_LIBTOOL -AC_SUBST(LIBTOOL_DEPS) - dnl dnl In case of {cyg,gnu}win32. Should be a _target_ test. dnl Might also be erelevant for DJGPP. @@ -237,94 +231,12 @@ AC_SUBST(GETOPT_OBJ) dnl dnl Checks for libraries. dnl +AC_CHECK_LIB(dl,dlopen) +AC_CHECK_LIB(dl,shl_load) -dnl $with_ssl can be one of: -dnl - empty string or "auto", meaning autodetect SSL and use it if found. -dnl - "yes", meaning link with SSL or bail out. -dnl - "no", meaning don't link with SSL. -dnl - anything else, meaning use that as the SSL root, and bail out -dnl if it fails. - -if test x"$with_ssl" = x; then - dnl Canonicalize unspecified with-ssl setting to "auto". This - dnl implements the "auto-detect by default" feature. If you want to - dnl change this to "ignore SSL by default", change "auto" to "no". - with_ssl=auto -fi - -dnl Detection of OpenSSL is much hairier than the detection of other -dnl libraries because OpenSSL can be compiled as a third-party -dnl library, which means it will not be found without additional -dnl linker magic. It would be really nice to rework this check into -dnl an AC_DEFUN so that we can reuse it for other third-party -dnl libraries. - -if test x"$with_ssl" != x"no"; then - - wget_force_ssl=no - if test x"$with_ssl" = x"yes"; then - wget_force_ssl=yes - fi - - if test x"$with_ssl" = x"yes" || test x"$with_ssl" = x"auto"; then - dnl OpenSSL's root was not specified, so we have to guess. First - dnl try the system default location, then "/usr/local/ssl" (where - dnl OpenSSL installs by default), then "/usr/local" (traditional - dnl choice for installation root), then "/opt". - ssl_all_roots="system-default /usr/local/ssl /usr/local /opt" - else - dnl Root has been specified by the user. - ssl_all_roots=$with_ssl - wget_force_ssl=yes - fi - - wget_save_CC=$CC - wget_save_LIBS=$LIBS - wget_save_LDFLAGS=$LDFLAGS - wget_save_CPPFLAGS=$CPPFLAGS - - dnl Use libtool for OpenSSL tests so we can specify "-R" - dnl without having to know how the linker handles it. - CC="$SHELL ./libtool $CC" - - dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto - dnl shared library doesn't record its dependency on libdl, so we - dnl need to check for it ourselves so we won't fail to link due to a - dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses - dnl shl_load(). - AC_CHECK_LIB(dl,dlopen) - AC_CHECK_LIB(dl,shl_load) - - ssl_success=no - - dnl Now try to find SSL libraries in each of the likely SSL roots. - for ssl_root in $ssl_all_roots - do - if test x"$ssl_root" = x"system-default"; then - dnl Try the default include and library locations. - SSL_INCLUDES= - else - dnl Try this specific root. - SSL_INCLUDES=-I$ssl_root/include - dnl It's OK to use -R directly because libtool will - dnl interpret it for us. - LDFLAGS="-L$ssl_root/lib -R$ssl_root/lib $wget_save_LDFLAGS" - fi - - AC_MSG_NOTICE([looking for SSL libraries in $ssl_root]) - - dnl Check whether the compiler can find the include files. On - dnl some systems Gcc finds libraries in /usr/local/lib, but fails - dnl to find the includes in /usr/local/include. - - ssl_found_includes=no - CPPFLAGS="$SSL_INCLUDES $wget_save_CPPFLAGS" - - dnl Check for all the OpenSSL includes that Wget actually uses. - dnl This will prune both invalid installations and ancient - dnl versions of OpenSSL that we can't use. - AC_MSG_CHECKING([for includes]) - AC_COMPILE_IFELSE([ +dnl Check for OpenSSL +AC_LIB_LINKFLAGS([crypto]) +AC_LIB_LINKFLAGS([ssl],[crypto],[ #include #include #include @@ -332,92 +244,15 @@ if test x"$with_ssl" != x"no"; then #include #include #include - ], [ - AC_MSG_RESULT(found) - ssl_found_includes=yes - ], [ - AC_MSG_RESULT([not found]) - ]) - - if test x"$ssl_found_includes" = xno; then - continue - fi - - ssl_link_failure=no - - dnl Make sure that the checks don't run afoul of the cache. It - dnl would be nicer to temporarily turn off the cache, but - dnl apparently Autoconf doesn't allow that. - - unset ac_cv_lib_crypto_RSA_new - unset ac_cv_lib_ssl_SSL_new - - dnl These checks need to be in this order, or you'll get a link - dnl failure if you use a static libcrypto.a and libssl.a rather - dnl than shared libraries. - - AC_CHECK_LIB(crypto, RSA_new, , ssl_link_failure=yes) - AC_CHECK_LIB(ssl, SSL_new, , ssl_link_failure=yes) - - if test x"$ssl_link_failure" = xyes; then - dnl One or both libs failed to link. - continue - fi - - dnl The libraries link. But we still need to check if the program - dnl linked with those libraries under these settings with run. On - dnl some systems (Solaris), Gcc adds -L/usr/local/lib to the - dnl linking line, but fails to add -R/usr/local/lib, thus creating - dnl executables that link, but fail to run. - - dnl If we are cross-compiling, just assume that working linkage - dnl implies working executable. - - ssl_run_failure=no - - AC_MSG_CHECKING([whether SSL libs are resolved at runtime]) - AC_TRY_RUN([ -int RSA_new(); -int SSL_new(); -main(){return 0;} -], - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no); ssl_run_failure=yes, - AC_MSG_RESULT(cross) - ) - - if test x"$ssl_run_failure" = xno; then - ssl_success=yes - break - fi - done - - if test x"$ssl_success" = xyes; then - AC_MSG_NOTICE([compiling in support for SSL in $ssl_root]) - AC_DEFINE([HAVE_SSL], 1, - [Define if SSL support should be compiled in.]) - AC_SUBST(SSL_INCLUDES) - SSL_OBJ='openssl.o' - AC_SUBST(SSL_OBJ) - else - LDFLAGS=$wget_save_LDFLAGS - LIBS=$wget_save_LIBS - - dnl If linking with SSL was forced rather than auto-detected, then - dnl bail out if SSL failed. - if test x"$wget_force_ssl" = x"yes"; then - AC_MSG_ERROR([failed to find OpenSSL libraries], 2) - fi - fi - - dnl Restore the compiler setting. - CC=$wget_save_CC - - dnl Restore the CPPFLAGS. Do this regardless of whether linking - dnl with SSL succeeded -- SSL includes will be handled using - dnl @SSL_INCLUDES@. - CPPFLAGS=$wget_save_CPPFLAGS +]) +if test x"$LIBSSL" != x +then + AC_MSG_NOTICE([compiling in support for SSL]) + AC_DEFINE([HAVE_SSL], 1, + [Define if SSL support should be compiled in.]) + SSL_OBJ='openssl.o' fi +AC_SUBST(SSL_OBJ) dnl Enable NTLM if requested and if SSL is available. NTLM_OBJ=''