.PHONY: all bootstrap setup build version lint fmt fmt-check test check clean hooks docker BINARY := dnswatcher # VERSION given on the command line (`make build VERSION=...`) or in the # environment, which is how the Dockerfile's VERSION build arg arrives, # wins over what `git describe` says of this checkout. An empty one counts # as not given; `override` is what replaces an empty command-line value. ifeq ($(VERSION),) override VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") endif LDFLAGS := -X main.Version=$(VERSION) # Standard targets are thin shims; the implementations live in script/ # per the scripts-to-rule-them-all pattern (see the Entrypoints section # of README.md). all: check build bootstrap: @script/bootstrap setup: @script/setup build: go build -ldflags "$(LDFLAGS)" -o bin/$(BINARY) ./cmd/dnswatcher # Prints the version `make build` stamps; the Dockerfile checks it. version: @echo "$(VERSION)" test: @script/test lint: @script/lint fmt: @script/fmt fmt-check: @script/fmt-check check: @script/check docker: @script/docker hooks: @script/install-precommit clean: rm -rf bin/