On Feb 11, 2008, at 06:23, Emil Lundberg wrote:
From the previous discussion, I remember that we (or rather mww) started by changing the +universal variant to build all 4 versions (2 architectures each of 32-bit and 64-bit) but this was problematic because many ports failed to build out of the box as 64-bit, and there was no clear upgrade path for those who already had 2-architecture universal variants installed, and it was said that 64-bit versions of most ports don't make sense anyway (aren't faster, or possibly are even slower). But it seems like we want to be able to do this for selected ports.
Most of the ports that failed were using Carbon, or otherwise old... (old Carbon GUI does not support 64-bit, only Cocoa GUI does that)
Thanks for revisiting this. There is a real need to be able to compile, by default, for the native architecture of your machine. There is also a real need to preseve backwards compatibility. A modest proposal (based on posts and discussions old and new) that might please everyone:
* Keep the "universal" variant for building architecture-fat binaries (only). * Add a new "fat" variant for building bit-fat binaries (only). * Activate the "fat" variant by default on all library-class ports.
What are "library-class ports"? What I mean is: what criteria would you use (what portfile variables, for example) to classify a port as a library-class port?
* Add an config option to set the default bit-ness ("always 32-bit" or "native") for all builds.
Some of it may well be in there already; I haven't been able to locate it in the docs though, e.g. where does "universal_archs" apply...?
I reverted +universal back to meaning "10.4u SDK for ppc/i386 arch", and then made them into parameters for overriding locally if desired.
So is it possible, using the current MacPorts 1.6.0, to build bit- fat/quad-fat binaries, and if so, how is this accomplished (feel free to bring this onto the users-list)?
That comment applied to trunk only. 1.6.0 does not have the universal_archs variable, and has always built only the two 32-bit architectures. MacPorts in trunk has universal_archs, which was for a time set to all 4 architectures, but that didn't work well and then was changed to use only the 2 again. Someone using MacPorts trunk could set universal_archs to a different set of architectures to include in a universal build, but I would not expect any portfile author to have tested with anything other than the default "ppc i386" architecture set.