The default target is some_binary, binary call option example it is first. This file will make some_binary the first time, and the second time notice it’s already made, resulting in make: ‘some_binary’ is up to date. This will always make both targets, because some_binary depends on other.
Similarly, if the clean file is older than the some_binary file, the clean rule will not be called. Adding PHONY to a target will prevent make from confusing the phony target with a file name. In this example, if clean is created, make clean will still be run. PHONY is great to use, but I’ll skip it in the rest of the examples for simplicity.