Correct inclusion of standard if_tun.h header file.
[oweals/tinc.git] / m4 / tuntap.m4
index 28ddc9e..0bee1ce 100644 (file)
@@ -2,34 +2,38 @@ dnl Check to find out whether the running kernel has support for TUN/TAP
 
 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)
+  if test $tinc_cv_linux_if_tun_h != default; then
+   AC_DEFINE_UNQUOTED(LINUX_IF_TUN_H, $tinc_cv_linux_if_tun_h)
+  fi
+fi
+AC_SUBST(LINUX_IF_TUN_H)
+AC_SUBST(HAVE_TUNTAP)
 ])