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的東西。 –