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