Makefile 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. NEBULA_CMD_PATH = "./cmd/nebula"
  2. BUILD_NUMBER ?= dev+$(shell date -u '+%Y%m%d%H%M%S')
  3. GO111MODULE = on
  4. export GO111MODULE
  5. all: bin-linux bin-linux-386 bin-linux-ppc64le bin-arm bin-arm6 bin-arm64 bin-darwin bin-windows bin-mips bin-mipsle bin-mips64 bin-mips64le
  6. bin:
  7. go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula ${NEBULA_CMD_PATH}
  8. go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula-cert ./cmd/nebula-cert
  9. install:
  10. go install -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  11. go install -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  12. bin-arm:
  13. mkdir -p build/arm
  14. GOARCH=arm GOOS=linux go build -o build/arm/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  15. GOARCH=arm GOOS=linux go build -o build/arm/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  16. bin-arm6:
  17. mkdir -p build/arm6
  18. GOARCH=arm GOARM=6 GOOS=linux go build -o build/arm6/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  19. GOARCH=arm GOARM=6 GOOS=linux go build -o build/arm6/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  20. bin-arm64:
  21. mkdir -p build/arm64
  22. GOARCH=arm64 GOOS=linux go build -o build/arm64/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  23. GOARCH=arm64 GOOS=linux go build -o build/arm64/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  24. bin-vagrant:
  25. GOARCH=amd64 GOOS=linux go build -o nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  26. GOARCH=amd64 GOOS=linux go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula-cert ./cmd/nebula-cert
  27. bin-darwin:
  28. mkdir -p build/darwin
  29. GOARCH=amd64 GOOS=darwin go build -o build/darwin/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  30. GOARCH=amd64 GOOS=darwin go build -o build/darwin/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  31. bin-windows:
  32. mkdir -p build/windows
  33. GOARCH=amd64 GOOS=windows go build -o build/windows/nebula.exe -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  34. GOARCH=amd64 GOOS=windows go build -o build/windows/nebula-cert.exe -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  35. bin-linux:
  36. mkdir -p build/linux
  37. GOARCH=amd64 GOOS=linux go build -o build/linux/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
  38. GOARCH=amd64 GOOS=linux go build -o build/linux/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  39. bin-linux-386:
  40. mkdir -p build/linux-386
  41. GOARCH=386 GOOS=linux go build -o build/linux-386/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  42. GOARCH=386 GOOS=linux go build -o build/linux-386/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  43. bin-linux-ppc64le:
  44. mkdir -p build/linux-ppc64le
  45. GOARCH=ppc64le GOOS=linux go build -o build/linux-ppc64le/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  46. GOARCH=ppc64le GOOS=linux go build -o build/linux-ppc64le/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  47. bin-mips:
  48. mkdir -p build/mips
  49. GOARCH=mips GOOS=linux go build -o build/mips/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  50. GOARCH=mips GOOS=linux go build -o build/mips/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  51. bin-mipsle:
  52. mkdir -p build/mipsle
  53. GOARCH=mipsle GOOS=linux go build -o build/mipsle/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  54. GOARCH=mipsle GOOS=linux go build -o build/mipsle/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  55. bin-mips64:
  56. mkdir -p build/mips64
  57. GOARCH=mips64 GOOS=linux go build -o build/mips64/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  58. GOARCH=mips64 GOOS=linux go build -o build/mips64/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  59. bin-mips64le:
  60. mkdir -p build/mips64le
  61. GOARCH=mips64le GOOS=linux go build -o build/mips64le/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  62. GOARCH=mips64le GOOS=linux go build -o build/mips64le/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  63. release: all
  64. tar -zcv -C build/arm/ -f nebula-linux-arm.tar.gz nebula nebula-cert
  65. tar -zcv -C build/arm6/ -f nebula-linux-arm6.tar.gz nebula nebula-cert
  66. tar -zcv -C build/arm64/ -f nebula-linux-arm64.tar.gz nebula nebula-cert
  67. tar -zcv -C build/darwin/ -f nebula-darwin-amd64.tar.gz nebula nebula-cert
  68. tar -zcv -C build/windows/ -f nebula-windows-amd64.tar.gz nebula.exe nebula-cert.exe
  69. tar -zcv -C build/linux/ -f nebula-linux-amd64.tar.gz nebula nebula-cert
  70. tar -zcv -C build/linux-386/ -f nebula-linux-386.tar.gz nebula nebula-cert
  71. tar -zcv -C build/linux-ppc64le/ -f nebula-linux-ppc64le.tar.gz nebula nebula-cert
  72. tar -zcv -C build/mips/ -f nebula-linux-mips.tar.gz nebula nebula-cert
  73. tar -zcv -C build/mipsle/ -f nebula-linux-mipsle.tar.gz nebula nebula-cert
  74. tar -zcv -C build/mips64/ -f nebula-linux-mips64.tar.gz nebula nebula-cert
  75. tar -zcv -C build/mips64le/ -f nebula-linux-mips64le.tar.gz nebula nebula-cert
  76. vet:
  77. go vet -v ./...
  78. test:
  79. go test -v ./...
  80. test-cov-html:
  81. go test -coverprofile=coverage.out
  82. go tool cover -html=coverage.out
  83. bench:
  84. go test -bench=.
  85. bench-cpu:
  86. go test -bench=. -benchtime=5s -cpuprofile=cpu.pprof
  87. go tool pprof go-audit.test cpu.pprof
  88. bench-cpu-long:
  89. go test -bench=. -benchtime=60s -cpuprofile=cpu.pprof
  90. go tool pprof go-audit.test cpu.pprof
  91. proto: nebula.pb.go cert/cert.pb.go
  92. nebula.pb.go: nebula.proto .FORCE
  93. go build github.com/golang/protobuf/protoc-gen-go
  94. PATH="$(PWD):$(PATH)" protoc --go_out=. $<
  95. rm protoc-gen-go
  96. cert/cert.pb.go: cert/cert.proto .FORCE
  97. $(MAKE) -C cert cert.pb.go
  98. service:
  99. @echo > /dev/null
  100. $(eval NEBULA_CMD_PATH := "./cmd/nebula-service")
  101. ifeq ($(words $(MAKECMDGOALS)),1)
  102. $(MAKE) service ${.DEFAULT_GOAL} --no-print-directory
  103. endif
  104. .FORCE:
  105. .PHONY: test test-cov-html bench bench-cpu bench-cpu-long bin proto release service
  106. .DEFAULT_GOAL := bin