
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