Like barebox and kernel, u-boot can be built out-of-tree, only few
modifications are necessary. This is especially nice when working in the
source tree U-Boot is built from.

Cc: Bruno Thomsen <bruno.thom...@gmail.com>
Cc: Denis OSTERLAND <denis.osterl...@diehl.com>
Signed-off-by: Alexander Dahl <a...@thorsis.com>
---
 rules/u-boot.make | 58 ++++++++++++++++++++++++++---------------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/rules/u-boot.make b/rules/u-boot.make
index 1aabe61b1..e3c2c2389 100644
--- a/rules/u-boot.make
+++ b/rules/u-boot.make
@@ -16,14 +16,16 @@ PACKAGES-$(PTXCONF_U_BOOT) += u-boot
 #
 # Paths and names
 #
-U_BOOT_VERSION := $(call remove_quotes,$(PTXCONF_U_BOOT_VERSION))
-U_BOOT_MD5     := $(call remove_quotes,$(PTXCONF_U_BOOT_MD5))
-U_BOOT         := u-boot-$(U_BOOT_VERSION)
-U_BOOT_SUFFIX  := tar.bz2
-U_BOOT_URL     := https://ftp.denx.de/pub/u-boot/$(U_BOOT).$(U_BOOT_SUFFIX)
-U_BOOT_SOURCE  := $(SRCDIR)/$(U_BOOT).$(U_BOOT_SUFFIX)
-U_BOOT_DIR     := $(BUILDDIR)/$(U_BOOT)
-U_BOOT_DEVPKG  := NO
+U_BOOT_VERSION         := $(call remove_quotes,$(PTXCONF_U_BOOT_VERSION))
+U_BOOT_MD5             := $(call remove_quotes,$(PTXCONF_U_BOOT_MD5))
+U_BOOT                 := u-boot-$(U_BOOT_VERSION)
+U_BOOT_SUFFIX          := tar.bz2
+U_BOOT_URL             := 
https://ftp.denx.de/pub/u-boot/$(U_BOOT).$(U_BOOT_SUFFIX)
+U_BOOT_SOURCE          := $(SRCDIR)/$(U_BOOT).$(U_BOOT_SUFFIX)
+U_BOOT_DIR             := $(BUILDDIR)/$(U_BOOT)
+U_BOOT_BUILD_DIR       := $(U_BOOT_DIR)-build
+U_BOOT_DEVPKG          := NO
+U_BOOT_BUILD_OOT       := KEEP
 
 ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
 U_BOOT_CONFIG  := $(call ptx/in-platformconfigdir, \
@@ -44,10 +46,16 @@ endif
 U_BOOT_WRAPPER_BLACKLIST := \
        $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
 
+U_BOOT_CONF_OPT                := \
+       -C $(U_BOOT_DIR) \
+       O=$(U_BOOT_BUILD_DIR) \
+       V=$(PTXDIST_VERBOSE)
+
 U_BOOT_MAKE_ENV                := \
        CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) \
        HOSTCC=$(HOSTCC)
-U_BOOT_MAKE_OPT                := V=$(PTXDIST_VERBOSE)
+U_BOOT_MAKE_OPT                := $(U_BOOT_CONF_OPT)
+
 U_BOOT_TAGS_OPT                := ctags cscope etags
 
 ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
@@ -57,9 +65,7 @@ endif
 
 ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
 U_BOOT_CONF_ENV                := PATH=$(CROSS_PATH) $(U_BOOT_MAKE_ENV)
-U_BOOT_CONF_OPT                := \
-       $(U_BOOT_MAKE_OPT) \
-       $(call remove_quotes, $(PTXCONF_U_BOOT_CONFIG))
+U_BOOT_CONF_OPT                += $(call remove_quotes, 
$(PTXCONF_U_BOOT_CONFIG))
 U_BOOT_MAKE_PAR                := NO
 endif
 
@@ -79,7 +85,7 @@ endif
 ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
 $(STATEDIR)/u-boot.prepare:
        @$(call targetinfo)
-       $(U_BOOT_CONF_ENV) $(MAKE) -C $(U_BOOT_DIR) $(U_BOOT_CONF_OPT)
+       $(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT)
        @$(call touch)
 endif
 
@@ -91,9 +97,9 @@ $(STATEDIR)/u-boot.compile:
        @$(call targetinfo)
        @$(call world/compile, U_BOOT)
 ifdef PTXCONF_U_BOOT_BOOT_SCRIPT
-       @$(U_BOOT_DIR)/tools/mkimage -T script -C none \
+       @$(U_BOOT_BUILD_DIR)/tools/mkimage -T script -C none \
                -d $(U_BOOT_BOOT_SCRIPT_TXT) \
-               $(U_BOOT_DIR)/boot.scr.uimg
+               $(U_BOOT_BUILD_DIR)/boot.scr.uimg
 endif
        @$(call touch)
 
@@ -111,34 +117,34 @@ $(STATEDIR)/u-boot.install:
 
 $(STATEDIR)/u-boot.targetinstall:
        @$(call targetinfo)
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot.bin $(IMAGEDIR)/u-boot.bin
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.bin 
$(IMAGEDIR)/u-boot.bin
 ifdef PTXCONF_U_BOOT_INSTALL_SREC
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot.srec $(IMAGEDIR)/u-boot.srec
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.srec 
$(IMAGEDIR)/u-boot.srec
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_ELF
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot $(IMAGEDIR)/u-boot.elf
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot $(IMAGEDIR)/u-boot.elf
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_SPL
-       @install -v -D -m644 $(U_BOOT_DIR)/SPL $(IMAGEDIR)/SPL
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/SPL $(IMAGEDIR)/SPL
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_MLO
-       @install -v -D -m644 $(U_BOOT_DIR)/MLO $(IMAGEDIR)/MLO
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/MLO $(IMAGEDIR)/MLO
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_IMG
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot.img $(IMAGEDIR)/u-boot.img
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.img 
$(IMAGEDIR)/u-boot.img
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_IMX
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot.imx $(IMAGEDIR)/u-boot.imx
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.imx 
$(IMAGEDIR)/u-boot.imx
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_DTB_IMX
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot-dtb.imx 
$(IMAGEDIR)/u-boot-dtb.imx
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-dtb.imx 
$(IMAGEDIR)/u-boot-dtb.imx
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_DTB
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot-dtb.bin \
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-dtb.bin \
                $(IMAGEDIR)/u-boot-dtb.bin
 endif
 ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_WITH_SPL_PBL
-       @install -v -D -m644 $(U_BOOT_DIR)/u-boot-with-spl-pbl.bin \
+       @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-with-spl-pbl.bin \
                $(IMAGEDIR)/u-boot-with-spl-pbl.bin
 endif
 
@@ -150,7 +156,7 @@ ifdef PTXCONF_U_BOOT_BOOT_SCRIPT
        @$(call install_fixup, u-boot, DESCRIPTION, "U-Boot boot script")
 
        @$(call install_copy, u-boot, 0, 0, 0644, \
-               $(U_BOOT_DIR)/boot.scr.uimg, $(U_BOOT_BOOT_SCRIPT_BIN))
+               $(U_BOOT_BUILD_DIR)/boot.scr.uimg, $(U_BOOT_BOOT_SCRIPT_BIN))
 
        @$(call install_finish, u-boot)
 endif
-- 
2.20.1


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to