Merge branch 'org.openembedded.dev' of ssh+git://git@git.openembedded.net/openembedde...
[openembedded.git] / classes / kernel.bbclass
index edeaa66..69ab422 100644 (file)
@@ -95,39 +95,39 @@ kernel_do_compile() {
 kernel_do_compile[depends] = "${INITRAMFS_TASK}"
 
 kernel_do_stage() {
-       ASMDIR=`readlink include/asm`
+       if [ -e include/asm ] ; then
+               # This link is generated only in kernel before 2.6.33-rc1, don't stage it for newer kernels
+               ASMDIR=`readlink include/asm`
 
-       mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR
-       cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
+               mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR
+               cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
+       fi
        # Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm     
        if [ -e arch/${ARCH}/include/asm/ ] ; then 
-               cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
+               if [ -e include/asm ] ; then
+                       cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
+               fi
                install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}/include
                cp -fR arch/${ARCH}/* ${STAGING_KERNEL_DIR}/arch/${ARCH}/       
 
        # Check for arch/x86 on i386
        elif [ -d arch/x86/include/asm/ ]; then
-               cp -fR arch/x86/include/asm/* ${STAGING_KERNEL_DIR}/include/asm-x86/
+               if [ -e include/asm ] ; then
+                       cp -fR arch/x86/include/asm/* ${STAGING_KERNEL_DIR}/include/asm-x86/
+               fi
                install -d ${STAGING_KERNEL_DIR}/arch/x86/include
                cp -fR arch/x86/* ${STAGING_KERNEL_DIR}/arch/x86/
        fi
 
-       rm -f ${STAGING_KERNEL_DIR}/include/asm
-       ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm
+       if [ -e include/asm ] ; then
+               rm -f ${STAGING_KERNEL_DIR}/include/asm
+               ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm
+       fi
 
        mkdir -p ${STAGING_KERNEL_DIR}/include/asm-generic
        cp -fR include/asm-generic/* ${STAGING_KERNEL_DIR}/include/asm-generic/
 
-       mkdir -p ${STAGING_KERNEL_DIR}/include/linux
-       cp -fR include/linux/* ${STAGING_KERNEL_DIR}/include/linux/
-
-       mkdir -p ${STAGING_KERNEL_DIR}/include/net
-       cp -fR include/net/* ${STAGING_KERNEL_DIR}/include/net/
-
-       mkdir -p ${STAGING_KERNEL_DIR}/include/pcmcia
-       cp -fR include/pcmcia/* ${STAGING_KERNEL_DIR}/include/pcmcia/
-
-       for entry in drivers/crypto drivers/media include/media include/acpi include/sound include/video include/scsi include/trace; do
+       for entry in drivers/crypto drivers/media include/generated include/linux include/net include/pcmcia include/media include/acpi include/sound include/video include/scsi include/trace; do
                if [ -d $entry ]; then
                        mkdir -p ${STAGING_KERNEL_DIR}/$entry
                        cp -fR $entry/* ${STAGING_KERNEL_DIR}/$entry/
@@ -201,8 +201,12 @@ kernel_do_install() {
 kernel_do_configure() {
        yes '' | oe_runmake oldconfig
        if [ ! -z "${INITRAMFS_IMAGE}" ]; then
-               cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz" initramfs.cpio.gz
-       fi 
+               for img in cpio.gz cpio.lzo cpio.lzma; do
+               if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then
+                       cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img
+               fi
+               done
+       fi
 }
 
 do_menuconfig() {
@@ -263,7 +267,7 @@ fi
 if [ -n "$D" ]; then
        ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
 else
-       depmod -a
+       depmod -a ${KERNEL_VERSION}
 fi
 }
 
@@ -271,7 +275,7 @@ pkg_postinst_modules () {
 if [ -n "$D" ]; then
        ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
 else
-       depmod -a
+       depmod -a ${KERNEL_VERSION}
        update-modules || true
 fi
 }
@@ -484,7 +488,7 @@ python populate_packages_prepend () {
 # Support checking the kernel size since some kernels need to reside in partitions
 # with a fixed length or there is a limit in transferring the kernel to memory
 do_sizecheck() {
-       if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" -a -z "${DONT_CHECK_KERNELSIZE}" ]; then
+       if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then
                size=`ls -l ${KERNEL_OUTPUT} | awk '{ print $5}'`
                if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then
                        rm ${KERNEL_OUTPUT}
@@ -525,10 +529,12 @@ MODULES_IMAGE_BASE_NAME ?= modules-${PV}-${PR}-${MACHINE}
 do_deploy() {
        install -d ${DEPLOY_DIR_IMAGE}
        install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
+       package_stagefile_shell ${S}/${KERNEL_OUTPUT}
        package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
 
        if [ -d "${PKGD}/lib" ]; then
                fakeroot tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz -C ${PKGD} lib
+               package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz
        fi
 
        cd ${DEPLOY_DIR_IMAGE}