Existem muitas soluções, incluindo esta. Em seu Makefile use
VERSION5 := $(shell \
GCC_VERSION=$$(gcc -dumpversion); \
[[ $$GCC_VERSION > 5.0 ]]; \
echo $$? )
ifeq (${VERSION5}, 0)
CFLAGS += -D _POSIX_C_SOURCE=199309L
endif
Observe, em particular, que você precisa usar $$
para cada $
em seu script de shell. Este shell ecoa 0 se a comparação da string com 5.0
for verdadeira, senão 1, e isso é salvo na variável VERSION5
.
Em seguida, o teste ifeq
no Makefile compara a variável com 0 e, se corresponder, edita a variável CFLAGS
.