Make:使用自动变量从文件扩展规则列表

Make: expand rule list from file using automatic variables

假设我有以下文件:

// name: listfile
one 
two 
three

以及以下生成文件:

.PHONY: foo

foo: $(foreach member,$(shell cat listfile),bar-$(member))

bar-%:
  @echo "bar-$*"

如果我运行

$: make foo 
bar-one
bar-two
bar-three

现在,我想抽象 listfile 名称,这样我就可以写:

// in the makefile

foo-%: $(foreach member,$(shell cat %),bar-$(member))

然而,我尝试过的每一个语义排列都失败了。有没有办法动态计算这个规则列表?

您可以使用 secondary expansion:

.SECONDEXPANSION:

foo-%: $$(foreach member,$$(shell cat $$*),bar-$$(member))

.....我想。未实际测试:)