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

Makefile Make:使用自动变量从文件中展开规则列表,makefile,gnu-make,Makefile,Gnu Make,假设我有以下文件: // 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 fo

假设我有以下文件:

// 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))
然而,我尝试过的每一种语义排列都失败了。有没有办法动态计算此规则列表?

您可以使用:

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

.SECONDEXPANSION:

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