On Oct 6, 2019, at 14:05, Ken Cunningham wrote:

> I think I have tried this enough ways to be close, but I just want to be 
> certain.
> 
> I want to *append* a value onto an existing environment variable from a 
> Portfile. I don’t want to overwrite what is there in the environment variable 
> already.
> 
> 
> adding for example this in the Portfile:
> 
> configure.env-append "LDFLAGS=-Wl,-w”
> 
> 
> adds my new LDFLAGS onto the existing LDFLAGS in the environment, as far as I 
> can tell.
> 
> without:
> LDFLAGS='-L/opt/universalnew/lib -Wl,-headerpad_max_install_names 
> -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
>  -arch x86_64 -arch i386'
> 
> with:
> LDFLAGS='-Wl,-w -L/opt/universalnew/lib -Wl,-headerpad_max_install_names 
> -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
>  -arch x86_64 -arch i386'
> 
> 
> So that works (better than I initially thought, actually).
> 
> 
> However, as we previously noted in another ticket exploring this:
> 
> ${configure.ldflags}
> 
> does not pick up any of the modifications that are done to LDFLAGS in 
> portconfigure.tcl or in Portfile, and so is, practically, seriously flawed:
> 
> pre-build {
>    puts ${configure.ldflags}
> }
> 
> -L/opt/universalnew/lib -Wl,-headerpad_max_install_names
> 
> 
> Have we discovered a way in the Portfile to force ${configure.ldflags} to be 
> updated to be the same as the fully processed LDFLAGS in configure.env?

No... it's the other way around...

If you want to modify LDFLAGS, do so by modifying configure.ldflags. MacPorts 
will set the LDFLAGS environment variable to the value of  configure.ldflags 
before running the configure phase.

This is the reason why we have all these configure.* variables: to make it 
easy/possible to set/append/prepend/replace values in commonly-used environment 
variables.

Of course this only works for environment variables for which we've had the 
foresight to provide a configure.* variable. If the variable you want to do 
this for doesn't currently have one, and if it's of general enough interest, a 
variable could be added to base for that.

For commonly-used environment variables for which we have configure.* 
variables, like configure.ldflags, don't attempt to manually 
set/append/whatever LDFLAGS in configure.env. Instead, use the variable 
MacPorts has provided.


Reply via email to