mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 07:46:48 +00:00
image: make images and artifacts dependent of initramfs
There is currently a BIG bug in how the images dependency is handled and recent Per Device Rootfs made this more clear and less statistical. There is currently no dependency between images/artifacts build with initramfs build. This cause whatever additional image that depends on an initramfs image to fail as it might happen that image and initramfs build are called at the same time and the additional image is called before initramfs build has finished. Each image-command assume the source image to be taken from the /bin directory but that is only copied from the /tmp directory only at the end of the process. Artifacts currently depends on image with the use of the BOARD-NAME-images Makefile target, but this is not the case for initramfs that also define a -images Makefile target but that is not accounted in images (that might depend on some initramfs images) To actually fix this, introduce a new Makefile target, -initramfs-images and make image and artifacts build to depend on this. Since initramfs images are optional, this dependency is actived only when initramfs image are built. With this change we correctly enforce the build order: - Initramfs Images (optional) - Images - Artifacts Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
parent
0122fd7929
commit
cc6a0abcab
@ -538,7 +538,7 @@ define Device/Build/initramfs
|
|||||||
$(KDIR)/$$(KERNEL_INITRAMFS_NAME).$$(ROOTFS_ID/$(1)):: image_prepare target-dir-$$(ROOTFS_ID/$(1))
|
$(KDIR)/$$(KERNEL_INITRAMFS_NAME).$$(ROOTFS_ID/$(1)):: image_prepare target-dir-$$(ROOTFS_ID/$(1))
|
||||||
$(call Kernel/CompileImage/Initramfs,$(KDIR)/target-dir-$$(ROOTFS_ID/$(1)),.$$(ROOTFS_ID/$(1)))
|
$(call Kernel/CompileImage/Initramfs,$(KDIR)/target-dir-$$(ROOTFS_ID/$(1)),.$$(ROOTFS_ID/$(1)))
|
||||||
endif
|
endif
|
||||||
$(1)-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
|
$(1)-initramfs-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
|
||||||
$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
|
$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
|
||||||
cp $$^ $$@
|
cp $$^ $$@
|
||||||
|
|
||||||
@ -671,7 +671,7 @@ define Device/Build/image
|
|||||||
ifndef IB
|
ifndef IB
|
||||||
$$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3)))
|
$$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3)))
|
||||||
endif
|
endif
|
||||||
$(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3))
|
$(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3)) $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(3)-initramfs-images)
|
||||||
@rm -f $$@
|
@rm -f $$@
|
||||||
[ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ]
|
[ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ]
|
||||||
$$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2))))
|
$$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2))))
|
||||||
@ -730,7 +730,7 @@ define Device/Build/artifact
|
|||||||
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
|
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
|
||||||
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
|
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
|
||||||
$(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
|
$(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
|
||||||
$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(2)-images
|
$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(2)-initramfs-images) $(2)-images
|
||||||
@rm -f $$@
|
@rm -f $$@
|
||||||
$$(call concat_cmd,$(ARTIFACT/$(1)))
|
$$(call concat_cmd,$(ARTIFACT/$(1)))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user