aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-11-02 13:28:26 +0100
committerFelix Fietkau <nbd@nbd.name>2017-11-02 16:01:18 +0100
commit986d9deb3b24bc72e9e7ecf93affbc3f188bb926 (patch)
treead0e4378ce1116b3089445ff79ea5fa7a4f16ff8
parent7e2c271a8053df940d554cc5e17066033da4fc82 (diff)
downloadupstream-986d9deb3b24bc72e9e7ecf93affbc3f188bb926.tar.gz
upstream-986d9deb3b24bc72e9e7ecf93affbc3f188bb926.tar.bz2
upstream-986d9deb3b24bc72e9e7ecf93affbc3f188bb926.zip
build: allow calling append-dtb from image build commands
mpc85xx uses this for firmware image files, since the dtb data is not directly part of the kernel image. This causes build failures in the image builder. Fix this by adding a separate build step that runs this call earlier, reusing the generated file for any calls from kernel or image build commands. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--include/image-commands.mk3
-rw-r--r--include/image.mk16
2 files changed, 17 insertions, 2 deletions
diff --git a/include/image-commands.mk b/include/image-commands.mk
index aaece705d2..1ec5252972 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -102,8 +102,7 @@ define Build/tplink-safeloader
endef
define Build/append-dtb
- $(call Image/BuildDTB,$(if $(DEVICE_DTS_DIR),$(DEVICE_DTS_DIR),$(DTS_DIR))/$(DEVICE_DTS).dts,$@.dtb)
- cat $@.dtb >> $@
+ cat $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb >> $@
endef
define Build/install-dtb
diff --git a/include/image.mk b/include/image.mk
index fc6bf06e96..9ab139cba6 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -435,7 +435,23 @@ define Device/Build/compile
endef
+ifndef IB
+define Device/Build/dtb
+ $(KDIR)/image-$(1).dtb: FORCE
+ $(call Image/BuildDTB,$(2)/$(1).dts,$$@)
+
+ $(3): $(KDIR)/image-$(1).dtb
+endef
+endif
+
define Device/Build/kernel
+ $$(eval $$(foreach dts,$$(DEVICE_DTS), \
+ $$(call Device/Build/dtb,$$(dts), \
+ $$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)),\
+ $$(KDIR_KERNEL_IMAGE) $(KDIR)/$$(KERNEL_INITRAMFS_NAME) \
+ ) \
+ ))
+
$(KDIR)/$$(KERNEL_NAME):: image_prepare
$$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE))
$(call Device/Export,$$(KDIR_KERNEL_IMAGE),$(1))