configure: Do not reject Linux 3.0 at configure time.
authorBen Pfaff <blp@nicira.com>
Wed, 22 Jun 2011 17:15:23 +0000 (10:15 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 22 Jun 2011 21:05:53 +0000 (14:05 -0700)
Until now, the configure script has rejected any version of Linux other
than 2.6.  In preparation for Linux 3.0, this allows newer versions also.

acinclude.m4
datapath/linux-2.6/Makefile.main.in

index 61d15552decc734746e54f60bf348ad8dcc1e575..59c0c74530d1aa44d103d093420391b2555c4bc1 100644 (file)
@@ -112,17 +112,27 @@ AC_DEFUN([OVS_CHECK_LINUX], [
     AC_MSG_RESULT([$KSRC])
 
     AC_MSG_CHECKING([for kernel version])
+    version=`sed -n 's/^VERSION = //p' "$KSRC/Makefile"`
     patchlevel=`sed -n 's/^PATCHLEVEL = //p' "$KSRC/Makefile"`
     sublevel=`sed -n 's/^SUBLEVEL = //p' "$KSRC/Makefile"`
-    if test -z "$patchlevel" || test -z "$sublevel"; then
+    if test X"$version" = X || test X"$patchlevel" = X; then
        AC_ERROR([cannot determine kernel version])
+    elif test X"$sublevel" = X; then
+       kversion=$version.$patchlevel
+    else
+       kversion=$version.$patchlevel.$sublevel
     fi
-    AC_MSG_RESULT([2.$patchlevel.$sublevel])
-    if test "2.$patchlevel" != '2.6'; then
+    AC_MSG_RESULT([$kversion])
+
+    if test "$version" -ge 3; then
+       : # Linux 3.x
+    elif test "$version" = 2 && test "$patchlevel" -ge 6; then
+       : # Linux 2.6.x
+    else
        if test "$KBUILD" = "$KSRC"; then
-         AC_ERROR([Linux kernel in $KBUILD is not version 2.6])
+         AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version 2.6 or later is required])
        else
-         AC_ERROR([Linux kernel in build tree $KBUILD (source tree $KSRC) is not version 2.6])
+         AC_ERROR([Linux kernel in build tree $KBUILD (source tree $KSRC) is version $kversion, but version 2.6 or later is required])
        fi
     fi
     if test ! -e "$KBUILD"/include/linux/version.h || \
index a868cb68d10f516032645d33957411e9513e289e..1edfc34120b67a7fdd526dca9fd4ee57df5ab43b 100644 (file)
@@ -31,10 +31,6 @@ else
   KOBJ := $(KSRC)
 endif
 
-ifneq ($(shell grep -c 'PATCHLEVEL = 6' $(KSRC)/Makefile),1)
-  $(error Linux kernel source in $(KSRC) not 2.6)
-endif
-
 VERSION_FILE := $(KOBJ)/include/linux/version.h
 ifeq (,$(wildcard $(VERSION_FILE)))
   $(error Linux kernel source not configured - missing version.h)