diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2011-11-15 16:10:06 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-12-02 15:19:56 +0000 |
commit | 44cf077ac146a568e28d7a69da4a4f48c55cd2cf (patch) | |
tree | 93f46e402f004e0b1c5a077c57f3c665b7f76074 /meta/classes/kernel-yocto.bbclass | |
parent | 77b0a2dd67e9ffad2d0256191c21a0c48a37a5ad (diff) | |
download | poky-44cf077ac146a568e28d7a69da4a4f48c55cd2cf.tar.gz |
kernel-yocto: support allnoconfig base configuration
When creating a minimal config or creating a hard baseline for
incremental changes, it is often desired to disable all kernel
options and then begin building and enabling only what is required.
To support this workflow, a new variable KCONFIG_MODE is introduced
to contain a hint to the kernel configuration about how the kernel
config should be produced. This variable is passed directly to lkc
when it is invoked during configuration, so the contents of the
variable must be a valid option for the kernel config build.
Additionally, when a defconfig is detected, allnoconfig is enabled
as the default operation, unless otherwise specified by KCONFIG_MODE.
(From OE-Core rev: 644f2e525b910b9ff8d9aaa33f11eba3fefa7c85)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r-- | meta/classes/kernel-yocto.bbclass | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index d555fc04b9..04a2f883b9 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -44,7 +44,8 @@ do_patch() { | |||
44 | } | 44 | } |
45 | 45 | ||
46 | do_kernel_checkout() { | 46 | do_kernel_checkout() { |
47 | if [ -d ${WORKDIR}/git/.git/refs/remotes/origin ]; then | 47 | if [ -d $ |
48 | {WORKDIR}/git/.git/refs/remotes/origin ]; then | ||
48 | echo "Fixing up git directory for ${LINUX_KERNEL_TYPE}/${KMACHINE}" | 49 | echo "Fixing up git directory for ${LINUX_KERNEL_TYPE}/${KMACHINE}" |
49 | rm -rf ${S} | 50 | rm -rf ${S} |
50 | mkdir ${S} | 51 | mkdir ${S} |
@@ -88,8 +89,18 @@ do_kernel_configme[dirs] = "${CCACHE_DIR} ${S} ${B}" | |||
88 | do_kernel_configme() { | 89 | do_kernel_configme() { |
89 | echo "[INFO] doing kernel configme" | 90 | echo "[INFO] doing kernel configme" |
90 | 91 | ||
92 | if [ -n ${KCONFIG_MODE} ]; then | ||
93 | configmeflags=${KCONFIG_MODE} | ||
94 | else | ||
95 | # If a defconfig was passed, use =n as the baseline, which is achieved | ||
96 | # via --allnoconfig | ||
97 | if [ -f ${WORKDIR}/defconfig ]; then | ||
98 | configmeflags="--allnoconfig" | ||
99 | fi | ||
100 | fi | ||
101 | |||
91 | cd ${S} | 102 | cd ${S} |
92 | configme --reconfig --output ${B} ${KBRANCH} ${KMACHINE} | 103 | configme ${configmeflags} --reconfig --output ${B} ${KBRANCH} ${KMACHINE} |
93 | if [ $? -ne 0 ]; then | 104 | if [ $? -ne 0 ]; then |
94 | echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" | 105 | echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" |
95 | exit 1 | 106 | exit 1 |