⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lustre-build.m4

📁 lustre 1.6.5 source code
💻 M4
字号:
## LB_CHECK_VERSION## Verify that LUSTRE_VERSION was defined properly#AC_DEFUN([LB_CHECK_VERSION],[if test "LUSTRE_VERSION" = "LUSTRE""_VERSION" ; then	AC_MSG_ERROR([This script was not built with a version number.])fi])## LB_CANONICAL_SYSTEM## fixup $target_os for use in other places#AC_DEFUN([LB_CANONICAL_SYSTEM],[case $target_os in	linux*)		lb_target_os="linux"		;;	darwin*)		lb_target_os="darwin"		;;	solaris*)		lb_target_os="SunOS"		;;esacAC_SUBST(lb_target_os)])## LB_CHECK_FILE## Check for file existance even when cross compiling#AC_DEFUN([LB_CHECK_FILE],[AS_VAR_PUSHDEF([lb_File], [lb_cv_file_$1])dnlAC_CACHE_CHECK([for $1], lb_File,[if test -r "$1"; then  AS_VAR_SET(lb_File, yes)else  AS_VAR_SET(lb_File, no)fi])AS_IF([test AS_VAR_GET(lb_File) = yes], [$2], [$3])[]dnlAS_VAR_POPDEF([lb_File])dnl])# LB_CHECK_FILE## LB_CHECK_FILES## LB_CHECK_FILE over multiple files#AC_DEFUN([LB_CHECK_FILES],[AC_FOREACH([AC_FILE_NAME], [$1],  [LB_CHECK_FILE(AC_FILE_NAME,                 [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_FILE_NAME), 1,                                    [Define to 1 if you have the                                     file `]AC_File['.])$2],                 [$3])])])## LB_ARG_LIBS_INCLUDES## support for --with-foo, --with-foo-includes, and --with-foo-libs in# a single magical macro#AC_DEFUN([LB_ARG_LIBS_INCLUDES],[lb_pathvar="m4_bpatsubst([$2], -, _)"AC_MSG_CHECKING([for $1])AC_ARG_WITH([$2],	AC_HELP_STRING([--with-$2=path],		[path to $1]),	[],[withval=$4])if test x$withval = xyes ; then	eval "$lb_pathvar='$3'"else	eval "$lb_pathvar='$withval'"fiAC_MSG_RESULT([${!lb_pathvar:-no}])if test x${!lb_pathvar} != x -a x${!lb_pathvar} != xno ; then	AC_MSG_CHECKING([for $1 includes])	AC_ARG_WITH([$2-includes],		AC_HELP_STRING([--with-$2-includes=path],			[path to $1 includes]),		[],[withval='yes'])	lb_includevar="${lb_pathvar}_includes"	if test x$withval = xyes ; then		eval "${lb_includevar}='${!lb_pathvar}/include'"	else		eval "${lb_includevar}='$withval'"	fi	AC_MSG_RESULT([${!lb_includevar}])	AC_MSG_CHECKING([for $1 libs])	AC_ARG_WITH([$2-libs],		AC_HELP_STRING([--with-$2-libs=path],			[path to $1 libs]),		[],[withval='yes'])	lb_libvar="${lb_pathvar}_libs"	if test x$withval = xyes ; then		eval "${lb_libvar}='${!lb_pathvar}/lib'"	else		eval "${lb_libvar}='$withval'"	fi	AC_MSG_RESULT([${!lb_libvar}])fi])])## LB_PATH_LIBSYSIO## Handle internal/external libsysio#AC_DEFUN([LB_PATH_LIBSYSIO],[AC_ARG_WITH([sysio],	AC_HELP_STRING([--with-sysio=path],			[set path to libsysio source (default is included libsysio)]),	[],[		case $lb_target_os in			linux)				with_sysio='yes'				;;			*)				with_sysio='no'				;;		esac	])AC_MSG_CHECKING([location of libsysio])enable_sysio="$with_sysio"case x$with_sysio in	xyes)		AC_MSG_RESULT([internal])		LB_CHECK_FILE([$srcdir/libsysio/src/rmdir.c],[],[			AC_MSG_ERROR([A complete internal libsysio was not found.])		])		LIBSYSIO_SUBDIR="libsysio"		SYSIO="$PWD/libsysio"		;;	xno)		AC_MSG_RESULT([disabled])		;;	*)		AC_MSG_RESULT([$with_sysio])		LB_CHECK_FILE([$with_sysio/lib/libsysio.a],[],[			AC_MSG_ERROR([A complete (built) external libsysio was not found.])		])		SYSIO=$with_sysio		with_sysio="yes"		;;esac# We have to configure even if we don't build here for make dist to workAC_CONFIG_SUBDIRS(libsysio)])## LB_PATH_LDISKFS## Handle internal/external ldiskfs#AC_DEFUN([LB_PATH_LDISKFS],[AC_ARG_WITH([ldiskfs],	AC_HELP_STRING([--with-ldiskfs=path],			[set path to ldiskfs source (default is included ldiskfs)]),	[],[		if test x$linux25$enable_server = xyesyes ; then			with_ldiskfs=yes		else			with_ldiskfs=no		fi	])AC_MSG_CHECKING([location of ldiskfs])case x$with_ldiskfs in	xyes)		AC_MSG_RESULT([internal])		LB_CHECK_FILE([$srcdir/ldiskfs/lustre-ldiskfs.spec.in],[],[			AC_MSG_ERROR([A complete internal ldiskfs was not found.])		])		LDISKFS_SUBDIR="ldiskfs"		LDISKFS_DIR="$PWD/ldiskfs"		;;	xno)		AC_MSG_RESULT([disabled])		;;	*)		AC_MSG_RESULT([$with_ldiskfs])		LB_CHECK_FILE([$with_ldiskfs/ldiskfs/linux/ldiskfs_fs.h],[],[			AC_MSG_ERROR([A complete (built) external ldiskfs was not found.])		])		LDISKFS_DIR=$with_ldiskfs		;;esacAC_SUBST(LDISKFS_DIR)AC_SUBST(LDISKFS_SUBDIR)AM_CONDITIONAL(LDISKFS_ENABLED, test x$with_ldiskfs != xno)# We have to configure even if we don't build here for make dist to workAC_CONFIG_SUBDIRS(ldiskfs)])## LB_DEFINE_LDISKFS_OPTIONS## Enable config options related to ldiskfs.  These are used both by ldiskfs# and lvfs (which includes ldiskfs headers.)#AC_DEFUN([LB_DEFINE_LDISKFS_OPTIONS],[	AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])	AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])	AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls for ldiskfs])	AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security for ldiskfs])])## LB_CONFIG_CRAY_XT3## Enable Cray XT3 features#AC_DEFUN([LB_CONFIG_CRAY_XT3],[AC_MSG_CHECKING([whether to build Cray XT3 features])AC_ARG_ENABLE([cray_xt3],	AC_HELP_STRING([--enable-cray-xt3],			[enable building of Cray XT3 features]),	[enable_cray_xt3='yes'],[enable_cray_xt3='no'])AC_MSG_RESULT([$enable_cray_xt3])if test x$enable_cray_xt3 != xno; then        AC_DEFINE(CRAY_XT3, 1, Enable Cray XT3 Features)fi])## LB_CONFIG_BGL## Enable BGL features#AC_DEFUN([LB_CONFIG_BGL],[AC_MSG_CHECKING([whether to build BGL features])AC_ARG_ENABLE([bgl],	AC_HELP_STRING([--enable-bgl],			[enable building of BGL features]),	[enable_bgl='yes'],[enable_bgl='no'])AC_MSG_RESULT([$enable_bgl])if test x$enable_bgl != xno; then        AC_DEFINE(BGL_SUPPORT, 1, Enable BGL Features)        enable_doc='no'        enable_tests='no'        enable_server='no'        enable_liblustre='no'        enable_libreadline='no'fi])## Support for --enable-uoss#AC_DEFUN([LB_UOSS],[AC_MSG_CHECKING([whether to enable uoss])AC_ARG_ENABLE([uoss],	AC_HELP_STRING([--enable-uoss],			[enable userspace OSS]),	[enable_uoss='yes'],[enable_uoss='no'])AC_MSG_RESULT([$enable_uoss])if test x$enable_uoss = xyes; then	AC_DEFINE(UOSS_SUPPORT, 1, Enable user-level OSS)	AC_DEFINE(LUSTRE_ULEVEL_MT, 1, Multi-threaded user-level lustre port)	enable_uoss='yes'	enable_ulevel_mt='yes'	enable_modules='no'	enable_client='no'	enable_tests='no'	enable_liblustre='no'	with_ldiskfs='no'fiAC_SUBST(enable_uoss)])## Support for --enable-posix-osd#AC_DEFUN([LB_POSIX_OSD],[AC_MSG_CHECKING([whether to enable posix osd])AC_ARG_ENABLE([posix-osd],	AC_HELP_STRING([--enable-posix-osd],			[enable using of posix osd]),	[enable_posix_osd='yes'],[enable_posix_osd='no'])AC_MSG_RESULT([$enable_posix_osd])if test x$enable_uoss = xyes -a x$enable_posix_osd = xyes ; then	AC_DEFINE(POSIX_OSD, 1, Enable POSIX OSD)	posix_osd='yes'fiAM_CONDITIONAL(POSIX_OSD_ENABLED, test x$posix_osd = xyes)])## LB_PATH_DMU# Support for --with-dmu#AC_DEFUN([LB_PATH_DMU],[AC_MSG_CHECKING([whether to enable DMU])AC_ARG_WITH([dmu],	AC_HELP_STRING([--with-dmu=path],		       [set path to a DMU tree (default is included zfs-lustre)]),	[		DMU_SRC=$with_dmu	],	[		DMU_SRC="$PWD/zfs-lustre"	])if test x$enable_uoss = xyes -a x$enable_posix_osd != xyes; then	AC_DEFINE(DMU_OSD, 1, Enable DMU OSD)	AC_MSG_RESULT([yes])	LB_CHECK_FILE([$DMU_SRC/src/.patched],[],[		AC_MSG_ERROR([A complete (patched) DMU tree was not found.])	])	AC_CONFIG_SUBDIRS(zfs-lustre)	dmu_osd='yes'else	AC_MSG_RESULT([no])fiAC_SUBST(DMU_SRC)AM_CONDITIONAL(DMU_OSD_ENABLED, test x$dmu_osd = xyes)])## LB_PATH_SNMP## check for in-tree snmp support#AC_DEFUN([LB_PATH_SNMP],[LB_CHECK_FILE([$srcdir/snmp/lustre-snmp.c],[SNMP_DIST_SUBDIR="snmp"])AC_SUBST(SNMP_DIST_SUBDIR)AC_SUBST(SNMP_SUBDIR)])## LB_CONFIG_MODULES## Build kernel modules?#AC_DEFUN([LB_CONFIG_MODULES],[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_MSG_RESULT([$enable_modules ($target_os)])if test x$enable_modules = xyes ; then	case $target_os in		linux*)			LB_PROG_LINUX			LN_PROG_LINUX			LC_PROG_LINUX			;;		darwin*)			LB_PROG_DARWIN			;;		*)			# This is strange - Lustre supports a target we don't			AC_MSG_ERROR([Modules are not supported on $target_os])			;;	esacfi])## LB_CONFIG_UTILS## Build utils?#AC_DEFUN([LB_CONFIG_UTILS],[AC_MSG_CHECKING([whether to build utilities])AC_ARG_ENABLE([utils],	AC_HELP_STRING([--disable-utils],			[disable building of Lustre utility programs]),	[],[enable_utils='yes'])AC_MSG_RESULT([$enable_utils])if test x$enable_utils = xyes ; then 	LB_CONFIG_INIT_SCRIPTSfi])## LB_CONFIG_TESTS## Build tests?#AC_DEFUN([LB_CONFIG_TESTS],[AC_MSG_CHECKING([whether to build Lustre tests])AC_ARG_ENABLE([tests],	AC_HELP_STRING([--disable-tests],			[disable building of Lustre tests]),	[],	[		enable_tests='yes'	])AC_MSG_RESULT([$enable_tests])])## LB_CONFIG_DOCS## Build docs?#AC_DEFUN([LB_CONFIG_DOCS],[AC_MSG_CHECKING([whether to build docs])AC_ARG_ENABLE(doc,	AC_HELP_STRING([--disable-doc],			[skip creation of pdf documentation]),	[		if test x$enable_doc = xyes ; then		    ENABLE_DOC=1	   		else		    ENABLE_DOC=0		fi	],[		ENABLE_DOC=0		enable_doc='no'	])AC_MSG_RESULT([$enable_doc])AC_SUBST(ENABLE_DOC)])## LB_CONFIG_INIT_SCRIPTS## our init scripts only work on red hat linux#AC_DEFUN([LB_CONFIG_INIT_SCRIPTS],[ENABLE_INIT_SCRIPTS=0if test x$enable_utils = xyes ; then        AC_MSG_CHECKING([whether to install init scripts])        # our scripts only work on red hat systems        if test -f /etc/init.d/functions -a -f /etc/sysconfig/network ; then                ENABLE_INIT_SCRIPTS=1                AC_MSG_RESULT([yes])        else                AC_MSG_RESULT([no])        fifiAC_SUBST(ENABLE_INIT_SCRIPTS)])## LB_CONFIG_HEADERS## add -include config.h#AC_DEFUN([LB_CONFIG_HEADERS],[AC_CONFIG_HEADERS([config.h])CPPFLAGS="-include \$(top_builddir)/config.h $CPPFLAGS"EXTRA_KCFLAGS="-include $PWD/config.h $EXTRA_KCFLAGS"AC_SUBST(EXTRA_KCFLAGS)])## LB_INCLUDE_RULES## defines for including the toplevel Rules#AC_DEFUN([LB_INCLUDE_RULES],[INCLUDE_RULES="include $PWD/Rules"AC_SUBST(INCLUDE_RULES)])## LB_PATH_DEFAULTS## 'fixup' default paths#AC_DEFUN([LB_PATH_DEFAULTS],[# directories for binariesAC_PREFIX_DEFAULT([/usr])sysconfdir='/etc'AC_SUBST(sysconfdir)# Directories for documentation and demos.docdir='${datadir}/doc/$(PACKAGE)'AC_SUBST(docdir)LN_PATH_DEFAULTSLC_PATH_DEFAULTS])## LB_PROG_CC## checks on the C compiler#AC_DEFUN([LB_PROG_CC],[AC_PROG_RANLIBAC_MSG_CHECKING([for buggy compiler])CC_VERSION=`$CC -v 2>&1 | grep "^gcc version"`bad_cc() {	AC_MSG_RESULT([buggy compiler found!])	echo	echo "   '$CC_VERSION'"	echo "  has been known to generate bad code, "	echo "  please get an updated compiler."	AC_MSG_ERROR([sorry])}case "$CC_VERSION" in	"gcc version 2.95"*)		bad_cc		;;	# ost_pack_niobuf putting 64bit NTOH temporaries on the stack	# without "sub    $0xc,%esp" to protect the stack from being	# stomped on by interrupts (bug 606)	"gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)")		bad_cc		;;	# mandrake's similar sub 0xc compiler bug	# http://marc.theaimsgroup.com/?l=linux-kernel&m=104748366226348&w=2	"gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)")		bad_cc		;;	*)		AC_MSG_RESULT([no known problems])		;;esac# ---------  unsigned long long sane? -------AC_CHECK_SIZEOF(unsigned long long, 0)echo "---> size SIZEOF $SIZEOF_unsigned_long_long"echo "---> size SIZEOF $ac_cv_sizeof_unsigned_long_long"if test $ac_cv_sizeof_unsigned_long_long != 8 ; then        AC_MSG_ERROR([** we assume that sizeof(long long) == 8.  Tell phil@clusterfs.com])fi# FIXMEAC_CHECK_DECL([__i386__], [], [if test x$enable_bgl != xyes; thenAC_MSG_CHECKING([if $CC accepts -m64])CC_save="$CC"CC="$CC -m64"AC_TRY_COMPILE([],[],[	AC_MSG_RESULT([yes])],[	AC_MSG_RESULT([no])	CC="$CC_save"])fi])CPPFLAGS="-I\$(top_builddir)/lnet/include -I\$(top_srcdir)/lnet/include -I\$(top_builddir)/lustre/include -I\$(top_srcdir)/lustre/include $CPPFLAGS"LLCPPFLAGS="-D__arch_lib__ -D_LARGEFILE64_SOURCE=1"AC_SUBST(LLCPPFLAGS)LLCFLAGS="-g -Wall -fPIC"AC_SUBST(LLCFLAGS)# everyone builds against lnet and lustreEXTRA_KCFLAGS="$EXTRA_KCFLAGS -g -I$PWD/lnet/include -I$PWD/lustre/include"AC_SUBST(EXTRA_KCFLAGS)])## LB_CONTITIONALS## AM_CONDITIONAL instances for everything# (so that portals/lustre can disable some if needed)AC_DEFUN([LB_CONDITIONALS],[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(INIT_SCRIPTS, test x$ENABLE_INIT_SCRIPTS = "x1")AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux")AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")AM_CONDITIONAL(CRAY_XT3, test x$enable_cray_xt3 = "xyes")AM_CONDITIONAL(SUNOS, test x$lb_target_os = "xSunOS")# this lets lustre cancel libsysio, per-branch or if liblustre is# disabledif test "x$LIBSYSIO_SUBDIR" = xlibsysio ; then	if test "x$with_sysio" != xyes ; then		SYSIO=""		LIBSYSIO_SUBDIR=""	fifiAC_SUBST(LIBSYSIO_SUBDIR)AC_SUBST(SYSIO)LB_LINUX_CONDITIONALSLB_DARWIN_CONDITIONALSLN_CONDITIONALSLC_CONDITIONALS])## LB_CONFIG_FILES## build-specific config files#AC_DEFUN([LB_CONFIG_FILES],[AC_CONFIG_FILES([MakefileautoMakefile][Rules:build/Rules.in]AC_PACKAGE_TARNAME[.spec])])## LB_CONFIGURE## main configure steps#AC_DEFUN([LB_CONFIGURE],[LB_CANONICAL_SYSTEMLB_INCLUDE_RULESLB_CONFIG_CRAY_XT3LB_CONFIG_BGLLB_PATH_DEFAULTSLB_PROG_CCLB_UOSSLB_POSIX_OSDLB_PATH_DMULB_CONFIG_DOCSLB_CONFIG_UTILSLB_CONFIG_TESTSLC_CONFIG_CLIENT_SERVER# three macros for cmd3 LC_CONFIG_SPLITLC_CONFIG_LDISKFSLN_CONFIG_CDEBUGLB_CONFIG_MODULESLB_PATH_LIBSYSIOLB_PATH_SNMPLB_PATH_LDISKFSLC_CONFIG_LIBLUSTRELN_CONFIGURELC_CONFIGUREif test "$SNMP_DIST_SUBDIR" ; then	LS_CONFIGUREfiLB_CONDITIONALSLB_CONFIG_HEADERSLB_CONFIG_FILESLN_CONFIG_FILESLC_CONFIG_FILESif test "$SNMP_DIST_SUBDIR" ; then	LS_CONFIG_FILESfiAC_SUBST(ac_configure_args)MOSTLYCLEANFILES='.*.cmd .*.flags *.o *.ko *.mod.c .depend .*.1.* Modules.symvers Module.symvers'AC_SUBST(MOSTLYCLEANFILES)AC_OUTPUTcat <<_ACEOFCC:            $CCLD:            $LDCPPFLAGS:      $CPPFLAGSLLCPPFLAGS:    $LLCPPFLAGSCFLAGS:        $CFLAGSEXTRA_KCFLAGS: $EXTRA_KCFLAGSLLCFLAGS:      $LLCFLAGSType 'make' to build Lustre._ACEOF])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -