[U-Boot] [PATCH 0/2]

Kbuild: fix tools build
Masahiro Yamada (2): kbuild: fix "tools-all" target kbuild: add "cross_tools" target to build tools for the target
Makefile | 5 ++++- tools/Makefile | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-)

The top Makefile must export HOST_TOOLS_ALL to use it in tools/Makefile.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com ---
Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index e49a240..3647804 100644 --- a/Makefile +++ b/Makefile @@ -1142,7 +1142,7 @@ checkarmreloc: u-boot env: scripts_basic $(Q)$(MAKE) $(build)=tools/$@
-tools-all: HOST_TOOLS_ALL=y +tools-all: export HOST_TOOLS_ALL=y tools-all: env tools ;
.PHONY : CHANGELOG

Hello Masahiro,
Am 03.03.2014 03:06, schrieb Masahiro Yamada:
The top Makefile must export HOST_TOOLS_ALL to use it in tools/Makefile.
Signed-off-by: Masahiro Yamadayamada.m@jp.panasonic.com
Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Tested-by: Heiko Schocher hs@denx.de (on the IDS8247 and upcoming ids8313 board)
Acked-by: Heiko Schocher hs@denx.de
bye, Heiko

On Mon, Mar 03, 2014 at 11:06:18AM +0900, Masahiro Yamada wrote:
The top Makefile must export HOST_TOOLS_ALL to use it in tools/Makefile.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Tested-by: Heiko Schocher hs@denx.de Acked-by: Heiko Schocher hs@denx.de
Applied to u-boot/master, thanks!

Programs in tools/ directory are usually built for the host. But some of them (mkimage, dumpimge, gen_eth_addr, etc.) are useful on the target OS too.
Actually, prior to Kbuild, U-Boot could build tools for the target like follows:
$ make <target_board>_config $ export CROSS_COMPILE=<cross_gcc_prefix> $ make HOSTCC=${CROSS_COMPILE}gcc HOSTSTRIP=${CROSS_COMPILE}strip tools
In Kbuild, we can no longer replace HOSTCC at the command line.
In order to get back that feature, this commit adds "cross-tools" target.
Usage:
Build tools for the host $ make CROSS_COMPILE=<cross_gcc_prefix> tools
Build tools for the target $ make CROSS_COMPILE=<cross_gcc_prefix> cross_tools
Besides, "make cross_tools" strip tools programs because we generally expect smaller storages on embedded systems.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Reported-by: Heiko Schocher hs@denx.de Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com ---
Makefile | 3 +++ tools/Makefile | 12 ++++++++++++ 2 files changed, 15 insertions(+)
diff --git a/Makefile b/Makefile index 3647804..ea4a362 100644 --- a/Makefile +++ b/Makefile @@ -1145,6 +1145,9 @@ env: scripts_basic tools-all: export HOST_TOOLS_ALL=y tools-all: env tools ;
+cross_tools: export CROSS_BUILD_TOOLS=y +cross_tools: tools ; + .PHONY : CHANGELOG CHANGELOG: git log --no-merges U-Boot-1_1_5.. | \ diff --git a/tools/Makefile b/tools/Makefile index dcd49f8..8fccc65 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -191,3 +191,15 @@ $(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP)
# Let clean descend into subdirs subdir- += env + +ifneq ($(CROSS_BUILD_TOOLS),) +HOSTCC = $(CC) + +quiet_cmd_crosstools_strip = STRIP $^ + cmd_crosstools_strip = $(STRIP) $^; touch $@ +$(obj)/.strip: $(call objectify,$(filter $(always),$(hostprogs-y))) + $(call cmd,crosstools_strip) + +always += .strip +endif +clean-files += .strip

Hello Masahiro,
Am 03.03.2014 03:06, schrieb Masahiro Yamada:
Programs in tools/ directory are usually built for the host. But some of them (mkimage, dumpimge, gen_eth_addr, etc.) are useful on the target OS too.
Actually, prior to Kbuild, U-Boot could build tools for the target like follows:
$ make<target_board>_config $ export CROSS_COMPILE=<cross_gcc_prefix> $ make HOSTCC=${CROSS_COMPILE}gcc HOSTSTRIP=${CROSS_COMPILE}strip tools
In Kbuild, we can no longer replace HOSTCC at the command line.
In order to get back that feature, this commit adds "cross-tools" target.
Usage:
Build tools for the host $ make CROSS_COMPILE=<cross_gcc_prefix> tools
Build tools for the target $ make CROSS_COMPILE=<cross_gcc_prefix> cross_tools
Besides, "make cross_tools" strip tools programs because we generally expect smaller storages on embedded systems.
Signed-off-by: Masahiro Yamadayamada.m@jp.panasonic.com Reported-by: Heiko Schocherhs@denx.de Cc: Wolfgang Denkwd@denx.de Cc: Tom Rinitrini@ti.com
Makefile | 3 +++ tools/Makefile | 12 ++++++++++++ 2 files changed, 15 insertions(+)
Tested-by: Heiko Schocher hs@denx.de (on the IDS8247 and upcoming ids8313 board)
Acked-by: Heiko Schocher hs@denx.de
bye, Heiko

On Mon, Mar 03, 2014 at 11:06:19AM +0900, Masahiro Yamada wrote:
Programs in tools/ directory are usually built for the host. But some of them (mkimage, dumpimge, gen_eth_addr, etc.) are useful on the target OS too.
Actually, prior to Kbuild, U-Boot could build tools for the target like follows:
$ make <target_board>_config $ export CROSS_COMPILE=<cross_gcc_prefix> $ make HOSTCC=${CROSS_COMPILE}gcc HOSTSTRIP=${CROSS_COMPILE}strip tools
In Kbuild, we can no longer replace HOSTCC at the command line.
In order to get back that feature, this commit adds "cross-tools" target.
Usage:
Build tools for the host $ make CROSS_COMPILE=<cross_gcc_prefix> tools
Build tools for the target $ make CROSS_COMPILE=<cross_gcc_prefix> cross_tools
Besides, "make cross_tools" strip tools programs because we generally expect smaller storages on embedded systems.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Reported-by: Heiko Schocher hs@denx.de Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Tested-by: Heiko Schocher hs@denx.de Acked-by: Heiko Schocher hs@denx.de
Applied to u-boot/master, thanks!
participants (3)
-
Heiko Schocher
-
Masahiro Yamada
-
Tom Rini