On 2011-6-25 09:31 , Ryan Schmidt wrote: > > On Jun 24, 2011, at 17:02, Joshua Root wrote: > >> On 2011-6-25 07:44 , Ryan Schmidt wrote: >>> I am curious if there is a good reason why variables like configure.cflags >>> don't contain the -arch flags. During the standard configure phase, >>> MacPorts does put the -arch flags into e.g. the CFLAGS environment >>> variable, but if you use e.g. configure.cflags yourself to fix ports that >>> don't use a standard configure phase, the -arch flags are missing, and must >>> be handled separately, both for single-arch and universal cases. This kind >>> of conditional code is tedious, and Toby thinks this didn't used to be >>> required: >>> >>> https://trac.macports.org/ticket/29847#comment:6 >> >> You can't know whether a universal variant exists until you finish >> parsing the portfile. > > But variables like configure.cflags are evaluated lazily. They're not set > until they're accessed for the first time. What if, by the time > configure.cflags were first accessed, the universal variant had been > declared? Wouldn't that provide enough opportunity for base to add the right > -arch flags?
Sure, if that were always the case, we could do it that way. It's not. > On a related note, it would be convenient if there were a variable that could > be accessed that contained all the arch flags, regardless of whether we're > building universal or single-arch. That would eliminate the need for this > construct currently being used in many ports: Yep. It would still be unusable until after the universal variant is declared (or known not to be) though. > Even more related, another variable would be helpful, namely a Tcl list > containing all the archs being used. Currently ports have to add logic to > decide whether to use build_arch or universal_archs or universal_archs_to_use > and it would be nice if there were a single variable that always did the > right thing. Well, universal_archs_to_use is muniversal doing its own thing for some reason. I don't know why it doesn't just use configure.universal_archs. You can use [get_canonical_archs] for this purpose otherwise (which, again, can't be relied upon before the universal variant is declared in ports that have one). It wouldn't really be appropriate for it to be a variable since you can't actually set it. - Josh _______________________________________________ macports-dev mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev
