Seu erro é o vazio |)
.
No entanto, se você quiser remover certas palavras de uma única linha , o egrep não ajudará você. Você precisa usar algo como sed
:
export ADD_CXXFLAGS=$(echo " $CXXFLAGS " | sed 's/ / /g;s/ \(-DDEBUG\|-DNDEBUG\|-O[0-9]\|-Os\|-Og\) / /g')
O texto acima adiciona um espaço em torno dos sinalizadores para simplificar e, em seguida, substitui qualquer um dos seus
palavras por um espaço. Portanto, CXXFLAGS="-DDEBUG -g2 -O2 $ADD_CXXFLAGS"
se torna ADD_CXXFLAGS=-g2
.
Note que você pode fazer esse tipo de manipulação dentro do Makefile:
ADD_CXXFLAGS=$(filter-out -DDEBUG -DNDEBUG -O1 -O2 -O3 -04 -O5 -O6 -O7 -O8 -O9 -Os -Og, $(CXXFLAGS))