INTRODUZIONE ALLA PROGRAMMAZIONE IN C



Creazione di un makefile



Questa operazione risulta piuttosto semplice: si tratta di creare un file di testo utilizzando un qualsiasi text editor. Il makefile contiene solamente un elenco di file collegati ed i comandi necessari per soddisfare tali collegamenti. Riportiamo ora un esempio di makefile: prog: prog.o f1.o f2.o c89 prog.o f1.o f2.o -lm etc. prog.o: header.h prog.c c89 -c prog.c f1.o: header.h f1.c c89 -c f1.c f2.o: ... ... Make interpretera' il file nel seguente modo:

  1. prog dipende da 3 file: prog.o, f1.o ed f2.o. Se uno qualsiasi dei file oggetto sono stati modificati dopo l'ultima compilazione, i file devono essere linkati nuovamente.
  2. prog.o dipende da 2 file. Se questi risultano modificati, prog.o deve essere ricompilato; la stessa cosa vale per f1.o ed f2.o.
Gli ultimi 3 comandi nel makefile sono chiamati "regole esplicite", poiche' i file nei comandi vengono elencati con il proprio nome. Possiamo anche usare "regole implicite", le quali ci permettono di generalizzare le nostre regole e memorizzare cio' che e' stato digitato. E' possibile prendere: f1.o: f1.c cc -c f1.c f2.o: f2.c cc -c f2.c e generalizzarlo con il seguente comando: .c.o: cc -c $< Questo si legge come ".source_extension.target_extension: command". "$<" e' l'abbreviazione per il nome file con estensione ".c". E' possibile aggiungere commenti in un makefile utilizzando il simbolo "#"; in questo modo, tutti i caratteri che seguono # sulla linea vengono ignorati. Make ha molti comandi interni simili o addirittura uguali a quelli UNIX. Alcuni esempi: break, date, mkdir, type, chdir, mv (move o rename), cd, rm (remove), cp (copy), path