Un makefile non devi compilarlo, ti serve per compilare. Stabilisce delle dipendenze tra file e automatizza i comandi in modo da compilare solo ciò che è necessario e non sprecare risorse per ricompilare file che non è necessario ricompilare.
Devi darlo in pasto a (una implementazione) di make.

In realtà puoi automatizzare qualsiasi cosa abbia dipendenze tra file con make, la compilazione è un caso particolare (e anche il più comune).