我希望根据基于通配符的规则子集来制定规则。
例如,在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?