我已经开始了一个项目,在其Makefile中的某个时刻,我会过滤掉某个目录中的内容:
relevant = $(filter-out irrelevant/%,$^)
现在我想在启用VPATH
的环境中使用它。因此,$^
中我的依赖关系的路径可能不再以irrelevant
开头,而是以../src/irrelevant
或类似的方式开头。
有没有办法在任何位置过滤掉包含 irrelevant
的任何内容?即类似下面的东西?
relevant = $(filter-out %irrelevant/%,$^)
这不起作用,因为filter-out
的模式显然只能包含一个%
通配符。我知道我可以通过shell调用,grep或其他方式实现这一点,但我希望在Makefile中有一些函数组合。
答案 0 :(得分:5)
尝试
relevant = $(foreach a,$^,$(if $(findstring irrelevant,$a),,$a))