Commit 53bca5ab6a4fd561dfae0a3b72d709feda2260f3

Authored by Masahiro Yamada
Committed by Tom Rini
1 parent efcf861931

kbuild: support simultaneous board configuration and "make all"

This commit fixes two problems:

[1] We could not do board configuration and "make all"
    in one command line.

For example, the following did not work as we expect:
  $ make sandbox_config all
  Configuring for sandbox board...
  make: Nothing to be done for `all'.

[2] mixed-target build did not work with -j option

For example, the following did not work:
  $ make -j8 sandbox_config u-boot
  Makefile:481: *** "System not configured - see README".  Stop.
  make: *** [u-boot] Error 2
  make: *** Waiting for unfinished jobs....
  Configuring for sandbox board...

Going forward, we can do
  $ make -j8 sandbox_config all

This is the same as
  $ make sandbox_config
  $ make -j8

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Showing 1 changed file with 10 additions and 2 deletions Side-by-side Diff

... ... @@ -428,8 +428,16 @@
428 428 # We're called with mixed targets (*config and build targets).
429 429 # Handle them one by one.
430 430  
431   -%:: FORCE
432   - $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= $@
  431 +PHONY += $(MAKECMDGOALS) build-one-by-one
  432 +
  433 +$(MAKECMDGOALS): build-one-by-one
  434 + @:
  435 +
  436 +build-one-by-one:
  437 + $(Q)set -e; \
  438 + for i in $(MAKECMDGOALS); do \
  439 + $(MAKE) -f $(srctree)/Makefile $$i; \
  440 + done
433 441  
434 442 else
435 443 ifeq ($(config-targets),1)