Makefiles sunt o formă de fișier de configurare care este utilizată de utilitarul make pentru a identifica locația fișierelor sursă care vor fi utilizate într-o aplicație. Makefile ajută nu numai la localizarea fișierelor sursă, dar ajută și la definirea modului în care acestea vor fi compilate și legate între ele pentru a permite lansarea și funcționarea unui program executabil. Crearea unui makefile este un proces esențial cu aproape toate tipurile de programare computerizată.
Deoarece makefile ajută la definirea direcției și funcției diferitelor programe, este o parte esențială a scriptului care face parte din toate protocoalele utilitare make. Utilitarele Make pot varia oarecum de la o aplicație de programare la alta. Cu toate acestea, este important de reținut că aproape toate variantele de utilitate vor avea aceleași componente de bază găsite în astfel de utilitare, cum ar fi Unix.
În general, makefile-ul va fi format din mai multe rânduri de text care vor defini un fișier sau un set de fișiere. Fiecare dintre definițiile fișierelor va avea de-a face cu funcția prevăzută a acelui fișier în funcționarea programului. De exemplu, fișierele de ieșire vor fi marcate în liniile de text în așa fel încât dependența acelor fișiere de fișierele sursă să fie atât evidentă, cât și logică. Fiecare dependență listată în rândurile de text va include subseturi de text indentat cu tabele care ajută la definirea procesului de la ieșire la intrare și invers.
Utilizarea utilitarului make și crearea unui fișier make face să se elaboreze relativ pașii implicați în aplicații mari și adesea detaliate. Cu toate acestea, trebuie remarcat faptul că un makefile poate fi folosit cu aproape orice tip de aplicație de limbaj compilat. Datorită naturii construcției unui makefile, este relativ ușor pentru un programator să injecteze linii suplimentare de text în puncte strategice când este de dorit o îmbunătățire a programării.