| |
| do_install() { |
| kerneldir=${D}${KERNEL_SRC_PATH} |
| install -d $kerneldir |
| |
| install -d ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION} |
| ( |
| cd ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION} |
| rm -f source build |
| ln -s ${KERNEL_SRC_PATH} source |
| ln -s ${KERNEL_SRC_PATH} build |
| ) |
| |
| # |
| # Copy the staging dir source (and module build support) into the devsrc structure. |
| # We can keep this copy simple and take everything, since a we'll clean up any build |
| # artifacts afterwards, and the extra i/o is not significant |
| # |
| cd ${B} |
| find . -type d -name '.git*' -prune -o -path '.debug' -prune -o -type f -print0 | cpio --null -pdlu $kerneldir |
| cd ${S} |
| find . -type d -name '.git*' -prune -o -type d -name '.kernel-meta' -prune -o -type f -print0 | cpio --null -pdlu $kerneldir |
| |
| # Explicitly set KBUILD_OUTPUT to ensure that the image directory is cleaned and not |
| # The main build artifacts. We clean the directory to avoid QA errors on mismatched |
| # architecture (since scripts and helpers are native format). |
| KBUILD_OUTPUT="$kerneldir" |
| oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean _mrproper_scripts |
| |
| # make clean generates an absolute path symlink called "source" |
| # in $kerneldir points to $kerneldir, which doesn't make any |
| # sense, so remove it. |
| if [ -L $kerneldir/source ]; then |
| bbnote "Removing $kerneldir/source symlink" |
| rm -f $kerneldir/source |
| fi |
| |
| # As of Linux kernel version 3.0.1, the clean target removes |
| # arch/powerpc/lib/crtsavres.o which is present in |
| # KBUILD_LDFLAGS_MODULE, making it required to build external modules. |
| if [ ${ARCH} = "powerpc" ]; then |
| mkdir -p $kerneldir/arch/powerpc/lib/ |
| cp ${B}/arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o |
| fi |
| |
| chown -R root:root ${D} |
| } |
| |
| INSANE_SKIP_${PN} = "arch" |