Comment compiler les binaires Fortran distribuables sur Mac OS X Mountain Lion?

Depuis Apple a arrêté de distribuer gfortran avec Xcode, comment dois-je compiler indépendant de l'architecture code Fortran? J'ai Mac OS X Mountain Lion (10.8), et XCode 4.4 installé, avec la Outils De Ligne De Commande paquet installé.

Apple Natif de Compilateurs

Autant que je peux dire, le Xcode C /C++ /ObjC compilateurs utilisent une fourchette de la La collection de compilateurs GNUavec llvm comme un back-end; le dernier, j'ai la figure permet la compilation et l'optimisation de la "universelle" des binaires pour les processeurs Intel et PPC architectures.

3ème partie binaire compilateurs Fortran

HPC

J'ai trouvé qu'un seul site web qui distribue une version binaire de gfortran spécifiquement pour Mountain Lion: le HPC site web. Cependant, je n'ai pas réussi à obtenir ce pour compiler SciPy, et plus tard a vu dans SciPy du fichier README qu'il est "connu pour générer buggy scipy binaires".

CRAN/R

SciPy est recommandé (free) compilateur Fortran est la CRAN de la R serveur, mais cela n'a pas été mis à jour pour Mountain Lion encore. Ils fournissent des instructions et un script pour La construction d'un Compilateur Universellemais, encore une fois, cela n'a pas été mis à jour pour Mountain Lion encore..

G95

La G95 projet n'a pas eu une mise à jour depuis 2010, donc je n'ai pas essayer.. quelqu'un a essayé ce sur la Montagne du Lion?

MacPorts

Je suppose que ce sera la meilleure façon d'obtenir gfortran installé, mais port search gfortran arrive avec rien, et je n'ai pas eu du tout de la joie avec MacPorts dans le passé (n'en déplaise à MacPorts; il ressemble à un projet actif, mais j'ai été gâté avec Linux gestionnaires de paquets, mon préféré manager d'aptitude) donc sur Mac OS X, j'ai compilé les logiciels et les bibliothèques de code source dans le passé. Jamais été un problème jusqu'à maintenant...

La construction d'un compilateur Fortran

Avoir creusé autour sur l'internet, beaucoup de choses dans le dernier couple de jours, j'ai trouvé d'autres compilateurs Fortran, mais je n'ai pas réussi à obtenir tout de cross-compiler les binaires universels, ou de compiler SciPy.

GCC Gnu compiler Collection

J'ai compilé l'ensemble de la GCC collection (v4.6.3), y compris les autotools, automake, libtool et m4 - comme le GCC wiki et ce blog décrire - mais le résultat de compilateurs ne pas compiler les binaires universels, probablement parce que LLVM n'était pas utilisé comme un back-end.

DragonEgg

DragonEgg est un "gcc plugin qui remplace de GCC optimisateurs et-générateurs de code ... avec LLVM". Cela semble intéressant, mais je ne sais pas comment je pourrais l'utiliser pour compiler 'llvm-gfortran-4.x'. Cela peut-il être fait?

Compatibilité

Bibliothèques

Le compilateur fourni avec Xcode est (un fork de?) GCC v4.2. Mais de GCC version actuelle et des branches de développement sont des versions 4.6 et 4.7, respectivement. Apparemment, une licence GNU changement, ou quelque chose, cessé d'Apple à partir de la mise à jour vers des versions plus modernes de la GCC. Donc, si j'étais à construire les bibliothèques dynamiques réalisés avec du CCG gfortran v4.6, pourraient-ils être lié à du code C compilé par Xcode du compilateur natif? Au minimum, je figure résultant de Mach-O binaires ont besoin à la fois et i386 et x86_64 chemins de code. Ne GCC fournir une compatibilité ascendante avec Apple (fourches?) GCC? Je sais gfortran a la -ff2c drapeaumais est-ce stable entre les versions?

Compiler flags

La GCC compilateur Fortran j'ai construit à partir de la source ne prend pas en charge l'utilisation de la -arch drapeau de compilation. J'avais été y compris les drapeaux -arch x86_64 -arch i386 dans les deux variables CFLAGS et FFLAGS variables d'environnement sur les anciennes versions OSX (Snow Leopard à Lion). Python distutils, et probablement d'autres OSX compilateurs, attendre de ces drapeaux de travail, lorsqu'il est configuré pour créer des applications ou des cadres, à l'aide de Xcode universel du SDK.

Dans le cas où vous vous demandez quoi compiler flags j'utilise, je l'ai téléchargé le script que j'utilise pour pastebinje source avant de me compiler quoi que ce soit, à l'aide de: source ~/.bash_devenv.

L'Idéal OSX Compilateur Fortran

  • Créer ppc et intel (32 et 64 bits) les binaires universels, spécifié à l'aide de la -arch drapeaux.
  • Fait binaires compatible avec XCode de l'éditeur de liens.
  • Compile SciPy, sans donner d'erreurs (compatible avec numpy est distutils et f2py).

Je n'ai pas utiliser Xcode beaucoup de choses, mais l'intégration avec il serait certainement bénéficier à d'autres utilisateurs. Même Intel sont toujours avoir des problèmes l'intégration ifort dans Xcode 4.4, donc ce n'est pas quelque chose que je m'attends à travailler..

Si vous avez lu tout ce qui précède, alors merci! Vous pouvez dire que je ne suis pas opposé à la construction de ma propre compilateur Fortran de la source, mais est-il même possible? Ai-je raté quelque chose? Configurer drapeau peut-être? Et si un tel compilateur n'est pas encore disponible, alors pourquoi pas?!

(Mise à jour:) Apple GCC

Apple de fournir le code source de leurs patché la version de GCC, à opensource.apple.com. Cela inclut le code source pour gfortran, mais que savez-vous - cela ne compile pas (facilement). Je suis en train d'écrire un script de compilation pour obtenir que cela fonctionne. Malheureusement, j'ai dû appliquer un couple de patchs, et d'apprendre sur "la Pomme façon" de construire des logiciels GNU. C'est la voie à suivre je pense. Toutes les raisons pour lesquelles il ne devrait pas être? Je vais mettre à jour avec une réponse si je le faire fonctionner...

source d'informationauteur Alex Leach