krb-ipv6.m4 revision 55682
1dnl $Id: krb-ipv6.m4,v 1.8 2000/01/01 11:44:45 assar Exp $
2dnl
3dnl test for IPv6
4dnl
5AC_DEFUN(AC_KRB_IPV6, [
6AC_ARG_WITH(ipv6,
7[  --without-ipv6	do not enable IPv6 support],[
8if test "$withval" = "no"; then
9	ac_cv_lib_ipv6=no
10fi])
11AC_CACHE_VAL(ac_cv_lib_ipv6,
12[dnl check for different v6 implementations (by itojun)
13v6type=unknown
14v6lib=none
15
16AC_MSG_CHECKING([ipv6 stack type])
17for i in v6d toshiba kame inria zeta linux; do
18	case $i in
19	v6d)
20		AC_EGREP_CPP(yes, [dnl
21#include </usr/local/v6/include/sys/types.h>
22#ifdef __V6D__
23yes
24#endif],
25			[v6type=$i; v6lib=v6;
26			v6libdir=/usr/local/v6/lib;
27			CFLAGS="-I/usr/local/v6/include $CFLAGS"])
28		;;
29	toshiba)
30		AC_EGREP_CPP(yes, [dnl
31#include <sys/param.h>
32#ifdef _TOSHIBA_INET6
33yes
34#endif],
35			[v6type=$i; v6lib=inet6;
36			v6libdir=/usr/local/v6/lib;
37			CFLAGS="-DINET6 $CFLAGS"])
38		;;
39	kame)
40		AC_EGREP_CPP(yes, [dnl
41#include <netinet/in.h>
42#ifdef __KAME__
43yes
44#endif],
45			[v6type=$i; v6lib=inet6;
46			v6libdir=/usr/local/v6/lib;
47			CFLAGS="-DINET6 $CFLAGS"])
48		;;
49	inria)
50		AC_EGREP_CPP(yes, [dnl
51#include <netinet/in.h>
52#ifdef IPV6_INRIA_VERSION
53yes
54#endif],
55			[v6type=$i; CFLAGS="-DINET6 $CFLAGS"])
56		;;
57	zeta)
58		AC_EGREP_CPP(yes, [dnl
59#include <sys/param.h>
60#ifdef _ZETA_MINAMI_INET6
61yes
62#endif],
63			[v6type=$i; v6lib=inet6;
64			v6libdir=/usr/local/v6/lib;
65			CFLAGS="-DINET6 $CFLAGS"])
66		;;
67	linux)
68		if test -d /usr/inet6; then
69			v6type=$i
70			v6lib=inet6
71			v6libdir=/usr/inet6
72			CFLAGS="-DINET6 $CFLAGS"
73		fi
74		;;
75	esac
76	if test "$v6type" != "unknown"; then
77		break
78	fi
79done
80AC_MSG_RESULT($v6type)
81
82if test "$v6lib" != "none"; then
83	for dir in $v6libdir /usr/local/v6/lib /usr/local/lib; do
84		if test -d $dir -a -f $dir/lib$v6lib.a; then
85			LIBS="-L$dir -l$v6lib $LIBS"
86			break
87		fi
88	done
89fi
90AC_TRY_LINK([
91#ifdef HAVE_SYS_TYPES_H
92#include <sys/types.h>
93#endif
94#ifdef HAVE_SYS_SOCKET_H
95#include <sys/socket.h>
96#endif
97#ifdef HAVE_NETINET_IN_H
98#include <netinet/in.h>
99#endif
100#ifdef HAVE_NETINET_IN6_H
101#include <netinet/in6.h>
102#endif
103],
104[
105 struct sockaddr_in6 sin6;
106 int s;
107
108 s = socket(AF_INET6, SOCK_DGRAM, 0);
109
110 sin6.sin6_family = AF_INET6;
111 sin6.sin6_port = htons(17);
112 sin6.sin6_addr = in6addr_any;
113 bind(s, (struct sockaddr *)&sin6, sizeof(sin6));
114],
115ac_cv_lib_ipv6=yes,
116ac_cv_lib_ipv6=no)])
117AC_MSG_CHECKING(for IPv6)
118AC_MSG_RESULT($ac_cv_lib_ipv6)
119if test "$ac_cv_lib_ipv6" = yes; then
120  AC_DEFINE(HAVE_IPV6, 1, [Define if you have IPv6.])
121fi
122])
123