On 01/23/19 17:13, Laszlo Ersek wrote: > FWIW, I've asked > > - both on edk2-devel, about adding .NOTPARALLEL to the generated inner > makefiles: > > "parallelism in the module-level, generated GNUmakefile's" > https://lists.01.org/pipermail/edk2-devel/2019-January/035463.html > > - and on help-make, about safely filtering the job-related options from > MAKEFLAGS, between the outer and inner "make" processes: > > "filtering job options from MAKEFLAGS, manually" > http://lists.gnu.org/archive/html/help-make/2019-01/msg00003.html
Results: - The "build" utility in BaseTools generates such GNUMakefiles that dependencies between targets are fully described. This is an explicit goal and if we notice any missing deps, that's a bug to be reported and fixed. As a consequence, we can expect the recipes in those GNUMakefiles to be fully parallelizable. Therefore we need not add .NOTPARALLEL to them (in the edk2 project), or filter MAKEFLAGS, or append "-j1" to MAKEFLAGS. - The .NOTPARALLEL target ignores any pre-requisites it gets; .NOTPARALLEL applies to the entire current invocation of make. Therefore we just need to stick a bare .NOTPARALLEL into "tests/uefi-test-tools/Makefile", to keep "build" itself isolated. I'm going to post v2 with this one addition (i.e., .NOTPARALLEL). Thanks, Laszlo