Makefile 993 B

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