Makefile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .PHONY: build clean tidy run serve build-all build-linux build-windows
  2. BINARY_NAME=opencode-monitor
  3. VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
  4. GO?=go
  5. build:
  6. $(GO) mod tidy
  7. $(GO) build -ldflags "-X main.Version=$(VERSION)" -o bin/$(BINARY_NAME) ./cmd/monitor
  8. clean:
  9. rm -rf bin/ dist/
  10. tidy:
  11. $(GO) mod tidy
  12. run: build
  13. ./bin/$(BINARY_NAME) monitor --ports 4096
  14. serve: build
  15. ./bin/$(BINARY_NAME) serve --addr :8080
  16. monitor-with-api: build
  17. ./bin/$(BINARY_NAME) monitor --ports 4096 --api-addr :8080
  18. config-list: build
  19. ./bin/$(BINARY_NAME) config list
  20. config-set: build
  21. ./bin/$(BINARY_NAME) config set --broker tcp://127.0.0.1:1883
  22. build-all: build-linux build-windows
  23. build-linux:
  24. @echo "Building for Linux..."
  25. @mkdir -p dist
  26. GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/monitor
  27. GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/monitor
  28. build-windows:
  29. @echo "Building for Windows..."
  30. @mkdir -p dist
  31. GOOS=windows GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-windows-amd64.exe ./cmd/monitor
  32. GOOS=windows GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-windows-arm64.exe ./cmd/monitor
  33. release: build-all
  34. @echo "Creating release archives..."
  35. @cd dist && tar -czf $(BINARY_NAME)-linux-amd64.tar.gz $(BINARY_NAME)-linux-amd64
  36. @cd dist && tar -czf $(BINARY_NAME)-linux-arm64.tar.gz $(BINARY_NAME)-linux-arm64
  37. @cd dist && zip -q $(BINARY_NAME)-windows-amd64.zip $(BINARY_NAME)-windows-amd64.exe
  38. @cd dist && zip -q $(BINARY_NAME)-windows-arm64.zip $(BINARY_NAME)-windows-arm64.exe
  39. @echo "Release archives created in dist/"