On Mar 3, 2007, at 5:06 PM, Jordan K. Hubbard wrote:
Rather than big hacks on individual ports, it would seem better to have a couple of declarative statements for the universal strategy of a port:
- port may be built universal: yes/no - port builds universal out of box: yes/no - port builds in single pass with flags: xxx - port can be built in multiple passes by lipoing together the following binaries... (all others are assumed the same builds)
I'm not sure what value is added by having so many states. I think, as far as the builder is concerned, the only state that counts for anything is the first one. Does it build universal? Yes? OK, then the builder can choose to build it universal if that's valuable to them. If not, then it's a moot point. As far as an internal macports developer is concerned, there's also not a lot of value in splitting hairs here. If it builds universal out of the box vs tweaking it, that's great, but it's no different than having a port which compiles on MacOSX with no patches and respects $prefix properly in all ways vs one which has to be coerced into doing those things. Whether to lipo or not depends as much on what the macports developer wants to do (e.g. how much trouble to go through in the "coercion process") as anything else, so I don't see what value a declarative statement adds there either.
As always, my mind was racing ahead to implementation ;) What I was thinking out, though I didn't clearly say so, was what syntax we might need to add to portfiles to support building software universally in a more general fashion than having a separate implementation for each port. The user doesn't care about any of that, surely, except for #1. James