gnu makefile通过要忽略的文件夹列表过滤源文件列表

时间:2019-01-14 18:41:19

标签: linux makefile gnu

可以说我有以下变量:

SOURCES = folder1/a.c folder1/b.c folder2/c.c folder3/d.c folder3/e.c
FILTERS = folder2 folder3

现在,我想设置一个仅包含folder1/a.c folder1/b.c的变量。我已经尝试过$(filter-out folder2%,$(SOURCES)),但这确实删除了未删除的folder2项目。那么也许我可以通过这种方式以某种方式遍历过滤器?

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用:

OUTPUT := $(filter-out $(addsuffix /%,$(FILTERS)),$(SOURCES))

filter-out可以采用多个过滤器并将其全部应用。我建议您使用/%而不是%,这样就不会捕获以目录名开头的文件名。