]> sjero.net Git - wget/blobdiff - configure.in
[svn] Renamed src/gen_sslfunc.c to src/openssl.c and src/gen_sslfunc.h to
[wget] / configure.in
index 98e3b1efada10997c682d60e43cb886eac906fc3..ecc45824f322eb3b686a44395b4077b89bbb8cd0 100644 (file)
@@ -58,16 +58,20 @@ AC_ARG_WITH(ssl,
 
 AC_ARG_ENABLE(opie,
 [  --disable-opie          disable support for opie or s/key FTP login],
-USE_OPIE=$enableval, USE_OPIE=yes)
-test x"${USE_OPIE}" = xyes && AC_DEFINE([USE_OPIE], 1,
+ENABLE_OPIE=$enableval, ENABLE_OPIE=yes)
+test x"${ENABLE_OPIE}" = xyes && AC_DEFINE([ENABLE_OPIE], 1,
    [Define if you want the Opie support for FTP compiled in.])
 
 AC_ARG_ENABLE(digest,
 [  --disable-digest        disable support for HTTP digest authorization],
-USE_DIGEST=$enableval, USE_DIGEST=yes)
-test x"${USE_DIGEST}" = xyes && AC_DEFINE([USE_DIGEST], 1,
+ENABLE_DIGEST=$enableval, ENABLE_DIGEST=yes)
+test x"${ENABLE_DIGEST}" = xyes && AC_DEFINE([ENABLE_DIGEST], 1,
    [Define if you want the HTTP Digest Authorization compiled in.])
 
+AC_ARG_ENABLE(ntlm,
+[  --disable-ntlm          disable support for NTLM authorization],
+[ENABLE_NTLM=$enableval], [ENABLE_NTLM=auto])
+
 AC_ARG_ENABLE(debug,
 [  --disable-debug         disable support for debugging output],
 ENABLE_DEBUG=$enableval, ENABLE_DEBUG=yes)
@@ -76,11 +80,11 @@ test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
 
 wget_need_md5=no
 
-case "${USE_OPIE}${USE_DIGEST}" in
+case "${ENABLE_OPIE}${ENABLE_DIGEST}" in
 *yes*)
        wget_need_md5=yes
 esac
-if test x"$USE_OPIE" = xyes; then
+if test x"$ENABLE_OPIE" = xyes; then
   OPIE_OBJ='ftp-opie$o'
 fi
 AC_SUBST(OPIE_OBJ)
@@ -182,6 +186,14 @@ AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
 
+dnl
+dnl Check for large file support.  This check needs to come fairly
+dnl early because it could (in principle) affect whether functions and
+dnl headers are available, whether they work, etc.
+dnl
+AC_SYS_LARGEFILE
+AC_CHECK_SIZEOF(off_t)
+
 dnl
 dnl Checks for non-universal or system-specific types.
 dnl
@@ -205,9 +217,11 @@ dnl Checks for library functions.
 dnl
 AC_FUNC_ALLOCA
 AC_FUNC_MMAP
+AC_FUNC_FSEEKO
 AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp strpbrk memmove)
 AC_CHECK_FUNCS(gettimeofday mktime strptime strerror snprintf vsnprintf)
-AC_CHECK_FUNCS(usleep select sigblock sigsetjmp signal symlink access isatty)
+AC_CHECK_FUNCS(usleep select ftello sigblock sigsetjmp signal)
+AC_CHECK_FUNCS(symlink access isatty)
 
 dnl
 dnl Call Wget's local macros defined in aclocal.
@@ -216,6 +230,7 @@ WGET_STRUCT_UTIMBUF
 WGET_SOCKLEN_T
 WGET_FNMATCH
 WGET_NANOSLEEP
+WGET_POSIX_CLOCK
 WGET_NSL_SOCKET
 
 dnl
@@ -312,10 +327,20 @@ if test x"$with_ssl" != x"no"; then
     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([
 #include <openssl/ssl.h>
-#include <openssl/rsa.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/des.h>
+#include <openssl/err.h>
+#include <openssl/md4.h>
+#include <openssl/pem.h>
+#include <openssl/rand.h>
+#include <openssl/x509.h>
     ], [
       AC_MSG_RESULT(found)
       ssl_found_includes=yes
@@ -381,7 +406,7 @@ main(){return 0;}
     AC_DEFINE([HAVE_SSL], 1,
               [Define if SSL support should be compiled in.])
     AC_SUBST(SSL_INCLUDES)
-    SSL_OBJ='gen_sslfunc$o'
+    SSL_OBJ='openssl$o'
     AC_SUBST(SSL_OBJ)
   else
     LDFLAGS=$wget_save_LDFLAGS
@@ -403,6 +428,26 @@ main(){return 0;}
   CPPFLAGS=$wget_save_CPPFLAGS
 fi
 
+dnl Enable NTLM if requested and if SSL is available.
+NTLM_OBJ=''
+if test x"$ssl_success" = xyes
+then
+  if test x"$ENABLE_NTLM" != xno
+  then
+    AC_DEFINE([ENABLE_NTLM], 1,
+     [Define if you want the NTLM authorization support compiled in.])
+    NTLM_OBJ='http-ntlm$o'
+  fi
+else
+  dnl If SSL is unavailable and the user explicitly requested NTLM,
+  dnl abort.
+  if test x"$ENABLE_NTLM" = xyes
+  then
+    AC_MSG_ERROR([NTLM authorization requested and OpenSSL not found; aborting])
+  fi
+fi
+AC_SUBST(NTLM_OBJ)
+
 dnl
 dnl Find an md5 implementation.
 dnl
@@ -484,26 +529,7 @@ AC_ARG_ENABLE(ipv6,
 )
 
 if test "X$ipv6" = "Xyes" || test "X$check_for_ipv6" = "Xyes"; then
-  AC_CHECK_FUNCS(getaddrinfo, [
-    GETADDRINFO_AI_ADDRCONFIG([
-      AC_DEFINE(
-        [HAVE_GETADDRINFO_AI_ADDRCONFIG], 1, 
-        [Define if the system headers support the AI_ADDRCONFIG flag.]
-      )
-    ])
-    GETADDRINFO_AI_V4MAPPED([
-      AC_DEFINE(
-        [HAVE_GETADDRINFO_AI_V4MAPPED], 1, 
-        [Define if the system headers support the AI_V4MAPPED flag.]
-      )
-    ])
-    GETADDRINFO_AI_ALL([
-      AC_DEFINE(
-        [HAVE_GETADDRINFO_AI_ALL], 1, 
-        [Define if the system headers support the AI_ALL flag.]
-      )
-    ])
-  ], [
+  AC_CHECK_FUNCS(getaddrinfo, [], [
     AC_MSG_NOTICE([Disabling IPv6 support: your system does not support getaddrinfo(3)])
     ipv6=no
   ])