lmake

来自「lustre 1.6.5 source code」· 代码 · 共 886 行 · 第 1/2 页

TXT
886
字号
    diff -I '^#.*' -u "$CONFIG_FILE" .config >$tmpfile    if [ -s $tmpfile ]; then        { cat <<EOFTo: lustre-qa-team@sun.comSubject: kernel_config change The result of a make oldconfig on file $CONFIG_FILE resulted in adifference when compared to .config in the following way:EOF        cat $tmpfile        echo -e "\n\nPlease consider updating $CONFIG_FILE for version: $extra_version."        # not sure these are entirely useful.  the above and "patch" are good        #echo -e "\nThe entire new .config file:\n"        #cat .config        # sadly, the build roots can't e-mail out, so we can only display this        # to stderr for an interested party to inspect        #} | sendmail -flustre-qa-team@sun.com -t        } >&2    fi    rm -f $tmpfile    case "$VERSION" in	2.6*)            $MAKE "$MAKE_CC" include/asm            ;;        2.4*)	    $MAKE "$MAKE_CC" symlinks	    $MAKE "$MAKE_CC" dep || fatal 1 "Error running make dep"	    ;;    esac    $MAKE "$MAKE_CC" include/linux/version.h || fatal 1 "Error making include/linux/version.h"}build_kernel(){    (( $BUILD_KERNEL )) || return 0    set_make    echo "Building kernel in $PWD..."    case "$TARGET_ARCH" in	i386 | i586 | i686 | athlon | x86_64)	    $MAKE_J "$MAKE_CC" bzImage || fatal 1 "Error making bzImage."	    ;;    ia64 | ppc | ppc64)	    $MAKE_J "$MAKE_CC" vmlinux || fatal 1 "Error making vmlinux."	    ;;	*)	    $MAKE_J "$MAKE_CC" boot || fatal 1 "Error making boot."	    ;;    esac    $MAKE_J "$MAKE_CC" modules || fatal 1 "Error building modules."    popd >/dev/null}build_kernel_ib(){    (( $BUILD_KERNEL )) || return 0    # build kernel-ib{,-devel}    # some I/B drivers are architecture dependent and kernel-ib's configure    # does not figure it out for us ~sigh~    local configure_options=""    case "$TARGET_ARCH" in	x86_64 | ia64)	    configure_options="--with-ipath_inf-mod"	    ;;	ppc64)	    configure_options="--with-ipath_inf-mod --with-ehca-mod"	    ;;    esac    $RPMBUILD --rebuild --define 'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' \	      --define "_topdir $(lbuild_topdir)" --target ${TARGET_ARCH} \	      --define "KVERSION ${FULL_VERSION}" \	      --define "KSRC $PWD/linux" \	      --define "LIB_MOD_DIR /lib/modules/${FULL_VERSION}" \	      --define "configure_options --without-quilt --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-srp-target-mod --with-core-mod --with-mthca-mod --with-mlx4-mod --with-cxgb3-mod --with-nes-mod --with-ipoib-mod --with-sdp-mod --with-srp-mod --without-srp-target-mod --with-rds-mod --with-iser-mod --with-qlgc_vnic-mod --with-madeye-mod $configure_options" $(lbuild_topdir)/OFED/SRPMS/ofa_kernel-${OFED_VERSION}-ofed${OFED_VERSION}.src.rpm    if [ ${PIPESTATUS[0]} != 0 ]; then        fatal 1 "Error building kernel-ib"    fi    pushd "$TOPDIR" >/dev/null    rm -rf kernel-ib-devel    mkdir kernel-ib-devel    cd kernel-ib-devel    local rpm=$(ls $(lbuild_topdir)/RPMS/*/kernel-ib-devel-${OFED_VERSION}-${FULL_VERSION//-/_}.*.rpm)    rpm2cpio -itv < $rpm | cpio -id    CONFIGURE_FLAGS="--with-o2ib=$(pwd)/usr/src/ofa_kernel ${CONFIGURE_FLAGS}"    popd >/dev/null}configure_lustre(){    return 0    (( $BUILD_LUSTRE )) || return 0    pushd "$TOPDIR" >/dev/null    [ -f Makefile ] && make -s clean    [ -f configure ] || sh ./autogen.sh    ./configure --with-linux=$PWD/linux $CONFIGURE_FLAGS || \	fatal 1 "Error configuring Lustre."    popd >/dev/null}build_lustre(){    (( $BUILD_LUSTRE )) || return 0    set_make    pushd "$TOPDIR" >/dev/null    sed \	-e s^@VERSION@^${LUSTRE_VERSION}^g \	-e s^@LINUXRELEASE@^${FULL_VERSION}^g \	-e s^@RELEASE@^${FULL_VERSION//-/_}^g \	-e s^@ac_configure_args@^"--with-linux=${PWD}/linux ${CONFIGURE_FLAGS}"^g \	< lustre.spec.in \	> lustre.spec    $RPMBUILD --target ${TARGET_ARCH} -bb lustre.spec \        --define "_tmppath $TMPDIR" \	--define "_topdir $(lbuild_topdir)" || \	fatal 1 "Error building Lustre rpms."    # $MAKE_J "$MAKE_CC" || fatal 1 "Error building Lustre."    popd >/dev/null}install_kernel(){    (( $INSTALL_KERNEL )) || return 0    set_make    pushd "$TOPDIR/linux" >/dev/null    mkdir -p "$DESTDIR/boot"    install -m 644 System.map "$DESTDIR/boot/System.map-${FULL_VERSION}"    # install -m 644 module-info ...    install -m 644 "$CONFIG_FILE" "$DESTDIR/boot/config-${FULL_VERSION}"    mkdir -p "$DESTDIR/dev/shm"    mkdir -p "$DESTDIR/lib/modules/${FULL_VERSION}"    $MAKE "$MAKE_CC" INSTALL_MOD_PATH="$DESTDIR" KERNELRELEASE="$FULL_VERSION" \	-s modules_install || \	fatal 1 "Error installing modules."    case "$TARGET_ARCH" in	i386 | i586 | i686 | athlon)	    cp arch/i386/boot/bzImage "$DESTDIR/boot/vmlinuz-${FULL_VERSION}"	    cp vmlinux "$DESTDIR/lib/modules/${FULL_VERSION}/"	    ln -sf "../lib/modules/${FULL_VERSION}/vmlinux" "$DESTDIR/boot/vmlinux-${FULL_VERSION}"	    ;;	x86_64)	    cp arch/x86_64/boot/bzImage "$DESTDIR/boot/vmlinuz-${FULL_VERSION}"	    cp vmlinux "$DESTDIR/lib/modules/${FULL_VERSION}/"	    ln -sf "../lib/modules/${FULL_VERSION}/vmlinux" "$DESTDIR/boot/vmlinux-${FULL_VERSION}"	    ;;        ppc | ppc64)	    cp vmlinux "$DESTDIR/boot/vmlinux-${FULL_VERSION}"	    ln -sf "$DESTDIR/boot/vmlinux-${FULL_VERSION}" "../lib/modules/${FULL_VERSION}/vmlinux" 	    ;;	ia64)	    gzip -cfv vmlinux > vmlinuz	    mkdir -p "$DESTDIR/boot/efi/redhat"	    install -m 755 vmlinux "$DESTDIR/lib/modules/${FULL_VERSION}/"	    install -m 755 vmlinuz "$DESTDIR/boot/efi/redhat/vmlinuz-${FULL_VERSION}"	    ln -sf "../../../lib/modules/${FULL_VERSION}/vmlinux" "$DESTDIR/boot/efi/redhat/vmlinux-${FULL_VERSION}"	    ln -sf "efi/redhat/vmlinux-${FULL_VERSION}" "$DESTDIR/boot/vmlinux-${FULL_VERSION}"	    ln -sf "efi/redhat/vmlinuz-${FULL_VERSION}" "$DESTDIR/boot/vmlinuz-${FULL_VERSION}"	    ;;	*)	    cp vmlinuz "$DESTDIR/boot/vmlinuz-${FULL_VERSION}"	    cp vmlinux "$DESTDIR/lib/modules/${FULL_VERSION}/vmlinux-${FULL_VERSION}"	    ln -sf "../lib/modules/${FULL_VERSION}/vmlinux-${FULL_VERSION}" "$DESTDIR/boot/vmlinux-${FULL_VERSION}"	    ;;    esac    if [ -e init/kerntypes.o ] ; then	cp init/kerntypes.o "$DESTDIR/boot/Kerntypes-${FULL_VERSION}"    fi    popd >/dev/null}cleanup_libmodules(){    (( $INSTALL_LUSTRE )) || return 0    KVERREL="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"    i="$DESTDIR/lib/modules/${FULL_VERSION}"    rm -f $i/build    rm -f $i/source    if (( $LINUX26 )) ; then	ln -sf ../../../usr/src/linux-${KVERREL}-obj/${TARGET_ARCH}/${TARGET_CONFIG} $i/build	ln -sf ../../../usr/src/linux-${KVERREL} $i/source    else	ln -sf ../../../usr/src/linux-${KVERREL} $i/build    fi}install_lustre(){    (( $INSTALL_LUSTRE )) || return 0    return 0    set_make    pushd "$TOPDIR" >/dev/null    $MAKE "$MAKE_CC" -s install "DESTDIR=$DESTDIR" KERNELRELEASE="$FULL_VERSION" || fatal 1 "Error installing Lustre."    popd >/dev/null}build_kms(){    (( $BUILD_KERNEL )) || return 0    (( $SUSEBUILD )) || return 0    set_make    mkdir -p "${TOPDIR}/modules-${FULL_VERSION}"    for dir in /usr/src/kernel-modules/* ; do	# we are replacing lustre-lite, so don't include it	if [ "${dir##*/}" != "lustre-lite" -a -e $dir/Makefile ]; then	    build_dir="${TOPDIR}/modules-${FULL_VERSION}/${dir##*/}"	    cp -a $dir $build_dir	    # these modules are terrible, and don't all build	    $MAKE_J "$MAKE_CC" -C $build_dir modules KERNEL_SOURCE="${TOPDIR}/linux"	fi    done}symver(){    local file=$1 name=${1%.ko}    nm $file \    | sed -ne 's,^0*\([0-9a-f]\{8\}\) A __crc_\(.*\),0x\1\t\2\t'"$name"',p'}install_kms(){    (( $INSTALL_KERNEL )) || return 0    (( $LINUX26 )) || return 0    set_make    for build_dir in "${TOPDIR}/modules-${FULL_VERSION}/*" ; do	[ -d $build_dir ] || continue        # these modules are terrible, and don't all build	$MAKE "$MAKE_CC" -C $build_dir KERNEL_SOURCE="${TOPDIR}/linux" INSTALL_MOD_PATH="$DESTDIR"     done    local symvers_file="${DESTDIR}/boot/symvers-${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}-${TARGET_ARCH}"    if [ -n "$TARGET_CONFIG" ]; then	symvers_file="${symvers_file}${TARGET_DELIMITER}${TARGET_CONFIG}"    fi    symvers_file="$symvers_file.gz"    (   symver vmlinux	moddir="${DESTDIR}/lib/modules/${FULL_VERSION}"	cd $moddir/kernel	for module in $(find * -name '*.ko'); do	    symver $module	done	cd $moddir	for module in $(find * -path 'kernel/*' -prune -o \			   -name '*.ko' -print); do	    symver $module	done    ) | sort -u -k2 | gzip -c9 > $symvers_file}save_headers(){    (( $SAVE_HEADERS )) || return 0    echo "Saving headers for ${TARGET_CONFIG:-up} ${TARGET_ARCH}..."    pushd linux >/dev/null    KVERREL="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"    # deal with the kernel headers that are version specific        saveddir="$RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/${TARGET_ARCH}/${TARGET_CONFIG:-up}"    mkdir -p "$saveddir"    install -m 644 include/linux/autoconf.h "$saveddir/autoconf.h"    install -m 644 include/linux/version.h  "$saveddir/version.h"    mv include/linux/modules "$saveddir/"    echo ${TARGET_ARCH} ${TARGET_CONFIG} ../../savedheaders/${TARGET_ARCH}/${TARGET_CONFIG:-up}/ \	>>  "$RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/list"    popd >/dev/null}save_all_headers(){    (( $SAVE_HEADERS )) || return 0    for arch in $BIGMEM_ARCHS ; do	save_headers bigmem $arch    done    for arch in $BOOT_ARCHS ; do	save_headers BOOT $arch    done    for arch in $JENSEN_ARCHS ; do	save_headers jensen $arch    done    for arch in $SMP_ARCHS ; do	save_headers smp $arch    done    for arch in $BIGSMP_ARCHS ; do	save_headers bigsmp $arch    done    for arch in $PSERIES64_ARCHS ; do	save_headers pseries64 $arch    done    for arch in $UP_ARCHS ; do	save_headers up $arch    done}longopts="build,build-lustre,build-kernel,depend-kernel,destdir:,extraversion:"longopts="$longopts,help,install,install-lustre,install-kernel,kerneldir:"longopts="$longopts,save-headers,target:,target-arch:,target-config:,unpack-kernel"options=$(getopt -o hj: -l "$longopts" -- "$@")eval set -- "$options"    while [ "$1" ] ; do    case "$1" in	'')	    usage 1	    ;;	--build)	    BUILD_LUSTRE=1	    BUILD_KERNEL=1	    DEPEND_KERNEL=1	    UNPACK_KERNEL=1	    shift	    ;;	--build-lustre)	    BUILD_LUSTRE=1	    shift	    ;;	--build-kernel)	    BUILD_KERNEL=1	    DEPEND_KERNEL=1	    shift	    ;;	--depend-kernel)	    DEPEND_KERNEL=1	    shift	    ;;	--destdir)	    DESTDIR=$2	    shift 2	    ;;	--extraversion)	    EXTRA_VERSION=$2	    shift 2	    ;;	--help | -h)	    usage 0	    ;;	--install)	    INSTALL_LUSTRE=1	    INSTALL_KERNEL=1	    shift	    ;;	--install-lustre)	    INSTALL_LUSTRE=1	    shift	    ;;	--install-kernel)	    INSTALL_KERNEL=1	    shift	    ;;	-j)	    JOBS=$2	    shift 2	    ;;	--kerneldir)	    KERNELDIR=$2	    shift 2	    ;;	--save-headers)	    SAVE_HEADERS=1	    shift	    ;;	--target)	    TARGET=$2	    shift 2	    ;;	--target-arch)	    TARGET_ARCH=$2	    shift 2	    ;;	--target-config)	    TARGET_CONFIG=$2	    shift 2	    ;;	--unpack-kernel)	    UNPACK_KERNEL=1	    shift	    ;;	--)	    shift	    CONFIGURE_FLAGS=$@	    break	    ;; 	*)	    usage 1 "Unrecognized option: $1"	    ;;    esacdonecheck_optionsload_targetEXTRA_VERSION_DELIMITER=${EXTRA_VERSION_DELIMITER:-"-"}FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"if [ -n "$TARGET_CONFIG" ]; then    FULL_VERSION="${FULL_VERSION}${TARGET_DELIMITER}${TARGET_CONFIG}"fisetup_ccache_distccextract_kernelpatch_kerneldepend_kernelbuild_kernelif [ -n "$OFED_VERSION" ]; then    build_kernel_ibficonfigure_lustrebuild_lustrebuild_kmsinstall_kernelinstall_lustreinstall_kmscleanup_libmodulessave_headersexit 0

⌨️ 快捷键说明

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