BINARY = linum GO = go MAIN = . OUTPUT = build/$(BINARY) LDFLAGS = -ldflags="-s -w -X main.version=$(VERSION)" DESTDIR ?= BINDIR ?= /usr/bin SYSTEMD_DIR ?= /usr/lib/systemd/system .PHONY: default build test lint fmt clean run install install-service install-config fuzz race \ build-linux build-darwin build-arm default: test lint build build: $(GO) build $(LDFLAGS) -o $(OUTPUT) $(MAIN) test: $(GO) test -race -count=1 ./... lint: $(GO) vet ./... fmt: gofmt -w . clean: rm -f $(OUTPUT) run: build ./$(OUTPUT) install: mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)/etc/linum/blocklist cp $(OUTPUT) $(DESTDIR)$(BINDIR)/$(BINARY) install-service: mkdir -p $(DESTDIR)$(SYSTEMD_DIR) cp etc/linum.service $(DESTDIR)$(SYSTEMD_DIR)/linum.service install-config: install -d $(DESTDIR)/etc/linum install -m 0644 linum.toml $(DESTDIR)/etc/linum/linum.toml fuzz: $(GO) test -fuzz=FuzzBuildResponse -fuzztime=30s ./internal/server/ build-linux: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build $(LDFLAGS) -o build/$(BINARY)-linux-amd64 $(MAIN) build-darwin: GOOS=darwin GOARCH=amd64 $(GO) build $(LDFLAGS) -o build/$(BINARY)-darwin-amd64 $(MAIN) build-arm: GOOS=linux GOARCH=arm64 $(GO) build $(LDFLAGS) -o build/$(BINARY)-linux-arm64 $(MAIN) race: $(GO) test -race -count=1 ./...