u-boot makefile $$
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)
跟我一起學(xué)Makefile.pdf:
變量在聲明時需要給予初值,而在使用時,需要給在變量名前加上“$”符號,但最好用小括號“()”或是大括號“{}”把變量給包括起來。如果你要使用真實的“$”字符,那么你需要用“$$”來表示。
$(UBOOTVERSION)表示變量UBOOTVERSION
$$表示$
$$($(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的規(guī)則命令,如果相互之間沒有使用';\'連接起來的話,相互之間是不能共享變量的。
CONFIG_SHELL :=/bin/bash
$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree)) --> $(/bin/bash $(srctree)/scripts/setlocalversion $(srctree)) 這是一條shell命令
$() 和`` 都表示 `命令` $(命令)
另外:$$var才表示訪問shell命令中定義的變量var
$$(var)--> $(var) var要是一條命令,否則會報錯 。
總結(jié)
以上是生活随笔為你收集整理的u-boot makefile $$的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小白学 Python 数据分析(9):P
- 下一篇: 基于Quartz.net 的任务调度平台