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))
.....我想。未实际测试:)
假设我有以下文件:
// 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))
.....我想。未实际测试:)