Makefiles su oblik konfiguracijske datoteke koju koristi uslužni program make kako bi identificirao lokaciju izvornih datoteka koje će se koristiti u aplikaciji. Makefile pomaže ne samo locirati izvorne datoteke, već također pomaže definirati kako će se one sastaviti i povezati jedna s drugom kako bi se omogućilo pokretanje i funkcioniranje izvršnog programa. Izrada makefile-a bitan je proces s gotovo svim vrstama računalnog programiranja.
Budući da makefile pomaže definirati smjer i funkciju raznih programa, bitan je dio skripte koja je dio svih protokola make utility. Uslužni programi Make mogu se donekle razlikovati od jedne do druge programske aplikacije. Međutim, važno je napomenuti da će gotovo sve varijacije uslužnih programa make sadržavati iste osnovne komponente koje se nalaze u takvim uslužnim programima, kao što je Unix.
Općenito, makefile će se sastojati od nekoliko redaka teksta koji će definirati datoteku ili skup datoteka. Svaka od definicija datoteka imat će veze s predviđenom funkcijom te datoteke unutar rada programa. Na primjer, izlazne datoteke bit će označene u recima teksta na takav način da je ovisnost tih datoteka o izvornim datotekama i očita i logična. Svaka ovisnost navedena u recima teksta uključivat će podskupove teksta uvučenog tabulatorom koji pomaže definirati proces od izlaza do unosa i obrnuto.
Korištenje uslužnog programa make i stvaranje makefile-a čini relativno mapiranje koraka uključenih u velike i često detaljne aplikacije. Međutim, treba napomenuti da se makefile može koristiti sa gotovo bilo kojom vrstom kompilirane jezične aplikacije. Zbog prirode konstrukcije makefilea, programeru je relativno lako ubaciti dodatne retke teksta u strateške točke kada je poželjno poboljšanje programiranja.