Paketbaurichtlinien für Fortran

Modul- und Include-Dateien

Die Fortran-Moduldateien mit der Endung .mod beschreiben die API und ABI eines Fortran-90-Moduls (und höher). Anders als C-Headerdateien, die eine API beschreiben, sind sie compiler- und architekturabhängig und für Menschen schwer lesbar. Dennoch sucht gfortran in den Include-Verzeichnissen (in den mit -I angegebenen Verzeichnissen) nach ihnen.

Aufgrund der ABI-Spezifität muss das verwendete Modulverzeichnis architekturspezifisch sein. Darüber hinaus kann jede gfortran-Version (z.B. von 4.4 auf 4.5) zu inkompatiblen Änderungen in den .mod-Dateien führen. Daher müssen bei einer gfortran-Aktualisierung alle Fortran-Pakete neu gebaut werden.

Fortran kann, ähnlich wie C-Header, auch Include-Dateien verwenden. Gängige Dateinamensuffixe sind '.inc' und '.h', wobei '.fh' für Dateien verwendet wird, die als öffentliche Header fungieren sollen.

Paketierung von Fortran-Programmen

Fortran-Programme in Fedora MÜSSEN, wenn möglich, mit dem Standard-Fortran-Compiler von Fedora, „gfortran“, kompiliert werden. Wie üblich MÜSSEN dabei die Standard-Optimierungsflags von Fedora, %{optflags}, verwendet werden.

Fortran-Include-Dateien MÜSSEN im Standard-Include-Verzeichnis abgelegt werden: entweder direkt in %{_includedir}, oder, falls die Header allgemeine Namen haben oder Upstream ein eigenes Verzeichnis empfiehlt, z.B. in %{_includedir}/%{name}.

Da Fortran-Module architektur- und GCC-versionsspezifisch sind, MÜSSEN sie in %{_fmoddir} (oder dem entsprechenden paketspezifischen Unterordner, falls die Module generische Namen haben) abgelegt werden, dessen Eigentümer „gcc-gfortran“ ist. Pakete, die Fortran-Module enthalten, müssen daher die Abhängigkeit Requires: gcc-gfortran%{_isa} angeben.

Um die Module im Fortran-Modulverzeichnis zu verwenden, müssen Sie -I%{_fmoddir} zu den Compiler-Flags hinzufügen (dies ist bereits in FFLAGS enthalten, das von %configure verwendet wird).