]> sjero.net Git - wget/blobdiff - configure.ac
mass change: update copyright years.
[wget] / configure.ac
index 33df20a272a78232319ca9994e716b4366277ea8..4eb958a25357113433ac4ce748687457de32dbe3 100644 (file)
@@ -1,5 +1,6 @@
 dnl Template file for GNU Autoconf
 dnl Template file for GNU Autoconf
-dnl Copyright (C) 1995, 1996, 1997, 2001, 2007 Free Software Foundation, Inc.
+dnl Copyright (C) 1995, 1996, 1997, 2001, 2007, 2008, 2009, 2010, 2011
+dnl 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
 
 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
@@ -14,22 +15,23 @@ dnl GNU General Public License for more details.
 dnl You should have received a copy of the GNU General Public License
 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 dnl You should have received a copy of the GNU General Public License
 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-dnl In addition, as a special exception, the Free Software Foundation
-dnl gives permission to link the code of its release of Wget with the
-dnl OpenSSL project's "OpenSSL" library (or with modified versions of it
-dnl that use the same license as the "OpenSSL" library), and distribute
-dnl the linked executables.  You must obey the GNU General Public License
-dnl in all respects for all of the code used other than "OpenSSL".  If you
-dnl modify this file, you may extend this exception to your version of the
-dnl file, but you are not obligated to do so.  If you do not wish to do
-dnl so, delete this exception statement from your version.
+dnl Additional permission under GNU GPL version 3 section 7
+
+dnl If you modify this program, or any covered work, by linking or
+dnl combining it with the OpenSSL project's OpenSSL library (or a
+dnl modified version of that library), containing parts covered by the
+dnl terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
+dnl grants you additional permission to convey the resulting work.
+dnl Corresponding Source for a non-source form of such a combination
+dnl shall include the source code for the parts of OpenSSL used as well
+dnl as that of the covered work.
 
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
 
 
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
 
-AC_INIT([wget], 
-       [1.12-devel],
+AC_INIT([wget],
+  [m4_esyscmd([build-aux/bzr-version-gen])],
        [bug-wget@gnu.org])
 AC_PREREQ(2.61)
 
        [bug-wget@gnu.org])
 AC_PREREQ(2.61)
 
@@ -39,18 +41,14 @@ dnl
 AC_MSG_NOTICE([configuring for GNU Wget $PACKAGE_VERSION])
 
 AC_CONFIG_MACRO_DIR([m4])
 AC_MSG_NOTICE([configuring for GNU Wget $PACKAGE_VERSION])
 
 AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_AUX_DIR([.])
+AC_CONFIG_AUX_DIR([build-aux])
 
 
-dnl
-dnl Automake setup
-dnl
-AM_INIT_AUTOMAKE(1.9)
+AC_CONFIG_SRCDIR([src/wget.h])
 
 dnl
 
 dnl
-dnl Gettext
+dnl Automake setup
 dnl
 dnl
-AM_GNU_GETTEXT([external],[need-ngettext])
-AM_GNU_GETTEXT_VERSION([0.16.1])
+AM_INIT_AUTOMAKE([1.9])
 
 dnl
 dnl Get cannonical host
 
 dnl
 dnl Get cannonical host
@@ -88,13 +86,6 @@ ENABLE_DEBUG=$enableval, ENABLE_DEBUG=yes)
 test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
    [Define if you want the debug output support compiled in.])
 
 test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
    [Define if you want the debug output support compiled in.])
 
-wget_need_md5=no
-
-case "${ENABLE_OPIE}${ENABLE_DIGEST}" in
-*yes*)
-       wget_need_md5=yes
-esac
-
 dnl
 dnl Find the compiler
 dnl
 dnl
 dnl Find the compiler
 dnl
@@ -107,8 +98,18 @@ AC_PROG_CC
 AM_PROG_CC_C_O
 AC_AIX
 
 AM_PROG_CC_C_O
 AC_AIX
 
+gl_EARLY
+
+dnl
+dnl Gettext
+dnl
+AM_GNU_GETTEXT([external],[need-ngettext])
+AM_GNU_GETTEXT_VERSION([0.17])
+
 AC_PROG_RANLIB
 
 AC_PROG_RANLIB
 
+AC_PROG_LEX
+
 dnl Turn on optimization by default.  Specifically:
 dnl
 dnl if the user hasn't specified CFLAGS, then
 dnl Turn on optimization by default.  Specifically:
 dnl
 dnl if the user hasn't specified CFLAGS, then
@@ -155,18 +156,20 @@ dnl
 AC_HEADER_STDBOOL
 AC_CHECK_HEADERS(unistd.h sys/time.h)
 AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h)
 AC_HEADER_STDBOOL
 AC_CHECK_HEADERS(unistd.h sys/time.h)
 AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h)
-AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h)
+AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h wchar.h)
+
+AC_CHECK_DECLS(h_errno,,,[#include <netdb.h>])
 
 dnl
 dnl Check sizes of integer types.  These are used to find n-bit
 dnl integral types on older systems that fail to provide intN_t and
 dnl uintN_t typedefs.
 dnl
 
 dnl
 dnl Check sizes of integer types.  These are used to find n-bit
 dnl integral types on older systems that fail to provide intN_t and
 dnl uintN_t typedefs.
 dnl
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(long long)
-AC_CHECK_SIZEOF(void *)
+AC_CHECK_SIZEOF([short])
+AC_CHECK_SIZEOF([int])
+AC_CHECK_SIZEOF([long])
+AC_CHECK_SIZEOF([long long])
+AC_CHECK_SIZEOF([void *])
 
 dnl
 dnl Checks for non-universal or system-specific types.
 
 dnl
 dnl Checks for non-universal or system-specific types.
@@ -183,14 +186,17 @@ AC_CHECK_TYPES(sig_atomic_t, [], [], [
 #include <signal.h>
 ])
 
 #include <signal.h>
 ])
 
+# gnulib
+gl_INIT
+
 dnl
 dnl Checks for library functions.
 dnl
 dnl
 dnl Checks for library functions.
 dnl
-AC_FUNC_ALLOCA
 AC_FUNC_MMAP
 AC_FUNC_FSEEKO
 AC_FUNC_MMAP
 AC_FUNC_FSEEKO
-AC_CHECK_FUNCS(strptime timegm snprintf vsnprintf vasprintf drand48)
-AC_CHECK_FUNCS(strtoll usleep ftello sigblock sigsetjmp memrchr)
+AC_CHECK_FUNCS(strptime timegm vsnprintf vasprintf drand48)
+AC_CHECK_FUNCS(strtoll usleep ftello sigblock sigsetjmp memrchr wcwidth mbtowc)
+AC_CHECK_FUNCS(sleep symlink)
 
 if test x"$ENABLE_OPIE" = xyes; then
   AC_LIBOBJ([ftp-opie])
 
 if test x"$ENABLE_OPIE" = xyes; then
   AC_LIBOBJ([ftp-opie])
@@ -204,44 +210,29 @@ AC_DEFINE([HAVE_STRCASECMP], 1, [Define to 1 if you have the `strcasecmp' functi
 AC_DEFINE([HAVE_STRNCASECMP], 1, [Define to 1 if you have the `strncasecmp' function.])
 AC_DEFINE([HAVE_STRDUP], 1, [Define to 1 if you have the `strdup' function.])
 AC_DEFINE([HAVE_ISATTY], 1, [Define to 1 if you have the `isatty' function.])
 AC_DEFINE([HAVE_STRNCASECMP], 1, [Define to 1 if you have the `strncasecmp' function.])
 AC_DEFINE([HAVE_STRDUP], 1, [Define to 1 if you have the `strdup' function.])
 AC_DEFINE([HAVE_ISATTY], 1, [Define to 1 if you have the `isatty' function.])
-AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the `symlink' function.])
 
 dnl
 dnl Call Wget-specific macros defined in aclocal.
 dnl
 WGET_STRUCT_UTIMBUF
 
 dnl
 dnl Call Wget-specific macros defined in aclocal.
 dnl
 WGET_STRUCT_UTIMBUF
-WGET_SOCKLEN_T
 WGET_FNMATCH
 WGET_NANOSLEEP
 WGET_POSIX_CLOCK
 WGET_NSL_SOCKET
 
 WGET_FNMATCH
 WGET_NANOSLEEP
 WGET_POSIX_CLOCK
 WGET_NSL_SOCKET
 
-dnl
-dnl Check if we need to compile in getopt.c.
-dnl
-AC_CHECK_FUNC(getopt_long, [], [
-  AC_LIBOBJ([getopt])
-])
+dnl Deal with specific hosts
+case $host_os in
+  *mingw32* )
+    AC_SUBST(W32LIBS, '-lws2_32')
+    AC_LIBOBJ([mswindows])
+    ;;
+esac
 
 dnl
 dnl Checks for libraries.
 dnl
 
 
 dnl
 dnl Checks for libraries.
 dnl
 
-AS_IF([test x"$with_ssl" = xgnutls], [
-  dnl Now actually check for -lssl
-  AC_LIB_HAVE_LINKFLAGS([gnutls], [], [
-#include <gnutls/gnutls.h>
-  ], [gnutls_global_init()])
-  if test x"$LIBGNUTLS" != x
-  then
-    AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])
-    AC_LIBOBJ([gnutls])
-  else
-    AC_MSG_ERROR([--with-ssl=gnutls was given, but GNUTLS is not available.])
-  fi
-], [
-  # --with-ssl is not gnutls: check if it's no
-  AS_IF([test x"$with_ssl" != xno], [
+AS_IF([test x"$with_ssl" = xopenssl], [
     dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
     dnl doesn't record its dependency on libdl, so we need to make sure
     dnl -ldl ends up in LIBS on systems that have it.  Most OSes use
     dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
     dnl doesn't record its dependency on libdl, so we need to make sure
     dnl -ldl ends up in LIBS on systems that have it.  Most OSes use
@@ -266,10 +257,26 @@ AS_IF([test x"$with_ssl" = xgnutls], [
       AC_LIBOBJ([openssl])
     elif test x"$with_ssl" != x
     then
       AC_LIBOBJ([openssl])
     elif test x"$with_ssl" != x
     then
-      AC_MSG_ERROR([--with-ssl was given, but SSL is not available.])
+      AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.])
+    fi
+], [
+  # --with-ssl is not gnutls: check if it's no
+  AS_IF([test x"$with_ssl" != xno], [
+    dnl Now actually check for -lssl
+
+    AC_CHECK_LIB(gpg-error, gpg_err_init)
+    AC_CHECK_LIB(gcrypt, gcry_control)
+    AC_CHECK_LIB(gnutls, main)
+
+    if test x"$ac_cv_lib_gnutls_main" != x
+    then
+      AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])
+      AC_LIBOBJ([gnutls])
+    else
+      AC_MSG_ERROR([--with-ssl was given, but GNUTLS is not available.])
     fi
   ]) # endif: --with-ssl == no?
     fi
   ]) # endif: --with-ssl == no?
-]) # endif: --with-ssl == gnutls?
+]) # endif: --with-ssl == openssl?
 
 
 dnl Enable NTLM if requested and if SSL is available.
 
 
 dnl Enable NTLM if requested and if SSL is available.
@@ -290,70 +297,15 @@ else
   fi
 fi
 
   fi
 fi
 
-dnl
-dnl Find an MD5 implementation.  Since Wget rarely needs MD5, we try
-dnl to use an existing library implementation to save on code size.
-dnl
-
-if test x"$wget_need_md5" = xyes
-then
-  dnl This should be moved to an AC_DEFUN, but I'm not sure how to
-  dnl manipulate MD5_OBJ from the defun.
-
-  AC_LIBOBJ([gen-md5])
-  found_md5=no
-
-  dnl Check for the system MD5 library on Solaris.  We don't check for
-  dnl something simple like "MD5Update" because there are a number of
-  dnl MD5 implementations that use that name, but have an otherwise
-  dnl incompatible interface.  md5_calc is, hopefully, specific to the
-  dnl Solaris MD5 library.
-  if test x"$found_md5" = xno; then
-    AC_CHECK_LIB(md5, md5_calc, [
-      dnl Some installations have bogus <md5.h> in the compiler's
-      dnl include path, making the system md5 library useless.
-      AC_MSG_CHECKING([for working md5.h])
-      AC_COMPILE_IFELSE([#include <md5.h>
-                        ], [
-        AC_MSG_RESULT(yes)
-        AC_DEFINE([HAVE_SOLARIS_MD5], 1, [Define when using Solaris MD5.])
-        LIBS="-lmd5 $LIBS"
-        found_md5=yes
-        AC_MSG_NOTICE([using the Solaris MD5 implementation])
-      ], [AC_MSG_RESULT(no)])
-    ])
-  fi
-
-  dnl Then see if we're linking OpenSSL anyway; if yes, use its md5
-  dnl implementation.
-  if test x"$found_md5" = xno; then
-    if test x"$LIBSSL" != x; then
-      AC_DEFINE([HAVE_OPENSSL_MD5], 1, [Define when using OpenSSL MD5.])
-      found_md5=yes
-      AC_MSG_NOTICE([using the OpenSSL MD5 implementation])
-    fi
-  fi
-
-  dnl If none of the above worked, use the one we ship with Wget.
-  if test x"$found_md5" = xno; then
-    AC_DEFINE([HAVE_BUILTIN_MD5], 1, [Define when using built-in MD5.])
-    AC_LIBOBJ([gnu-md5])
-    found_md5=yes
-    AC_MSG_NOTICE([using the built-in (GNU) MD5 implementation])
-    AC_C_BIGENDIAN
-  fi
-fi
-AC_DEFINE([HAVE_MD5], 1, [Define if we're compiling support for MD5.])
-
 dnl **********************************************************************
 dnl Checks for IPv6
 dnl **********************************************************************
 
 dnl
 dnl We test for IPv6 by checking, in turn, for availability of
 dnl **********************************************************************
 dnl Checks for IPv6
 dnl **********************************************************************
 
 dnl
 dnl We test for IPv6 by checking, in turn, for availability of
-dnl getaddrinfo, presence of the INET6 address/protocol family, and
-dnl the existence of struct sockaddr_in6.  If any of them is missing,
-dnl IPv6 is disabled, and the code reverts to old-style gethostbyname.
+dnl presence of the INET6 address/protocol family and the existence of
+dnl struct sockaddr_in6.  If any of them is missing, IPv6 is disabled,
+dnl and the code reverts to old-style gethostbyname.
 dnl
 dnl If --enable-ipv6 is explicitly specified on the configure command
 dnl line, we check for IPv6 and abort if not found.  If --disable-ipv6
 dnl
 dnl If --enable-ipv6 is explicitly specified on the configure command
 dnl line, we check for IPv6 and abort if not found.  If --disable-ipv6
@@ -388,13 +340,6 @@ AC_ARG_ENABLE(ipv6,
   ]
 )
 
   ]
 )
 
-if test "X$ipv6" = "Xyes"; then
-  AC_CHECK_FUNCS(getaddrinfo, [], [
-    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support getaddrinfo(3)])
-    ipv6=no
-  ])
-fi
-
 if test "X$ipv6" = "Xyes"; then
   PROTO_INET6([], [
     AC_MSG_NOTICE([Disabling IPv6 support: your system does not support the PF_INET6 protocol family])
 if test "X$ipv6" = "Xyes"; then
   PROTO_INET6([], [
     AC_MSG_NOTICE([Disabling IPv6 support: your system does not support the PF_INET6 protocol family])
@@ -420,17 +365,6 @@ elif test "x$force_ipv6" = "xyes"; then
   AC_MSG_ERROR([IPv6 support requested but not found; aborting])
 fi
 
   AC_MSG_ERROR([IPv6 support requested but not found; aborting])
 fi
 
-
-dnl
-dnl Set of available languages.
-dnl
-dnl Originally this used to be static, looking like this:
-dnl     ALL_LINGUAS="cs de hr it ..."
-dnl The downside was that configure needed to be rebuilt whenever a
-dnl new language was added.
-dnl
-ALL_LINGUAS="en@quot en@boldquot $(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')"
-
 dnl
 dnl Find makeinfo.  We used to provide support for Emacs processing
 dnl Texinfo using `emacs -batch -eval ...' where makeinfo is
 dnl
 dnl Find makeinfo.  We used to provide support for Emacs processing
 dnl Texinfo using `emacs -batch -eval ...' where makeinfo is
@@ -455,14 +389,97 @@ else
 fi
 AC_SUBST(COMMENT_IF_NO_POD2MAN)
 
 fi
 AC_SUBST(COMMENT_IF_NO_POD2MAN)
 
+
+dnl
+dnl Check for IDN/IRIs
+dnl
+
+AC_ARG_ENABLE(iri,
+  AC_HELP_STRING([--disable-iri],[disable IDN/IRIs support]),
+  [case "${enable_iri}" in
+    no)
+      dnl Disable IRIs checking
+      AC_MSG_NOTICE([disabling IRIs at user request])
+      iri=no
+      ;;
+    yes)
+      dnl IRIs explicitly enabled
+      iri=yes
+      force_iri=yes
+      ;;
+    auto)
+      dnl Auto-detect IRI
+      iri=yes
+      ;;
+    *)
+      AC_MSG_ERROR([Invalid --enable-iri argument \`$enable_iri'])
+      ;;
+    esac
+  ], [
+    dnl If nothing is specified, assume auto-detection
+    iri=yes
+  ]
+)
+
+AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
+                                   [Support IDN/IRIs (needs GNU Libidn)]),
+                                   libidn=$withval, libidn="")
+AS_IF([test "X$iri" != "Xno"],[
+  AM_ICONV
+
+  if test "X$am_cv_func_iconv" != "Xyes"; then
+    iri=no
+    if test "X$force_iri" = "Xyes"; then
+      AC_MSG_ERROR([Libiconv is required for IRIs support])
+    else
+      AC_MSG_NOTICE([disabling IRIs because libiconv wasn't found])
+    fi
+  fi
+],[  # else
+  # For some reason, this seems to be set even when we don't check.
+  # Explicitly unset.
+  LIBICONV=
+])
+
+if test "X$iri" != "Xno"; then
+  if test "$libidn" != ""; then
+    LDFLAGS="${LDFLAGS} -L$libidn/lib"
+    CPPFLAGS="${CPPFLAGS} -I$libidn/include"
+  fi
+
+  # If idna.h can't be found, check to see if it was installed under
+  # /usr/include/idn (OpenSolaris, at least, places it there).
+  # Check for idn-int.h in that case, because idna.h won't find
+  # idn-int.h until we've decided to add -I/usr/include/idn.
+  AC_CHECK_HEADER(idna.h, ,
+    [AC_CHECK_HEADER(idn/idn-int.h,
+                    [CPPFLAGS="${CPPFLAGS} -I/usr/include/idn"],
+                    [iri=no])]
+  )
+
+  if test "X$iri" != "Xno"; then
+    AC_CHECK_LIB(idn, stringprep_check_version,
+      [iri=yes LIBS="${LIBS} -lidn"], iri=no)
+  fi
+
+  if test "X$iri" != "Xno" ; then
+    AC_DEFINE([ENABLE_IRI], 1, [Define if IRI support is enabled.])
+    AC_MSG_NOTICE([Enabling support for IRI.])
+  else
+    AC_MSG_WARN([Libidn not found])
+  fi
+fi
+
+
+dnl Needed by src/Makefile.am
+AM_CONDITIONAL([IRI_IS_ENABLED], [test "X$iri" != "Xno"])
+
+
 dnl
 dnl Create output
 dnl
 AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile util/Makefile
                  po/Makefile.in tests/Makefile tests/WgetTest.pm
 dnl
 dnl Create output
 dnl
 AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile util/Makefile
                  po/Makefile.in tests/Makefile tests/WgetTest.pm
-                 windows/Makefile])
+                 lib/Makefile])
 AC_CONFIG_HEADERS([src/config.h])
 AC_CONFIG_HEADERS([src/config.h])
-AH_BOTTOM([
-#include "config-post.h"
-])
 AC_OUTPUT
 AC_OUTPUT