Makefile 949 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. edit ?= service
  2. GOOS ?= $(shell go env GOHOSTOS)
  3. GOARCH ?= $(shell go env GOARCH)
  4. END =
  5. ifeq (${GOOS}, windows)
  6. END=.exe
  7. endif
  8. EDIT = ${edit}${END}
  9. commitId = $(shell git rev-parse HEAD)
  10. GO_TAGS = jsoniter
  11. GO_LDFLAGS = -w -s -X main.buildOS="${GOHOSTOS}/${GOHOSTARCH}" -X main.commitId="${commitId}"
  12. GO_FLAGS = -ldflags="${GO_LDFLAGS}" -tags="${GO_TAGS}"
  13. $(shell go env -w CGO_ENABLED=0)
  14. catNoGoFile = $(filter-out %.go, $(wildcard ${1}/*))
  15. catGoFile = $(filter %.go %_test.go, $(wildcard ${1}/*))
  16. FindGoFile = $(foreach i,${1},$(if $(call catNoGoFile,${i}),$(call FindGoFile,$(call catNoGoFile,${i}))) $(call catGoFile,${i}))
  17. FILES = $(call FindGoFile,.)
  18. ${EDIT}:${FILES} Makefile
  19. @echo "Lock Files: ${FILES}"
  20. CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} go build -o $@ ${GO_FLAGS} -trimpath ./com
  21. ${FILES}:
  22. .PHONY: test clean run
  23. clean:
  24. -rm ${EDIT}
  25. test:
  26. @echo "Lock Files: ${FILES}"
  27. run:${EDIT}
  28. nohup ${EDIT} > server.log 2>&1 &