在Makefile中记录当前目标

时间:2011-07-13 08:40:50

标签: build makefile gnu-make

目前我有一个带有多个目标规则的Makefile。它记录目标,然后使用该目标集调用新的Make。

E.g。

$(LIST_OF_PRODUCTS) : 
     @echo Making $@
     @make build_product PRODUCT=$@

输出目录和二进制文件然后使用此产品名称..

如何在不调用新Make实例的情况下记录当前正在多目标规则中构建的目标?

我试过了:

$(LIST_OF_PRODUCTS) : PRODUCT := $@
$(LIST_OF_PRODUCTS) : build_product
      @echo Making $(PRODUCT) Done.

但这不起作用。

1 个答案:

答案 0 :(得分:0)

我想出的最好的是GNU make模板方法:

#
# Template for creating a target
define target-template
.PHONY : ${1}
${1} : TARGET_NAME:=${1}
${1} : check_target $$(OBJECTS)
endef

#
#Generate targets from template
$(foreach target,$(TARGET_LIST),$(eval $(call target-template,$(target))))

然而它只是把我的问题推到别处。由于check_target仅在通过组调用目标​​时调用一次?

E..g

all : target_a target_b