Re: make -j in Debian packages
On Wed, 28 Jun 2006, Adam Borowski wrote:
> On Wed, Jun 28, 2006 at 02:06:26AM -0700, Don Armstrong wrote:
> > On Wed, 28 Jun 2006, Adam Borowski wrote:
> > > Let's allow maintainers to use make -jX according to their common
> > > sense, requiring obeying an env variable to opt out.
> > Why not just have some ENV variable (CONCURRENCY_LEVEL?) which
> > specifies the maximum -j; the package maintainer is free to choose any
> > level equal to or below that.
> > If CONCURRENCY_LEVEL is not set, the rules file must assume
> > CONCURRENCY_LEVEL=1 (or not specify -j?); this will keep what should
> > be the current status quo the same, and allow buildd's and other
> > builders to set this variable to a reasonable level for their system.
> I would rather have it default to "a reasonable value on an average
> uniprocessor box, according to the maintainer's common sense".
> Otherwise, nearly no one will have this variable set and thus the
> whole benefit will be lost. And cutting the build time by half or
> more is a GREAT thing to have.
The only places setting the variable matters is on buildds and when
people are building the package; I think the buildd people will be
aware of it if it helps, and maintainers will have to know of it if
they implement it.
> This is certainly not what you want for a package build; unlimited
> -j is useful for other uses of make.
I was more thinking of cases where the upstream Makefile already
specifies a -j if one isn't set.
> > This has the disadvantage of not automatically using -j for every
> > package and requiring maintainer buy in to see results... but
> > presumably those packages where it actually makes a difference
> > will adopt it just so maintainer builds don't take as long.
> Why would you restrict this just to maintainer builds?
I don't mean to restrict it.
> Speeding up buildds and user builds would be a worthy goal, too. An
> obscure env var hardly anyone knows about means that hardly anyone
> will be affected.
Because maintainers will be the one making changes to rules files to
implement CONCURRENCY_LEVEL (or whatever is decided on), they'll be
more likely to do so if there's a benefit for them.
There is no such thing as "social gambling." Either you are there to
cut the other bloke's heart out and eat it--or you're a sucker. If you
don't like this choice--don't gamble.
-- Robert Heinlein _Time Enough For Love_ p250