【发布时间】:2017-01-05 06:42:45
【问题描述】:
我正在寻找一种将选项转换为 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
当然,= 不能和select 一起使用,所以上面的方法不起作用。实际的选择列表有点长且不稳定,所以我想避免在另一个文件中包含 #ifdef 的字符串来将它们转换为整数(加上这些值在 Makefile 和 C 文件中使用...... )
我的替代方法是让BUFSIZE 用户可配置,但这是有问题的,因为我不能很好地限制可能的值。同样,如果我为int 指定一个默认值,并运行make oldconfig(该值之前未定义),它会提示我输入一个值。如果您为选择设置了默认值,它似乎不会提示您进行 make oldconfig。这很重要,因为FOOBAR 经常关闭/打开,我希望它在打开时自动选择架构的默认值。
我想知道是否有一个我忽略的干净解决方案。
【问题讨论】:
标签: kbuild