我有一个项目,在它的 Makefile 中的某个时候,我从某个目录中过滤掉了一些东西:

relevant = $(filter-out irrelevant/%,$^)

现在我想在启用 VPATH 的环境中使用它。所以我在 $^ 中的依赖路径可能不再以 irrelevant 开头,而是像 ../src/irrelevant 或类似的东西。

有没有办法在任何位置过滤掉包含 irrelevant 的任何内容? IE。类似以下内容?
relevant = $(filter-out %irrelevant/%,$^)

这不起作用,因为 filter-out 的模式显然只能包含一个 % 通配符。我知道我可以通过 shell 调用、grep 或其他方式实现这一点,但我希望在 Makefile 中有一些函数组合。

最佳答案

尝试

relevant = $(foreach a,$^,$(if $(findstring irrelevant,$a),,$a))

关于makefile - 使用多个通配符过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28540823/

10-11 17:54