123456789101112131415161718192021222324252627282930313233343536373839 |
- edit ?= service
- GOOS ?= $(shell go env GOHOSTOS)
- GOARCH ?= $(shell go env GOARCH)
- END =
- ifeq (${GOOS}, windows)
- END=.exe
- endif
- EDIT = ${edit}_${GOOS}_${GOARCH}${END}
- commitId = $(shell git rev-parse HEAD)
- GO_TAGS = jsoniter
- GO_LDFLAGS = -w -s -X main.buildOS="${GOHOSTOS}/${GOHOSTARCH}" -X main.commitId="${commitId}"
- GO_FLAGS = -ldflags="${GO_LDFLAGS}" -tags="${GO_TAGS}"
- $(shell go env -w CGO_ENABLED=0)
- catNoGoFile = $(filter-out %.go, $(wildcard ${1}/*))
- catGoFile = $(filter %.go %_test.go, $(wildcard ${1}/*))
- FindGoFile = $(foreach i,${1},$(if $(call catNoGoFile,${i}),$(call FindGoFile,$(call catNoGoFile,${i}))) $(call catGoFile,${i}))
- FILES = $(call FindGoFile,.)
- ${EDIT}:${FILES} Makefile
- @echo "Lock Files: ${FILES}"
- CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} go build -o $@ ${GO_FLAGS} -trimpath ./com
- ${FILES}:
- .PHONY: test clean run
- clean:
- -rm ${EDIT}
- test:
- @echo "Lock Files: ${FILES}"
- run:${EDIT}
- nohup ${EDIT} > server.log 2>&1 &
|