environment settings

Joshua Root jmr at macports.org
Mon Nov 26 00:55:58 UTC 2018


On 2018-11-26 02:35 , Ryan Schmidt wrote:
> 
> 
> On Nov 25, 2018, at 09:13, Mark Brethen wrote:
> 
>> build {
>>   ui_info "Building libtaucs archives:"
>>   system -W ${worksrcpath} "${build.cmd} ${build.args} ${build.target}"
>> }
>>
>> with 'LD = $(F77)’ in the Makefile, but that didn’t work. How should I pass this during build?
> 
> I suppose that ought to work, except that perhaps the problem you're running into is that ${build.args} is a list of values. If you want to concatenate all those list items with spaces and include that expanded value in a string, as you're doing here, you'll need to use the expand operator ({*}). Technically, build.cmd and build.target (and all other MacPorts options) are lists too, though they might only contain one item at the moment. To properly expand all those lists into strings, you'd use: "{*}${build.cmd} {*}${build.args} {*}${build.target}".

The function of {*} is to pass a list to a command as multiple
arguments, one per list element. That is not what's desired here, as the
command to be run by system should be given in a single argument.

Perhaps you were thinking of 'join'? But that shouldn't really be needed
here either.

- Josh


More information about the macports-dev mailing list