codice:
%.o: %.c $(INCLUDE)
Questa linea dichiare che la regola per creare files .o da files .c (il % è il carattere jolly dei makefiles).
Generalmente, una regola del makefile contiene le seguenti direttive:
codice:
target: sources
commands...
che dice al sistema che per generare "target" bisogna eseguire i "commands" comandi sui file "sources". Ergo:
$@ = target
$< = il primo file di sources
$^ = sources
Per esempio, dato il seguente Makefile:
codice:
destinazione: da1 da2 da3
@echo '$$'"@ = $@"
@echo '$$'"< = $<"
@echo '$$'"^ = $^"
da%:
@echo > $@
il comando make ti stamperà:
codice:
$@ = destinazione
$< = da1
$^ = da1 da2 da3
e ti creerà i files "da1", "da2" e "da3": provare per credere.
PS: la manfrina @echo '$$'"... serve per evitare di far espandere $@, $< e $^, in modo da avere
codice:
$@ = destinazione
e non
codice:
destinazione = destinazione