Sometimes a file can be made by a sequence of implicit rules.
Intermediate files are remade using their rules just like all other files.
But intermediate files are treated differently in two ways. The first difference is what happens if the intermediate file does not exist. It won't bother updating B, or the ultimate target, unless some prerequisite of B is newer than that target or there is some other reason to update that target. Ordinarily, a file cannot be intermediate if it is mentioned in the makefile as a target or prerequisite. This takes effect even if the file is mentioned explicitly in some other way.