2005-06-24 09:29:46 -04:00
|
|
|
|
dnl Wget-specific Autoconf macros.
|
2007-09-28 18:45:31 -04:00
|
|
|
|
dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
|
|
|
|
dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
2005-06-26 17:50:08 -04:00
|
|
|
|
|
|
|
|
|
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
|
2007-07-10 01:53:22 -04:00
|
|
|
|
dnl the Free Software Foundation; either version 3 of the License, or
|
2005-06-26 17:50:08 -04:00
|
|
|
|
dnl (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
|
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
dnl GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
dnl You should have received a copy of the GNU General Public License
|
2007-07-10 01:53:22 -04:00
|
|
|
|
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2005-06-26 17:50:08 -04:00
|
|
|
|
|
|
|
|
|
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.
|
2005-06-24 09:29:46 -04:00
|
|
|
|
|
2003-10-10 22:28:13 -04:00
|
|
|
|
dnl
|
|
|
|
|
dnl Check for `struct utimbuf'.
|
|
|
|
|
dnl
|
|
|
|
|
|
2003-11-04 09:46:19 -05:00
|
|
|
|
AC_DEFUN([WGET_STRUCT_UTIMBUF], [
|
2003-11-10 08:48:53 -05:00
|
|
|
|
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
|
|
|
|
|
])
|
2003-11-04 09:46:19 -05:00
|
|
|
|
])
|
2003-10-10 22:28:13 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dnl Check for socklen_t. The third argument of accept, getsockname,
|
|
|
|
|
dnl etc. is int * on some systems, but size_t * on others. POSIX
|
|
|
|
|
dnl finally standardized on socklen_t, but older systems don't have
|
|
|
|
|
dnl it. If socklen_t exists, we use it, else if accept() accepts
|
|
|
|
|
dnl size_t *, we use that, else we use int.
|
|
|
|
|
|
|
|
|
|
AC_DEFUN([WGET_SOCKLEN_T], [
|
|
|
|
|
AC_MSG_CHECKING(for socklen_t)
|
2003-11-10 09:13:18 -05:00
|
|
|
|
AC_COMPILE_IFELSE([
|
2003-10-10 22:28:13 -04:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
socklen_t x;
|
2003-11-10 09:13:18 -05:00
|
|
|
|
], [AC_MSG_RESULT(socklen_t)], [
|
|
|
|
|
AC_COMPILE_IFELSE([
|
2003-10-10 22:28:13 -04:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
int accept (int, struct sockaddr *, size_t *);
|
2003-11-10 09:13:18 -05:00
|
|
|
|
], [
|
2003-10-10 22:28:13 -04:00
|
|
|
|
AC_MSG_RESULT(size_t)
|
2003-11-04 09:46:19 -05:00
|
|
|
|
AC_DEFINE([socklen_t], [size_t],
|
|
|
|
|
[Define to int or size_t on systems without socklen_t.])
|
2003-10-10 22:28:13 -04:00
|
|
|
|
], [
|
|
|
|
|
AC_MSG_RESULT(int)
|
2003-11-04 09:46:19 -05:00
|
|
|
|
AC_DEFINE([socklen_t], [int],
|
|
|
|
|
[Define to int or size_t on systems without socklen_t.])
|
2003-10-10 22:28:13 -04:00
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
2003-11-03 20:05:06 -05:00
|
|
|
|
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], [
|
2003-11-04 09:46:19 -05:00
|
|
|
|
AC_MSG_CHECKING([for working fnmatch.h])
|
2003-11-03 20:05:06 -05:00
|
|
|
|
AC_COMPILE_IFELSE([#include <fnmatch.h>
|
|
|
|
|
], [
|
|
|
|
|
AC_MSG_RESULT(yes)
|
2003-11-04 10:28:18 -05:00
|
|
|
|
AC_DEFINE([HAVE_WORKING_FNMATCH_H], 1,
|
2003-11-04 09:46:19 -05:00
|
|
|
|
[Define if fnmatch.h can be included.])
|
2003-11-03 20:05:06 -05:00
|
|
|
|
], [
|
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
dnl Check for nanosleep. For nanosleep to work on Solaris, we must
|
2005-04-07 19:41:08 -04:00
|
|
|
|
dnl link with -lrt (recently) or with -lposix4 (older releases).
|
2003-11-03 20:05:06 -05:00
|
|
|
|
|
|
|
|
|
AC_DEFUN([WGET_NANOSLEEP], [
|
|
|
|
|
AC_CHECK_FUNCS(nanosleep, [], [
|
|
|
|
|
AC_CHECK_LIB(rt, nanosleep, [
|
2003-11-04 10:28:18 -05:00
|
|
|
|
AC_DEFINE([HAVE_NANOSLEEP], 1,
|
2003-11-04 09:46:19 -05:00
|
|
|
|
[Define if you have the nanosleep function.])
|
2003-11-03 20:05:06 -05:00
|
|
|
|
LIBS="-lrt $LIBS"
|
|
|
|
|
], [
|
|
|
|
|
AC_CHECK_LIB(posix4, nanosleep, [
|
2003-11-04 10:28:18 -05:00
|
|
|
|
AC_DEFINE([HAVE_NANOSLEEP], 1,
|
2003-11-04 09:46:19 -05:00
|
|
|
|
[Define if you have the nanosleep function.])
|
2003-11-03 20:05:06 -05:00
|
|
|
|
LIBS="-lposix4 $LIBS"
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
2005-04-07 19:41:08 -04:00
|
|
|
|
AC_DEFUN([WGET_POSIX_CLOCK], [
|
|
|
|
|
AC_CHECK_FUNCS(clock_gettime, [], [
|
|
|
|
|
AC_CHECK_LIB(rt, clock_gettime)
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
2003-11-03 20:05:06 -05:00
|
|
|
|
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)
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
2003-09-09 15:30:45 -04:00
|
|
|
|
dnl ************************************************************
|
2003-09-16 08:24:29 -04:00
|
|
|
|
dnl START OF IPv6 AUTOCONFIGURATION SUPPORT MACROS
|
|
|
|
|
dnl ************************************************************
|
|
|
|
|
|
|
|
|
|
AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_have_sockaddr_in6=
|
2003-09-16 08:24:29 -04:00
|
|
|
|
AC_CHECK_TYPES([struct sockaddr_in6],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_have_sockaddr_in6=yes
|
2003-09-16 08:24:29 -04:00
|
|
|
|
],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_have_sockaddr_in6=no
|
2003-09-16 08:24:29 -04:00
|
|
|
|
],[
|
2003-09-09 15:30:45 -04:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
2003-09-16 08:24:29 -04:00
|
|
|
|
#include <netinet/in.h>
|
|
|
|
|
])
|
2003-09-09 15:30:45 -04:00
|
|
|
|
|
2003-11-26 12:20:23 -05:00
|
|
|
|
if test "X$wget_have_sockaddr_in6" = "Xyes"; then :
|
2003-09-16 08:24:29 -04:00
|
|
|
|
$1
|
|
|
|
|
else :
|
|
|
|
|
$2
|
|
|
|
|
fi
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[
|
|
|
|
|
AC_REQUIRE([TYPE_STRUCT_SOCKADDR_IN6])
|
|
|
|
|
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_member_sin6_scope_id=
|
|
|
|
|
if test "X$wget_have_sockaddr_in6" = "Xyes"; then
|
2003-09-16 08:24:29 -04:00
|
|
|
|
AC_CHECK_MEMBER([struct sockaddr_in6.sin6_scope_id],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_member_sin6_scope_id=yes
|
2003-09-16 08:24:29 -04:00
|
|
|
|
],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_member_sin6_scope_id=no
|
2003-09-16 08:24:29 -04:00
|
|
|
|
],[
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
#include <netinet/in.h>
|
|
|
|
|
])
|
|
|
|
|
fi
|
|
|
|
|
|
2003-11-26 12:20:23 -05:00
|
|
|
|
if test "X$wget_member_sin6_scope_id" = "Xyes"; then
|
2003-09-16 08:24:29 -04:00
|
|
|
|
AC_DEFINE([HAVE_SOCKADDR_IN6_SCOPE_ID], 1,
|
|
|
|
|
[Define if struct sockaddr_in6 has the sin6_scope_id member])
|
|
|
|
|
$1
|
|
|
|
|
else :
|
|
|
|
|
$2
|
|
|
|
|
fi
|
2003-09-09 15:30:45 -04:00
|
|
|
|
])
|
|
|
|
|
|
2003-09-16 08:24:29 -04:00
|
|
|
|
|
|
|
|
|
AC_DEFUN([PROTO_INET6],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
AC_CACHE_CHECK([for INET6 protocol support], [wget_cv_proto_inet6],[
|
2003-09-16 08:24:29 -04:00
|
|
|
|
AC_TRY_CPP([
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
|
|
|
|
|
#ifndef PF_INET6
|
|
|
|
|
#error Missing PF_INET6
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef AF_INET6
|
|
|
|
|
#error Mlssing AF_INET6
|
|
|
|
|
#endif
|
|
|
|
|
],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_cv_proto_inet6=yes
|
2003-09-16 08:24:29 -04:00
|
|
|
|
],[
|
2003-11-26 12:20:23 -05:00
|
|
|
|
wget_cv_proto_inet6=no
|
2003-09-16 08:24:29 -04:00
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
2003-11-26 12:20:23 -05:00
|
|
|
|
if test "X$wget_cv_proto_inet6" = "Xyes"; then :
|
2003-09-16 08:24:29 -04:00
|
|
|
|
$1
|
|
|
|
|
else :
|
|
|
|
|
$2
|
|
|
|
|
fi
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
2003-11-26 12:20:23 -05:00
|
|
|
|
AC_DEFUN([WGET_STRUCT_SOCKADDR_STORAGE],[
|
|
|
|
|
AC_CHECK_TYPES([struct sockaddr_storage],[], [], [
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
|
2003-09-16 08:24:29 -04:00
|
|
|
|
dnl ************************************************************
|
|
|
|
|
dnl END OF IPv6 AUTOCONFIGURATION SUPPORT MACROS
|
|
|
|
|
dnl ************************************************************
|
1999-12-02 02:42:23 -05:00
|
|
|
|
|
|
|
|
|
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
|
|
|
|
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
2007-08-16 04:32:07 -04:00
|
|
|
|
AC_DEFUN([AM_PATH_PROG_WITH_TEST],
|
1999-12-02 02:42:23 -05:00
|
|
|
|
[# Extract the first word of "$2", so it can be a program name with args.
|
|
|
|
|
set dummy $2; ac_word=[$]2
|
|
|
|
|
AC_MSG_CHECKING([for $ac_word])
|
|
|
|
|
AC_CACHE_VAL(ac_cv_path_$1,
|
|
|
|
|
[case "[$]$1" in
|
|
|
|
|
/*)
|
|
|
|
|
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
|
|
|
|
for ac_dir in ifelse([$5], , $PATH, [$5]); do
|
|
|
|
|
test -z "$ac_dir" && ac_dir=.
|
|
|
|
|
if test -f $ac_dir/$ac_word; then
|
|
|
|
|
if [$3]; then
|
|
|
|
|
ac_cv_path_$1="$ac_dir/$ac_word"
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
IFS="$ac_save_ifs"
|
|
|
|
|
dnl If no 4th arg is given, leave the cache variable unset,
|
|
|
|
|
dnl so AC_PATH_PROGS will keep looking.
|
|
|
|
|
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
|
|
|
|
|
])dnl
|
|
|
|
|
;;
|
|
|
|
|
esac])dnl
|
|
|
|
|
$1="$ac_cv_path_$1"
|
|
|
|
|
if test -n "[$]$1"; then
|
|
|
|
|
AC_MSG_RESULT([$]$1)
|
|
|
|
|
else
|
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
|
fi
|
|
|
|
|
AC_SUBST($1)dnl
|
|
|
|
|
])
|
2001-03-17 09:21:19 -05:00
|
|
|
|
|