[Buildroot] query about change to $(MAKE) definition

Peter Korsgaard jacmet at uclibc.org
Tue Jul 8 08:16:58 UTC 2008


>>>>> "Hamish" == Hamish Moffatt <hamish at cloud.net.au> writes:

Hi,

 Hamish> Peter,
 Hamish> Can you explain the rationale behind the following change to
 Hamish> package/Makefile.in you made last week?

Sure.

 Hamish> It's causing my kernel builds to be very noisy now. I have a
 Hamish> custom makefile for my kernel build, and I'm now getting a
 Hamish> ton of

 Hamish> make[5]: warning: -jN forced in submake: disabling jobserver mode.

Strange, I haven't seen that before.

 Hamish> warnings from it, because $(MAKE) has changed from
 Hamish> '/usr/bin/make -j2' to: '/usr/bin/make MAKE=/usr/bin/make -j2'.
 Hamish> So now -j2 is passed to every submake instance, rather than
 Hamish> letting make itself do the right thing. I'm guessing other
 Hamish> builds that do anything tricky might also suffer.

Yeah, I wanted to propagate the HOSTMAKE setting to the sub makes and
get -j and -s correct.

But now reading the make manual in details
(http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html#Options_002fRecursion)
it seems like -s and -j are handled automatically, and from a quick
test it indeed seems to be the case for -s. Strange, that's afaik no
what I was seing before, hence the extra code.

The easiest would actually be if would get rid of the BR2_JLEVEL stuff
completely and just let people use -j<whatever> on the top level make
instead, then make should handle it all automatically. Why don't we do
it like that? Is something in the toplevel makefile broken for
parallel builds? (I know lots of other buildroot stuff is broken for
parallel). Then we could also get rid of the HOSTMAKE thing and it
would all boil down to:

MAKE1=$(MAKE) -j1

What do you say?

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list