miniredis/Makefile
Wojciech Szarański 5275a760ff Move .PHONY next to each target
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: https://github.com/alicebob/miniredis/issues/371
[1]: https://www.gnu.org/software/make/manual/html_node/Special-Variables.html

Signed-off-by: Wojciech Szarański <wojciech.szaranski@gmail.com>
2024-04-09 15:34:27 +02:00

34 lines
941 B
Makefile

.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 | \
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
else
@# this is not tested, but prepared in advance for you, Mac drivers
@awk -F ':.*###' '$$0 ~ FS {printf "%15s%s\n", $$1 ":", $$2}' \
$(MAKEFILE_LIST) | grep -v '@awk' | sort
endif