dnl Template file for GNU Autoconf
-dnl Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+dnl Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
DEBUG=$enableval, DEBUG=yes)
test x"${DEBUG}" = xyes && AC_DEFINE(DEBUG)
+wget_need_md5=no
+
case "${USE_OPIE}${USE_DIGEST}" in
*yes*)
- MD5_OBJ='md5$o'
+ wget_need_md5=yes
esac
if test x"$USE_OPIE" = xyes; then
OPIE_OBJ='ftp-opie$o'
fi
-AC_SUBST(MD5_OBJ)
AC_SUBST(OPIE_OBJ)
dnl
dnl
AC_PROG_INSTALL
-dnl
-dnl Configure our included libtool and make sure it's regenerated when needed
-dnl
-AM_PROG_LIBTOOL
-AC_SUBST(LIBTOOL_DEPS)
-
dnl
dnl Find the compiler
dnl
dnl
AC_AIX
+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.
dnl
AC_FUNC_ALLOCA
AC_FUNC_MMAP
-AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp)
+AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp strpbrk)
AC_CHECK_FUNCS(gettimeofday mktime strptime)
AC_CHECK_FUNCS(strerror snprintf vsnprintf select signal symlink access isatty)
AC_CHECK_FUNCS(uname gethostname)
-AC_CHECK_FUNCS(gethostbyname, [], [
- AC_CHECK_LIB(nsl, gethostbyname)
+dnl
+dnl Check if we need to compile in getopt.c.
+dnl
+AC_CHECK_FUNC(getopt_long, [], [
+ GETOPT_OBJ='getopt$o'
])
+AC_SUBST(GETOPT_OBJ)
dnl
dnl Checks for libraries.
dnl
+dnl
+dnl Use the md5 lib if available (Solaris).
+dnl
+
+if test x$wget_need_md5 = xyes
+then
+ AC_DEFINE(HAVE_MD5)
+ AC_CHECK_LIB(md5, MD5Update, [
+ AC_DEFINE(HAVE_SOLARIS_MD5)
+ LIBS="-lmd5 $LIBS"
+ ], [
+ MD5_OBJ='gnu-md5$o'
+ AC_DEFINE(HAVE_BUILTIN_MD5)
+ ])
+fi
+AC_SUBST(MD5_OBJ)
+
+dnl On Solaris, -lnsl is needed to use gethostbyname. On "NCR MP-RAS
+dnl 3.0", however, gethostbyname is in libc, but -lnsl is still needed
+dnl to use -lsocket, as well as for functions such as inet_ntoa. We
+dnl look for such known offenders and if one of them is not found, we
+dnl check if -lnsl is needed.
+
+wget_check_in_nsl=NONE
+AC_CHECK_FUNCS(gethostbyname, [], [
+ wget_check_in_nsl=gethostbyname
+])
+AC_CHECK_FUNCS(inet_ntoa, [], [
+ wget_check_in_nsl=inet_ntoa
+])
+if test $wget_check_in_nsl != NONE; then
+ AC_CHECK_LIB(nsl, $wget_check_in_nsl)
+fi
+
AC_CHECK_LIB(socket, socket)
dnl #### This appears to be deficient with later versions of SOCKS.
AC_CHECK_LIB(socks, Rconnect)
fi
-dnl OpenSSL is a third-party library, which makes checking for it a
-dnl pain. Before proceeding, we need to figure out whether to use the
-dnl `-R' flag.
-
-dnl Try to autodetect runtime library flag (usually -R), and whether
-dnl it works (or at least does no harm). Note that this is used
-dnl merely for the configure test below. The actual linking is
-dnl performed by libtool. Wouldn't it be nice if libtool also
-dnl provided "querying" that we need in configure?
-AC_MSG_CHECKING("for runtime libraries flag")
-case "$opsys" in
- sol2 ) dash_r="-R" ;;
- decosf* | linux* | irix*) dash_r="-rpath " ;;
- *)
- dash_r=""
- for try_dash_r in "-R" "-R " "-rpath "; do
- OLD_LDFLAGS=$LDFLAGS
- LDFLAGS="${try_dash_r}/no/such/file-or-directory $LDFLAGS"
- AC_TRY_LINK(, , dash_r="$try_dash_r")
- LDFLAGS=$ODL_LDFLAGS
- test -n "$dash_r" && break
- done ;;
-esac
-if test -n "$dash_r";
- then AC_MSG_RESULT("\"${dash_r}\"")
- else AC_MSG_RESULT(NONE)
-fi
-
dnl If --with-ssl was specified, make sure we can link with the
dnl OpenSSL libs. We should probably auto-detect this by default.
ssl_all_roots=$with_ssl
fi
- OLD_LIBS=$LIBS
- OLD_LDFLAGS=$LDFLAGS
+ wget_save_LIBS=$LIBS
+ wget_save_LDFLAGS=$LDFLAGS
+ wget_save_CC=$CC
+
+ dnl Use libtool for OpenSSL tests to handle the "-R<rpath>" option.
+ 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 Now try to find SSL libraries in each of the likely SSL roots.
for ssl_root in $ssl_all_roots
do
- LIBS=$OLD_LIBS
-
if test x"$ssl_root" = xdefault; then
dnl Try the default library locations.
SSL_INCLUDES=
- LDFLAGS=$OLD_LDFLAGS
else
dnl Try this specific root.
SSL_INCLUDES=-I$ssl_root/include
- SSL_DASH_L="-L$ssl_root/lib"
- SSL_DASH_R=
- dnl Only use -R<foo> on systems which support a -R variant.
- if test x"$dash_r" != x; then
- SSL_DASH_R="${dash_r}$ssl_root/lib"
- fi
- LDFLAGS="$SSL_DASH_L $SSL_DASH_R $OLD_LDFLAGS"
+ 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
ssl_link_failure=no
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)
+ AC_CHECK_LIB(crypto, RSA_new, , ssl_link_failure=yes)
+ AC_CHECK_LIB(ssl, SSL_new, , ssl_link_failure=yes)
dnl If ssl_link_failure is still no, the libraries link. But we
dnl still need to check if the program linked with those libraries
if test x"$ssl_link_failure" = xno; then
dnl Now try to run the thing.
- AC_MSG_CHECKING("whether runtime linking works")
+ AC_MSG_CHECKING("whether SSL libs are resolved at runtime")
AC_TRY_RUN([
-char RSA_new();
-char SSL_new();
+int RSA_new();
+int SSL_new();
main(){return 0;}
-], AC_MSG_RESULT("yes"), AC_MSG_RESULT("no"); ssl_link_failure=yes, true)
+],
+ AC_MSG_RESULT("yes"),
+ AC_MSG_RESULT("no"); ssl_link_failure=yes,
+ AC_MSG_RESULT("cross"))
fi
if test x"$ssl_link_failure" = xno; then
done
if test x"$ssl_linked" = xno; then
- LD_FLAGS=$OLD_LDFLAGS
- LIBS=$OLD_LIBS
- dnl Perhaps we should abort here. Remember that the user
- dnl explicitly requested linking with SSL.
+ LD_FLAGS=$wget_save_LDFLAGS
+ LIBS=$wget_save_LIBS
+
+ dnl Perhaps we should abort here. Dan argues that configure
+ dnl scripts shouldn't abort out of principle, but on the other
+ dnl hand remember that the user explicitly requested linking with
+ dnl SSL.
+
+ dnl IMHO there should be a way to specify whether SSL should be
+ dnl avoided, auto-detected, or required, defaulting to
+ dnl `autodetect'. Only in the `require' mode the script would
+ dnl abort if SSL is not found.
echo
echo "WARNING: Failed to link with OpenSSL libraries in $ssl_root/lib."
echo " Wget will be built without support for https://... URLs."
echo
fi
+
+ CC=$wget_save_CC
fi
dnl