Add checks for the presence of the universal tun/tap device driver.
authorIvo Timmermans <ivo@lychnis.net>
Sun, 15 Oct 2000 17:26:31 +0000 (17:26 +0000)
committerIvo Timmermans <ivo@lychnis.net>
Sun, 15 Oct 2000 17:26:31 +0000 (17:26 +0000)
acconfig.h
configure.in
m4/tuntap.m4 [new file with mode: 0644]

index 86a35ec..f1d9ee7 100644 (file)
 # include <stdlib.h>
 # undef getopt
 #endif
 # include <stdlib.h>
 # undef getopt
 #endif
+
+
+/* Define to the location of the kernel sources */
+#undef CONFIG_TINC_KERNELDIR
+
+/* Define to 1 if tun/tap support is enabled and found */
+#undef HAVE_TUNTAP
+
+/* Define to the location of if_tun.h */
+#undef LINUX_IF_TUN_H
index cb42fd5..bc01f17 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
 dnl Process this file with autoconf to produce a configure script.
 
-dnl $Id: configure.in,v 1.13.2.8 2000/10/13 23:34:56 zarq Exp $
+dnl $Id: configure.in,v 1.13.2.9 2000/10/15 17:26:31 zarq Exp $
 
 AC_INIT(src/tincd.c)
 AM_INIT_AUTOMAKE(tinc, 1.0pre3)
 
 AC_INIT(src/tincd.c)
 AM_INIT_AUTOMAKE(tinc, 1.0pre3)
@@ -33,7 +33,7 @@ dnl Checks for libraries.
 
 dnl Checks for header files.
 AC_HEADER_STDC
 
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h syslog.h unistd.h sys/time.h)
+AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h syslog.h unistd.h sys/time.h linux/if_tun.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -80,6 +80,10 @@ AC_CHECK_FUNC(gethostbyname, [], [
   AC_CHECK_LIB(nsl, gethostbyname)
 ])
 
   AC_CHECK_LIB(nsl, gethostbyname)
 ])
 
+
+dnl Check for TUN/TAP support in the kernel
+tinc_TUNTAP
+
 AC_OUTPUT([Makefile src/Makefile
 doc/Makefile intl/Makefile lib/Makefile
 m4/Makefile po/Makefile.in redhat/Makefile debian/Makefile])
 AC_OUTPUT([Makefile src/Makefile
 doc/Makefile intl/Makefile lib/Makefile
 m4/Makefile po/Makefile.in redhat/Makefile debian/Makefile])
diff --git a/m4/tuntap.m4 b/m4/tuntap.m4
new file mode 100644 (file)
index 0000000..28ddc9e
--- /dev/null
@@ -0,0 +1,35 @@
+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_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")
+  ])
+  if test $if_tun_h = no; then
+    AC_MSG_RESULT(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)
+  fi
+  AC_SUBST(HAVE_TUNTAP)
+])
+])