diff options
author | Ming Liu <liu.ming50@gmail.com> | 2023-05-13 18:05:09 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-06-09 13:55:21 +0100 |
commit | 0241bdb49c52c28cc54ffed5bd4cde387f57451e (patch) | |
tree | 3477c7992dc49da5a8e4afcc41a883f63514165b | |
parent | 7e2199be524e4dd7783c54157d8b4bf9f57664b3 (diff) | |
download | poky-0241bdb49c52c28cc54ffed5bd4cde387f57451e.tar.gz |
meta: introduce KCONFIG_CONFIG_ENABLE_MENUCONFIG
Currently, uboot do_menuconfig task is breaking when UBOOT_CONFIG is
chosen rather than UBOOT_MACHINE, it simply fails with the following
errors:
| make: *** No rule to make target 'menuconfig'. Stio.
| Command failed.
| Press any key to continue...
this is due to the work directory of do_menuconfig is set to ${B} but
not ${B}/$config.
We should distinguish two situations:
1) When there is only one config item in UBOOT_CONFIG, do_menuconfig
should work just like how it works for UBOOT_MACHINE.
2) When there are multiple config items in UBOOT_CONFIG, do_menuconfig
should print out some information saying it's not supported other
than just failing.
This patch mainly aims to fix that by introducing a extra variable
KCONFIG_CONFIG_ENABLE_MENUCONFIG, it would be set to 'false' for
situation 2), and when it's set to 'true', then set
KCONFIG_CONFIG_ROOTDIR correctly in uboot-config.bbclass to let
do_menuconfig task work.
DEVTOOL_DISABLE_MENUCONFIG could be replaced by this new variable
KCONFIG_CONFIG_ENABLE_MENUCONFIG.
(From OE-Core rev: f9e834e317880cf47dbb4f8285bc36d743beae5e)
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes-recipe/cml1.bbclass | 5 | ||||
-rw-r--r-- | meta/classes-recipe/uboot-config.bbclass | 6 | ||||
-rw-r--r-- | meta/recipes-bsp/u-boot/u-boot-configure.inc | 1 | ||||
-rw-r--r-- | scripts/lib/devtool/standard.py | 6 |
4 files changed, 14 insertions, 4 deletions
diff --git a/meta/classes-recipe/cml1.bbclass b/meta/classes-recipe/cml1.bbclass index a09a042c3f..d87d8204e4 100644 --- a/meta/classes-recipe/cml1.bbclass +++ b/meta/classes-recipe/cml1.bbclass | |||
@@ -32,10 +32,15 @@ CROSS_CURSES_INC = '-DCURSES_LOC="<curses.h>"' | |||
32 | TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" | 32 | TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" |
33 | 33 | ||
34 | KCONFIG_CONFIG_COMMAND ??= "menuconfig" | 34 | KCONFIG_CONFIG_COMMAND ??= "menuconfig" |
35 | KCONFIG_CONFIG_ENABLE_MENUCONFIG ??= "true" | ||
35 | KCONFIG_CONFIG_ROOTDIR ??= "${B}" | 36 | KCONFIG_CONFIG_ROOTDIR ??= "${B}" |
36 | python do_menuconfig() { | 37 | python do_menuconfig() { |
37 | import shutil | 38 | import shutil |
38 | 39 | ||
40 | if not bb.utils.to_boolean(d.getVar("KCONFIG_CONFIG_ENABLE_MENUCONFIG")): | ||
41 | bb.fatal("do_menuconfig is disabled, please check KCONFIG_CONFIG_ENABLE_MENUCONFIG variable.") | ||
42 | return | ||
43 | |||
39 | config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config") | 44 | config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config") |
40 | configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig") | 45 | configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig") |
41 | 46 | ||
diff --git a/meta/classes-recipe/uboot-config.bbclass b/meta/classes-recipe/uboot-config.bbclass index fb7a4bc498..9be1d64d3e 100644 --- a/meta/classes-recipe/uboot-config.bbclass +++ b/meta/classes-recipe/uboot-config.bbclass | |||
@@ -140,4 +140,10 @@ python () { | |||
140 | 140 | ||
141 | if not found: | 141 | if not found: |
142 | raise bb.parse.SkipRecipe("The selected UBOOT_CONFIG key %s has no match in %s." % (ubootconfig, ubootconfigflags.keys())) | 142 | raise bb.parse.SkipRecipe("The selected UBOOT_CONFIG key %s has no match in %s." % (ubootconfig, ubootconfigflags.keys())) |
143 | |||
144 | if len(ubootconfig) == 1: | ||
145 | d.setVar('KCONFIG_CONFIG_ROOTDIR', os.path.join(d.getVar("B"), d.getVar("UBOOT_MACHINE").strip())) | ||
146 | else: | ||
147 | # Disable menuconfig for multiple configs | ||
148 | d.setVar('KCONFIG_CONFIG_ENABLE_MENUCONFIG', "false") | ||
143 | } | 149 | } |
diff --git a/meta/recipes-bsp/u-boot/u-boot-configure.inc b/meta/recipes-bsp/u-boot/u-boot-configure.inc index 04e0894752..235623d25a 100644 --- a/meta/recipes-bsp/u-boot/u-boot-configure.inc +++ b/meta/recipes-bsp/u-boot/u-boot-configure.inc | |||
@@ -26,7 +26,6 @@ do_configure () { | |||
26 | unset j | 26 | unset j |
27 | done | 27 | done |
28 | unset i | 28 | unset i |
29 | DEVTOOL_DISABLE_MENUCONFIG=true | ||
30 | else | 29 | else |
31 | if [ -n "${UBOOT_MACHINE}" ]; then | 30 | if [ -n "${UBOOT_MACHINE}" ]; then |
32 | oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} | 31 | oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} |
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 0339d12763..852672810a 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
@@ -968,9 +968,9 @@ def modify(args, config, basepath, workspace): | |||
968 | '}\n') | 968 | '}\n') |
969 | if rd.getVarFlag('do_menuconfig','task'): | 969 | if rd.getVarFlag('do_menuconfig','task'): |
970 | f.write('\ndo_configure:append() {\n' | 970 | f.write('\ndo_configure:append() {\n' |
971 | ' if [ ! ${DEVTOOL_DISABLE_MENUCONFIG} ]; then\n' | 971 | ' if [ ${@ oe.types.boolean(\'${KCONFIG_CONFIG_ENABLE_MENUCONFIG}\') } = True ]; then\n' |
972 | ' cp ${B}/.config ${S}/.config.baseline\n' | 972 | ' cp ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.baseline\n' |
973 | ' ln -sfT ${B}/.config ${S}/.config.new\n' | 973 | ' ln -sfT ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.new\n' |
974 | ' fi\n' | 974 | ' fi\n' |
975 | '}\n') | 975 | '}\n') |
976 | if initial_rev: | 976 | if initial_rev: |