Gentoo Archives: gentoo-devhelp

From: Nikos Chantziaras <realnc@×××××.com>
To: gentoo-devhelp@l.g.o
Subject: [gentoo-devhelp] Re: How do I get just the "-j" part from MAKEOPTS?
Date: Tue, 27 Mar 2012 05:56:25
Message-Id: jkrkpb$h47$
In Reply to: Re: [gentoo-devhelp] How do I get just the "-j" part from MAKEOPTS? by Nathan Phillip Brink
On 27/03/12 08:37, Nathan Phillip Brink wrote:
> On Tue, Mar 27, 2012 at 05:43:43AM +0300, Nikos Chantziaras wrote: >> I have an ebuild that uses jam as its build system. jam supports >> parallel builds with -jN. However, other make options are not >> recognized. So in the ebuild, I can't just pass ${MAKEOPTS}. >> >> Is there a way to filter out just the "-jN" part of MAKEOPTS and pass it on? > > It looks like some eclasses just resort to sed for that: > > ohnobinki@ohnopublishing ~/portage $ grep -Re 'MAKEOPTS.*-j' /usr/portage/eclass > /usr/portage/eclass/toolchain.eclass: export MAKEOPTS="${MAKEOPTS} -j1" > /usr/portage/eclass/waf-utils.eclass: local jobs=$(echo -j1 ${MAKEOPTS} | sed -r "s/.*(-j\s*|--jobs=)([0-9]+).*/--jobs=\2/" ) > /usr/portage/eclass/perl-module.eclass: export HARNESS_OPTIONS=j$(echo -j1 ${MAKEOPTS} | sed -r "s/.*(-j\s*|--jobs=)([0-9]+).*/\2/" ) > > So if you did something dirty like that, it would be enough to make > people happy ;-).
Mr. Bones pointed out that the ebuild for games-simulation/lincity-ng provides a usable sed line I can use: $(echo "${MAKEOPTS}" | sed -ne "/-j/ { s/.*\(-j[[:space:]]*[0-9]\+\).*/\1/; p }") Indeed it does the job.