Makefile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. .PHONY: deps build test bundle-webui clean-bundle bundle-swagger proto bundle build
  2. # Runs unit tests.
  3. test:
  4. go test -count=1 -race -coverprofile=coverage.txt -covermode=atomic .
  5. proto:
  6. protoc -I./api/pb/ -I/usr/local/include/ --go_opt=paths=source_relative --go_out=./api/pb user.proto vpn.proto network.proto auth.proto
  7. protoc -I./api/pb/ -I/usr/local/include/ --go-grpc_opt=paths=source_relative --go-grpc_out=./api/pb user.proto vpn.proto network.proto auth.proto
  8. protoc -I./api/pb/ -I/usr/local/include/ --grpc-gateway_out ./api/pb \
  9. --grpc-gateway_opt logtostderr=true \
  10. --grpc-gateway_opt paths=source_relative \
  11. --grpc-gateway_opt generate_unbound_methods=true \
  12. user.proto vpn.proto network.proto auth.proto
  13. clean-bundle:
  14. @echo Cleaning up bundle/
  15. rm -rf bundle/
  16. mkdir -p bundle/
  17. bundle-webui:
  18. @echo Bundling webui
  19. yarn --cwd webui/ovpm/ install
  20. yarn --cwd webui/ovpm/ build
  21. cp -r webui/ovpm/build/* bundle
  22. bundle-swagger: proto
  23. protoc -I./api/pb -I/usr/local/include/ --openapiv2_out=json_names_for_fields=false:./api/pb --openapiv2_opt logtostderr=true user.proto vpn.proto network.proto auth.proto
  24. bundle: clean-bundle bundle-webui bundle-swagger
  25. go-bindata -pkg bundle -o bundle/bindata.go bundle/...
  26. # Builds server and client binaries under ./bin folder. Accetps $VERSION env var.
  27. build: bundle
  28. @echo Building
  29. rm -rf bin/
  30. mkdir -p bin/
  31. #CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -X 'github.com/cad/ovpm.Version=$(VERSION)' -extldflags '-static'" -o ./bin/ovpm ./cmd/ovpm
  32. #CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -X 'github.com/cad/ovpm.Version=$(VERSION)' -extldflags '-static'" -o ./bin/ovpmd ./cmd/ovpmd
  33. # Link dynamically for now
  34. CGO_CFLAGS="-g -O2 -Wno-return-local-addr" go build -ldflags="-X 'github.com/cad/ovpm.Version=$(VERSION)'" -o ./bin/ovpm ./cmd/ovpm
  35. CGO_CFLAGS="-g -O2 -Wno-return-local-addr" go build -ldflags="-X 'github.com/cad/ovpm.Version=$(VERSION)'" -o ./bin/ovpmd ./cmd/ovpmd
  36. clean-dist:
  37. rm -rf dist/
  38. mkdir -p dist/
  39. # Builds rpm and dep packages under ./dist folder. Accepts $VERSION env var.
  40. dist: clean-dist build
  41. @echo Generating VERSION=$(VERSION) rpm and deb packages under dist/
  42. nfpm pkg -t ./dist/ovpm.rpm
  43. nfpm pkg -t ./dist/ovpm.deb