Как предложил Мэтт, почему бы вам не использовать что-то вроде:
UC = $(shell echo '$*' | tr '[:lower:]' '[:upper:]')
затем используйте $(UC)
вместо $*
. Или, если вы хотите сделать это более обобщенно:
UC = $(shell echo '$1' | tr '[:lower:]' '[:upper:]')
, затем используйте $(call UC,$*)
(или что-то еще вместо $*
).
Использование рекурсии при попытке использовать специальные средства оболочки кажется слишком трудоемким только для прописных букв строки.