[Oracleasm-commits] jlbec commits r394 - trunk

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Dec 3 16:03:49 PST 2008


Author: jlbec
Date: 2008-12-03 16:03:49 -0800 (Wed, 03 Dec 2008)
New Revision: 394

Modified:
   trunk/configure.in
Log:

configure.in: Hunt up kernel source directories.

If we want to support O= kernel trees (and we do), we need to handle the
--with-kernel-source option.  Let's steal some of that from ocfs2, but
integrate it with our safely-continue-with-out-a-kernel-tree behavior.

-- 
1.5.6.3



Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2008-12-04 00:03:18 UTC (rev 393)
+++ trunk/configure.in	2008-12-04 00:03:49 UTC (rev 394)
@@ -76,9 +76,82 @@
 fi
 
 KBUILDINC="$KERNELDIR/include"
-kversion=none
-OCFS2_CHECK_KVER($KBUILDINC, kversion, , , :)
+OCFS2_CHECK_KVER($KBUILDINC, kbuildversion, , , :)
 
+kernelsourcedir=
+AC_MSG_CHECKING(for directory with kernel sources)
+AC_ARG_WITH(kernel-source, [  --with-kernel-source=dir Path to the kernel source [[autodetect]]], kernelsourcedir="$withval", [
+  kernelroot=`echo $kerneldir | sed -e 's/\/$//' -e 's/build$//'`
+  ksrc="$kernelroot/source"
+  knoobjsrc=`echo $kerneldir | sed 's/-obj.*//'`
+  if test -f "$kerneldir/include/linux/fs.h"; then
+    kernelsourcedir="$kerneldir"
+  elif test -f "$knoobjsrc/include/linux/fs.h"; then
+    kernelsourcedir="$knoobjsrc"
+  elif test -d "$ksrc" -o -L "$ksrc"; then
+    kernelsourcedir="$ksrc"
+  fi
+])
+
+if test -n "$kernelsourcedir"; then
+  AC_MSG_RESULT($kernelsourcedir)
+else
+  AC_MSG_RESULT([not found])
+fi
+
+KERNELSRC="$kernelsourcedir"
+KERNELBUILD="$kerneldir"
+KERNELINC="$KERNELSRC/include"
+
+if test ! -f "$KERNELBUILD/include/linux/autoconf.h"; then
+  AC_MSG_WARN(No configured kernel include tree found)
+fi
+
+if test "x$kernelsourcedir" = "x"; then
+  ksourceversion=none
+else
+  OCFS2_CHECK_KVER("$KERNELBUILD/include", ksourceversion, "source")
+fi
+
+if test "$kbuildversion" = "$ksourceversion"; then
+  vermatch=yes
+elif test "x$KERNELSRC" != "x"; then
+  saved_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="-I$KERNELINC $CPPFLAGS"
+
+  AC_EGREP_CPP(kernel_is_SuSE,
+[#include <linux/autoconf.h>
+#ifdef CONFIG_SUSE_KERNEL
+  kernel_is_SuSE
+#endif
+}], susekernel=yes, susekernel=no)
+
+  CPPFLAGS="$saved_CPPFLAGS"
+
+  vermatch=no
+
+  if test "$susekernel" = "yes"; then
+    kbuildversion=`echo $kversion | sed 's/^\([[0-9]]*\.[[0-9]]*\.[[0-9]]*-[[0-9]]*\.[[0-9]]*\).*/\1/'`
+    ksourceversion=`echo $ksourceversion | sed 's/^\([[0-9]]*\.[[0-9]]*\.[[0-9]]*-[[0-9]]*\.[[0-9]]*\).*/\1/'`
+
+    if test "$kbuildversion" = "$ksourceversion"; then
+      vermatch=yes
+    fi
+  fi
+
+  if test "$vermatch" = "no"; then
+    AC_MSG_WARN([Kernel tree versions do not match.
+Perhaps you need to use the --with-kernel-source option?])
+  fi
+fi
+
+if test "x$kbuildversion" = "x"; then
+  kbuildversion=none
+elif test "x$vermatch" != "xyes"; then
+  kbuildversion=none
+fi
+kversion="$kbuildversion"
+
 BUILD_DRIVER=
 case "$kversion" in
   2.6.*)
@@ -103,7 +176,10 @@
   if test x"$vendordir" = x"$kerneldir" ; then
       kernelincludes="`vendor/${mb_vendor}/kernel.guess include`"
   else
-      kernelincludes="$kernelinc"
+      kernelincludes="$KBUILDINC"
+      if test "x$BUILDINC" != "x$KERNELINC"; then
+          kernelincludes="$kernelincludes $KERNELINC"
+      fi
   fi
 
   KAPI_COMPAT_HEADERS=




More information about the Oracleasm-commits mailing list