1 .PHONY: default build full_build test
7 BUILD_BIN=${BUILD_DIR}/${APP_NAME}
8 VERSION_AUTOGEN_FN=version_autogen.go
9 BUILD_VERSION_FN=${BUILD_DIR}/version_autogen.go
13 build: _build_dir _version_file
14 @echo - Build "${APP_NAME}" as '${BUILD_BIN}'
15 @go build -v -o ${BUILD_BIN} ./*.go
17 full_build: test build
20 @echo Run tests for supplimentary code
21 @go test -v git_purged
25 @echo Download test dependencies
26 @go get -v -d -t ./src/git_purged
29 @echo - Prepare build directory
30 @test -d ${BUILD_DIR} || mkdir ${BUILD_DIR}
32 _version_file: _build_dir
33 @echo - Prepare build version
34 @cp -f version.go.template ${BUILD_VERSION_FN}
36 @echo - Collecting build version details
37 $(eval GIT_ORIGIN:=$(shell git config --get remote.origin.url || (echo -n local/; git rev-parse --abbrev-ref HEAD) ))
38 @sed -i -e 's^%BUILD_GIT_ORIGIN%^${GIT_ORIGIN}^g' ${BUILD_VERSION_FN}
39 $(eval GIT_COMMIT:=$(shell git log -1 --format=%h))
40 @sed -i -e 's^%BUILD_GIT_COMMIT%^${GIT_COMMIT}^g' ${BUILD_VERSION_FN}
41 $(eval BUILD_DATE:=$(shell date +%s))
42 @sed -i -e 's^%BUILD_DATE%^${BUILD_DATE}^g' ${BUILD_VERSION_FN}
43 @echo - Build version ORIGIN: ${GIT_ORIGIN}, COMMIT: ${GIT_COMMIT}, DATE: ${BUILD_DATE}
45 @ln -sf ${BUILD_VERSION_FN} ./${VERSION_AUTOGEN_FN}
48 @echo - Clean build artefacts up
50 @test -f ./${VERSION_AUTOGEN_FN} && unlink ./${VERSION_AUTOGEN_FN} || /bin/true