У меня есть '-Wredundant-decls' 'в моем CXXFLAGS, но для одного файла, я хочу удаленный.
В моем make-файле GNU, как я могу структурировать правило удалить просто что часть CXXFLAGS.
Я знаю, как добавить только для того файла, я сделал бы что-то вроде этого:
$O/just_one_file.o: CXXFLAGS += -Wredundant-decls
Так, идеально я сделал бы что-то вроде этого (который не работает) для удаления его:
$O/just_one_file.o: CXXFLAGS -= -Wredundant-decls
Однако, возможно, с некоторым волшебством $, я могу создать некоторый sed или сценарий жемчуга, чтобы разделить-Wredundant-decls и установить CXXFLAGS на разделенное значение:
$O/just_one_file.o: CXXFLAGS = $(shell strip magic here for $CXXFLAGS)
Оболочка не нужна:
$O/just_one_file.o: CXXFLAGS := $(subst -Wredundant-decls,,$(CXXFLAGS))
или
$O/just_one_file.o: CXXFLAGS := $(filter-out -Wredundant-decls,$(CXXFLAGS))
Хорошо, я понял это для себя:
$O/just_one_file.o: CXXFLAGS := $(shell echo ${CXXFLAGS} | sed s/-Wredundant-decls//g)