Patchwork [U-Boot,v4,34/37] kbuild: support simultaneous board configuration and "make all"

login
register
mail settings
Submitter Masahiro Yamada
Date Jan. 10, 2014, 6:44 a.m.
Message ID <1389336274-7234-35-git-send-email-yamada.m@jp.panasonic.com>
Download mbox | patch
Permalink /patch/309136/
State Superseded
Delegated to: Tom Rini
Headers show

Comments

Masahiro Yamada - Jan. 10, 2014, 6:44 a.m.
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>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 Makefile | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Patch

diff --git a/Makefile b/Makefile
index 45af43b..06c7c5f 100644
--- a/Makefile
+++ b/Makefile
@@ -427,8 +427,16 @@  ifeq ($(mixed-targets),1)
 # We're called with mixed targets (*config and build targets).
 # Handle them one by one.
 
-%:: FORCE
-	$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= $@
+PHONY += $(MAKECMDGOALS) build-one-by-one
+
+$(MAKECMDGOALS): build-one-by-one
+	@:
+
+build-one-by-one:
+	$(Q)set -e; \
+	for i in $(MAKECMDGOALS); do \
+		$(MAKE) -f $(srctree)/Makefile $$i; \
+	done
 
 else
 ifeq ($(config-targets),1)