INTRODUZIONE ALLA PROGRAMMAZIONE IN C



L'utility Make



L'utility Make e' un intelligente program manager che mantiene l'integrita' di un gruppo di moduli di programma, una raccolta di programmi oppure un sistema completo. Nella pratica non e' possibile avere programmi che appartengano ad un sistema di file qualsiasi (ad esempio, i capitoli di testo in un libro, gia' passati in composizione). Questa utility viene principalmente utilizzata come aiuto in fase di sviluppo di sistemi. Make e' stata originariamente sviluppata per UNIX, ma attualmente e' disponibile sulla maggior parte dei sistemi. Facciamo presente che make e' un'utility per la programmazione, e non una parte del linguaggio C oppure un qualsiasi linguaggio per la soluzione di un determinato problema. Consideriamo il problema di mantenere un grosso numero di file sorgenti: main.c f1.c ... fn.c per cui potremmo normalmente compilare sul nostro sistema con il comando: cc -o main main.c f1.c ... fn.c Comunque, se siamo a conoscenza del fatto che alcuni file sono gia' stati precedentemente compilati ed i loro sorgenti non sono variati da quando possiamo aver provato, e vogliamo salvare la compilazione totale linkando questi file nel codice oggetto, il comando sara' il seguente: cc -o main main.c f1.c ... fi.o ... fj.o ... fn.c Possiamo usare l'opzione "-c" del compilatore C per creare un file ".o" per un modulo stabilito. Ad esempio: cc -c main.c creera' un file main.o. In questo caso non c'e' la necessita' di fornire nessun link alle librerie, poiche' questo problema viene automaticamente risolto nella fase di link della compilazione. Comunque, esiste un problema per la compilazione dell'intero programma in questo modo piuttosto lungo:

Se usiamo l'utility make, questa provvede automaticamente a fare tutti questi controlli. In generale, questa utility garantisce la ricompilazione solamente dei moduli che hanno i file oggetto piu' vecchi rispetto ai file sorgenti.