The information about the missing firmware is contained in an ELF section and the ELF file is dependency to the $(obj)/%.pblb: $(obj)/%.pbl rule. We can thus don't need to rerun the missing firmware check if the input file hasn't been changed since the last time. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- images/Makefile | 3 +-- scripts/Makefile.lib | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/images/Makefile b/images/Makefile index 80ea582728a5..f781ecb59ccb 100644 --- a/images/Makefile +++ b/images/Makefile @@ -76,8 +76,7 @@ $(obj)/%.elf: $(pbl-lds) $(BAREBOX_PBL_OBJS) $(obj)/piggy.o $(obj)/sha_sum.o FOR $(obj)/%.pblb: $(obj)/%.pbl FORCE $(call if_changed,objcopy_bin,$(*F)) - $(Q)$(OBJCOPY) -O binary --only-section=.missing_fw $< $@.missing-firmware - $(Q)[ -s $@.missing-firmware ] || rm -f $@.missing-firmware + $(call if_changed,check_missing_fw,$@,$<) $(call if_changed,check_file_size,$@,$(CONFIG_BAREBOX_MAX_IMAGE_SIZE)) # diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index b698161f43f6..e2d0168550f8 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -533,6 +533,12 @@ quiet_cmd_check_file_size = CHKFILESIZE $2 exit 1 ; \ fi +# Check for missing firmware +quiet_cmd_check_missing_fw = # no message as we collect info for later + cmd_check_missing_fw = set -e; \ + $(OBJCOPY) -O binary --only-section=.missing_fw $3 $2.missing-firmware; \ + [ -s $2.missing-firmware ] || rm -f $2.missing-firmware + quiet_cmd_imximage__S_dcd= DCD_S $@ cmd_imximage_S_dcd= \ ( \ -- 2.39.5