APP_NAME_SERVER := monitor-server
APP_NAME_CLIENT := monitor-client
VERSION         := 1.0.0
BUILD_TIME      := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
LDFLAGS         := -s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'

.PHONY: all server client clean package

all: server client

server:
	go build -ldflags "$(LDFLAGS)" -o dist/server/$(APP_NAME_SERVER)$(if $(findstring windows,$(GOOS)),.exe,) ./cmd/server

client:
	go build -ldflags "$(LDFLAGS)" -o dist/client/$(APP_NAME_CLIENT)$(if $(findstring windows,$(GOOS)),.exe,) ./cmd/client

# ── Windows 专用 ──
server-windows:
	GOOS=windows GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/server/$(APP_NAME_SERVER).exe ./cmd/server

client-windows:
	GOOS=windows GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/client/$(APP_NAME_CLIENT).exe ./cmd/client

# ── 打包 ──
package: server-windows client-windows
	@mkdir -p dist/server/data
	@mkdir -p dist/package
	cd dist/server && zip -r ../package/$(APP_NAME_SERVER)-$(VERSION)-win64.zip .
	cd dist/client && zip -r ../package/$(APP_NAME_CLIENT)-$(VERSION)-win64.zip .
	@echo ""
	@echo "  dist/package/$(APP_NAME_SERVER)-$(VERSION)-win64.zip"
	@echo "  dist/package/$(APP_NAME_CLIENT)-$(VERSION)-win64.zip"
	@echo ""

# ── 清理 ──
clean:
	rm -rf dist/