hvbuild()
{
- # Check if kernel sources are still in /usr/src.
- # If not, recopy them.
- if [ ! -d /usr/src/${PACKAGE} ]; then
- # Decompress kernel sources
- decompress_package ${PACKAGE} /usr/src
+ rm -rf /usr/src/${PACKAGE}
+ mv ${SRC_DIR} /usr/src
- apply_patches ${PACKAGE} /usr/src
- fi
+ cd /usr/src/${PACKAGE}
# Install kernel checkpatch script
- install /usr/src/${PACKAGE}/scripts/checkpatch.pl /usr/bin
+ install scripts/checkpatch.pl /usr/bin
# Copy kernel configuration file in source tree.
- cp -v ${SCRDIR}/../config/${KERNEL_CONFIG} /usr/src/${PACKAGE}/.config
+ cp -v ${SCRDIR}/../config/${KERNEL_CONFIG} .config
# Install HV kernel compilation script:
- VERSION=$(get_pkg_ver ${PACKAGE})
- SCRIPT=/usr/src/compile-kernel
-
- echo "#!/bin/bash" > ${SCRIPT}
- echo "set -o errexit" >> ${SCRIPT}
- echo "KERNEL_VERSION=${VERSION}" >> ${SCRIPT}
- echo "KERNEL_NAME=clfs-\${KERNEL_VERSION}" >> ${SCRIPT}
- echo "DEST=/boot" >> ${SCRIPT}
- echo "ARCH=${HVL_TARGET}" >> ${SCRIPT}
- echo "unset CROSS_COMPILE" >> ${SCRIPT}
- echo "" >> ${SCRIPT}
- echo "make" >> ${SCRIPT}
- echo "make modules" >> ${SCRIPT}
- echo "make modules_install" >> ${SCRIPT}
- echo "cp -v arch/${HVL_TARGET}/boot/bzImage \${DEST}/vmlinuz-\${KERNEL_NAME}" >> ${SCRIPT}
- echo "cp -v System.map \${DEST}/System.map-\${KERNEL_NAME}" >> ${SCRIPT}
- echo "cp -v .config \${DEST}/config-\${KERNEL_NAME}" >> ${SCRIPT}
-
- chmod -v u+x ${SCRIPT}
-
- cd ${LFS}/usr/src/${PACKAGE}
+ COMPILE_SCRIPT=/usr/src/compile-kernel
+
+ cat > ${COMPILE_SCRIPT} << "EOF"
+#!/bin/bash
+set -o errexit
+
+MAKEJOBS=4
+ROOTDIR=/
+DEST=${ROOTDIR}/boot
+ARCH=_HVL_TARGET_
+unset CROSS_COMPILE
+
+make -j ${MAKEJOBS}
+make -j ${MAKEJOBS} modules
+make INSTALL_MOD_PATH=${ROOTDIR} modules_install
+
+KERNEL_VERSION=$(make -s kernelrelease)
+KERNEL_NAME=vmlinuz
+
+cp -v arch/${ARCH}/boot/bzImage ${DEST}/${KERNEL_NAME}-${KERNEL_VERSION}
+ln -svf ${KERNEL_NAME}-${KERNEL_VERSION} ${DEST}/${KERNEL_NAME}
+cp -v System.map ${DEST}/System.map-${KERNEL_VERSION}
+cp -v .config ${DEST}/config-${KERNEL_VERSION}
+EOF
+
+ sed -i -e "s!_HVL_TARGET_!${HVL_TARGET}!g" ${COMPILE_SCRIPT}
+ chmod -v u+x ${COMPILE_SCRIPT}
# The 'yes' command repeatedly output a line with all specified string, or
# 'y' by default. So, you can use it to simply "press enter", which will
yes "" | make oldconfig
# Execute compilation script
- ${SCRIPT}
+ ${COMPILE_SCRIPT}
}