SERIES_FILE=
CONFIG_FILE=
RPMBUILD=
+XEN=false
canon()
{
--unpack-kernel
Untars and patches the kernel source.
+ --xen
+ Builds a Xen domX kernel.
+
The order that commands (--build-lustre, --unpack-kernel) are
specified on the command line is ignored; ${0##*/} will always
execute them in the correct order (unpack, then build, then install
. "$TARGET_FILE"
+ # doesn't make any sense to build OFED for xen domX's
+ if $XEN; then
+ OFED_VERSION=""
+ fi
+
[ "$KERNEL" ] || fatal 1 "Target $TARGET did not specify a kernel."
# Suse 2.6 has our patches in already
# [ "$SERIES" ] || fatal 1 "Target $TARGET did not specify a patch series."
done
fi
+ local XENPOSTFIX=""
+ if $XEN; then
+ XENPOSTFIX="-xen"
+ fi
+
TARGET_ARCH=${TARGET_ARCH:-$BASE_ARCHS}
- CONFIG_TARGET="$TARGET-${TARGET_ARCH}${TARGET_CONFIG:+-$TARGET_CONFIG}"
+ CONFIG_TARGET="${TARGET}${XENPOSTFIX}-${TARGET_ARCH}${TARGET_CONFIG:+-$TARGET_CONFIG}"
CONFIG_FILE="$TOPDIR/lustre/kernel_patches/kernel_configs/kernel-$VERSION-$CONFIG_TARGET.config"
[ -r "$CONFIG_FILE" ] ||
fatal 1 "Target $TARGET's config file $CONFIG_FILE missing from $TOPDIR/lustre/kernel_patches/configs."
(( $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
+ if $XEN; then
+ $MAKE_J "$MAKE_CC" vmlinuz || fatal 1 "Error making vmlinux."
+ else
+ 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
+ fi
$MAKE_J "$MAKE_CC" modules || fatal 1 "Error building modules."
popd >/dev/null
-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 $XEN; then
+ 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}"
+ else
+ 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
+ fi
if [ -e init/kerntypes.o ] ; then
cp init/kerntypes.o "$DESTDIR/boot/Kerntypes-${FULL_VERSION}"
fi
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"
+longopts="$longopts,save-headers,target:,target-arch:,target-config:,unpack-kernel,xen"
options=$(getopt -o hj: -l "$longopts" -- "$@")
UNPACK_KERNEL=1
shift
;;
+ --xen)
+ XEN=true
+ shift
+ ;;
--)
shift
CONFIGURE_FLAGS=$@