On 27.10.19 13:28, Bin Meng wrote:
At present some boards generate kwbimage.cfg in the source tree
during the build. This breaks buildman testing on some systems
where the source tree is read-only. Update makefile rules to
generate it in the build tree instead.

Note some other boards have the kwbimage.cfg file written in
advance, hence we need check if the file exists in the build
tree first, otherwise we fall back to one in the source tree.

Signed-off-by: Bin Meng <bmeng...@gmail.com>

Reviewed-by: Stefan Roese <s...@denx.de>

Thanks,
Stefan

---

  Makefile                             | 15 +++++++++++++--
  arch/arm/mach-mvebu/Makefile         |  4 ++--
  board/Marvell/db-88f6281-bp/Makefile |  4 ++--
  board/Marvell/db-xc3-24g4xg/Makefile |  4 ++--
  board/mikrotik/crs305-1g-4s/Makefile |  4 ++--
  5 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index e78b317..61b94c5 100644
--- a/Makefile
+++ b/Makefile
@@ -1276,10 +1276,21 @@ endif
MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img) -MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
+# Some boards have the kwbimage.cfg file written in advance, while some
+# other boards generate it on the fly during the build in the build tree.
+# Let's check if the file exists in the build tree first, otherwise we
+# fall back to use the one in the source tree.
+KWD_CONFIG_FILE = $(shell \
+       if [ -f $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) ]; then \
+               echo -n $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
+       else \
+               echo -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
+       fi)
+
+MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
        -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
-MKIMAGEFLAGS_u-boot-spl.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
+MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
        -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
        $(if $(KEYDIR),-k $(KEYDIR))
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 8228a17..b739520 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -58,10 +58,10 @@ KWB_REPLACE += SEC_FUSE_DUMP
  KWB_CFG_SEC_FUSE_DUMP = a38x
  endif
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
                include/config/auto.conf
        $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V) 
$(KWB_CFG_$(V))/;)p' \
-       <$< >$(dir $<)$(@F)
+       <$< >$(dir $@)$(@F)
endif # CONFIG_SPL_BUILD
  obj-y += gpio.o
diff --git a/board/Marvell/db-88f6281-bp/Makefile 
b/board/Marvell/db-88f6281-bp/Makefile
index e6aa7e3..003e9f6 100644
--- a/board/Marvell/db-88f6281-bp/Makefile
+++ b/board/Marvell/db-88f6281-bp/Makefile
@@ -4,9 +4,9 @@ obj-y   := db-88f6281-bp.o
  extra-y := kwbimage.cfg
quiet_cmd_sed = SED $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
SEDFLAGS_kwbimage.cfg = -e "s/^\#@BOOT_FROM.*/BOOT_FROM $(if $(CONFIG_CMD_NAND),nand,spi)/"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
                include/config/auto.conf
        $(call if_changed,sed)
diff --git a/board/Marvell/db-xc3-24g4xg/Makefile 
b/board/Marvell/db-xc3-24g4xg/Makefile
index 4dd5790..24e8200 100644
--- a/board/Marvell/db-xc3-24g4xg/Makefile
+++ b/board/Marvell/db-xc3-24g4xg/Makefile
@@ -6,9 +6,9 @@ obj-y   := db-xc3-24g4xg.o
  extra-y       := kwbimage.cfg
quiet_cmd_sed = SED $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
                include/config/auto.conf
          $(call if_changed,sed)
diff --git a/board/mikrotik/crs305-1g-4s/Makefile 
b/board/mikrotik/crs305-1g-4s/Makefile
index 895331b..c03f534 100644
--- a/board/mikrotik/crs305-1g-4s/Makefile
+++ b/board/mikrotik/crs305-1g-4s/Makefile
@@ -6,9 +6,9 @@ obj-y   := crs305-1g-4s.o
  extra-y       := kwbimage.cfg
quiet_cmd_sed = SED $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
                include/config/auto.conf
          $(call if_changed,sed)


Viele Grüße,
Stefan

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to