web-dev-qa-db-ja.com

Makefile:文字を含む文字列を除外します

特定の文字を含む文字列を除外しようとしていますが、機能しません。 makeは複数の_%_パターンをサポートしていないと思いますか?

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

与える:

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

「8」を除外しませんか?実際に私がやりたいのは、「$」を含むファイル名のリストから除外することです。 (Javaコンテキストで。)

希望はありますか、それとも$(Shell)を使用する必要がありますか?

ありがとう。

23
Steve

次の機能は目的を満たしていますか?

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

最近、いくつかのファイルを除外するために2つのwildcards関数を使用して同様のことを行いました

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