我有一个Makefile
,其中有很长的目标列表存储在VOFILES
中(我正在构建Coq代码)。在该Makefile
中,我添加了以下规则:
search: $(foreach ff,$(VOFILES),$(if $(findstring $(PTRN),$(ff)),$(ff),))
@echo $^
然后我用以下命令调用Makefile
:
make search PTRN=lib
我期望它可以构建包含字符串lib
的每个目标,但是实际上什么也没有构建。 $^
始终为空(echo
始终产生空白行)。是否有一个原因?有办法解决吗?
EDIT :以下规则将打印空白行,然后打印非常大的行。有什么可以解释这种行为的吗?
search: $(VOFILES)
@echo $^
@echo $(VOFILES)