Ответ 1
Вы можете использовать filter-out
текстовую функцию, если вы используете GNU Make.
OTHERVAR := $(filter-out SomethingElse,$(VAR))
У меня есть makefile, который включает в себя несколько других make файлов, которые, в свою очередь, все добавляют к переменной вроде этого:
VAR := Something SomethingElse
VAR += SomeOtherThing
(...)
Теперь я хочу удалить SomethingElse
из переменной VAR
. Что я делаю вместо (...)
для этого?
Я использую GNU Make, и GNU Make конкретное решение будет в порядке.
Вы можете использовать filter-out
текстовую функцию, если вы используете GNU Make.
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
Обратите внимание, что это прерывает всю "рекурсию" при выполнении фильтрации, но это может не иметь значения в вашем случае.