Whamcloud - gitweb
* fix cvs up for HEAD branches
[fs/lustre-release.git] / build / autoconf / lustre-build-linux.m4
index 2904dfd..5c5dc95 100644 (file)
@@ -1,27 +1,4 @@
 #
-# LB_LINUX_INKERNEL
-#
-# in kernel compilation? (2.5 only)
-#
-AC_DEFUN([LB_LINUX_INKERNEL],
-[AC_MSG_CHECKING([if inkernel build support is requested])
-AC_ARG_ENABLE([inkernel],
-       AC_HELP_STRING([--enable-inkernel],
-                      [set up 2.5 kernel makefiles]),
-       [],[enable_inkernel=no])
-AC_MSG_RESULT([$enable_inkernel])
-
-if test x$enable_inkernel = xyes ; then
-        echo ln -s `pwd` $LINUX/fs/lustre
-        rm $LINUX/fs/lustre
-               ln -s `pwd` $LINUX/fs/lustre
-       find portals lustre -name Makefile.mk | sed 's/.mk$//' | xargs -n 1 \
-               sh -e -x -c '(cp -f $0.mk $0.in)'
-fi
-])
-
-
-#
 # LB_LINUX_VERSION
 #
 # Set things accordingly for a 2.5 kernel
@@ -40,8 +17,6 @@ AC_MSG_RESULT([$linux25])
 
 MODULE_TARGET="SUBDIRS"
 if test $linux25 = "yes" ; then
-       LB_CONFIG_INKERNEL
-
        makerule="$PWD/build"
        AC_MSG_CHECKING([for external module build support])
        rm -f build/conftest.i
@@ -66,6 +41,55 @@ AC_SUBST(KMODEXT)
 ])
 
 #
+# LB_LINUX_RELEASE
+#
+# get the release version of linux
+#
+AC_DEFUN([LB_LINUX_RELEASE],
+[LINUXRELEASE=
+rm -f build/conftest.i
+AC_MSG_CHECKING([for Linux release])
+LB_LINUX_TRY_MAKE([
+       #include <linux/version.h>
+],[
+       char *LINUXRELEASE;
+       LINUXRELEASE=UTS_RELEASE;
+],[
+       $makerule LUSTRE_KERNEL_TEST=conftest.i
+],[
+       test -s build/conftest.i
+],[
+       # LINUXRELEASE="UTS_RELEASE"
+       eval $(grep "LINUXRELEASE=" build/conftest.i)
+],[
+       AC_MSG_RESULT([unknown])
+       AC_MSG_ERROR([Could not preprocess test program.  Consult config.log for details.])
+])
+rm -f build/conftest.i
+if test x$LINUXRELEASE = x ; then
+       AC_MSG_RESULT([unknown])
+       AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.])
+fi
+AC_MSG_RESULT([$LINUXRELEASE])
+AC_SUBST(LINUXRELEASE)
+
+moduledir='/lib/modules/'$LINUXRELEASE/kernel
+AC_SUBST(moduledir)
+
+modulefsdir='$(moduledir)/fs/$(PACKAGE)'
+AC_SUBST(modulefsdir)
+
+modulenetdir='$(moduledir)/net/$(PACKAGE)'
+AC_SUBST(modulenetdir)
+
+# ------------ RELEASE --------------------------------
+AC_MSG_CHECKING([for Lustre release])
+RELEASE="`echo ${LINUXRELEASE} | tr '-' '_'`_`date +%Y%m%d%H%M`"
+AC_MSG_RESULT($RELEASE)
+AC_SUBST(RELEASE)
+])
+
+#
 # LB_LINUX_PATH
 #
 # Find paths for linux, handling kernel-source rpms
@@ -152,6 +176,8 @@ LB_LINUX_TRY_COMPILE([],[],[
        AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult README.kernel-source])
        AC_MSG_ERROR([Kernel modules could not be built.])
 ])
+
+LB_LINUX_RELEASE
 ])
 
 #
@@ -282,6 +308,16 @@ LC_PROG_LINUX
 ])
 
 #
+# LB_LINUX_CONDITIONALS
+#
+# AM_CONDITIONALS for linux
+#
+AC_DEFUN([LB_LINUX_CONDITIONALS],
+[AM_CONDITIONAL(INKERNEL, test x$enable_inkernel = xyes)
+AM_CONDITIONAL(LINUX25, test x$linux25 = xyes)
+])
+
+#
 # LB_LINUX_STRUCT_PAGE_LIST
 #
 # 2.6.4 no longer has page->list
@@ -400,30 +436,20 @@ LB_LINUX_CONFIG([EXT3_FS_XATTR],[$1],[$3])
 # If we have (and can build) fshooks.h
 #
 AC_DEFUN([LB_LINUX_FSHOOKS],
-[AC_MSG_CHECKING([if this compiler can build a SuSE 2.6 kernel])
-# an excerpt from fshooks.h, which doesn't build with fedora's gcc 3.4
-LB_LINUX_TRY_COMPILE([
-       /* for the lack of a kernel-wide definition */
-       typedef enum {
-               false,
-               true
-       } boolean_t __attribute__((__mode__(__QI__)));
-],[],[
-       AC_MSG_RESULT([yes])
-],[
-       AC_MSG_RESULT([no])
-       AC_MSG_WARN([We suggest trying gcc 3.3.x.])
-       AC_MSG_WARN([You can set CC=gcc33 before running configure.])
-       AC_MSG_ERROR([Your compiler cannot build a SuSE 2.6 kernel.])
-])
-AC_MSG_CHECKING([if fshooks are present])
-LB_LINUX_TRY_COMPILE([
-       #include <linux/fshooks.h>
-],[],[
-       AC_MSG_RESULT([yes])
+[AC_CHECK_FILE([$LINUX/include/linux/fshooks.h],[
+       AC_MSG_CHECKING([if fshooks.h can be compiled])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/fshooks.h>
+       ],[],[
+               AC_MSG_RESULT([yes])
+       ],[
+               AC_MSG_RESULT([no])
+               AC_MSG_WARN([You might have better luck with gcc 3.3.x.])
+               AC_MSG_WARN([You can set CC=gcc33 before running configure.])
+               AC_MSG_ERROR([Your compiler cannot build fshooks.h.])
+       ])
 $1
 ],[
-       AC_MSG_RESULT([no])
 $2
 ])
 ])
@@ -470,7 +496,7 @@ LB_LINUX_TRY_COMPILE([
 #
 # LB_LINUX_FUNC_ZAP_PAGE_RANGE
 #
-# if zap_page_range() taks a vma arg
+# if zap_page_range() takes a vma arg
 #
 AC_DEFUN([LB_LINUX_FUNC_ZAP_PAGE_RANGE],
 [AC_MSG_CHECKING([if zap_pag_range with vma parameter])