public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download: 
* [gentoo-dev]  [RFC] Create a JOBS variable to replace -jX in MAKEOPTS
@ 2008-12-04 20:29 99% Diego 'Flameeyes' Pettenò
  0 siblings, 0 replies; 1+ results
From: Diego 'Flameeyes' Pettenò @ 2008-12-04 20:29 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1222 bytes --]


Since not all the buildsystem we support use make for the actual build,
and they don't necessarily support make-like options (-jX -s and so on),
it would be nice to be able to express a JOBS variable that could be
used for parallel build with any build systems.

Right now there are ebuilds like openoffice or some scons-based ebuilds
that parse MAKEOPTS and get out of that the number of jobs from the -j
option, but this is a) suboptimal b) error-prone.

One has to consider people might be using -l for parallel building too,
for which reasons I'd be suggesting doing something like this to make
the change transparent:

 - ebuilds using non-make build systems would use JOBS;
 - ebuilds using make builds systems would just use emake as usual;
 - Portage takes care, if JOBS is unset, to parse it out of MAKEOPTS;
 - if user has set JOBS but not MAKEOPTS this defaults to -j${JOBS};
 - if user has JOBS and MAKEOPTS, MAKEOPTS keeps the same (for -l).

The result is that you can finally combine -l with parallel build on
OpenOffice and other packages, with a fallback number of maximum jobs
instead of using load-based decisions.

-- 
Diego "Flameeyes" Pettenò
http://blog.flameeyes.eu/


[-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --]

^ permalink raw reply	[relevance 99%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2008-12-04 20:29 99% [gentoo-dev] [RFC] Create a JOBS variable to replace -jX in MAKEOPTS Diego 'Flameeyes' Pettenò

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox