CUR_SHA=$(shell git log -n1 --pretty='%h') CUR_BRANCH=$(shell git branch --show-current) VERSION=$(shell git describe --exact-match --tags $(CUR_SHA) 2>/dev/null || echo $(CUR_BRANCH)-$(CUR_SHA)) CTN:=$(shell which podman 2>&1 1>/dev/null && echo "podman" || echo "docker") PREFIX=~/.local GO=container BLD_CMD=go build -o katenary -ldflags="-X 'main.Version=$(VERSION)'" . GOOS=linux GOARCH=amd64 BUILD_IMAGE=docker.io/golang:1.17 .PHONY: help clean build .ONESHELL: help: @cat < Build in host using go" @echo else @echo "=> Build in container using" $(CTN) @echo endif echo $(BLD_CMD) ifeq ($(GO),local) $(BLD_CMD) else ifeq ($(CTN),podman) @podman run -e CGO_ENABLED=0 -e GOOS=$(GOOS) -e GOARCH=$(GOARCH) --rm -v $(PWD):/go/src/katenary:z -w /go/src/katenary --userns keep-id -it docker.io/golang $(BLD_CMD) else @docker run -e CGO_ENABLED=0 -e GOOS=$(GOOS) -e GOARCH=$(GOARCH) --rm -v $(PWD):/go/src/katenary:z -w /go/src/katenary --user $(shell id -u):$(shell id -g) -e HOME=/tmp -it docker.io/golang $(BLD_CMD) endif install: build cp katenary $(PREFIX)/bin/katenary uninstall: rm -f $(PREFIX)/bin/katenary clean: rm -f katenary