• Pali Rohár's avatar
    Makefile: Fix ${FIP_NAME} to be rebuilt only when needed · 4727fd13
    Pali Rohár authored
    
    
    Currently ${FIP_DEPS} as prerequisite for ${BUILD_PLAT}/${FIP_NAME}
    contains .PHONY targets check_$(1) and therefore ${BUILD_PLAT}/${FIP_NAME}
    is always rebuilt even when other file target prerequisites are not
    changed.
    
    These changes fix above issue and ${BUILD_PLAT}/${FIP_NAME} target is
    rebuilt only when its prerequisites are changed.
    
    There are 3 changes:
    
    Content of check_$(1) target is moved into check_$(1)_cmd variable so it
    can be easily reused.
    
    .PHONY check_$(1) targets are not put into ${FIP_DEPS} and ${FWU_FIP_DEPS}
    dependencies anymore and required checks which are in ${CHECK_FIP_CMD} and
    ${CHECK_FWU_FIP_CMD} variables are executed as part of targets
    ${BUILD_PLAT}/${FIP_NAME} and ${BUILD_PLAT}/${FWU_FIP_NAME} itself.
    
    To ensure that ${BUILD_PLAT}/${FIP_NAME} and ${BUILD_PLAT}/${FWU_FIP_NAME}
    are rebuilt even when additional dependency file image added by
    TOOL_ADD_IMG is changed, this file image (if exists) is added as file
    dependency to ${FIP_DEPS} and ${FWU_FIP_DEPS}. If it does not exist then
    FORCE target is added to ensure that FIP/FWU_FIP is rebuilt. Command
    ${CHECK_FIP_CMD}/${CHECK_FWU_FIP_CMD} will then thrown an error message if
    the file is required but not present.
    
    So this change ensures that if BL33 image is updated then final FIP image
    is updated too. And if BL33 image is not specified or does not exist and is
    required to be present then check_$(1)_cmd call from ${CHECK_FIP_CMD} would
    ensure that error message is thrown during build.
    Signed-off-by: default avatarPali Rohár <pali@kernel.org>
    Change-Id: I635cf82e2b667ff57e2af83500d4aca71d235e3e
    4727fd13
build_macros.mk 20.8 KB