mfer/Makefile

48 lines
1.0 KiB
Makefile

GOPATH := $(shell go env GOPATH)
export PATH := $(PATH):$(GOPATH)/bin
PROTOC_GEN_GO := $(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 install -v google.golang.org/protobuf/cmd/protoc-gen-go@latest
devprereqs:
which gofumpt || go install -v mvdan.cc/gofumpt@latest
which golangci-lint || go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@latest
mfer: $(PROTOC_GEN_GO) src/*.go cmd/*/*.go
-echo PATH is $(PATH)
-find $(GOPATH)
-echo GOPATH/bin contents:
-find $(GOPATH)/bin
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 .