Makefile 858 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. .DEFAULT_GOAL := all
  2. .DELETE_ON_ERROR:
  3. .SUFFIXES:
  4. export
  5. PROJECT := $(shell cat go.mod | grep '^module\s' | cut -b 8-)
  6. export VERSION ?= $(shell date -u '+%F')-snapshot
  7. export DEBUG ?= 0
  8. BUILD_TIME := $(shell date -u '+%F_%T')
  9. COMMIT_HASH := $(shell git rev-parse --short HEAD)
  10. LDFLAGS := '-linkmode external -w -s -extldflags "-static" -X $(PROJECT).Version=$(VERSION)'
  11. GCFLAGS :=
  12. ifeq ($(DEBUG),1)
  13. GCFLAGS = "all=-N -l"
  14. endif
  15. .PHONY: all
  16. all: deps fmt test
  17. .PHONY: deps
  18. deps:
  19. -@echo "-> $@"
  20. go mod tidy
  21. .PHONY: fmt
  22. fmt:
  23. -@echo "-> $@"
  24. -go fmt $(shell go list ./...)
  25. .PHONY: test
  26. test:
  27. -@echo "-> $@"
  28. CGO_ENABLED=1 go test $(shell go list ./...)
  29. -go vet $(shell go list ./...)
  30. .PHONE: gen-proto
  31. gen-proto:
  32. -@echo "-> $@"
  33. @protoc -I=. --go_out=paths=source_relative:. --python_out=. proto/*.proto
  34. @cp proto/*.pb.go ./
  35. -@rm proto/*.pb.go