Makefile 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. BUILD_NUMBER ?= dev+$(shell date -u '+%Y%m%d%H%M%S')
  2. GO111MODULE = on
  3. export GO111MODULE
  4. all:
  5. make bin-linux
  6. make bin-arm
  7. make bin-arm6
  8. make bin-arm64
  9. make bin-darwin
  10. make bin-windows
  11. bin:
  12. go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula ./cmd/nebula
  13. go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula-cert ./cmd/nebula-cert
  14. install:
  15. go install -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  16. go install -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  17. bin-arm:
  18. mkdir -p build/arm
  19. GOARCH=arm GOOS=linux go build -o build/arm/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  20. GOARCH=arm GOOS=linux go build -o build/arm/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  21. bin-arm6:
  22. mkdir -p build/arm6
  23. GOARCH=arm GOARM=6 GOOS=linux go build -o build/arm6/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  24. GOARCH=arm GOARM=6 GOOS=linux go build -o build/arm6/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  25. bin-arm64:
  26. mkdir -p build/arm64
  27. GOARCH=arm64 GOOS=linux go build -o build/arm64/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  28. GOARCH=arm64 GOOS=linux go build -o build/arm64/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  29. bin-vagrant:
  30. GOARCH=amd64 GOOS=linux go build -o nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  31. GOARCH=amd64 GOOS=linux go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula-cert ./cmd/nebula-cert
  32. bin-darwin:
  33. mkdir -p build/darwin
  34. GOARCH=amd64 GOOS=darwin go build -o build/darwin/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  35. GOARCH=amd64 GOOS=darwin go build -o build/darwin/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  36. bin-windows:
  37. mkdir -p build/windows
  38. GOARCH=amd64 GOOS=windows go build -o build/windows/nebula.exe -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  39. GOARCH=amd64 GOOS=windows go build -o build/windows/nebula-cert.exe -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  40. bin-linux:
  41. mkdir -p build/linux
  42. GOARCH=amd64 GOOS=linux go build -o build/linux/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  43. GOARCH=amd64 GOOS=linux go build -o build/linux/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  44. release: all
  45. tar -zcv -C build/arm/ -f nebula-linux-arm.tar.gz nebula nebula-cert
  46. tar -zcv -C build/arm6/ -f nebula-linux-arm6.tar.gz nebula nebula-cert
  47. tar -zcv -C build/arm64/ -f nebula-linux-arm64.tar.gz nebula nebula-cert
  48. tar -zcv -C build/darwin/ -f nebula-darwin-amd64.tar.gz nebula nebula-cert
  49. tar -zcv -C build/windows/ -f nebula-windows-amd64.tar.gz nebula.exe nebula-cert.exe
  50. tar -zcv -C build/linux/ -f nebula-linux-amd64.tar.gz nebula nebula-cert
  51. vet:
  52. go vet -v ./...
  53. test:
  54. go test -v ./...
  55. test-cov-html:
  56. go test -coverprofile=coverage.out
  57. go tool cover -html=coverage.out
  58. bench:
  59. go test -bench=.
  60. bench-cpu:
  61. go test -bench=. -benchtime=5s -cpuprofile=cpu.pprof
  62. go tool pprof go-audit.test cpu.pprof
  63. bench-cpu-long:
  64. go test -bench=. -benchtime=60s -cpuprofile=cpu.pprof
  65. go tool pprof go-audit.test cpu.pprof
  66. proto: nebula.pb.go cert/cert.pb.go
  67. nebula.pb.go: nebula.proto .FORCE
  68. go build github.com/golang/protobuf/protoc-gen-go
  69. PATH="$(PWD):$(PATH)" protoc --go_out=. $<
  70. rm protoc-gen-go
  71. cert/cert.pb.go: cert/cert.proto .FORCE
  72. $(MAKE) -C cert cert.pb.go
  73. .FORCE:
  74. .PHONY: test test-cov-html bench bench-cpu bench-cpu-long bin proto release
  75. .DEFAULT_GOAL := bin