Makefile je soubor používaný programem ‘make’. Spuštění příkazu ‘make’ způsobí přečtení souboru ‘makefile’ nebo ‘Makefile’ (bez přípony), zparsování skriptu a provedení prvního cíle. Definice cíle obsahuje název, závislosti a příkazy.
Příklad cíle ‘clean’, bez závoslostí, se dvěma příkazy (všechny příkazy nutno předsadit TABem):
clean:
rm -f $(OBJECTS) $(EXECUTABLE) ./doc
rmdir $(TMP)
Příklad cíle ‘clear’, který je závislý na cíli ‘clean’:
clear: clean
Vyvolání konkrétního cíle provedeme např. příkazem ‘make clean’. To způsobí, provedení závislostí a potom příkazů vybraného cíle. Závislosti se neprovedou, pokud je cíl jméno souboru, který má závislost na nezměněné soubory.
Příkaz make má spoustu vychytávek, které mohou usnadnit práci. Základní je uložení často používané hodnoty do proměnné:
DIR=./src/engine/
tu pak můžeme použít kdekoli ve skriptu:
$(TMP)%.o: $(DIR)%.cpp
$(CC) $(CFLAGS) $< -o $@
V předchozím skriptu jsou kromě několika proměnných také předvedené zkratky.
Zkratky máme pro název cíle $@
, první závislost $<
a závislosti, které se od posledního provedení změnily $?
.
Pro lepší pochopení si můžete projít příklad složitějšího makefile, který jsem použil ve své semestrální práci na programování v c++.
Zdroj: http://web.eng.hawaii.edu/Tutor/Make/ ↗ (EN)