8c14a9bcb179f8339bfd1de42461c9966015fedb
[oweals/tinc.git] / m4 / tuntap.m4
1 dnl Check to find out whether the running kernel has support for TUN/TAP
2
3 AC_DEFUN([tinc_TUNTAP],
4 [
5   AC_ARG_WITH(kernel,
6     AS_HELP_STRING([--with-kernel=DIR], [give the directory with kernel sources (default: /usr/src/linux)]),
7     kerneldir="$withval",
8     kerneldir="/usr/src/linux"
9   )
10   
11   AC_CACHE_CHECK([for linux/if_tun.h], tinc_cv_linux_if_tun_h,
12   [ 
13     AC_COMPILE_IFELSE(
14       AC_LANG_PROGRAM([
15         #include "$kerneldir/include/linux/if_tun.h"
16         int a = IFF_TAP;
17       ]),
18       [if_tun_h="\"$kerneldir/include/linux/if_tun.h\""],
19       [AC_COMPILE_IFELSE(
20         AC_LANG_PROGRAM([
21           #include <linux/if_tun.h>
22           int a = IFF_TAP;
23         ]),
24         [if_tun_h="default"],
25         [if_tun_h="no"]
26       )]
27     )
28   
29     if test $if_tun_h = no; then
30       tinc_cv_linux_if_tun_h=none
31     else
32       tinc_cv_linux_if_tun_h="$if_tun_h"
33     fi
34   ])
35   
36   if test $tinc_cv_linux_if_tun_h != none; then
37     AC_DEFINE(HAVE_TUNTAP, 1, [Universal tun/tap driver present])
38     if test $tinc_cv_linux_if_tun_h != default; then
39      AC_DEFINE_UNQUOTED(LINUX_IF_TUN_H, $tinc_cv_linux_if_tun_h, [Location of if_tun.h])
40     fi
41   fi
42   AC_SUBST(LINUX_IF_TUN_H)
43   AC_SUBST(HAVE_TUNTAP)
44 ])