X-Git-Url: https://git.librecmc.org/?p=oweals%2Ftinc.git;a=blobdiff_plain;f=m4%2Ftuntap.m4;h=8c14a9bcb179f8339bfd1de42461c9966015fedb;hp=2fc29aefb89fd8f21cba48cca1e89d5a1e492495;hb=fcd836c609568fab323f4af6dd525de957a6f4cc;hpb=8a54c51238672abd7a72c1dbdc7d17b9956a0d35 diff --git a/m4/tuntap.m4 b/m4/tuntap.m4 index 2fc29ae..8c14a9b 100644 --- a/m4/tuntap.m4 +++ b/m4/tuntap.m4 @@ -1,37 +1,44 @@ dnl Check to find out whether the running kernel has support for TUN/TAP -AC_DEFUN(tinc_TUNTAP, +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", - if_tun_h="no") - if test $if_tun_h = no; then - 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") - fi - 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, + AS_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_COMPILE_IFELSE( + AC_LANG_PROGRAM([ + #include "$kerneldir/include/linux/if_tun.h" + int a = IFF_TAP; + ]), + [if_tun_h="\"$kerneldir/include/linux/if_tun.h\""], + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([ + #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) ]) -])