Introduzione ai makefile in Fortran

Una introduzione sulla realizzazione di un makefile per progetti fortran

comando make, compilatore fortran, compilazione di programmi fortran, linux fortran, makefile fortran

Per poter utilizzare il comando make è necessario disporre di un file chiamato makefile; questo perchè è proprio il makefile che dice al comando make come compilare e collegare un programma. Ci soffermeremo solo su un semplice esempio di makefile che descrive come compilare e collegare un programma FORTRAN che consiste di diversi file Fortran 90/95 . Il Makefile può anche dire al comando make come eseguire vari comandi, quando esplicitamente richiesto (per esempio, per rimuovere alcuni file in una operazione di pulizia). Diciamo che (per ragioni di complessità) uno di questi file di origine F90 è un modulo che contiene varibili globali, funzioni e subroutine che si vedono da altre subroutine (o funzioni) contenute in altri file di origine F90. Tutti i file sorgenti F90 devono essere compilati e collegati tra loro al fine di produrre il file eseguibile che esegue il programma.

Quando il comando make ricompila il programma, ogni file F90 cambiato deve essere ricompilato. Se un file è cambiato in un modulo (che contiene i parametri globali a cui si accede da altri file), ciascun sorgente F90 file che contiene il file modulo deve essere ricompilato allo stesso modo. Ogni compilazione produce un file oggetto corrispondente al file sorgente (con estensione .o). Infine, se ogni file sorgente è stato ricompilato, tutti i file oggetto, sia di nuova fattura o ottenuti da raccolte precedenti, devono essere collegati insieme per produrre il nuovo file eseguibile.

Un semplice makefile è costituito da “regole” con la seguente forma:

TARGET … : PREREQUISITES …
COMMAND

Un TARGET è di solito il nome di un file che viene generato da un programma; esempi di TARGET sono eseguibili o file oggetto. Un TARGET può essere anche il nome di una azione da svolgere, come clean. Un PREREQUISITES è un file che viene usato come input per creare il TARGET . Un TARGET dipende spesso da diversi file. Un COMMAND è un’azione che il comando make svolge. Una regola può avere più di un COMMAND, ciascuno sulla propria riga.

Nota: E’ necessario mettere un carattere di tabulazione all’inizio di ogni linea di comando! Nessuno sa perchè ma è necessario farlo altrimenti il comando make non funziona.

Di solito un COMMAND è in regola con i PREREQUISITES e serve per creare un file di destinazione se uno dei PREREQUISITES cambia. Tuttavia, la norma che specifica i COMMAND per il TARGET non necessita di PREREQUISITES . Ad esempio, la norma che contiene il comando di eliminazione associate con il TARGET `clean ‘non ha PREREQUISITES . Una “regola”, poi, spiega come e quando rifare alcuni file che sono gli obiettivi della particolare regola. Il comando make effettua i comandi dei prerequisiti per creare o aggiornare il bersaglio. Una regola può anche spiegare come e quando effettuare un’azione.

Iolowcost

Una vita a basso costo?

Visita subito il nostro portale!

Link correlati