BINARY := nexus-scanner CMD := ./cmd/nexus-scanner VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") LDFLAGS := -ldflags "-s -w -X main.version=$(VERSION)" .PHONY: build run test fmt vet clean install ## build: compile for the local OS/arch build: go build $(LDFLAGS) -o $(BINARY) $(CMD) ## build-linux: cross-compile for Linux amd64 + arm64 build-linux: GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o $(BINARY)-linux-amd64 $(CMD) GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o $(BINARY)-linux-arm64 $(CMD) ## run: build and run with the example config (local testing only) run: build ./$(BINARY) config.example.yaml ## test: run all tests test: go test -v -race ./... ## fmt: format all Go source files fmt: gofmt -w ./... ## vet: run go vet vet: go vet ./... ## tidy: update go.sum and remove unused dependencies tidy: go mod tidy ## clean: remove built binaries clean: rm -f $(BINARY) $(BINARY)-linux-amd64 $(BINARY)-linux-arm64 ## install: deploy to a scanner VM (set SCANNER_HOST env var) ## Usage: SCANNER_HOST=root@192.168.0.x make install install: build-linux scp $(BINARY)-linux-amd64 $(SCANNER_HOST):/usr/local/bin/$(BINARY) ssh $(SCANNER_HOST) "systemctl restart $(BINARY)" ## help: print this help help: @grep -E '^## ' Makefile | sed 's/## / /'