我有一个食谱:
define postmake
ZZZ=$(strip $(1))
echo $(ZZZ) $(ZZZ)
endef
$(1)是传递给它的第一个参数。调用配方时,echo命令仅打印变量的第一个扩展。第二个丢失了。 如何在同一行中两次展开/使用相同的变量?
objcopy something.elf -O binary something.bin
我需要它(something
是变量,在我的情况下,第二个文件变为.bin
,显然是错误的。)
更新:我使用Boilermake作为模板。除了这个食谱之外的其他所有东西都可以很好我像这样调用postmake
食谱:
TARGET :=main.elf
TGT_POSTMAKE := ${postmake}$(TARGET)
答案 0 :(得分:0)
事实证明,在Boilermake中,当指定TGT_POSTMAKE
时,只能定义配方名称。
正确的方式:
TGT_POSTMAKE := $(postmake)
方式不正确:
TGT_POSTMAKE := $(postmake) $(TARGET)
然后在postmake
食谱而不是像$(1)
这样的参数中,只需使用$(TARGET)
。