Я сделал готовый к использованию макрос IF_GCC, основываясь на ответах выше:
MY_GCC_VERSION=$(if $(GCC_VERSION),$(GCC_VERSION),$(GCC_DEFAULT_VER))
MY_GCC_TOINT=$(shell echo $(1) | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$//')
MY_IF_GCC=$(if $(shell test $(call MY_GCC_TOINT, $(MY_GCC_VERSION)) -$(1) $(2) || echo 0),$(4),$(3))
GCC_DEFAULT_VER:=$(firstword $(shell cc -V 2>&1 | grep default | sed -r 's/( *)([0-9.]+),(.*)/\2/g'))
Использование: $(call MY_IF_GCC,ge,30305,-fan_option_for_gcc_ge_3.3.5)
В качестве второго аргумента вы можете использовать любой оператор из поддерживаемых test (1): eq, gt, lt, ge, le и т. Д.
Если cc -V не работает для вас, замените его на gcc -dumpversion или любым другим подходящим
Надеюсь, это поможет.