mirror of
https://git.yoctoproject.org/poky
synced 2026-02-07 01:06:37 +01:00
Tthe kernel populate_sysroot can come from sstate, we need the full source here. We therefore depend on the configure task which isn't covered by sstate to ensure we get the right set of files. (From OE-Core rev: c3598cf720e04ab27ab5d2817c09f2496b677560) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
66 lines
2.5 KiB
BlitzBasic
66 lines
2.5 KiB
BlitzBasic
SUMMARY = "Linux kernel Development Source"
|
|
DESCRIPTION = "Development source linux kernel. When built, this recipe packages the \
|
|
source of the preferred virtual/kernel provider and makes it available for full kernel \
|
|
development or external module builds"
|
|
|
|
SECTION = "kernel"
|
|
|
|
LICENSE = "GPLv2"
|
|
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
|
|
|
|
inherit linux-kernel-base
|
|
|
|
# Whilst not a module, this ensures we don't get multilib extended (which would make no sense)
|
|
inherit module-base
|
|
|
|
# We need the kernel to be staged (unpacked, patched and configured) before
|
|
# we can grab the source and make the kernel-devsrc package
|
|
do_install[depends] += "virtual/kernel:do_populate_sysroot"
|
|
# Need the source, not just the output of populate_sysroot
|
|
do_install[depends] += "virtual/kernel:do_configure"
|
|
|
|
# There's nothing to do here, except install the source where we can package it
|
|
do_fetch[noexec] = "1"
|
|
do_unpack[noexec] = "1"
|
|
do_patch[noexec] = "1"
|
|
do_configure[noexec] = "1"
|
|
do_compile[noexec] = "1"
|
|
do_populate_sysroot[noexec] = "1"
|
|
|
|
# Define where the kernel headers are installed on the target as well as where
|
|
# they are staged.
|
|
KERNEL_SRC_PATH = "/usr/src/kernel"
|
|
S = "${STAGING_DIR_TARGET}/${KERNEL_SRC_PATH}"
|
|
|
|
KERNEL_VERSION = "${@get_kernelversion_headers('${S}')}"
|
|
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
do_install() {
|
|
kerneldir=${D}${KERNEL_SRC_PATH}
|
|
install -d $kerneldir
|
|
|
|
#
|
|
# 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 ${S}
|
|
find . -type d -name '.git*' -prune -o -type f -print0 | cpio --null -pdlu $kerneldir
|
|
oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean _mrproper_scripts
|
|
|
|
# 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 ${S}/arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
|
|
fi
|
|
}
|
|
# Ensure we don't race against "make scripts" during cpio
|
|
do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
|
|
|
|
PACKAGES = "kernel-devsrc"
|
|
FILES_${PN} = "${KERNEL_SRC_PATH}"
|
|
RDEPENDS_${PN} = "bc"
|