Whamcloud - gitweb
b=19853
[fs/lustre-release.git] / ldiskfs / configure.ac
index fa3d02d..405b8e3 100644 (file)
@@ -1,6 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([Lustre ldiskfs], 3.0.4, [https://bugzilla.lustre.org/])
+AC_INIT([Lustre ldiskfs], 3.0.9, [https://bugzilla.lustre.org/])
 AC_CONFIG_SRCDIR([lustre-ldiskfs.spec.in])
 
 # Don't look for install-sh, etc. in ..
@@ -33,24 +33,28 @@ $2
 esac
 ])
 
+AC_DEFUN([LC_KERNEL_WITH_EXT4],
+[if test -f $LINUX/fs/ext4/ext4.h ; then
+$1
+else
+$2
+fi
+])
 
 AC_MSG_CHECKING([whether to build kernel modules])
 AC_ARG_ENABLE([modules],
-       AC_HELP_STRING([--disable-modules],
-                       [disable building of Lustre kernel modules]),
-       [],[
-               LC_TARGET_SUPPORTED([
-                       enable_modules='yes'
-               ],[
-                       enable_modules='no'
-               ])
-       ])
+             AC_HELP_STRING([--disable-modules],
+                            [disable building of Lustre kernel modules]),[],
+                            [LC_TARGET_SUPPORTED([enable_modules='yes'],
+                            [enable_modules='no'])])
 AC_MSG_RESULT([$enable_modules])
 
 if test x$enable_modules = xyes ; then
        LB_PROG_LINUX
+if test x$linux25 = xyes ; then
        LB_LINUX_MODPOST
 fi
+fi
 
 LB_CONFIG_HEADERS
 
@@ -65,8 +69,9 @@ AC_SUBST(LDISKFSDIR)
 
 AC_MSG_CHECKING([whether to enable quilt for making ldiskfs])
 AC_ARG_ENABLE([quilt],
-               AC_HELP_STRING([--disable-quilt],[disable use of quilt for ldiskfs]),
-               [],[enable_quilt='yes'])
+             AC_HELP_STRING([--disable-quilt],
+                            [disable use of quilt for ldiskfs]),[],
+                            [enable_quilt='yes'])
 AC_MSG_RESULT([$enable_quilt])
 
 AC_PATH_PROG(PATCH, patch, [no])
@@ -85,6 +90,35 @@ AM_CONDITIONAL(USE_QUILT, test x$QUILT != xno)
 
 LB_DEFINE_LDISKFS_OPTIONS
 
+AC_MSG_CHECKING([whether to build ldiskfs based on ext4])
+if test x$RHEL_KERNEL = xyes; then
+       AC_ARG_ENABLE([ext4],
+               AC_HELP_STRING([--enable-ext4],
+                            [enable building of ldiskfs based on ext4]),
+                            [], [enable_ext4='no'])
+else
+       case $LINUXRELEASE in
+       # ext4 was in 2.6.22-2.6.26 but not stable enough to use
+       2.6.2[06]*) enable_ext4='no' ;;
+       *) LC_KERNEL_WITH_EXT4([enable_ext4='yes'],
+                              [enable_ext4='no']) ;;
+       esac
+fi
+AC_MSG_RESULT([$enable_ext4])
+
+if test x$enable_ext4 = xyes ; then
+       AC_DEFINE(HAVE_EXT4_LDISKFS, 1, [ldiskfs based on ext4])
+       BACKFS=ext4
+else
+       BACKFS=ext3
+fi
+
+AC_SUBST(BACKFS)
+BACKFSU=${BACKFS/ext/EXT}
+AC_SUBST(BACKFSU) # We need a Upper string
+
+AM_CONDITIONAL(USE_EXT4, test x$enable_ext4 = xyes)
+
 AC_MSG_CHECKING([which ldiskfs series to use])
 case $LINUXRELEASE in
 2.6.5*) LDISKFS_SERIES="2.6-suse.series" ;;
@@ -94,9 +128,19 @@ case $LINUXRELEASE in
 2.6.12*) LDISKFS_SERIES="2.6.12-vanilla.series" ;;
 2.6.15*) LDISKFS_SERIES="2.6-fc5.series";;
 2.6.16*) LDISKFS_SERIES="2.6-sles10.series";;
-2.6.18-*el5*) LDISKFS_SERIES="2.6-rhel5.series";;
-2.6.18-*prep*) LDISKFS_SERIES="2.6-rhel5.series";;
-2.6.18*) LDISKFS_SERIES="2.6.18-vanilla.series";;
+2.6.18*)
+       if test x$RHEL_KENEL = xyes; then
+                if test x$enable_ext4 = xyes; then
+                       LDISKFS_SERIES="2.6-rhel5-ext4.series"
+                else
+                       LDISKFS_SERIES="2.6-rhel5.series"
+                fi
+       else
+               LDISKFS_SERIES="2.6.18-vanilla.series"
+       fi
+       ;;
+2.6.22*) LDISKFS_SERIES="2.6.22-vanilla.series";;
+2.6.27*) LDISKFS_SERIES="2.6-sles11.series";;
 *) AC_MSG_WARN([Unknown kernel version $LINUXRELEASE, fix ldiskfs/configure.ac])
 esac
 AC_MSG_RESULT([$LDISKFS_SERIES])
@@ -104,10 +148,34 @@ AC_SUBST(LDISKFS_SERIES)
 
 AC_SUBST(ac_configure_args)
 
+LB_CHECK_SYMBOL_EXPORT([d_rehash_cond],
+                      [fs/dcache.c],
+                      [AC_DEFINE(HAVE_D_REHASH_COND, 1,
+                                 [d_rehash_cond is exported by the kernel])],
+                                 [])
+
+LB_CHECK_SYMBOL_EXPORT([__d_rehash],
+                      [fs/dcache.c],
+                      [AC_DEFINE(HAVE___D_REHASH, 1,
+                                 [__d_rehash is exported by the kernel])],
+                                 [])
+
+LB_CHECK_SYMBOL_EXPORT([d_move_locked],
+                      [fs/dcache.c],
+                      [AC_DEFINE(HAVE_D_MOVE_LOCKED, 1,
+                                 [d_move_locked is exported by the kernel])],
+                                 [])
+
+LB_CHECK_SYMBOL_EXPORT([__d_move],
+                      [fs/dcache.c],
+                      [AC_DEFINE(HAVE___D_MOVE, 1,
+                                 [__d_move exported by the kernel])],
+                                 [])
+
 LB_CONFIG_FILES
 AC_CONFIG_FILES([ldiskfs/autoMakefile ldiskfs/Makefile])
 
-MOSTLYCLEANFILES='.*.cmd .*.flags *.o *.ko *.mod.c .depend .*.1.*'
+MOSTLYCLEANFILES='.*.cmd .*.flags *.o *.ko *.mod.c .depend .*.1.* Modules.symvers Module.symvers'
 AC_SUBST(MOSTLYCLEANFILES)
 
 AC_OUTPUT