Universal Binaries

Timothy Lee TimLee at rochester.rr.com
Sun Jan 25 12:53:38 PST 2009


Harry-
Thanks for the response!

On Jan 25, 2009, at 3:37 PM, Harry van der Wolf wrote:

>
>
> 2009/1/25 Timothy Lee <TimLee at rochester.rr.com>
> Ryan-
> Thanks for the tip on not adding the '/' to the --prefix - that  
> fixed the problem.
>
> In regards to the +universal variants - my universal_target only  
> contains "i386" as suggested by Josh. My other settings look like  
> this:
>
> # Options for Universal Binaries (+universal variant)
>
> # MACOSX_DEPLOYMENT_TARGET
> universal_target        10.4
>
> # the SDK "sysroot" to use
> universal_sysroot       /Xcode3_0/SDKs/MacOSX10.4u.sdk
>
> # machine architectures
> universal_archs         i386
>
> Again- my variants.conf only contains +universal and my  
> macports.conf as the variants_conf path set correctly - yet I still  
> see the deployment is being set to 10.5.
>
> Any suggestions?
>
> thanks
>
>
> The line
> # machine architectures
> universal_archs         i386
> is not correct.
> Sorry for maybe explaining the obvious but do you know what  
> universal means?
> It means that it will run on both the ppc as well as the intel  
> platform. In it's basic form this means that you will need to make a  
> 32bit binary/library that is both ppc and i386.
> If you really want to build for all options you should even make  
> 4way architecture builds for 32bit and 64bit, meaning: ppc, i386  
> (intel single core), ppc64 (G5) and x86_64 (intel core duo and  
> better). ppc can be ppc (runs on >=G3), ppc740 (runs on >=G4) and  
> ppc750 (runs on >=G5 in 32bit mode).
>
> So to be able to build universal for all systems >=G3 you need ppc  
> and i386. This means that you need to specify
> # machine architectures
> universal_archs         ppc i386
>
> With your line you only build for i386. This is not universal.
> Macports does not yet support the 64bit builds. (When I build 4way  
> architecture builds (occasionally for Hugin) I build them outside  
> macports.)
>

Yep - all too familiar with the different architectures. My reasoning  
for adding i386 on a line by itself is that I only care about i386  
builds (suggested by Joshua). I have a ppc 10.4 machine that I am  
performing my 10.4 builds on and when the i386-10.4-compatible builds  
are complete on my 10.5 machine, I will 'lipo' the ppc and i386 builds  
together. Unfortunately my target build (Musicbrainz Picard v0.11)  
currently needs to be 'lipo'-ed together due to endian-issues.

> With regard to your
> "Again- my variants.conf only contains +universal and my  
> macports.conf as the variants_conf path set correctly - yet I still  
> see the deployment is being set to 10.5."
>
> Please check whether  /Xcode3_0/SDKs/MacOSX10.4u.sdk is really the  
> correct path. If it can't find the 10.4u.sdk it might default to the  
> 10.5.sdk using the 0.5 deplyment target (which is default for 10.5).
> My macports is using the 10.4u.sdk for deployment target 10.4.This  
> functions for me but I do have my sdk's in the default "/Developer/ 
> SDKs/MacOSX10.4u.sdk".

Yes, I have BOTH xcode 2.5 and 3.0 installed. Why? Aaron Hillegas's  
Cocoa book uses Xcode 2.5 and there are many changes in Xcode 3.0 that  
make using the book difficult to use to learn cocoa. So - I have 2.5  
installed for educational purposes and Xcode 3.x installed to 'stay  
current. My directories are /Xcode3_0/SDKs/ and /Xcode2_5/SDKs/. When  
build with the -v flag in macports I do see it properly linking  
against /Xcode3_0/SDKs/MacOSX10.4u.sdk. For some reason the I'm still  
seeing 10.5 show up in my deployment target though.

>
> You might even check if "/Developer/SDKs/MacOSX10.5.sdk" exists.   
> Macports runs "on top off"  gcc. I'm not sure how solid macports can  
> overrule gcc standard settings if gcc finds a 10.5.sdk in / 
> Developer. (I have no experience with that. It's only guessing on  
> this part).
>
> Finally: you mention /mopt/local/bin. Do you also have an "old"  
> default /opt/local/bin that still can be found via the path?
>
>

So - again, to be confusing :) I keep a 10.5 macports in /opt and my  
10.4 'compatible' macports install in /mopt/ (actually i just changed  
it to /tigeropt/). All paths are properly set in each shell that I use  
based on which macports install I am using (I have my  
normal .bash_profile use my /opt/ install and if I want to use my  
tiger install I explicitly source a file that changes all paths with "/ 
opt" in it to "/tigeropt/" in my env. All configuration files  
reference the correct (version-dependent) macports install. I've even  
tried changing my /opt/local/etc/macports/macports.conf's  
universal_target (when using my /tigeropt/ paths) to see if somehow I  
was incorrectly reading my /opt/ config files - and that didn't work  
either - still receiving '10.5' as my deployment target.



> Harry
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20090125/1f4e0fcc/attachment.html>


More information about the macports-users mailing list