Many Makefile targets are not properly marked .PHONY
From GNU make: Phony Targets:
A phony target is one that is not really the name of a file; rather it is just a name for a recipe to be executed when you make an explicit request.
The vast majority of the targets in Makefile
match this description, yet they are not marked .PHONY
.
.PHONY
The prerequisites of the special target.PHONY
are considered to be phony targets. When it is time to consider such a target, make will run its recipe unconditionally, regardless of whether a file with that name exists or what its last-modification time is.