diff mbox

[U-Boot,v2,1/2] kbuild: Fix a false error of generic board support

Message ID 1393324008-11074-2-git-send-email-yamada.m@jp.panasonic.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Feb. 25, 2014, 10:26 a.m. UTC
Before this commit, make terminated with an error
where is shouldn't under some condition.

This bug happened when we built a board unsupporting
generic board right after building with generic board.

For example, the following sequence failed.
(harmony uses generic board but microblaze-generic does not
support it)

  $ make harmony_config
  Configuring for harmony board...
  $ make CROSS_COMPILE=arm-linux-gnueabi-
    [ Build succeed ]
  $ make microblaze-generic_config
  Configuring for microblaze-generic board...
  $ make CROSS_COMPILE=microblaze-linux-
  Makefile:488: *** Your architecture does not support generic board.
  Please undefined CONFIG_SYS_GENERIC_BOARD in your board config file.  Stop.

We had to do "make clean" before building the microblaze board.

This commit fixes this unconvenience.

Move generic board sanity check to "prepare1" target,
which is run after generation of include/autoconf.mk.

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

Changes in v2:
  - Fix commit log.
     s/"make mrproper"/"make clean"/

 Makefile | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

Comments

Simon Glass Feb. 25, 2014, 11:46 p.m. UTC | #1
On 25 February 2014 03:26, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Before this commit, make terminated with an error
> where is shouldn't under some condition.
>
> This bug happened when we built a board unsupporting
> generic board right after building with generic board.
>
> For example, the following sequence failed.
> (harmony uses generic board but microblaze-generic does not
> support it)
>
>   $ make harmony_config
>   Configuring for harmony board...
>   $ make CROSS_COMPILE=arm-linux-gnueabi-
>     [ Build succeed ]
>   $ make microblaze-generic_config
>   Configuring for microblaze-generic board...
>   $ make CROSS_COMPILE=microblaze-linux-
>   Makefile:488: *** Your architecture does not support generic board.
>   Please undefined CONFIG_SYS_GENERIC_BOARD in your board config file.  Stop.
>
> We had to do "make clean" before building the microblaze board.
>
> This commit fixes this unconvenience.
>
> Move generic board sanity check to "prepare1" target,
> which is run after generation of include/autoconf.mk.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Acked-by: Simon Glass <sjg@chromium.org>
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 84d6db4..fffeb7e 100644
--- a/Makefile
+++ b/Makefile
@@ -485,13 +485,6 @@  ifeq ($(wildcard include/config.mk),)
 $(error "System not configured - see README")
 endif
 
-ifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
-ifneq ($(CONFIG_SYS_GENERIC_BOARD),)
-$(error Your architecture does not support generic board. \
-Please undefined CONFIG_SYS_GENERIC_BOARD in your board config file)
-endif
-endif
-
 # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
 # that (or fail if absent).  Otherwise, search for a linker script in a
 # standard location.
@@ -996,7 +989,13 @@  endif
 prepare2: prepare3 outputmakefile
 
 prepare1: prepare2 $(version_h) $(timestamp_h)
-	@:
+ifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
+ifeq ($(CONFIG_SYS_GENERIC_BOARD),y)
+	@echo >&2 "  Your architecture does not support generic board."
+	@echo >&2 "  Please undefine CONFIG_SYS_GENERIC_BOARD in your board config file."
+	@/bin/false
+endif
+endif
 
 archprepare: prepare1 scripts_basic