0
给出一个Makefile前提过滤器生成文件的先决条件
PY_FILES := $(shell find . -type f -name *.py)
my_target: $(PY_FILES)
do_something $(PY_FILES)
是否可以调用do_something
在它的一个子集,即排除如与模式匹配的所有Python文件*/test/*
?
我的理解是,$(filter-out pattern, text)
可以做类似的事情,但模式必须是我想要排除的文件列表。
在这种情况下,我还可以find
与-not
并将结果保存到另一个前提条件,这是我试图避免的 - 我想重用PY_FILES
prereq。
'pattern'必须是* pattern *与您想要排除的文件相匹配。不幸的是,make模式只支持单个通配符元素,所以你不能'$(过滤掉)'容易匹配'*/test/*'的模式。正如你所指出的那样,你可以很容易地忽略那些带有find的东西。 –