O problema é que o shell está vendo os parênteses em $RELEASE
fora de qualquer aspas, então está tentando interpretá-los. Duas coisas para tentar: colocar aspas duplas em torno da referência a $(RELEASE)
e usar :=
por isso . Por exemplo:
SHELL:=/bin/bash. #at the top of the makefile
IS_FEDORA22_i686 := $(shell echo "$(RELEASE)" | $(EGREP) -i -c "fc22.i686")
Editar: saída de uname com opções como -m
geralmente não tem quaisquer metacaracteres de shell. O mesmo problema pode acontecer com qualquer variável que tenha. É por isso que é útil definir SHELL
no seu makefile - se o usuário estiver executando csh
, você terá problemas diferentes do que com bash
.