X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=m4%2Ftuntap.m4;h=dcf3a15273c6fbfee3ea6e44446a9160b07ab65f;hp=975567c7675ba404fab7343f3a7bf43c66b21fdd;hb=4370b98bb1dfa9eb1e400549cb6fcb6711aa1b29;hpb=ba6b8005ebe3a53877590c242ff581dc5dee5eae diff --git a/m4/tuntap.m4 b/m4/tuntap.m4 index 975567c7..dcf3a152 100644 --- a/m4/tuntap.m4 +++ b/m4/tuntap.m4 @@ -2,19 +2,37 @@ dnl Check to find out whether the running kernel has support for TUN/TAP AC_DEFUN(tinc_TUNTAP, [ -AC_CACHE_CHECK([for linux/if_tun.h], tinc_cv_linux_if_tun_h, -[ AC_TRY_COMPILE([#include ], - [int a = IFF_TAP], - if_tun_h="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) + AC_ARG_WITH(kernel, + AC_HELP_STRING([--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([#include "$kerneldir/include/linux/if_tun.h"], + [int a = IFF_TAP;], + if_tun_h="\"$kerneldir/include/linux/if_tun.h\"", + [AC_TRY_COMPILE([#include ], + [int a = IFF_TAP;], + if_tun_h="default", + if_tun_h="no" + )] + ) + + if test $if_tun_h = no; then + tinc_cv_linux_if_tun_h=none + else + tinc_cv_linux_if_tun_h="$if_tun_h" + fi + ]) + + 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) ]) -])