Directives relatives à la création de paquets Fortran

Modules et includes

Les fichiers de module Fortran, portant l’extension .mod, décrivent une API et une ABI de module Fortran 90 (et ultérieur). Ces fichiers ne décrivent pas une API comme les fichiers C d’en-tête, ils sont spécifiques au compilateur et à l’architecture utilisées et ne sont pas lisibles aisément par un·e humain·e. Néanmoins, gfortran les recherche dans les répertoires include (spécifiés avec -I).

En raison de la spécificité de l’ABI, les modules doivent être séparés par architecture dans des répertoires distincts. De plus, chaque nouvelle version de gfortran est susceptible de casser la rétrocompatibilité des fichiers .mod, nécessitant une recompilation massive des paquets Fortran.

Fortran peut également utiliser des fichiers include, similaires aux en-têtes C. Ils portent généralement les extensions '.inc' et '.h', et parfois '.fh' pour les fichiers destinés à être utilisés en tant qu’en-têtes publiques.

Création de paquets pour les programmes Fortran

Les programmes Fortran ajoutés à Fedora DOIVENT être compilés, si possible, à l’aide du compilateur Fortran par défaut dans Fedora, 'gfortran'. Comme d’habitude, les flags d’optimisation Fedora standards %{optflags} DOIVENT être utilisés lors de la compilation.

Les fichiers include Fortran DOIVENT être placés dans le répertoire leur étant destiné, c’est-à-dire directement dans %{_includedir}. Néanmoins, si les en-têtes ont des noms généraux ou si un répertoire spécifique est mentionné upstream, ils doivent être placés dans celui-ci ; par exemple : %{_includedir}/%{name}.

Puisque les modules Fortran sont spécifiques à une architecture et à une version de GCC, ils DOIVENT être placés dans %{_fmoddir} (ou dans le sous-dossier spécifique au paquet si les modules ont des noms génériques), répertoire appartenant à 'gcc-gfortran'. Pour que les droits d’accès appropriés soient garantis, tout paquet contenant des modules Fortran DOIT comporter Requires: gcc-gfortran%{_isa}.

Pour utiliser les modules dans le répertoire des modules Fortran, vous devez ajouter -I%{_fmoddir} aux flags du compilateur (ce flag est déjà inclus dans FFLAGS, utilisé par %configure).