MacPorts and OpenMP---or how to build "everything" with MacPorts GCC?
larryv at macports.org
Fri Jun 21 00:12:56 PDT 2013
On Jun 21, 2013, at 2:30 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
> On Jun 20, 2013, at 07:41, Hans Ekkehard Plesser wrote:
>> Everything would be solved if I could download MacPorts, configure it to use, e.g., MacPorts gcc 4.7 to build everything, and then install all the ports I need for NEST
> You can configure MacPorts to do that. There is a setting in macports.conf you can set too override its usual default compiler choice. (Individual ports might still override that, for reasons specific to those ports.) I forget what the option is called and it is not documented or advertised
As of the latest trunk (r107199), the option is called "default_compilers". If set, its value becomes the default value for compiler.fallback.
>> I much appreciate MacPorts philosophy of making itself maximally independent from tools shipped with OSX.
This is not quite accurate. MacPorts strives to be as independent as possible from the *libraries* that Apple ships. Ports can and do use Apple-shipped executables (e.g., make, sed, grep) all the time.
>> Therefore, I have never quite understood why MacPorts insists on using the system compiler. I very well understand that it is virtually impossible to support a range of compilers, but why not use MacPorts own GCC as default then? As most of the packages provided through MacPorts originate from the Unix/Linux-world, I'd expect them to be GCC-friendly.
>> I'd much appreciate some information on why MacPorts has made the choices it has made and whether there are any plans for change.
> FSF GCC did not used to support -arch flags, which MacPorts uses to give the user the choice of architecture(s) to compile for. My understanding is that gcc47 finally supports -arch flags so this is no longer a problem.
This is true, but only for single-architecture builds. FSF GCC still cannot create universal binaries, so switching configure.compiler to macports-gcc* or macports-dragonegg* instantly breaks universal builds for every port that doesn't use the muniversal PortGroup (and possibly some that do).
More information about the macports-users