Did a quick `info make` and scanned through it a bit. The .PHONY target is kind of a safety net. See, normally, targets in a makefile share the name of the exact file being made. However, in the case of something like `clean`, there's usually no file with that name being produced, just a series of deletions. *However*, if there is a file named `clean` in the same directory as your makefile, that can cause some confusion for the make command. So, by using `.PHONY: clean`, you're telling make to disregard a file named clean if it happens to see it.

I'm less sure about .SUFFIXES. The section on that in the manual was long and starts with the phrase "Old-Fashioned"... so perhaps it's something that's not entirely necessary for your makefile at this point.