Egy kis megtakarítás (vagyis csak egy shell/uname-hívás lesz):
UNAME := $(shell uname)
Illusztráció:
UN1 = $(shell uname)
UN2 := $(shell uname)
valuetest:
$(info UN1=${UN1}, $$(value UN1)=$(value UN1))
$(info UN2=${UN2}, $$(value UN2)=$(value UN2))
@echo 'UN1=${UN1}, $$(value UN1)=$(value UN1)'
@echo 'UN2=${UN2}, $$(value UN2)=$(value UN2)'
A biztonság kedvéért info-val és echo-val is kiiratjuk ugyanazt:
UN1=Linux, $(value UN1)=$(shell uname)
UN2=Linux, $(value UN2)=Linux
UN1=Linux, $(value UN1)=$(shell uname)
UN2=Linux, $(value UN2)=Linux
Ebből azt kellene látni, hogy az 'UN1' egy 'programot' tárol, amit a ${UN1} használatakor futatt, az 'UN2' viszont rögtön a program kimenetét tárolja.