PROTOC_GEN_GO := $(shell go env GOPATH)/bin/protoc-gen-go ARCH := $(shell uname -m) VERSION := $(shell git describe --always --dirty=-dirty) GOLDFLAGS += -X main.Version=$(VERSION) GOLDFLAGS += -X main.Buildarch=$(ARCH) GOFLAGS := -ldflags "$(GOLDFLAGS)" default: run run: ./mfer ./$< ./$< gen $(PROTOC_GEN_GO): test -e $(PROTOC_GEN_GO) || go get -u github.com/golang/protobuf/protoc-gen-go prereqs: $(PROTOC_GEN_GO) which gofumpt || go install -v mvdan.cc/gofumpt@latest which golangci-lint || go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@latest which protoc || go install -v github.com/golang/protobuf/protoc-gen-go@5d5e8c018a13017f9d5b8bf4fad64aaa42a87308 mfer: prereqs src/*.go cmd/*/*.go cd proto && go generate . cd cmd/mfer && go build -o ../../mfer $(GOFLAGS) . clean: rm -rfv proto/*.pb.go ./mfer fmt: prereqs gofumpt -l -w src cmd golangci-lint run --fix prettier -w *.json *.md lint: golangci-lint run sh -c 'test -z "$$(gofmt -l .)"' dockerbuild: docker build .