u-boot makefile中如何实现长尾词的优化?

2026-04-16 22:581阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计318个文字,预计阅读时间需要2分钟。

u-boot makefile中如何实现长尾词的优化?

bash定义文件检查U-Boot版本,并输出版本信息

define filechk_uboot.release
echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
endef

# Store (new) UBOOTRELEASE string in include/config/uboot.release
include/config/uboot.release: include/config/auto.conf FORCE
$(call filechk,uboot.release)

跟我一起学Makefile.pdf:

变量在声明时需要给予初值,而在使用时,需要给在变量名前加上“$”符号,但最好用小括号“()”或是大括号“{}”把变量给包括起来。如果你要使用真实的“$”字符,那么你需要用“$$”来表示。

$(UBOOTVERSION)表示变量UBOOTVERSION

$$表示$

u-boot makefile中如何实现长尾词的优化?

$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree)) --> $($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi ; fi)

以上 用到了$$var:访问shell命令中定义的变量var。在Makefile的规则命令,如果相互之间没有使用‘;\‘连接起来的话,相互之间是不能共享变量的。

CONFIG_SHELL :=/bin/bash

$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree)) --> $(/bin/bash $(srctree)/scripts/setlocalversion $(srctree)) 这是一条shell命令

$() 和`` 都表示 `命令` $(命令)

另外:$$var才表示访问shell命令中定义的变量var

$$(var)--> $(var) var要是一条命令,否则会报错。

本文共计318个文字,预计阅读时间需要2分钟。

u-boot makefile中如何实现长尾词的优化?

bash定义文件检查U-Boot版本,并输出版本信息

define filechk_uboot.release
echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
endef

# Store (new) UBOOTRELEASE string in include/config/uboot.release
include/config/uboot.release: include/config/auto.conf FORCE
$(call filechk,uboot.release)

跟我一起学Makefile.pdf:

变量在声明时需要给予初值,而在使用时,需要给在变量名前加上“$”符号,但最好用小括号“()”或是大括号“{}”把变量给包括起来。如果你要使用真实的“$”字符,那么你需要用“$$”来表示。

$(UBOOTVERSION)表示变量UBOOTVERSION

$$表示$

u-boot makefile中如何实现长尾词的优化?

$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree)) --> $($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi ; fi)

以上 用到了$$var:访问shell命令中定义的变量var。在Makefile的规则命令,如果相互之间没有使用‘;\‘连接起来的话,相互之间是不能共享变量的。

CONFIG_SHELL :=/bin/bash

$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree)) --> $(/bin/bash $(srctree)/scripts/setlocalversion $(srctree)) 这是一条shell命令

$() 和`` 都表示 `命令` $(命令)

另外:$$var才表示访问shell命令中定义的变量var

$$(var)--> $(var) var要是一条命令,否则会报错。