BUILD_TIME=$(shell date "+%FZ%T") COMMIT_SHA1=$(shell git rev-parse HEAD) ct=$(shell git log -1 --format="%ct") COMMIT_TIME= $(shell date -d "1970-01-01 UTC $(ct) seconds" "+%FZ%T") GIT_TAG=$(shell git describe --exact-match HEAD 2> /dev/null) GIT_BRANCH:=$(if $(BRANCH_NAME),$(BRANCH_NAME),$(shell git rev-parse --abbrev-ref HEAD)) VERSION_PACKAGE=gogs.baozhida.cn/Cold_Logistic_libs/pkg/contrib/version 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}" GOCMD=go GOBUILD=$(GOCMD) build GOCLEAN=$(GOCMD) clean GOTEST=$(GOCMD) test GOGET=$(GOCMD) get GOGENERATE=$(GOCMD) generate GOVET=$(GOCMD) vet OS_TYPE=$(shell go env GOOS) BINARY_NAME := $(PROJECT_NAME) ifeq ($(OS_TYPE),windows) GO_OUT_EXT := .exe endif all: build_server .PHONY: build build: $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME)$(GO_OUT_EXT) -v ./cmd/$(PROJECT_NAME)/main.go .PHONY: test test:generate $(GOTEST) -v ./... .PHONY: clean clean: $(GOCLEAN) rm -f ./cmd/$(BINARY_NAME) rm -f ./cmd/$(BINARY_NAME) .PHONY: changelog changelog: git tag -ln --sort=taggerdate > ./CHANGELOG .PHONY: generate generate: $(GOGENERATE) -x ./... .PHONY: vet vet: $(GOVET) ./... fmt: # go install mvdan.cc/gofumpt@latest gofumpt -l -w -extra . .PHONY: swagger swagger: swag fmt swag init -g ./cmd/$(PROJECT_NAME)/main.go -o ./doc --parseDependency true # Cross compilation .PHONY: build-linux build-linux: GOOS=linux GOARCH=amd64 $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME) -v ./cmd/$(PROJECT_NAME)/main.go .PHONY: build-win build-win: GOOS=windows GOARCH=amd64 $(GOBUILD) --ldflags ${flags} -o ./cmd/$(PROJECT_NAME)/$(BINARY_NAME).exe -v ./cmd/$(PROJECT_NAME)/main.go # 编译server程序 build_server : make build PROJECT_NAME:=cclogisticserver