Whamcloud - gitweb
LU-12355 llite: totalram_pages changed to atomic_long_t
[fs/lustre-release.git] / config / lustre-build.m4
index 459b54c..b0bc8b3 100644 (file)
@@ -117,6 +117,30 @@ AC_SUBST(LIBCFS_SUBDIR)
 ]) # LB_LIBCFS_DIR
 
 #
+# LB_LIBMOUNT
+#
+# Check whether build with libmount for mount.lustre.
+# libmount is part of the util-linux since v2.18.
+# We need it to manipulate utab file.
+#
+AC_DEFUN([LB_LIBMOUNT], [
+AC_CHECK_HEADER([libmount/libmount.h], [
+       AC_CHECK_LIB([mount], [mnt_update_set_fs], [
+               LDLIBMOUNT="-lmount"
+               AC_SUBST(LDLIBMOUNT)
+               AC_DEFINE(HAVE_LIBMOUNT, 1, [build with libmount])
+               with_libmount="yes"
+       ],[with_libmount="no"])
+], [with_libmount="no"])
+AC_MSG_CHECKING([whether to build with libmount])
+AS_IF([test "x$with_libmount" = xyes], [
+       AC_MSG_RESULT([yes])
+], [
+       AC_MSG_RESULT([no])
+])
+]) # LB_LIBMOUNT
+
+#
 # LB_PATH_SNMP
 #
 # check for in-tree snmp support
@@ -305,7 +329,7 @@ AS_IF([test $target_cpu = powerpc64], [
        CC="$CC -m64"
 ])
 
-CPPFLAGS="-I$PWD/$LIBCFS_INCLUDE_DIR -I$PWD/lnet/include -I$PWD/lustre/include $CPPFLAGS"
+CPPFLAGS="-I$PWD/$LIBCFS_INCLUDE_DIR -I$PWD/lnet/include -I$PWD/lnet/include/uapi -I$PWD/lustre/include -I$PWD/lustre/include/uapi $CPPFLAGS"
 
 CCASFLAGS="-Wall -fPIC -D_GNU_SOURCE"
 AC_SUBST(CCASFLAGS)
@@ -316,22 +340,89 @@ AC_SUBST(EXTRA_KCFLAGS)
 ]) # LB_PROG_CC
 
 #
+# Check if gcc supports -Wno-format-truncation
+#
+# To supress many warnings with gcc7
+#
+AC_DEFUN([LB_CC_NO_FORMAT_TRUNCATION], [
+       AC_MSG_CHECKING([for -Wno-format-truncation support])
+
+       saved_flags="$CFLAGS"
+       CFLAGS="$CFLAGS -Wno-format-truncation"
+
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
+               EXTRA_KCFLAGS="$EXTRA_KCFLAGS -Wno-format-truncation"
+               AC_SUBST(EXTRA_KCFLAGS)
+               AC_MSG_RESULT([yes])
+       ], [
+               AC_MSG_RESULT([no])
+       ])
+
+       CFLAGS="$saved_flags"
+])
+
+#
+# Check if gcc supports -Wno-stringop-truncation
+#
+# To supress many warnings with gcc8
+#
+AC_DEFUN([LB_CC_NO_STRINGOP_TRUNCATION], [
+       AC_MSG_CHECKING([for -Wno-stringop-truncation support])
+
+       saved_flags="$CFLAGS"
+       CFLAGS="$CFLAGS -Wno-stringop-truncation"
+
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
+               EXTRA_KCFLAGS="$EXTRA_KCFLAGS -Wno-stringop-truncation"
+               AC_SUBST(EXTRA_KCFLAGS)
+               AC_MSG_RESULT([yes])
+       ], [
+               AC_MSG_RESULT([no])
+       ])
+
+       CFLAGS="$saved_flags"
+])
+
+#
+# Check if gcc supports -Wno-stringop-overflow
+#
+# To supress many warnings with gcc8
+#
+AC_DEFUN([LB_CC_NO_STRINGOP_OVERFLOW], [
+       AC_MSG_CHECKING([for -Wno-stringop-overflow support])
+
+       saved_flags="$CFLAGS"
+       CFLAGS="$CFLAGS -Wno-stringop-overflow"
+
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
+               EXTRA_KCFLAGS="$EXTRA_KCFLAGS -Wno-stringop-overflow"
+               AC_SUBST(EXTRA_KCFLAGS)
+               AC_MSG_RESULT([yes])
+       ], [
+               AC_MSG_RESULT([no])
+       ])
+
+       CFLAGS="$saved_flags"
+])
+
+#
 # LB_CONDITIONALS
 #
 # AM_CONDITIONAL instances for everything
 # (so that portals/lustre can disable some if needed)
 #
 AC_DEFUN([LB_CONDITIONALS], [
+AM_CONDITIONAL([PLUGINS], [test x$enable_shared = xyes])
 AM_CONDITIONAL([MODULES], [test x$enable_modules = xyes])
 AM_CONDITIONAL([UTILS], [test x$enable_utils = xyes])
 AM_CONDITIONAL([TESTS], [test x$enable_tests = xyes])
 AM_CONDITIONAL([DOC], [test x$ENABLE_DOC = x1])
 AM_CONDITIONAL([MANPAGES], [test x$enable_manpages = xyes])
 AM_CONDITIONAL([LINUX], [test x$lb_target_os = xlinux])
-AM_CONDITIONAL([USES_DPKG], [test x$uses_dpkg = xyes])
 AM_CONDITIONAL([USE_QUILT], [test x$use_quilt = xyes])
 AM_CONDITIONAL([RHEL], [test x$RHEL_KERNEL = xyes])
 AM_CONDITIONAL([SUSE], [test x$SUSE_KERNEL = xyes])
+AM_CONDITIONAL([UBUNTU], [test x$UBUNTU_KERNEL = xyes])
 
 # Sanity check for PCLMULQDQ instruction availability
 # PCLMULQDQ instruction is a new instruction available beginning with
@@ -360,9 +451,6 @@ AC_DEFUN([LB_CONFIG_FILES], [
                [Rules:build/Rules.in]
                AC_PACKAGE_TARNAME[.spec]
                AC_PACKAGE_TARNAME[-dkms.spec]
-               contrib/Makefile
-               contrib/lbuild/Makefile
-               contrib/scripts/Makefile
                ldiskfs/Makefile
                ldiskfs/autoMakefile
                lustre-iokit/Makefile
@@ -373,8 +461,6 @@ AC_DEFUN([LB_CONFIG_FILES], [
                lustre-iokit/ior-survey/Makefile
                lustre-iokit/stats-collect/Makefile
        )
-       AC_CONFIG_FILES([lustre/scripts/dkms.mkconf],
-                       [chmod +x lustre/scripts/dkms.mkconf])
 ])
 
 #
@@ -418,8 +504,12 @@ AS_IF([test x$enable_ldiskfs = xno -a x$enable_zfs = xno], [
 
 AC_MSG_CHECKING([whether to build Lustre server support])
 AC_MSG_RESULT([$enable_server])
-AS_IF([test x$enable_server = xyes],
-       [AC_DEFINE(HAVE_SERVER_SUPPORT, 1, [support server])])
+AS_IF([test x$enable_server = xyes], [
+       AC_DEFINE(HAVE_SERVER_SUPPORT, 1, [support server])
+       AC_SUBST(ENABLE_SERVER, yes)
+], [
+       AC_SUBST(ENABLE_SERVER, no)
+])
 ]) # LB_CONFIG_SERVERS
 
 #
@@ -442,7 +532,6 @@ for arg; do
                -C | --cache-file=* ) ;;
                --prefix=* | --*-prefix=* ) ;;
                --enable-dist ) ;;
-               --with-release=* ) ;;
                --with-kmp-moddir=* ) ;;
                --with-linux=* | --with-linux-obj=* ) ;;
                --enable-shared | --disable-shared ) ;;
@@ -453,7 +542,6 @@ for arg; do
                --enable-tests | --disable-tests ) ;;
                --enable-utils | --disable-utils ) ;;
                --enable-iokit | --disable-iokit ) ;;
-               --enable-dlc | --disable-dlc ) ;;
                --enable-manpages | --disable-manpages ) ;;
                * ) CONFIGURE_ARGS="$CONFIGURE_ARGS '$arg'" ;;
        esac
@@ -467,9 +555,6 @@ if test -n "$LINUX" ; then
                RPMBINARGS="$RPMBINARGS --define \"kobjdir $LINUX_OBJ\""
        fi
 fi
-if test -n "$KMP_MODDIR" ; then
-       RPMBINARGS="$RPMBINARGS --define \"kmoddir $KMP_MODDIR\""
-fi
 if test x$enable_modules != xyes ; then
        RPMBINARGS="$RPMBINARGS --without lustre_modules"
 fi
@@ -488,11 +573,21 @@ fi
 if test x$enable_zfs = xyes ; then
        RPMBINARGS="$RPMBINARGS --with zfs"
 fi
+if test x$enable_gss_keyring = xyes ; then
+       RPMBINARGS="$RPMBINARGS --with gss_keyring --with gss"
+fi
+if test x$enable_gss = xyes ; then
+       RPMBINARGS="$RPMBINARGS --with gss"
+       AC_SUBST(ENABLE_GSS, yes)
+elif test x$enable_gss = xno ; then
+       RPMBINARGS="$RPMBINARGS --without gss"
+       AC_SUBST(ENABLE_GSS, no)
+fi
 if test x$enable_iokit != xyes ; then
        RPMBINARGS="$RPMBINARGS --without lustre_iokit"
 fi
-if test x$USE_DLC = xyes ; then
-       RPMBINARGS="$RPMBINARGS --with lnet_dlc"
+if test x$enable_snmp != xyes ; then
+       RPMBINARGS="$RPMBINARGS --without snmp"
 fi
 if test x$enable_manpages != xyes ; then
        RPMBINARGS="$RPMBINARGS --without manpages"
@@ -531,6 +626,9 @@ LB_INCLUDE_RULES
 LB_PATH_DEFAULTS
 
 LB_PROG_CC
+LB_CC_NO_FORMAT_TRUNCATION
+LB_CC_NO_STRINGOP_TRUNCATION
+LB_CC_NO_STRINGOP_OVERFLOW
 
 LC_OSD_ADDON
 
@@ -545,10 +643,10 @@ LB_CONFIG_SERVERS
 # Tests depends from utils (multiop from liblustreapi)
 AS_IF([test "x$enable_utils" = xno], [enable_tests="no"])
 
-m4_ifdef([LC_NODEMAP_PROC_DEBUG], [LC_NODEMAP_PROC_DEBUG])
 LIBCFS_CONFIG_CDEBUG
 LC_QUOTA
 
+LB_LIBMOUNT
 LB_PATH_SNMP
 LB_PATH_LUSTREIOKIT