On Jun 23, 2007, at 16:27, Juan Manuel Palacios wrote:
I'm curious about why we provide facilities to alter the configure environment in many ways but practically none to alter the build environment. I know that in the ideal case (a properly written build system for any given software package) the configure environment should either cascade down to the build one (Makefiles inheriting and passing the same env flags that were given during the configure stage, for instance) or its results should be reflected there (the setting of some variable in generated Makefiles), but we all know there are quite a handful of broken build systems in which neither of these two is true. Therefore some Portfiles have the need of passing some (if not the same) flags to the environment during build (build.env) as they do in the configure stage.
So, onto my specific questions, is there any reason why we don't provide the build.xxflags-{append,delete} equivalents that we do for configure.xxflags-{append,delete}? How these would work (inheriting values, replicating them, overriding them,...) I'm not entirely sure, but you can easily spot Portfiles out there using build.env construct that may tread on what's set through the configure.xxflags if not used carefully. Also, if we're deprecating configure.env, shouldn't we be doing the same for build.env? And lastly, again on the deprecation of configure.env, what's our stand with respect to {configure,build}.env-{append,delete}?
I would completely understand if you told me none of these things have been implemented yet 'cause simply you've had "no time" ;-) But I was wondering if there were intead any type of technical decisions behind the lack of a build environment tweaking facility.
I also recently noticed the lack of build.cppflags-append and asked the list about it and got no response. http://lists.macosforge.org/pipermail/macports-dev/2007-May/001774.html I wasn't aware configure.env was deprecated. It's still used and required by many ports. I thought we just deprecated using configure.env for setting LDFLAGS and CPPFLAGS. Is that all you meant?