Initial import from FreeBSD RELENG_4:
[dragonfly.git] / crypto / kerberosIV / cf / krb-ipv6.m4
1 dnl $Id: krb-ipv6.m4,v 1.5 1999/03/21 14:06:16 joda Exp $
2 dnl
3 dnl test for IPv6
4 dnl
5 AC_DEFUN(AC_KRB_IPV6, [
6 AC_CACHE_CHECK(for IPv6,ac_cv_lib_ipv6,
7 AC_TRY_COMPILE([
8 #ifdef HAVE_SYS_TYPES_H
9 #include <sys/types.h>
10 #endif
11 #ifdef HAVE_SYS_SOCKET_H
12 #include <sys/socket.h>
13 #endif
14 #ifdef HAVE_NETINET_IN_H
15 #include <netinet/in.h>
16 #endif
17 #ifdef HAVE_NETINET_IN6_H
18 #include <netinet/in6.h>
19 #endif
20 ],
21 [
22 #if defined(IN6ADDR_ANY_INIT)
23 struct in6_addr any = IN6ADDR_ANY_INIT;
24 #elif defined(IPV6ADDR_ANY_INIT)
25 struct in6_addr any = IPV6ADDR_ANY_INIT;
26 #else
27 #error no any?
28 #endif
29  struct sockaddr_in6 sin6;
30  int s;
31
32  s = socket(AF_INET6, SOCK_DGRAM, 0);
33
34  sin6.sin6_family = AF_INET6;
35  sin6.sin6_port = htons(17);
36  sin6.sin6_addr = any;
37  bind(s, (struct sockaddr *)&sin6, sizeof(sin6));
38 ],
39 ac_cv_lib_ipv6=yes,
40 ac_cv_lib_ipv6=no))
41 if test "$ac_cv_lib_ipv6" = yes; then
42   AC_DEFINE(HAVE_IPV6, 1, [Define if you have IPv6.])
43
44         dnl check for different v6 implementations (by itojun)
45         v6type=unknown
46         v6lib=none
47
48         AC_MSG_CHECKING([ipv6 stack type])
49         for i in v6d toshiba kame inria zeta linux; do
50                 case $i in
51                 v6d)
52                         AC_EGREP_CPP(yes, [dnl
53 #include </usr/local/v6/include/sys/types.h>
54 #ifdef __V6D__
55 yes
56 #endif],
57                                 [v6type=$i; v6lib=v6;
58                                 v6libdir=/usr/local/v6/lib;
59                                 CFLAGS="-I/usr/local/v6/include $CFLAGS"])
60                         ;;
61                 toshiba)
62                         AC_EGREP_CPP(yes, [dnl
63 #include <sys/param.h>
64 #ifdef _TOSHIBA_INET6
65 yes
66 #endif],
67                                 [v6type=$i; v6lib=inet6;
68                                 v6libdir=/usr/local/v6/lib;
69                                 CFLAGS="-DINET6 $CFLAGS"])
70                         ;;
71                 kame)
72                         AC_EGREP_CPP(yes, [dnl
73 #include <netinet/in.h>
74 #ifdef __KAME__
75 yes
76 #endif],
77                                 [v6type=$i; v6lib=inet6;
78                                 v6libdir=/usr/local/v6/lib;
79                                 CFLAGS="-DINET6 $CFLAGS"])
80                         ;;
81                 inria)
82                         AC_EGREP_CPP(yes, [dnl
83 #include <netinet/in.h>
84 #ifdef IPV6_INRIA_VERSION
85 yes
86 #endif],
87                                 [v6type=$i; CFLAGS="-DINET6 $CFLAGS"])
88                         ;;
89                 zeta)
90                         AC_EGREP_CPP(yes, [dnl
91 #include <sys/param.h>
92 #ifdef _ZETA_MINAMI_INET6
93 yes
94 #endif],
95                                 [v6type=$i; v6lib=inet6;
96                                 v6libdir=/usr/local/v6/lib;
97                                 CFLAGS="-DINET6 $CFLAGS"])
98                         ;;
99                 linux)
100                         if test -d /usr/inet6; then
101                                 v6type=$i
102                                 v6lib=inet6
103                                 v6libdir=/usr/inet6
104                                 CFLAGS="-DINET6 $CFLAGS"
105                         fi
106                         ;;
107                 esac
108                 if test "$v6type" != "unknown"; then
109                         break
110                 fi
111         done
112         AC_MSG_RESULT($v6type)
113
114         if test "$v6lib" != "none"; then
115                 for dir in $v6libdir /usr/local/v6/lib /usr/local/lib; do
116                         if test -d $dir -a -f $dir/lib$v6lib.a; then
117                                 LIBS="-L$dir -l$v6lib $LIBS"
118                                 break
119                         fi
120                 done
121 dnl             AC_CHECK_LIB($v6lib, getaddrinfo,
122 dnl                     [SERVER_LIBS="-l$v6lib $SERVER_LIBS"],
123 dnl                     [dnl
124 dnl                     echo "Fatal: no $v6lib library found.  cannot continue."
125 dnl                     echo "You need to fetch lib$v6lib.a from appropriate v6 kit and"
126 dnl                     echo 'compile beforehand.'
127 dnl                     exit 1])
128         fi
129 fi
130 ])