You might not be familiar with what C compiler and linker commands look like. Here's a listing of what "make" or "make all" actually executes in the example makefile (just take as given that these are normal and understandable commands to compile and link a binary):
cc -Wall -o file1.o -c file1.c
cc -Wall -o file2.o -c file2.c
cc -Wall -o file3.o -c file3.c
cc -Wall -o name_of_bin file1.o file2.o file3.o
and "make clean" executes:
rm -f *.o name_of_bin
The big win is that make looks at modification times of all targets and dependencies. If you type 'make' without changing anything, it completes within microseconds. If you edit only file1.c, then it only recompiles file1.o and re-links name_of_bin. You really miss this kind of speed when moving back to any other kind of dev environment!