Blame configure.d/config_project_ipv6_types

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