从Makefilevariables中删除项目?

我有一个makefile,其中包括几个其他的生成文件,而这又转而添加到这样一个variables:

VAR := Something SomethingElse VAR += SomeOtherThing (...) 

现在我想从VARvariables中删除SomethingElse 。 我用什么来代替(...)来做到这一点?

我正在使用GNU Make,而GNU Make特定的解决scheme将会很好。

如果您使用的是GNU Make,您可以使用filter-out文本function 。

 OTHERVAR := $(filter-out SomethingElse,$(VAR)) 

在上面的正确答案之上:

 VAR = bla1 bla2 bla3 bla4 bla5 TMPVAR := $(VAR) VAR = $(filter-out bla3, $(TMPVAR)) all: @echo "VAR is: $(VAR)" 

输出:
VAR是:bla1 bla2 bla4 bla5

请注意,这将在执行过滤时打破所有“recursion性”,但在您的情况下可能无关紧要。