So far changing the DCD table didn't trigger a rerun of the i.MX image utility. To fix this, we need to have the DCD table as prerequisite to the .imximg rule. The file name is contained in $(CFG_$(@F)), but can't be used directly because $@ (and by extension @F) has no value when first expanded in the read-in phase. If we expand a second time during the target-update phase however, we would get the correct value. GNU make provides .SECONDEXPANSION to expand all following prerequisites a second time. Use it to have changes to the DCD table rebuild the image. Because we are now using imx_image_rule to generate the target, we must escape each $ one more time to arrive at $$$$(CFG_$$$$(@F)). In the final step, we replace $$$$(@F) with %.imximg, so we support the rules not ending in .imximg as well. Dependency file generation is still broken however and changed to headers included in DCD tables won't be caught, but this functionality can be fixed in a separate patch. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- images/Makefile.imx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/Makefile.imx b/images/Makefile.imx index 078b6b9d6a93..c34d72eb1b59 100644 --- a/images/Makefile.imx +++ b/images/Makefile.imx @@ -23,8 +23,9 @@ endef # %.imximg - convert into i.MX image # ---------------------------------------------------------------- +.SECONDEXPANSION: define imx_image_rule -$$(obj)/%.$(strip $(1)): $$(obj)/% FORCE +$$(obj)/%.$(strip $(1)): $$(obj)/% $$$$(CFG_%.imximg) FORCE $$(call if_changed,imx_image,$$(CFG_$$(patsubst %.$(strip $(1)),%.imximg,$$(@F))),$(strip $(2))) endef @@ -36,7 +37,6 @@ $(eval $(call imx_image_rule,usimximg, -u -s)) $(eval $(call imx_image_rule,esimximg, -e -s)) $(eval $(call imx_image_rule,esimximg.dek, -e -s)) -.SECONDEXPANSION: $(obj)/%.img.dek: $(obj)/$$(FILE_$$(@F)) $(Q)if [ -z $(FILE_$(@F)) ]; then echo "FILE_$(@F) empty!"; false; fi $(call if_changed,shipped) -- 2.24.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox