En un Makefile, ¿cómo puedo recuperar y asignar un hash de confirmación de git a una variable?

A make all clones the git repo. Quiero saber qué es el hash de confirmación y asignar el hash de confirmación de git a una variable que se puede usar más adelante en el file Makefile

p.ej

all: download echo '$(GIT_COMMIT)' download: cd buildarea && git clone git@github.com:proj/project.git $(eval GIT_COMMIT = $(shell cd buildarea/project && git log -l --pretty=format:"%H")) echo '$(GIT_COMMIT)' 

¿Qué le parece usar la function de shell y 2 objectives para ello?

 all: download getver getver: VER=$(shell cd buildarea/project && git log -1 --pretty=format:"%H") getver: @echo GIT_COMMIT=$(VER) download: mkdir -p buildarea && cd buildarea && git@github.com:proj/project.git 

No estoy seguro de por qué, pero parece que después de que git clone $(shell) no pueda cd en el directory. Lo que puede hacer es simplemente realizar el acto completo en una sola llamada de $(shell) .

 all: download echo '$(GIT_COMMIT)' download: $(eval GIT_COMMIT = $(shell git clone git@github.com:proj/project.git buildarea/project && cd buildarea/project && git rev-parse HEAD)) echo '$(GIT_COMMIT)'