From 2a55ff4884224b7aab6f802de262ae4857da269e Mon Sep 17 00:00:00 2001 From: Halimao <1065621723@qq.com> Date: Mon, 22 Jan 2024 16:23:43 +0800 Subject: [PATCH] refactor: add `make help` command that describes goals --- Makefile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Makefile b/Makefile index e9aa6894..e17e6446 100644 --- a/Makefile +++ b/Makefile @@ -39,8 +39,10 @@ define print echo $(GREEN)$1$(NC) endef +#? default: Run `make build` default: build +#? all: Run `make build` and `make check` all: build check # ============ @@ -55,6 +57,7 @@ $(GOACC_BIN): @$(call print, "Fetching go-acc") $(DEPGET) $(GOACC_PKG)@$(GOACC_COMMIT) +#? goimports: Install goimports goimports: @$(call print, "Installing goimports.") $(DEPGET) $(GOIMPORTS_PKG) @@ -63,6 +66,7 @@ goimports: # INSTALLATION # ============ +#? build: Build all binaries, place them in project directory build: @$(call print, "Building all binaries") $(GOBUILD) $(PKG) @@ -71,6 +75,7 @@ build: $(GOBUILD) $(PKG)/cmd/findcheckpoint $(GOBUILD) $(PKG)/cmd/addblock +#? install: Install all binaries, place them in $GOPATH/bin install: @$(call print, "Installing all binaries") $(GOINSTALL) $(PKG) @@ -79,6 +84,7 @@ install: $(GOINSTALL) $(PKG)/cmd/findcheckpoint $(GOINSTALL) $(PKG)/cmd/addblock +#? release-install: Install btcd and btcctl release binaries, place them in $GOPATH/bin release-install: @$(call print, "Installing btcd and btcctl release binaries") env CGO_ENABLED=0 $(GOINSTALL) -trimpath -ldflags="-s -w -buildid=" $(PKG) @@ -88,8 +94,10 @@ release-install: # TESTING # ======= +#? check: Run `make unit` check: unit +#? unit: Run unit tests unit: @$(call print, "Running unit tests.") $(GOTEST_DEV) ./... -test.timeout=20m @@ -97,6 +105,7 @@ unit: cd btcutil; $(GOTEST_DEV) ./... -test.timeout=20m cd btcutil/psbt; $(GOTEST_DEV) ./... -test.timeout=20m +#? unit-cover: Run unit coverage tests unit-cover: $(GOACC_BIN) @$(call print, "Running unit coverage tests.") $(GOACC_BIN) ./... @@ -109,6 +118,7 @@ unit-cover: $(GOACC_BIN) cd btcutil/psbt; $(GOACC_BIN) ./... +#? unit-race: Run unit race tests unit-race: @$(call print, "Running unit race tests.") env CGO_ENABLED=1 GORACE="history_size=7 halt_on_errors=1" $(GOTEST) -race -test.timeout=20m ./... @@ -120,20 +130,24 @@ unit-race: # UTILITIES # ========= +#? fmt: Fix imports and formatting source fmt: goimports @$(call print, "Fixing imports.") goimports -w $(GOFILES_NOVENDOR) @$(call print, "Formatting source.") gofmt -l -w -s $(GOFILES_NOVENDOR) +#? lint: Lint source lint: $(LINT_BIN) @$(call print, "Linting source.") $(LINT) +#? clean: Clean source clean: @$(call print, "Cleaning source.$(NC)") $(RM) coverage.txt btcec/coverage.txt btcutil/coverage.txt btcutil/psbt/coverage.txt +#? tidy-module: Run 'go mod tidy' for all modules tidy-module: echo "Running 'go mod tidy' for all modules" scripts/tidy_modules.sh @@ -148,3 +162,10 @@ tidy-module: fmt \ lint \ clean + +#? help: Get more info on make commands +help: Makefile + @echo " Choose a command run in btcd:" + @sed -n 's/^#?//p' $< | column -t -s ':' | sort | sed -e 's/^/ /' + +.PHONY: help