Germano wrote: > > Il makefile è "soltanto" un file in cui ci sono delle istruzioni in un > formato apparentemente incomprensibile che vengono eseguito dal comando make; > questo comporta un notevole risparmio di tempo e riduce il rischio di errorri > in fase di compilazione e linking.
Non e` cosi` complicato :-) Ha una struttura abbastanza semplice. Lo schema base e`: dichiarazione di variabili obiettivo1: oggetti da cui dipende <tab> azione per realizzare obiettivo1 .... obiettivoN: oggetti da cui dipende <tab> azione per realizzare obiettivoN il comando "make" realizza il primo obiettivo della lista, "make nome-obiettivo" ne realizza uno a scelta. Vediamo un esempio SUB= subroutine1.o subroutine2.o programma: main.o $SUB gcc -o programma main.o $SUB install: programma cp programma /usr/local/bin/programma risultati: programma dati programma < dati > risultati --------- Se lancio "make install", make - controlla se esiste programma, se e` piu` recente dei file.o da cui dipende e se questi sono piu` recenti dei rispettivi file.c (quest'ultima dipendenza e` implicita) - fa tutte (e sole) le operazioni necessarie per aggiornare tutto - installa il programma "make risultati" controlla se non hai cambiato dati o programma o, in cascata, gli oggetti da cui dipende programma dall'ultima volta che hai calcolato i risultati e eventualmente riallinea tutto e ti calcola risultati. Se tutto e` allineato come date, ti risponde che non c'e` niente da aggiornare. Semplice ma geniale :-) Lo si potrebbe definire un prototipo (con 20 anni di anticipo) della programmazione ad oggetti. ciao, andrea