|
Packit |
fcad23 |
# -*- autoconf -*-
|
|
Packit |
fcad23 |
#########################################
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
# Checks for types
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
#########################################
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
# Standard checks:
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
AC_CHECK_SIZEOF(short)
|
|
Packit |
fcad23 |
AC_CHECK_SIZEOF(int)
|
|
Packit |
fcad23 |
AC_CHECK_SIZEOF(long)
|
|
Packit |
fcad23 |
AC_CHECK_SIZEOF(long long)
|
|
Packit |
fcad23 |
AC_CHECK_SIZEOF(intmax_t)
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
AC_TYPE_INT8_T
|
|
Packit |
fcad23 |
AC_TYPE_INT16_T
|
|
Packit |
fcad23 |
AC_TYPE_INT32_T
|
|
Packit |
fcad23 |
AC_TYPE_INT64_T
|
|
Packit |
fcad23 |
AC_TYPE_INTMAX_T
|
|
Packit |
fcad23 |
AC_TYPE_UINT8_T
|
|
Packit |
fcad23 |
AC_TYPE_UINT16_T
|
|
Packit |
fcad23 |
AC_TYPE_UINT32_T
|
|
Packit |
fcad23 |
AC_TYPE_UINT64_T
|
|
Packit |
fcad23 |
AC_TYPE_UINTMAX_T
|
|
Packit |
fcad23 |
AC_TYPE_INTPTR_T
|
|
Packit |
fcad23 |
AC_TYPE_UINTPTR_T
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
# Other type checks:
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
AC_CHECK_TYPES([off64_t])
|
|
Packit |
fcad23 |
AC_CHECK_TYPES([nfds_t],,,[#include <sys/poll.h>])
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# Solaris specific checks
|
|
Packit |
fcad23 |
# (taken from Perl's configure script)
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
|
|
Packit |
fcad23 |
AC_CHECK_TYPES([mib2_ipIfStatsEntry_t],,,[#include <inet/mib2.h>])
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# N.B: The above checks could safely be moved to
|
|
Packit |
fcad23 |
# the later 'config_types' sub-script
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
# Determine the IPv6 stack type
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# These checks also set the LIBS/CFLAGS variables,
|
|
Packit |
fcad23 |
# which may be needed for subsequent function tests
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if test "x$enable_ipv6" = "xyes"; then
|
|
Packit |
fcad23 |
v6type=unknown
|
|
Packit |
fcad23 |
v6lib=none
|
|
Packit |
fcad23 |
v6trylibc=no
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
AC_MSG_CHECKING([[ipv6 stack type]])
|
|
Packit |
fcad23 |
for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 cygwin winsock2 generic; do
|
|
Packit |
fcad23 |
case $i in
|
|
Packit |
fcad23 |
v6d)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include </usr/local/v6/include/sys/types.h>
|
|
Packit |
fcad23 |
#ifdef __V6D__
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i; v6lib=v6;
|
|
Packit |
fcad23 |
v6libdir=/usr/local/v6/lib;
|
|
Packit |
fcad23 |
CFLAGS="-I/usr/local/v6/include $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
toshiba)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <sys/param.h>
|
|
Packit |
fcad23 |
#ifdef _TOSHIBA_INET6
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i; v6lib=inet6;
|
|
Packit |
fcad23 |
v6libdir=/usr/local/v6/lib;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
kame)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <netinet/in.h>
|
|
Packit |
fcad23 |
#ifdef __KAME__
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i; v6lib=inet6;
|
|
Packit |
fcad23 |
v6libdir=/usr/local/v6/lib;
|
|
Packit |
fcad23 |
v6trylibc=yes;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
inria)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <netinet/in.h>
|
|
Packit |
fcad23 |
#ifdef IPV6_INRIA_VERSION
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i;
|
|
Packit |
fcad23 |
v6lib=dummy;
|
|
Packit |
fcad23 |
v6libdir=none;
|
|
Packit |
fcad23 |
v6trylibc=yes;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
zeta)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <sys/param.h>
|
|
Packit |
fcad23 |
#ifdef _ZETA_MINAMI_INET6
|
|
Packit |
fcad23 |
A
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i; v6lib=inet6;
|
|
Packit |
fcad23 |
v6libdir=/usr/local/v6/lib;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
linux-glibc)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <features.h>
|
|
Packit |
fcad23 |
#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i;
|
|
Packit |
fcad23 |
v6lib=dummy;
|
|
Packit |
fcad23 |
v6libdir=none;
|
|
Packit |
fcad23 |
v6trylibc=yes;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
linux-inet6)
|
|
Packit |
fcad23 |
if test -d /usr/inet6; then
|
|
Packit |
fcad23 |
v6type=$i
|
|
Packit |
fcad23 |
v6lib=inet6
|
|
Packit |
fcad23 |
v6libdir=/usr/inet6/lib
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
cygwin)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <netinet/in.h>
|
|
Packit |
fcad23 |
#ifdef _CYGWIN_IN6_H
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i;
|
|
Packit |
fcad23 |
v6lib=dummy;
|
|
Packit |
fcad23 |
v6libdir=none
|
|
Packit |
fcad23 |
v6trylibc=yes;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
winsock2)
|
|
Packit |
fcad23 |
AC_EGREP_CPP(yes, [
|
|
Packit |
fcad23 |
#include <ws2tcpip.h>
|
|
Packit |
fcad23 |
#if defined(_WS2TCPIP_H)
|
|
Packit |
fcad23 |
yes
|
|
Packit |
fcad23 |
#endif],
|
|
Packit |
fcad23 |
[v6type=$i;
|
|
Packit |
fcad23 |
v6lib=dummy;
|
|
Packit |
fcad23 |
v6libdir=none
|
|
Packit |
fcad23 |
v6trylibc=yes;
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
generic)
|
|
Packit |
fcad23 |
AC_MSG_RESULT([[postponed]])
|
|
Packit |
fcad23 |
AC_CHECK_MEMBER([struct sockaddr_in6.sin6_addr],,,[
|
|
Packit |
fcad23 |
AC_INCLUDES_DEFAULT()
|
|
Packit |
fcad23 |
[#ifdef HAVE_SYS_PARAM_H
|
|
Packit |
fcad23 |
#include <sys/param.h>
|
|
Packit |
fcad23 |
#endif
|
|
Packit |
fcad23 |
#ifdef HAVE_SYS_SOCKET_H
|
|
Packit |
fcad23 |
#include <sys/socket.h>
|
|
Packit |
fcad23 |
#endif
|
|
Packit |
fcad23 |
#ifdef HAVE_NETINET_IN_H
|
|
Packit |
fcad23 |
#include <netinet/in.h>
|
|
Packit |
fcad23 |
#endif
|
|
Packit |
fcad23 |
]])
|
|
Packit |
fcad23 |
AC_MSG_CHECKING([[ipv6 stack type]])
|
|
Packit |
fcad23 |
if test "x$ac_cv_member_struct_sockaddr_in6_sin6_addr" = "xyes"; then
|
|
Packit |
fcad23 |
v6type=$i
|
|
Packit |
fcad23 |
v6lib=dummy
|
|
Packit |
fcad23 |
v6libdir=none
|
|
Packit |
fcad23 |
v6trylibc=yes
|
|
Packit |
fcad23 |
CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
esac
|
|
Packit |
fcad23 |
if test "$v6type" != "unknown"; then
|
|
Packit |
fcad23 |
break
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
done
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if test "$v6lib" != "none"; then
|
|
Packit |
fcad23 |
if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
|
|
Packit |
fcad23 |
LIBS="-L$v6libdir -l$v6lib $LIBS"
|
|
Packit |
fcad23 |
enable_ipv6="yes"
|
|
Packit |
fcad23 |
AC_MSG_RESULT(["$v6type, $enable_ipv6, using lib$v6lib"])
|
|
Packit |
fcad23 |
elif test "$v6trylibc" = "yes"; then
|
|
Packit |
fcad23 |
enable_ipv6="yes"
|
|
Packit |
fcad23 |
AC_MSG_RESULT(["$v6type, $enable_ipv6, using libc"])
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
AC_MSG_ERROR(no IPv6 library lib$v6lib.a found.)
|
|
Packit |
fcad23 |
exit 1
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
enable_ipv6="no"
|
|
Packit |
fcad23 |
AC_MSG_RESULT(["$v6type, $enable_ipv6"])
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|