This is why declaring a target phony is good for performance, even if you are not worried about the actual file existing. In this case the makefile will often contain a variable which lists a number of subdirectories to be built. There are a few of problems with this method, however. First, any error detected in a submake is not noted by this rule, so it will continue to build the rest of the directories even when one fails. Second, and perhaps more importantly, you cannot take advantage of the parallel build capabilities of make using this method, since there is only one rule.
Phony targets can have prerequisites.
When one phony target is a prerequisite of another, it serves as a subroutine of the other.