#
-# 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
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
])
#
+# 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
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
])
#
])
#
+# 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
# 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
])
])
#
# 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])