目前我有一个带有多个目标规则的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.
但这不起作用。
答案 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