Você nunca deve tentar analisar idiomas estrangeiros no shell script. Sempre pode haver alguma advertência inesperada, e isso se torna um pesadelo tentando acomodar todos os cenários. Em vez disso, use o interpretador nativo para analisá-lo e dar o que você deseja.
getmakevar() {
makefile="$1"
var="$2"
make getmakevar -f - <<EOI
include $makefile
getmakevar:
@echo \$($var)
EOI
}
É compatível com POSIX, e irá lidar com todo e qualquer formato possível do makefile (desde que seja um gnu make válido)
# cat Makefile
bar=baz
myvar = /foo/$(bar)
# getmakevar Makefile myvar
/foo/baz