[U-Boot] [PATCH] kbuild/makefile: allow building host tools separately
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Thu Mar 20 18:23:10 CET 2014
Sometimes it is required to build only host U-Boot tools without building
U-Boot itself for either board.
For example:
* In "buildroot" "uboot-tools" could be built for host just to have an ability
to create uImage.
* Linux distributions ship "mkimage" utility as a separate substance.
This patch allows building host U-Boot tools separately from U-Boot itself and
what is more important user only needs to have host compiler (gcc).
To build host tools just execute:
=====
make tools HOST_TOOLS_ONLY=yes
=====
Without this patch to generate tools user needs:
1. Configure any existing board with "make XXX_config"
2. Execute tools building but still cross-compiler will be invoked and if
there's no proper cross-compiler in PATH compilation will fail.
Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
Cc: Masahiro Yamada <yamada.m at jp.panasonic.com>
Cc: Tom Rini <trini at ti.com>
Cc: Simon Glass <sjg at chromium.org>
---
Kbuild | 5 +++++
Makefile | 7 +++++++
2 files changed, 12 insertions(+)
diff --git a/Kbuild b/Kbuild
index 1d89761..b5e348d 100644
--- a/Kbuild
+++ b/Kbuild
@@ -4,6 +4,9 @@
# 1) Generate generic-asm-offsets.h
# 2) Generate asm-offsets.h
+# Don't execute target below if building host tools only
+ifneq ($(HOST_TOOLS_ONLY),yes)
+
#####
# 1) Generate generic-asm-offsets.h
@@ -85,3 +88,5 @@ $(CPUDIR)/$(SOC)/asm-offsets.s: $(CPUDIR)/$(SOC)/asm-offsets.c FORCE
$(obj)/$(offsets-file): $(CPUDIR)/$(SOC)/asm-offsets.s
$(call cmd,offsets)
+
+endif
diff --git a/Makefile b/Makefile
index b795338..2fb8ea1 100644
--- a/Makefile
+++ b/Makefile
@@ -481,9 +481,12 @@ ifeq ($(dot-config),1)
# load other configuration
include $(srctree)/config.mk
+# Don't check for config.mk presence if building host tools only
+ifneq ($(HOST_TOOLS_ONLY),yes)
ifeq ($(wildcard include/config.mk),)
$(error "System not configured - see README")
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
@@ -994,10 +997,14 @@ ifeq ($(CONFIG_SYS_GENERIC_BOARD),y)
@/bin/false
endif
endif
+
+# Don't check for ldscript presence if building host tools only
+ifneq ($(HOST_TOOLS_ONLY),yes)
ifeq ($(wildcard $(LDSCRIPT)),)
@echo >&2 " Could not find linker script."
@/bin/false
endif
+endif
archprepare: prepare1 scripts_basic
--
1.8.5.3
More information about the U-Boot
mailing list