compiler selection

Weissmann Markus mww at
Sun Sep 30 04:57:02 PDT 2007

On 30.09.2007, at 12:13, Michael Wild wrote:

> Ryan Schmidt wrote:
>> On Sep 28, 2007, at 14:45, Ryan Schmidt wrote:
>>> On Sep 28, 2007, at 09:55, Michael Wild wrote:
>>>> My problem actually is that a port which I'm preparing requires  
>>>> gfortran which doesn't come with Apple's system gcc but is in  
>>>> port:gcc42. I could simply do "configure.fc ${prefix}/bin/ 
>>>> gfortran-mp-4.2, but what if someone has another gcc installed?  
>>>> I could depends_build on gcc42 but if a gcc suite is required by  
>>>> MacPorts anyways I wouldn't like to impose something which might  
>>>> install another compiler suite unnecessarily.
>>> If you require gfortran, you should depends_build on gcc42.  
>>> Nevermind anyone who has gcc43 installed; that's beta and  
>>> shouldn't be relied on until gcc44 is released, at which point  
>>> the port can be updated. Nevermind anyone who has gcc41 or gc40  
>>> or earlier installed; any ports that still depend on those should  
>>> be updated to gcc42.
>> Oh, I meant to say: and then you go:
>> configure.compiler gcc-4.0
> You mean
> configure.compiler macports-gcc-4.2
> else it doesn't work...
>> and with depends_build gcc42 that's all you should need.
> Yep, works like a charm now!

Well, you need to pay attention: If you have C++ or Objective-C code,  
it will link to the C++/Objective-C lib of the used compiler.
So if you build a C++ program, this needs to be "depends_lib gcc42"!  
For pure C programs, a "depends_build" is sufficient though.

You can check out if your program does this by doing a `otool -L name- 
of-the-binary-or-dynamic-library'. C++ programs compiled with  
macports gcc 4.2 will return e.g. '/opt/local/lib/gcc42/libstdc++. 


Markus W. Weissmann

Markus W. Weissmann

More information about the macports-dev mailing list