| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- .PHONY: build clean tidy run serve build-all build-linux build-darwin build-windows build-with-ble
- BINARY_NAME=opencode-monitor
- VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
- GO?=go
- build:
- $(GO) mod tidy
- $(GO) build -ldflags "-X main.Version=$(VERSION)" -o bin/$(BINARY_NAME) ./cmd/monitor
- clean:
- rm -rf bin/ dist/
- tidy:
- $(GO) mod tidy
- run: build
- ./bin/$(BINARY_NAME) monitor --ports 4096
- serve: build
- ./bin/$(BINARY_NAME) serve --addr :8080
- monitor-with-api: build
- ./bin/$(BINARY_NAME) monitor --ports 4096 --api-addr :8080
- config-list: build
- ./bin/$(BINARY_NAME) config list
- config-set: build
- ./bin/$(BINARY_NAME) config set --broker tcp://127.0.0.1:1883
- build-all: build-linux build-darwin build-windows
- build-linux:
- @echo "Building for Linux..."
- @mkdir -p dist
- GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/monitor
- GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/monitor
- build-darwin:
- @echo "Building for macOS..."
- @mkdir -p dist
- GOOS=darwin GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-darwin-amd64 ./cmd/monitor
- GOOS=darwin GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-darwin-arm64 ./cmd/monitor
- build-windows:
- @echo "Building for Windows..."
- @mkdir -p dist
- GOOS=windows GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-windows-amd64.exe ./cmd/monitor
- GOOS=windows GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-windows-arm64.exe ./cmd/monitor
- release: build-all
- @echo "Creating release archives..."
- @cd dist && tar -czf $(BINARY_NAME)-linux-amd64.tar.gz $(BINARY_NAME)-linux-amd64
- @cd dist && tar -czf $(BINARY_NAME)-linux-arm64.tar.gz $(BINARY_NAME)-linux-arm64
- @cd dist && tar -czf $(BINARY_NAME)-darwin-amd64.tar.gz $(BINARY_NAME)-darwin-amd64
- @cd dist && tar -czf $(BINARY_NAME)-darwin-arm64.tar.gz $(BINARY_NAME)-darwin-arm64
- @cd dist && zip -q $(BINARY_NAME)-windows-amd64.zip $(BINARY_NAME)-windows-amd64.exe
- @cd dist && zip -q $(BINARY_NAME)-windows-arm64.zip $(BINARY_NAME)-windows-arm64.exe
- @echo "Release archives created in dist/"
- build-with-ble:
- @echo "Step 1: Building BLE relay with PyInstaller..."
- python -m PyInstaller --onefile --name ble_relay --distpath bin --specpath build --workpath build scripts/ble_relay.py
- @echo "Step 2: Copying BLE relay for embedding..."
- cp bin/ble_relay cmd/monitor/ble_relay
- @echo "Step 3: Building Go binary with BLE embedded..."
- $(GO) mod tidy
- $(GO) build -tags ble -ldflags "-X main.Version=$(VERSION)" -o bin/$(BINARY_NAME) ./cmd/monitor
- @echo "Step 4: Cleaning up..."
- rm -f cmd/monitor/ble_relay
- @echo "Done: bin/$(BINARY_NAME)"
|