BINARY := zenmux-usage
PKG    := github.com/kotoyuuko/zenmux-usage-cli/cmd/zenmux-usage
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
LDFLAGS := -s -w -X main.version=$(VERSION)

.PHONY: build test vet lint run clean cross

build:
	go build -ldflags "$(LDFLAGS)" -o $(BINARY) ./cmd/zenmux-usage

test:
	go test ./...

vet:
	go vet ./...

lint: vet
	@gofmt -l . | tee /tmp/gofmt.out; \
	test ! -s /tmp/gofmt.out

run: build
	./$(BINARY)

clean:
	rm -f $(BINARY)
	rm -rf dist/

cross: clean
	@mkdir -p dist
	GOOS=darwin  GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/$(BINARY)-darwin-amd64  ./cmd/zenmux-usage
	GOOS=darwin  GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o dist/$(BINARY)-darwin-arm64  ./cmd/zenmux-usage
	GOOS=linux   GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/$(BINARY)-linux-amd64   ./cmd/zenmux-usage
	GOOS=linux   GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o dist/$(BINARY)-linux-arm64   ./cmd/zenmux-usage
	GOOS=windows GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/$(BINARY)-windows-amd64.exe ./cmd/zenmux-usage
	@ls -lh dist/
