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: #369
[1]: https://www.gnu.org/software/make/manual/html_node/Special-Variables.html

Signed-off-by: Wojciech Szarański <[email protected]>
  • Loading branch information
wszaranski committed Apr 9, 2024
1 parent 8876706 commit c500edb
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -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 c500edb

Please sign in to comment.