diff --git a/Makefile b/Makefile index 1a0d12c..a4f1c27 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,12 @@ ifneq ($(ARGS),) # then fails with "No rule to make target 'sample'", because make reads every # word on the line as something it has been asked to build. $(eval $(ARGS):;@:) +# ...and as PHONY, because some of those words name real directories. `cfg`, +# `ctrl`, `docs`, `gen` and `init` all exist at this level, and make considers a +# target that is an existing directory already built — so `make build ctrl` ran +# the build and then printed "make: 'ctrl' is up to date". The empty rule above +# is not enough on its own; only .PHONY stops make consulting the filesystem. +.PHONY: $(ARGS) endif .DEFAULT_GOAL := help