Make
Da Wikipedia, l'enciclopedia libera.
make è una utility usata con i sistemi operativi della famiglia UNIX che automatizza il processo di conversione dei file da una forma ad un'altra, risolvendo le dipendenze e invocando programmi esterni per il lavoro necessario.
Molto frequentemente è usato per la compilazione di codice sorgente in codice oggetto, unendo e poi linkando il codice oggetto in esegubili o in librerie. Esso usa file chiamati "makefiles" per determinare il grafico delle dipendenze per un particolare output, e gli script necessari per la compilazione da passare alla shell. Il termine "makefile" proviene dal nome tradizionale "makefile" o "Makefile".
[modifica] Esempio di un makefile
Sotto è riportato un esempio di un makefile che compila un sorgente chiamato "helloworld.c" usando cc, un compilatore C. Il tag PHONY è un tecnicismo che dice al make che un particolare nome di target non produce un file. I simboli $@ e $< sono due di quelle che sono chiamate variabili automatiche e rappresentano il nome del target. Ci sono altre variabili automatiche.
Si noti che nel "clean" target, un meno precede nel comando, che dice al make di ignorare gli errori durante l'esecuzione del comando; make normalmente esce se l'esecuzione di un comando fallisce in qualsiasi punto. Nel caso del target di pulizia, chiamato tipicamente "clean", si vuole rimuovere ogni file generato nel processo di build, senza uscire se i file da cancellare non esistono. Con l'aggiunta del tag PHONY al clean, si previene che make si aspetti un file dal target. In questo particolare caso, il prefisso meno nel comando è ridondante e in casi comuni, l'opzione -f o "force" aggiunta a rm previene che rm esca a causa della non esistenza di un file.
helloworld: helloworld.o cc -o $@ $< helloworld.o: helloworld.c cc -c -o $@ $< .PHONY: clean clean: -rm -f helloworld helloworld.o