From a1c3b852c38c2c98eedf17f3a7213250f8149695 Mon Sep 17 00:00:00 2001 From: sneak Date: Fri, 24 Jul 2026 11:21:16 +0700 Subject: [PATCH] Make the binary the default Make target Plain make now builds sfdupes (previously the default was all = check + build); make build remains as an alias, so the Dockerfile and existing habits keep working. The sfdupes target is phony: go build's own cache decides what to recompile. --- Makefile | 10 ++++++---- README.md | 3 ++- TODO.md | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b40b63a..037735e 100644 --- a/Makefile +++ b/Makefile @@ -6,13 +6,15 @@ BINARY := sfdupes VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo dev) LDFLAGS := -X main.Version=$(VERSION) -.PHONY: all build test lint fmt fmt-check check docker hooks clean +.PHONY: sfdupes build test lint fmt fmt-check check docker hooks clean -all: check build - -build: +# Default target: build the binary. Phony so go build (which has its +# own build cache) always decides what to recompile. +sfdupes: go build -ldflags "$(LDFLAGS)" -o $(BINARY) +build: sfdupes + test: @go test -timeout 30s -cover ./... || \ { echo "--- Rerunning with -v for details ---"; \ diff --git a/README.md b/README.md index eb5fdb9..a2a7234 100644 --- a/README.md +++ b/README.md @@ -393,7 +393,8 @@ Additional requirements: The `Makefile` is the single source of truth for all operations: -- `make build` — build the `sfdupes` binary (cgo disabled). +- `make` / `make build` — build the `sfdupes` binary (cgo + disabled); building is the default target. - `make test` — run the test suite (30-second timeout; reruns with `-v` on failure). - `make lint` — run `golangci-lint` with the repo config. diff --git a/TODO.md b/TODO.md index baa9819..720e579 100644 --- a/TODO.md +++ b/TODO.md @@ -19,6 +19,10 @@ # Completed Steps +- make the binary the default Make target (2026-07-24, branch + `make-default-target`): plain `make` now builds `sfdupes` + (previously it ran `check` plus `build`); `make build` remains as + an alias - scan-wide phases, concurrent operands, batched updates (2026-07-24, branch `scan-wide-phases`): all operands seed the shared walk pool and every pass runs once over the whole scan, so totals and ETAs