30 lines
861 B
Makefile
30 lines
861 B
Makefile
|
DOGGO-BIN := doggo.bin
|
||
|
|
||
|
HASH := $(shell git rev-parse --short HEAD)
|
||
|
COMMIT_DATE := $(shell git show -s --format=%ci ${HASH})
|
||
|
BUILD_DATE := $(shell date '+%Y-%m-%d %H:%M:%S')
|
||
|
VERSION := ${HASH} (${COMMIT_DATE})
|
||
|
|
||
|
.PHONY: build
|
||
|
build: ## Build the doggo binary
|
||
|
mkdir -p bin/; \
|
||
|
cd cmd/; \
|
||
|
go build -ldflags="-X 'main.buildVersion=${VERSION}' -X 'main.buildDate=${BUILD_DATE}'" -o ${DOGGO-BIN} ./... && \
|
||
|
mv ${DOGGO-BIN} ../bin/${DOGGO-BIN}
|
||
|
|
||
|
.PHONY: run
|
||
|
run: build ## Build and Execute the binary after the build step
|
||
|
./bin/${DOGGO-BIN}
|
||
|
|
||
|
fresh: clean build
|
||
|
|
||
|
clean:
|
||
|
go clean
|
||
|
- rm -f ./bin/${BIN}
|
||
|
|
||
|
# pack-releases runns stuffbin packing on a given list of
|
||
|
# binaries. This is used with goreleaser for packing
|
||
|
# release builds for cross-build targets.
|
||
|
pack-releases:
|
||
|
$(foreach var,$(RELEASE_BUILDS),stuffbin -a stuff -in ${var} -out ${var} ${STATIC} $(var);)
|