Makefile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. BUILD_TIME=$(shell date "+%FZ%T")
  2. COMMIT_SHA1=$(shell git rev-parse HEAD)
  3. ct=$(shell git log -1 --format="%ct")
  4. COMMIT_TIME= $(shell date -d "1970-01-01 UTC $(ct) seconds" "+%FZ%T")
  5. GIT_TAG=$(shell git describe --exact-match HEAD 2> /dev/null)
  6. GIT_BRANCH:=$(if $(BRANCH_NAME),$(BRANCH_NAME),$(shell git rev-parse --abbrev-ref HEAD))
  7. VERSION_PACKAGE=gogs.baozhida.cn/Cold_Logistic_libs/pkg/contrib/version
  8. flags="-X $(VERSION_PACKAGE).BuildTime=${BUILD_TIME} -X $(VERSION_PACKAGE).CommitTime=${COMMIT_TIME} -X $(VERSION_PACKAGE).CommitID=${COMMIT_SHA1} -X $(VERSION_PACKAGE).GitTag=${GIT_TAG} -X $(VERSION_PACKAGE).GitBranch=${GIT_BRANCH}"
  9. GOCMD=go
  10. GOBUILD=$(GOCMD) build
  11. GOCLEAN=$(GOCMD) clean
  12. GOTEST=$(GOCMD) test
  13. GOGET=$(GOCMD) get
  14. GOGENERATE=$(GOCMD) generate
  15. GOVET=$(GOCMD) vet
  16. OS_TYPE=$(shell go env GOOS)
  17. BINARY_NAME := $(PROJECT_NAME)
  18. ifeq ($(OS_TYPE),windows)
  19. GO_OUT_EXT := .exe
  20. endif
  21. all: build_server
  22. .PHONY: build
  23. build:
  24. $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME)$(GO_OUT_EXT) -v ./cmd/$(PROJECT_NAME)/main.go
  25. .PHONY: test
  26. test:generate
  27. $(GOTEST) -v ./...
  28. .PHONY: clean
  29. clean:
  30. $(GOCLEAN)
  31. rm -f ./cmd/$(BINARY_NAME)
  32. rm -f ./cmd/$(BINARY_NAME)
  33. .PHONY: changelog
  34. changelog:
  35. git tag -ln --sort=taggerdate > ./CHANGELOG
  36. .PHONY: generate
  37. generate:
  38. $(GOGENERATE) -x ./...
  39. .PHONY: vet
  40. vet:
  41. $(GOVET) ./...
  42. fmt:
  43. # go install mvdan.cc/gofumpt@latest
  44. gofumpt -l -w -extra .
  45. .PHONY: swagger
  46. swagger:
  47. swag fmt
  48. swag init -g ./cmd/$(PROJECT_NAME)/main.go -o ./doc --parseDependency true
  49. # Cross compilation
  50. .PHONY: build-linux
  51. build-linux:
  52. GOOS=linux GOARCH=amd64 $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME) -v ./cmd/$(PROJECT_NAME)/main.go
  53. .PHONY: build-win
  54. build-win:
  55. GOOS=windows GOARCH=amd64 $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME).exe -v ./cmd/$(PROJECT_NAME)/main.go
  56. # 编译server程序
  57. build_server :
  58. make build PROJECT_NAME:=cclogisticserver