+ fi])])
+
+dnl OVS_CHECK_GNU_MAKE
+dnl
+dnl Checks whether make is GNU make (because Linux kernel Makefiles
+dnl only work with GNU make).
+AC_DEFUN([OVS_CHECK_GNU_MAKE],
+ [AC_CACHE_CHECK(
+ [whether ${MAKE-make} is GNU make],
+ [ovs_cv_gnu_make],
+ [rm -f conftest.out
+ AS_ECHO(["$as_me:$LINENO: invoking ${MAKE-make} --version:"]) >&AS_MESSAGE_LOG_FD 2>&1
+ ${MAKE-make} --version >conftest.out 2>&1
+ cat conftest.out >&AS_MESSAGE_LOG_FD 2>&1
+ result=`cat conftest.out`
+ rm -f conftest.mk conftest.out
+
+ case $result in # (
+ GNU*) ovs_cv_gnu_make=yes ;; # (
+ *) ovs_cv_gnu_make=no ;;
+ esac])
+ AM_CONDITIONAL([GNU_MAKE], [test $ovs_cv_gnu_make = yes])])
+
+dnl OVS_CHECK_SPARSE_TARGET
+dnl
+dnl The "cgcc" script from "sparse" isn't very good at detecting the
+dnl target for which the code is being built. This helps it out.
+AC_DEFUN([OVS_CHECK_SPARSE_TARGET],
+ [AC_CACHE_CHECK(
+ [target hint for cgcc],
+ [ac_cv_sparse_target],
+ [AS_CASE([`$CC -dumpmachine 2>/dev/null`],
+ [i?86-* | athlon-*], [ac_cv_sparse_target=x86],
+ [x86_64-*], [ac_cv_sparse_target=x86_64],
+ [ac_cv_sparse_target=other])])
+ AS_CASE([$ac_cv_sparse_target],
+ [x86], [SPARSEFLAGS= CGCCFLAGS=-target=i86],
+ [x86_64], [SPARSEFLAGS=-m64 CGCCFLAGS=-target=x86_64],
+ [SPARSEFLAGS= CGCCFLAGS=])
+ AC_SUBST([SPARSEFLAGS])
+ AC_SUBST([CGCCFLAGS])])
+
+dnl OVS_SPARSE_EXTRA_INCLUDES
+dnl
+dnl The cgcc script from "sparse" does not search gcc's default
+dnl search path. Get the default search path from GCC and pass
+dnl them to sparse.
+AC_DEFUN([OVS_SPARSE_EXTRA_INCLUDES],
+ AC_SUBST([SPARSE_EXTRA_INCLUDES],
+ [`$CC -v -E - </dev/null 2>&1 >/dev/null | sed -n -e '/^#include.*search.*starts.*here:/,/^End.*of.*search.*list\./s/^ \(.*\)/-I \1/p' |grep -v /usr/lib | grep -x -v '\-I /usr/include' | tr \\\n ' ' `] ))