AC_DEFUN(tinc_TUNTAP,
[
-dnl Check for directory with kernel source... (from ALSA)
-AC_CACHE_CHECK([for directory with kernel source], tinc_cv_kerneldir,
-[ AC_ARG_WITH(kernel,
- [ --with-kernel=dir give the directory with kernel sources]
- [ (default: /usr/src/linux)],
- kerneldir="$withval", kerneldir="/usr/src/linux")
- AC_DEFINE_UNQUOTED(CONFIG_TINC_KERNELDIR, "$kerneldir")
- CONFIG_TINC_KERNELDIR="$kerneldir"
- AC_SUBST(CONFIG_TINC_KERNELDIR)
- AC_MSG_RESULT($kerneldir)
-])
+AC_ARG_WITH(kernel,
+ [ --with-kernel=dir give the directory with kernel sources]
+ [ (default: /usr/src/linux)],
+ kerneldir="$withval",
+ kerneldir="/usr/src/linux"
+)
+
AC_CACHE_CHECK([for linux/if_tun.h], tinc_cv_linux_if_tun_h,
-[ AC_TRY_COMPILE([linux/if_tun.h],
- [int a = IFF_TAP],
- if_tun_h="linux/if_tun.h",
- [ AC_TRY_COMPILE([$kerneldir/include/linux/if_tun.h],
- [int a = IFF_TAP],
- if_tun_h="$kerneldir/include/linux/if_tun.h",
- if_tun_h="no")
- ])
+[
+ AC_TRY_COMPILE([#include "$kerneldir/include/linux/if_tun.h"],
+ [int a = IFF_TAP;],
+ if_tun_h="\"$kerneldir/include/linux/if_tun.h\"",
+ [AC_TRY_COMPILE([#include <linux/if_tun.h>],
+ [int a = IFF_TAP;],
+ if_tun_h="default",
+ if_tun_h="no"
+ )]
+ )
+
if test $if_tun_h = no; then
- AC_MSG_RESULT(none)
+ tinc_cv_linux_if_tun_h=none
else
- AC_DEFINE(HAVE_TUNTAP)
- AC_DEFINE_UNQUOTED(LINUX_IF_TUN_H, "$if_tun_h")
- AC_SUBST(LINUX_IF_TUN_H)
- AC_MSG_RESULT($if_tun_h)
+ tinc_cv_linux_if_tun_h="$if_tun_h"
fi
- AC_SUBST(HAVE_TUNTAP)
])
+
+if test $tinc_cv_linux_if_tun_h != none; then
+ AC_DEFINE(HAVE_TUNTAP, 1, [Universal tun/tap driver present])
+ if test $tinc_cv_linux_if_tun_h != default; then
+ AC_DEFINE_UNQUOTED(LINUX_IF_TUN_H, $tinc_cv_linux_if_tun_h, [Location of if_tun.h])
+ fi
+fi
+AC_SUBST(LINUX_IF_TUN_H)
+AC_SUBST(HAVE_TUNTAP)
])