]> sjero.net Git - wget/blobdiff - aclocal.m4
[svn] Remove K&R support.
[wget] / aclocal.m4
index 7b594463494fd0471ff308ba05391353bd550d57..ab8988004176a078ac363579759ceb2837bc2d03 100644 (file)
@@ -2,17 +2,17 @@ dnl
 dnl Check for `struct utimbuf'.
 dnl
 
-AC_DEFUN([WGET_STRUCT_UTIMBUF],
-[AC_MSG_CHECKING([for struct utimbuf])
-if test x"$ac_cv_header_utime_h" = xyes; then
-  AC_EGREP_CPP([struct[        ]+utimbuf],
-    [#include <utime.h>],
-    [AC_DEFINE(HAVE_STRUCT_UTIMBUF)
-      AC_MSG_RESULT(yes)],
-    AC_MSG_RESULT(no))
-else
-  AC_MSG_RESULT(no)
-fi])
+AC_DEFUN([WGET_STRUCT_UTIMBUF], [
+  AC_CHECK_TYPES([struct utimbuf], [], [], [
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_UTIME_H
+# include <utime.h>
+#endif
+  ])
+])
 
 
 dnl Check for socklen_t.  The third argument of accept, getsockname,
@@ -23,105 +23,91 @@ dnl size_t *, we use that, else we use int.
 
 AC_DEFUN([WGET_SOCKLEN_T], [
   AC_MSG_CHECKING(for socklen_t)
-  AC_TRY_COMPILE([
+  AC_COMPILE_IFELSE([
 #include <sys/types.h>
 #include <sys/socket.h>
 socklen_t x;
-],
-    [], [AC_MSG_RESULT(yes)], [
-      AC_TRY_COMPILE([
+  ], [AC_MSG_RESULT(socklen_t)], [
+    AC_COMPILE_IFELSE([
 #include <sys/types.h>
 #include <sys/socket.h>
 int accept (int, struct sockaddr *, size_t *);
-],
-      [], [
+    ], [
       AC_MSG_RESULT(size_t)
-      AC_DEFINE(socklen_t, size_t)
+      AC_DEFINE([socklen_t], [size_t],
+                [Define to int or size_t on systems without socklen_t.])
     ], [
       AC_MSG_RESULT(int)
-      AC_DEFINE(socklen_t, int)
+      AC_DEFINE([socklen_t], [int],
+                [Define to int or size_t on systems without socklen_t.])
     ])
   ])
 ])
 
-dnl
-dnl ansi2knr support: check whether C prototypes are available.
-dnl
-
-AC_DEFUN(AM_C_PROTOTYPES,
-[AC_REQUIRE([AM_PROG_CC_STDC])
-AC_BEFORE([$0], [AC_C_INLINE])
-AC_MSG_CHECKING([for function prototypes])
-if test "$am_cv_prog_cc_stdc" != no; then
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(PROTOTYPES)
-  U= ANSI2KNR=
-else
-  AC_MSG_RESULT(no)
-  U=_ ANSI2KNR=./ansi2knr
-  # Ensure some checks needed by ansi2knr itself.
-  AC_HEADER_STDC
-  AC_CHECK_HEADERS(string.h)
-fi
-AC_SUBST(U)dnl
-AC_SUBST(ANSI2KNR)dnl
+dnl Check whether fnmatch.h can be included.  This doesn't use
+dnl AC_FUNC_FNMATCH because Wget is already careful to only use
+dnl fnmatch on certain OS'es.  However, fnmatch.h is sometimes broken
+dnl even on those because Apache installs its own fnmatch.h to
+dnl /usr/local/include (!), which GCC uses before /usr/include.
+
+AC_DEFUN([WGET_FNMATCH], [
+  AC_MSG_CHECKING([for working fnmatch.h])
+  AC_COMPILE_IFELSE([#include <fnmatch.h>
+                    ], [
+    AC_MSG_RESULT(yes)
+    AC_DEFINE([HAVE_WORKING_FNMATCH_H], 1,
+              [Define if fnmatch.h can be included.])
+  ], [
+    AC_MSG_RESULT(no)
+  ])
 ])
 
+dnl Check for nanosleep.  For nanosleep to work on Solaris, we must
+dnl link with -lrt (recently) or with -lposix4 (older releases).
 
-# serial 1
+AC_DEFUN([WGET_NANOSLEEP], [
+  AC_CHECK_FUNCS(nanosleep, [], [
+    AC_CHECK_LIB(rt, nanosleep, [
+      AC_DEFINE([HAVE_NANOSLEEP], 1,
+                [Define if you have the nanosleep function.])
+      LIBS="-lrt $LIBS"
+    ], [
+      AC_CHECK_LIB(posix4, nanosleep, [
+       AC_DEFINE([HAVE_NANOSLEEP], 1,
+                 [Define if you have the nanosleep function.])
+       LIBS="-lposix4 $LIBS"
+      ])
+    ])
+  ])
+])
 
-# @defmac AC_PROG_CC_STDC
-# @maindex PROG_CC_STDC
-# @ovindex CC
-# If the C compiler in not in ANSI C mode by default, try to add an option
-# to output variable @code{CC} to make it so.  This macro tries various
-# options that select ANSI C on some system or another.  It considers the
-# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
-# handles function prototypes correctly.
-#
-# If you use this macro, you should check after calling it whether the C
-# compiler has been set to accept ANSI C; if not, the shell variable
-# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
-# code in ANSI C, you can make an un-ANSIfied copy of it by using the
-# program @code{ansi2knr}, which comes with Ghostscript.
-# @end defmac
-
-AC_DEFUN(AM_PROG_CC_STDC,
-[AC_REQUIRE([AC_PROG_CC])
-AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
-AC_CACHE_VAL(am_cv_prog_cc_stdc,
-[am_cv_prog_cc_stdc=no
-ac_save_CC="$CC"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX                  -qlanglvl=ansi
-# Ultrix and OSF/1     -std1
-# HP-UX                        -Aa -D_HPUX_SOURCE
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE"
-do
-  CC="$ac_save_CC $ac_arg"
-  AC_TRY_COMPILE(
-[#if !defined(__STDC__)
-choke me
-#endif
-/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/stat.h>
-#endif
-], [
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};],
-[am_cv_prog_cc_stdc="$ac_arg"; break])
-done
-CC="$ac_save_CC"
+AC_DEFUN([WGET_POSIX_CLOCK], [
+  AC_CHECK_FUNCS(clock_gettime, [], [
+    AC_CHECK_LIB(rt, clock_gettime)
+  ])
 ])
-AC_MSG_RESULT($am_cv_prog_cc_stdc)
-case "x$am_cv_prog_cc_stdc" in
-  x|xno) ;;
-  *) CC="$CC $am_cv_prog_cc_stdc" ;;
-esac
+
+dnl Check whether we need to link with -lnsl and -lsocket, as is the
+dnl case on e.g. Solaris.
+
+AC_DEFUN([WGET_NSL_SOCKET], [
+  dnl On Solaris, -lnsl is needed to use gethostbyname.  But checking
+  dnl for gethostbyname is not enough because on "NCR MP-RAS 3.0"
+  dnl gethostbyname is in libc, but -lnsl is still needed to use
+  dnl -lsocket, as well as for functions such as inet_ntoa.  We look
+  dnl 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)
 ])
 
 
@@ -130,18 +116,18 @@ dnl START OF IPv6 AUTOCONFIGURATION SUPPORT MACROS
 dnl ************************************************************
 
 AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[
-  ds6_have_sockaddr_in6=
+  wget_have_sockaddr_in6=
   AC_CHECK_TYPES([struct sockaddr_in6],[
-    ds6_have_sockaddr_in6=yes
+    wget_have_sockaddr_in6=yes
   ],[
-    ds6_have_sockaddr_in6=no
+    wget_have_sockaddr_in6=no
   ],[
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
   ])
 
-  if test "X$ds6_have_sockaddr_in6" = "Xyes"; then :
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then :
     $1
   else :
     $2
@@ -152,12 +138,12 @@ AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[
 AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[
   AC_REQUIRE([TYPE_STRUCT_SOCKADDR_IN6])
   
-  ds6_member_sin6_scope_id=
-  if test "X$ds6_have_sockaddr_in6" = "Xyes"; then
+  wget_member_sin6_scope_id=
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then
     AC_CHECK_MEMBER([struct sockaddr_in6.sin6_scope_id],[
-      ds6_member_sin6_scope_id=yes
+      wget_member_sin6_scope_id=yes
     ],[
-      ds6_member_sin6_scope_id=no
+      wget_member_sin6_scope_id=no
     ],[
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -165,7 +151,7 @@ AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[
     ])
   fi
 
-  if test "X$ds6_member_sin6_scope_id" = "Xyes"; then
+  if test "X$wget_member_sin6_scope_id" = "Xyes"; then
     AC_DEFINE([HAVE_SOCKADDR_IN6_SCOPE_ID], 1,
       [Define if struct sockaddr_in6 has the sin6_scope_id member])
     $1
@@ -176,7 +162,7 @@ AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[
 
 
 AC_DEFUN([PROTO_INET6],[
-  AC_CACHE_CHECK([for INET6 protocol support], [ds6_cv_proto_inet6],[
+  AC_CACHE_CHECK([for INET6 protocol support], [wget_cv_proto_inet6],[
     AC_TRY_CPP([
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -188,37 +174,13 @@ AC_DEFUN([PROTO_INET6],[
 #error Mlssing AF_INET6
 #endif
     ],[
-      ds6_cv_proto_inet6=yes
-    ],[
-      ds6_cv_proto_inet6=no
-    ])
-  ])
-
-  if test "X$ds6_cv_proto_inet6" = "Xyes"; then :
-    $1
-  else :
-    $2
-  fi
-])
-
-
-AC_DEFUN([GETADDRINFO_AI_ADDRCONFIG],[
-  AC_CACHE_CHECK([if getaddrinfo supports AI_ADDRCONFIG],
-    [ds6_cv_gai_ai_addrconfig],[
-    AC_TRY_CPP([
-#include <netdb.h>
-
-#ifndef AI_ADDRCONFIG
-#error Missing AI_ADDRCONFIG
-#endif
-    ],[
-      ds6_cv_gai_ai_addrconfig=yes
+      wget_cv_proto_inet6=yes
     ],[
-      ds6_cv_gai_ai_addrconfig=no
+      wget_cv_proto_inet6=no
     ])
   ])
 
-  if test "X$ds6_cv_gai_ai_addrconfig" = "Xyes"; then :
+  if test "X$wget_cv_proto_inet6" = "Xyes"; then :
     $1
   else :
     $2
@@ -226,49 +188,11 @@ AC_DEFUN([GETADDRINFO_AI_ADDRCONFIG],[
 ])
 
 
-AC_DEFUN([GETADDRINFO_AI_ALL],[
-  AC_CACHE_CHECK([if getaddrinfo supports AI_ALL],[ds6_cv_gai_ai_all],[
-    AC_TRY_CPP([
-#include <netdb.h>
-
-#ifndef AI_ALL
-#error Missing AI_ALL
-#endif
-    ],[
-      ds6_cv_gai_ai_all=yes
-    ],[
-      ds6_cv_gai_ai_all=no
-    ])
-  ])
-
-  if test "X$ds6_cv_gai_ai_all" = "Xyes"; then :
-    $1
-  else :
-    $2
-  fi
-])
-
-
-AC_DEFUN([GETADDRINFO_AI_V4MAPPED],[
-  AC_CACHE_CHECK([if getaddrinfo supports AI_V4MAPPED],[ds6_cv_gai_ai_v4mapped],[
-    AC_TRY_CPP([
-#include <netdb.h>
-
-#ifndef AI_V4MAPPED
-#error Missing AI_V4MAPPED
-#endif
-    ],[
-      ds6_cv_gai_ai_v4mapped=yes
-    ],[
-      ds6_cv_gai_ai_v4mapped=no
-    ])
+AC_DEFUN([WGET_STRUCT_SOCKADDR_STORAGE],[
+  AC_CHECK_TYPES([struct sockaddr_storage],[], [], [
+#include <sys/types.h>
+#include <sys/socket.h>
   ])
-
-  if test "X$ds6_cv_gai_ai_v4mapped" = "Xyes"; then :
-    $1
-  else :
-    $2
-  fi
 ])
 
 dnl ************************************************************
@@ -277,7 +201,7 @@ dnl ************************************************************
 \f
 # This code originates from Ulrich Drepper's AM_WITH_NLS.
 
-AC_DEFUN(WGET_WITH_NLS,
+AC_DEFUN([WGET_WITH_NLS],
   [AC_MSG_CHECKING([whether NLS is requested])
     dnl Default is enabled NLS
     AC_ARG_ENABLE(nls,
@@ -290,7 +214,21 @@ AC_DEFUN(WGET_WITH_NLS,
     dnl last moment.
 
     if test x"$HAVE_NLS" = xyes; then
-      AC_MSG_RESULT([language catalogs: $ALL_LINGUAS])
+      dnl If LINGUAS is specified, use only those languages.  In fact,
+      dnl compute an intersection of languages in LINGUAS and
+      dnl ALL_LINGUAS, and use that.
+      if test x"$LINGUAS" != x; then
+        new_linguas=
+        for lang1 in $ALL_LINGUAS; do
+          for lang2 in $LINGUAS; do
+            if test "$lang1" = "$lang2"; then
+              new_linguas="$new_linguas $lang1"
+            fi
+          done
+        done
+        ALL_LINGUAS=$new_linguas
+      fi
+      AC_MSG_NOTICE([language catalogs: $ALL_LINGUAS])
       AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
        [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
       AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
@@ -325,7 +263,8 @@ AC_DEFUN(WGET_WITH_NLS,
       AC_CHECK_LIB(intl, gettext, [
         dnl gettext is in libintl; announce the fact manually.
         LIBS="-lintl $LIBS"
-       AC_DEFINE(HAVE_GETTEXT)
+       AC_DEFINE([HAVE_GETTEXT], 1,
+                  [Define if you have the gettext function.])
       ], [
         AC_CHECK_FUNCS(gettext, [], [
           AC_MSG_RESULT([gettext not found; disabling NLS])
@@ -333,9 +272,6 @@ AC_DEFUN(WGET_WITH_NLS,
         ])
       ])
 
-      dnl These rules are solely for the distribution goal.  While doing this
-      dnl we only have to keep exactly one list of the available catalogs
-      dnl in configure.in.
       for lang in $ALL_LINGUAS; do
        GMOFILES="$GMOFILES $lang.gmo"
        POFILES="$POFILES $lang.po"
@@ -360,7 +296,7 @@ AC_DEFUN(WGET_WITH_NLS,
     USE_NLS=$HAVE_NLS
     AC_SUBST(USE_NLS)
     if test "x$HAVE_NLS" = xyes; then
-      AC_DEFINE(HAVE_NLS)
+      AC_DEFINE([HAVE_NLS], 1, [Define this if you want the NLS support.])
     fi
   ])