Makefile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. BUILD_NUMBER ?= dev+$(shell date -u '+%Y%m%d%H%M%S')
  2. GO111MODULE = on
  3. export GO111MODULE
  4. all:
  5. make bin
  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. GOARCH=arm GOOS=linux go build -o nebula-arm -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  19. bin-arm6:
  20. GOARCH=arm GOARM=6 GOOS=linux go build -o nebula-arm6 -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  21. bin-arm64:
  22. GOARCH=arm64 GOOS=linux go build -o nebula-arm64 -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  23. bin-vagrant:
  24. GOARCH=amd64 GOOS=linux go build -o nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  25. GOARCH=amd64 GOOS=linux go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula-cert ./cmd/nebula-cert
  26. bin-darwin:
  27. GOARCH=amd64 GOOS=darwin go build -o nebula-darwin -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  28. bin-windows:
  29. GOARCH=amd64 GOOS=windows go build -o nebula.exe -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  30. bin-linux:
  31. GOARCH=amd64 GOOS=linux go build -o ./nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
  32. GOARCH=amd64 GOOS=linux go build -o ./nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
  33. vet:
  34. go vet -v ./...
  35. test:
  36. go test -v ./...
  37. test-cov-html:
  38. go test -coverprofile=coverage.out
  39. go tool cover -html=coverage.out
  40. bench:
  41. go test -bench=.
  42. bench-cpu:
  43. go test -bench=. -benchtime=5s -cpuprofile=cpu.pprof
  44. go tool pprof go-audit.test cpu.pprof
  45. bench-cpu-long:
  46. go test -bench=. -benchtime=60s -cpuprofile=cpu.pprof
  47. go tool pprof go-audit.test cpu.pprof
  48. proto: nebula.pb.go cert/cert.pb.go
  49. nebula.pb.go: nebula.proto .FORCE
  50. go build github.com/golang/protobuf/protoc-gen-go
  51. PATH="$(PWD):$(PATH)" protoc --go_out=. $<
  52. rm protoc-gen-go
  53. cert/cert.pb.go: cert/cert.proto .FORCE
  54. $(MAKE) -C cert cert.pb.go
  55. .FORCE:
  56. .PHONY: test test-cov-html bench bench-cpu bench-cpu-long bin proto
  57. .DEFAULT_GOAL := bin