Build Golang projects properly with Makefiles
pt.slideshare.net
pt.slideshare.net
BUILD=`git rev-parse HEAD`
LDFLAGS=-ldflags "-X main.Version=${VERSION} -X main.Build=${BUILD}"
# ...
$(BINARY):
go build ${LDFLAGS} -o {$BINARY} ./..
Please don't do that. This ties the build process to be run from inside the
git repository, which starts to be a problem if you have any sane method of
code deployment (building source packages). Think of something different.And yes, there is a typo in the build rules.
${BINARY}: main.go
go build $< -o $@
this way, make will know to re-build the binary only if the source code has changed.