如何在构建时将变量注入 u-boot 构建

问题描述 投票:0回答:2

我是u-boot新手

我希望能够在构建时使用不同的构建选项制作 u-boot。例如。我可能有这样的

build.sh

source /path/to/target-toolchain

make distclean
make MyHardware_defconfig
make V=1

甚至更好:

make distclean
make MyHardware_defconfig
make CONFIG_ENABLE_CONSOLE=1 V=1

在 MyHardware.c 中:

#if !defined CONFIG_ENABLE_CONSOLE
  #error CONFIG_ENABLE_CONSOLE not defined!!!!!
#endif

我尝试将 CONFIG_ENABLE_CONSOLE=1 添加到 MyHardware_defconfig 但是在构建时得到错误行

我也试过 make CONFIG_ENABLE_CONSOLE=1 V=1 但也和上面的错误一样。

如何设置我的项目,以便为启用和禁用的控制台构建?无需在 u-boot 源代码中硬编码。

c makefile preprocessor u-boot
2个回答
0
投票

uboot makefile 有:

# Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
KBUILD_CPPFLAGS += $(KCPPFLAGS)
KBUILD_AFLAGS += $(KAFLAGS)
KBUILD_CFLAGS += $(KCFLAGS)

所以这适用于构建脚本:

export KCPPFLAGS+=" -DCONFIG_ENABLE_CONSOLE"

然后运行 make


-1
投票
make MyHardware_defconfig

创建文件 .config。通常的编辑方式是调用

make menuconfig

如果你想在脚本中修改.config,你可以使用sed.

配置选项在名为 Kconfig 的文件中定义。 https://www.kernel.org/doc/html/v5.18/kbuild/kconfig-language.html 描述了Kconfig 文件的语法。

© www.soinside.com 2019 - 2024. All rights reserved.