VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
LDFLAGS := -s -w -X main.version=$(VERSION)
DIST    := dist

PLATFORMS := \
	linux/amd64 \
	linux/arm64 \
	darwin/amd64 \
	darwin/arm64 \
	windows/amd64

.PHONY: build dist clean

build:
	CGO_ENABLED=0 go build -ldflags '$(LDFLAGS)' -o rb-search .

dist:
	@rm -rf $(DIST)
	@mkdir -p $(DIST)
	@for plat in $(PLATFORMS); do \
		os=$${plat%/*}; arch=$${plat#*/}; \
		ext=""; if [ "$$os" = "windows" ]; then ext=".exe"; fi; \
		name=rb-search-$(VERSION)-$$os-$$arch$$ext; \
		echo "  build $$name"; \
		CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch \
			go build -trimpath -ldflags '$(LDFLAGS)' -o $(DIST)/$$name . || exit 1; \
	done
	@cd $(DIST) && sha256sum rb-search-* > SHA256SUMS
	@echo "built artefacts:"
	@ls -lh $(DIST)

clean:
	rm -rf $(DIST) rb-search
