Skip to content

Commit

Permalink
Move .PHONY next to each target
Browse files Browse the repository at this point in the history
It's clearer to keep target and it's .PHONY together. When reading
Makefile it's easier to see if target is phony or not (without jumping
back to first line and reading all of .PHONY dependencies). It's also
harder to forget remove/rename .PHONY dependency when target is changed
when they are together.

There is no official standard but make documentation[1] in .DEFAULT_GOAL
use multiple .PHONY:
> .PHONY: foo
> foo: ; @echo $@
>
> $(warning default goal is $(.DEFAULT_GOAL))
>
> # Reset the default goal.
> .DEFAULT_GOAL :=
>
> .PHONY: bar
> bar: ; @echo $@

PR: #371
[1]: https://www.gnu.org/software/make/manual/html_node/Special-Variables.html

Signed-off-by: Wojciech Szarański <wojciech.szaranski@gmail.com>
  • Loading branch information
wszaranski authored and alicebob committed Apr 9, 2024
1 parent f1d13d6 commit 5275a76
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion Makefile
@@ -1,21 +1,26 @@
.PHONY: test testrace int ci clean help
.PHONY: test
test: ### Run unit tests
go test ./...

.PHONY: testrace
testrace: ### Run unit tests with race detector
go test -race ./...

.PHONY: int
int: ### Run integration tests (doesn't download redis server)
${MAKE} -C integration int

.PHONY: ci
ci: ### Run full tests suite (including download and compilation of proper redis server)
${MAKE} test
${MAKE} -C integration redis_src/redis-server int
${MAKE} testrace

.PHONY: clean
clean: ### Clean integration test files and remove compiled redis from integration/redis_src
${MAKE} -C integration clean

.PHONY: help
help:
ifeq ($(UNAME), Linux)
@grep -P '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
Expand Down

0 comments on commit 5275a76

Please sign in to comment.