VERSION := $(shell git describe --tags --always 2>/dev/null || echo dev) LDFLAGS := -s -w -X main.version=$(VERSION) GOEXE := $(shell go env GOEXE) .PHONY: build vet fmt test desktop-test desktop-test-short desktop-test-times hooks cross clean build: CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/reasonix$(GOEXE) ./cmd/reasonix CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/reasonix-plugin-example$(GOEXE) ./cmd/reasonix-plugin-example vet: go vet ./... fmt: gofmt -w . test: go test ./... desktop-test: cd desktop && go test . desktop-test-short: cd desktop && go test -short . desktop-test-times: cd desktop && go test -count=1 -json . | python3 ../scripts/desktop-test-times.py hooks: @git config core.hooksPath .githooks @echo "installed: core.hooksPath -> .githooks (pre-push runs go vet)" cross: @mkdir -p dist @for p in darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 windows/arm64; do \ os=$${p%/*}; arch=$${p#*/}; ext=; [ $$os = windows ] && ext=.exe; \ echo "build $$os/$$arch"; \ CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch go build -ldflags "$(LDFLAGS)" -o dist/reasonix-$$os-$$arch$$ext ./cmd/reasonix; \ done clean: rm -rf bin dist