Versión dinámica de git con go get

Estoy usando tags git para inyectar versiones en mis progtwigs go, por ejemplo en un Makefile :

 VERSION = $(shell git describe --always --dirty) github_pki: main.go CGO_ENABLED=0 GOOS=linux \ go build -a \ -ldflags="-X main.version=$(VERSION)" \ -installsuffix cgo -o [email protected] $< 

Donde la version se define en main.go como:

 var version = "undefined" 

Esto funciona muy bien usando make , pero no cuando se usa go get o go build . ¿Hay alguna manera de hacer que este ldflags funcione sin usar un sistema de compilation externo (es decir, con go build / go get )?

Es lo siguiente que quieres?

 VERSION=`git describe --always --dirty`; \ CGO_ENABLED=0 GOOS=linux \ go build -a \ -ldflags="-X main.version=$(VERSION)" \ -installsuffix cgo -o github_pki main.go