我正在寻找一种将选项转换为 Kconfig 文件中的 int 的方法。例如,我想要:
config BUFSIZE
int
choice
prompt "choose a buffersize"
depends on FOOBAR
default 10 if FOO
default 15 if BAR
default 20
config SIZE10
bool "10"
depends on !FOO
select BUFSIZE=10
config SIZE15
bool "15"
depends on FOOBAR | BAR
select BUFSIZE=15
config SIZE20
bool "20"
depends on BAR
select BUFSIZE=20
endchoice
当然,你不能使用=
with select
,所以上面的行不通。实际的选择列表有点长且不稳定,所以我想避免#ifdef
在另一个文件中有一个字符串来将它们转换为整数(加上这些值在 Makefiles 和 C 文件中使用......)
我的替代方法是让BUFSIZE
用户可配置,但这是有问题的,因为我不能很好地限制可能的值。同样,如果我为 , 指定一个默认值int
并运行make oldconfig
(该值之前未定义),它会提示我输入一个值。如果您为选择设置了默认值,它似乎不会提示您进行 make oldconfig。这很重要,因为FOOBAR
它经常关闭/打开,我希望它在打开时自动选择架构的默认值。
我想知道是否有一个我忽略的干净解决方案。