Makefile:过滤掉包含字符的字符串

时间:2011-05-26 21:03:52

标签: makefile gnu-make

我正在尝试过滤掉包含特定字符的字符串,但它不起作用。我猜make不支持多种%模式?

.PHONY: test
test:
    echo $(filter-out %g%, seven eight nine ten)

给出:

$ make test
echo seven eight nine ten
seven eight nine ten

它不过滤掉“八”?实际上我想要做的是从包含“$”的文件名列表中过滤掉。 (在Java环境中。)

有什么希望,还是我必须使用$(shell)

感谢。

2 个答案:

答案 0 :(得分:26)

以下功能是否符合目的?

FILTER_OUT = $(foreach v,$(2),$(if $(findstring $(1),$(v)),,$(v)))
$(call FILTER_OUT,g, seven eight nine ten)

答案 1 :(得分:11)

我最近做了类似的事情,使用两个wildcards函数来排除某些文件

.PHONY: test
test:
    echo $(filter-out $(wildcard *g*.c),$(wildcard *.c))