Makefile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. BUILD_PATH ?= _build
  2. PACKAGES_PATH ?= _packages
  3. GO111MODULE ?=
  4. GOPROXY ?= https://goproxy.io
  5. GOOS ?= ""
  6. GOARCH ?= ""
  7. VERSION := $(shell git describe --tags --always)
  8. PACKAGE_NAME := kuiper-$(VERSION)
  9. ifeq ($(GOOS), "")
  10. PACKAGE_NAME := $(PACKAGE_NAME)-$(shell uname -s | tr "[A-Z]" "[a-z]")
  11. else
  12. PACKAGE_NAME := $(PACKAGE_NAME)-$(GOOS)
  13. endif
  14. ifeq ($(GOARCH), "")
  15. PACKAGE_NAME := $(PACKAGE_NAME)-$(shell uname -m)
  16. else
  17. PACKAGE_NAME := $(PACKAGE_NAME)-$(GOARCH)
  18. endif
  19. .PHONY: build
  20. build:
  21. @mkdir -p $(BUILD_PATH)/$(PACKAGE_NAME)/bin
  22. @mkdir -p $(BUILD_PATH)/$(PACKAGE_NAME)/etc
  23. @mkdir -p $(BUILD_PATH)/$(PACKAGE_NAME)/data
  24. @mkdir -p $(BUILD_PATH)/$(PACKAGE_NAME)/plugins
  25. @mkdir -p $(BUILD_PATH)/$(PACKAGE_NAME)/log
  26. @cp -r etc/* $(BUILD_PATH)/$(PACKAGE_NAME)/etc
  27. @if [ ! -z $(GOOS) ] && [ ! -z $(GOARCH) ];then \
  28. GO111MODULE=on GOPROXY=https://goproxy.io GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags="-s -w -X main.Version=$(VERSION)" -o cli xstream/cli/main.go; \
  29. GO111MODULE=on GOPROXY=https://goproxy.io GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags="-s -w -X main.Version=$(VERSION)" -o server xstream/server/main.go; \
  30. else \
  31. GO111MODULE=on GOPROXY=https://goproxy.io CGO_ENABLED=0 go build -ldflags="-s -w -X main.Version=$(VERSION)" -o cli xstream/cli/main.go; \
  32. GO111MODULE=on GOPROXY=https://goproxy.io CGO_ENABLED=0 go build -ldflags="-s -w -X main.Version=$(VERSION)" -o server xstream/server/main.go; \
  33. fi
  34. @if [ ! -z $$(which upx) ]; then upx ./cli; upx ./server; fi
  35. @mv ./cli ./server $(BUILD_PATH)/$(PACKAGE_NAME)/bin
  36. @echo "Build successfully"
  37. .PHONY: pkg
  38. pkg: build
  39. @mkdir -p $(PACKAGES_PATH)
  40. @cd $(BUILD_PATH) && zip -rq $(PACKAGE_NAME).zip $(PACKAGE_NAME)
  41. @cd $(BUILD_PATH) && tar -czf $(PACKAGE_NAME).tar.gz $(PACKAGE_NAME)
  42. @mv $(BUILD_PATH)/$(PACKAGE_NAME).zip $(BUILD_PATH)/$(PACKAGE_NAME).tar.gz $(PACKAGES_PATH)
  43. @echo "Package build success"
  44. .PHONY: clean
  45. clean:
  46. rm -rf _build