Go to file
Fabio Porcedda 1668e1da39 packages: fix and improve support for top-level parallel make
The boost and jack2 packages fail to build when PARALLEL_JOBS is empty
so instead of using an empty PARALLEL_JOBS don't use it in the MAKE
variable when top-level parallel make is being used.

To simplify the use of top-level parallel make, check the MAKEFLAGS
variable to know automatically if the -j option is being used, also use
the "=" operator instead of the ":=" operator because the MAKEFLAGS
variable can be checked only in a "recursively expanded variable".
The "override" keyword must be used in order to change the automatic
variable "MAKE".

When the top-parallel make is being used the sub-make are called without
specifying the "-j" option in order to let GNU make share the job slots
specified in the top make. This is done because GNU make is able
to share the job slots available between each instance of make so if you
want to increase the number of jobs you just need to increase the <jobs>
value in the top make -j<jobs> command.

If we specify the -j<jobs> option in each instance of make, it is less
efficient, e.g. in a processor with 8 cores we specify -j9 in each instance:
the number of processes goes up to 81 because each sub-make can execute
9 processes. The excessive number of processes is not a good thing
because in my tests even -j16 is slower than -j9.
Instead if we don't specify the -j<jobs> option in the sub-make, the top
make share the job slots automatically between each instance, so the
number of process in this examples goes up to 9 that is faster than
using up to 81 processes.

e.g. when the -j3 option is specified only in the top make:

possible state n. 1:
process 1 - <packagea>-build
process 2 - <packagea>-build
process 3 - <packagea>-build

possible state n. 2:
process 1 - <packagea>-extract
process 2 - <packageb>-configure
process 3 - <packagec>-build

possible state n. 3:
process 1 - <packagea>-build make -j1
process 2 - <packageb>-build make -j1
process 3 - <packagec>-build make -j1

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-04 15:05:24 +02:00
arch arm: update processor types 2015-06-28 14:32:25 +02:00
board board: add support for WarPboard 2015-07-04 15:03:15 +02:00
boot boot/at91bootstrap3: download via custom git url 2015-06-14 23:42:48 +02:00
configs board: add support for WarPboard 2015-07-04 15:03:15 +02:00
docs scripts/mkusers: allow users with no password value set 2015-06-09 23:13:41 +02:00
fs fs/iso9660: add support for grub2 2015-06-14 23:25:18 +02:00
linux linux: bump default to version 4.1.1 2015-06-30 14:26:58 +02:00
package packages: fix and improve support for top-level parallel make 2015-07-04 15:05:24 +02:00
support support: remove outdated note re. Python 3 support 2015-06-12 21:19:52 +02:00
system system: allow/disallow root login, accept encoded passwords 2015-07-04 12:46:43 +02:00
toolchain toolchain: allow for stupid toolchains 2015-06-28 14:32:40 +02:00
.defconfig arch: kill avr32 2015-02-14 17:39:50 +01:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
CHANGES Update for 2015.05 2015-05-31 23:15:34 +02:00
Config.in Config.in: remove BR2_DEPRECATED_SINCE_2014_05 2015-06-02 22:58:29 +02:00
Config.in.legacy libsemanage: cleanup python use and license definition 2015-06-30 16:38:36 +02:00
COPYING clarify license and fix website license link 2009-05-08 09:29:41 +02:00
Makefile packages: fix and improve support for top-level parallel make 2015-07-04 15:05:24 +02:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: mention 'make list-defconfigs' 2015-04-04 15:19:43 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.