On Tue, 2023-07-25 at 08:26 +0200, Florian Schmaus wrote:
> On 25/07/2023 06.50, Michał Górny wrote:
> > On Mon, 2023-07-24 at 20:57 +0200, Florian Schmaus wrote:
> > > Since --load-average may not be found in other Make implementations
> > > besides GNU MAKE, it is potentially found in GNUMAKEFLAGS and not in
> > > MAKEOPTS.
> > > 
> > > Signed-off-by: Florian Schmaus <f...@gentoo.org>
> > > ---
> > >   eclass/multiprocessing.eclass | 6 +++---
> > >   1 file changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/eclass/multiprocessing.eclass b/eclass/multiprocessing.eclass
> > > index e55be636a02c..6489ecbb44a6 100644
> > > --- a/eclass/multiprocessing.eclass
> > > +++ b/eclass/multiprocessing.eclass
> > > @@ -1,4 +1,4 @@
> > > -# Copyright 1999-2022 Gentoo Authors
> > > +# Copyright 1999-2023 Gentoo Authors
> > >   # Distributed under the terms of the GNU General Public License v2
> > >   
> > >   # @ECLASS: multiprocessing.eclass
> > > @@ -86,7 +86,7 @@ makeopts_jobs() {
> > >   # @FUNCTION: makeopts_loadavg
> > >   # @USAGE: [${MAKEOPTS}] [${inf:-999}]
> > >   # @DESCRIPTION:
> > > -# Searches the arguments (defaults to ${MAKEOPTS}) and extracts the 
> > > value set
> > > +# Searches the arguments (defaults to ${MAKEOPTS} ${GNUMAKEFLAGS}) and 
> > > extracts the value set
> > >   # for load-average. For make and ninja based builds this will mean new 
> > > jobs are
> > >   # not only limited by the jobs-value, but also by the current load - 
> > > which might
> > >   # get excessive due to I/O and not just due to CPU load.
> > > @@ -95,7 +95,7 @@ makeopts_jobs() {
> > >   # If no limit is specified or --load-average is used without a number, 
> > > ${inf}
> > >   # (defaults to 999) is returned.
> > >   makeopts_loadavg() {
> > > - [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"
> > > + [[ $# -eq 0 ]] && set -- "${MAKEOPTS} ${GNUMAKEFLAGS}"
> > >           # This assumes the first .* will be more greedy than the second 
> > > .*
> > >           # since POSIX doesn't specify a non-greedy match (i.e. ".*?").
> > >           local lavg=$(echo " $* " | sed -r -n \
> > 
> > I'm pretty sure [GNU]MAKEFLAGS has incompatible format, in particular it
> > makes hyphens optional.
> 
> Yes, hyphens are optional in GNUMAKEFLAGS.
> 
> However, makeopts_loadavg() would still be able to extract the 
> hyphen-prefixed short (-l) and long (--load-average) options from 
> GNUMAKEFLAGS. Hence having makeopts_loadavg() also inspect GNUMAKEFLAGS 
> seems like an improvement over the current situation.
> 

Also, shouldn't you handle MAKEFLAGS then as well?  If we're to support
arbitrary variables used by build systems.

-- 
Best regards,
Michał Górny


Reply via email to