Você precisaria primeiro armazenar o valor em uma variável do shell:
MINOR_VERSION := $(shell v='$(FULL_VERSION)'; echo "$${v%.*}")
(assumindo que $(FULL_VERSION)
não contém aspas simples)
Agora, isso chama sh
, não bash
. ${var%pattern}
é um operador padrão sh
(vem de ksh
).
Se você quiser usar operadores bash
específicos, precisará informar make
para chamar bash
em vez de sh
com
SHELL = bash
Cuidado, porém, que muitos sistemas não têm bash
instalado por padrão, o que tornaria seu Makefile não-portátil (mas, alguns sistemas não têm o GNU make
e você já está usando alguns GNUisms lá ).