]> sjero.net Git - wget/blobdiff - configure.in
[svn] Removed libtool and switched to config.rpath to perform configuration-time...
[wget] / configure.in
index 9cce2217cff0570fea1c5f0e19227f729f14465e..f8da5dd42613bc85cd16649f9266f8b9a86fec49 100644 (file)
@@ -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<rpath>"
-  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 <openssl/ssl.h>
 #include <openssl/x509.h>
 #include <openssl/err.h>
@@ -332,92 +244,15 @@ if test x"$with_ssl" != x"no"; then
 #include <openssl/des.h>
 #include <openssl/md4.h>
 #include <openssl/md5.h>
-    ], [
-      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=''