On Fri, Jul 02, 2010 at 07:16:10AM +0100, Ian Campbell wrote:
> On Fri, 2010-07-02 at 03:25 +0100, Jad Naous wrote:
> > Hi Guys,
> > 
> > I'm trying to build openvswitch on opensuse, but I'm having issues
> > running configure with kernel src dir not found. The thing is that
> > opensuse has a separate linux/ source dir and a linux-obj/ dir, and I
> > can't pass both to the --with-l26 command.
> > 
> > Is there a workaround or fix?
> 
> I needed to do this a few weeks ago and hacked up the below. I'm pretty
> sure it isn't ready for prime time but it's a start.

Thanks, Ian!

Here's a cleaned up version.  Works for me.  Can I have your
Signed-off-by on this?

Thanks,

Ben.

--8<--------------------------cut here-------------------------->8--

>From 3c8c23b60cb9adc99c528ad291548f3bacc7243e Mon Sep 17 00:00:00 2001
From: Ben Pfaff <[email protected]>
Date: Fri, 2 Jul 2010 10:08:47 -0700
Subject: [PATCH] configure: Add --with-l26-source option to specify source dir 
explicitly.

OVS can usually find the kernel source itself, but when it can't it's
handy if the user can just specify it on the "configure" command line.

Based on work by Ian Campbell <[email protected]>.
Reported-by: Jad Naous <[email protected]>
---
 AUTHORS      |    1 +
 acinclude.m4 |   41 ++++++++++++++++++++++++++++++-----------
 2 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index eda90e0..b0f31d9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -32,6 +32,7 @@ Brandon Heller          [email protected]
 Cedric Hobbs            [email protected]
 Ghanem Bahri            [email protected]
 Henrik Amren            [email protected]
+Jad Naous               [email protected]
 Jan Medved              [email protected]
 Jeongkeun Lee           [email protected]
 Joan Cirer              [email protected]
diff --git a/acinclude.m4 b/acinclude.m4
index 015bf66..80794da 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -20,8 +20,14 @@ dnl Configure linux kernel source tree
 AC_DEFUN([OVS_CHECK_LINUX26], [
   AC_ARG_WITH([l26],
               [AC_HELP_STRING([--with-l26=/path/to/linux-2.6],
-                              [Specify the linux 2.6 kernel sources])],
+                              [Specify the linux 2.6 kernel build directory])],
               [KBUILD26="$withval"], [KBUILD26=])dnl
+  AC_ARG_WITH([l26-source],
+              [AC_HELP_STRING([--with-l26-source=/path/to/linux-2.6-source],
+                              [Specify the linux 2.6 kernel source directory
+                              (usually figured out automatically from build
+                              directory)])],
+              [KSRC26="$withval"], [KSRC26=])dnl
   if test -n "$KBUILD26"; then
     KBUILD26=`eval echo "$KBUILD26"`
     case $KBUILD26 in
@@ -44,18 +50,29 @@ AC_DEFUN([OVS_CHECK_LINUX26], [
     # We want the source headers, but $KBUILD26 gives us the "build" headers.
     # Use heuristics to find the source headers.
     AC_MSG_CHECKING([for Linux 2.6 source directory])
-    KSRC26=$KBUILD26
-    if test ! -e $KSRC26/include/linux/kernel.h; then
-      case `echo "$KBUILD26" | sed 's,/*$,,'` in # (
-        */build)
-          KSRC26=`echo "$KBUILD26" | sed 's,/build/*$,/source,'`
-          ;; # (
-        *)
-          KSRC26=`(cd $KBUILD26 && pwd -P) | sed 's,-[[^-]]*$,-common,'`
-          ;;
+    if test -n "$KSRC26"; then
+      KSRC26=`eval echo "$KSRC26"`
+      case $KSRC26 in
+          /*) ;;
+          *) KSRC26=`pwd`/$KSRC26 ;;
       esac
       if test ! -e $KSRC26/include/linux/kernel.h; then
-        AC_MSG_ERROR([cannot find source directory])
+        AC_MSG_ERROR([$KSRC26 is not a kernel source directory)])
+      fi
+    else
+      KSRC26=$KBUILD26
+      if test ! -e $KSRC26/include/linux/kernel.h; then
+       case `echo "$KBUILD26" | sed 's,/*$,,'` in # (
+         */build)
+           KSRC26=`echo "$KBUILD26" | sed 's,/build/*$,/source,'`
+           ;; # (
+         *)
+           KSRC26=`(cd $KBUILD26 && pwd -P) | sed 's,-[[^-]]*$,-common,'`
+           ;;
+       esac
+      fi
+      if test ! -e $KSRC26/include/linux/kernel.h; then
+        AC_MSG_ERROR([cannot find source directory (please use 
--with-l26-source)])
       fi
     fi
     AC_MSG_RESULT([$KSRC26])
@@ -80,6 +97,8 @@ AC_DEFUN([OVS_CHECK_LINUX26], [
        AC_MSG_ERROR([Linux kernel source in $KBUILD26 is not configured])
     fi
     OVS_CHECK_LINUX26_COMPAT
+  elif test -n "$KSRC26"; then
+    AC_MSG_ERROR([--with-l26-source may not be specified without --with-l26])
   fi
   AM_CONDITIONAL(L26_ENABLED, test -n "$KBUILD26")
 ])
-- 
1.7.1


_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org

Reply via email to