带通配符的规则依赖于其他规则

时间:2014-06-05 12:03:02

标签: filter makefile wildcard

我希望根据基于通配符的规则子集来制定规则。

例如,在Makefile: How to apply an equivalent to filter on multiple wildcards中定义了一个方便的宏包含。

现在假设$(TEST_LIST)包含一系列测试。

使用"包含",我可以写一下:     test-foobar:$(call containing,foobar,$(TEST_LIST)

然后如果TEST_LIST = foobar2 foobar3 bar2 foo5,test-foobar将取决于foobar2 foobar3

我想要达到的目标是:

test-%: $(call containing,%,$(TEST_LIST))

这样我就可以输入make test-foo,test-bar,test-foobar。

不幸的是,上面的回报:

make: *** No rule to make target `test-foobar'.  Stop

所以我挖掘并发现了第二次扩张。所以现在,我的规则看起来像:

test-%: $$(call containing,$$*,$(TEST_LIST))

但那不起作用!我至少需要一个命令,例如:

test-%: $$(call containing,$$*,$(TEST_LIST))
    @echo Done

你知道为什么我需要这个命令@echo?

0 个答案:

没有答案