A rule is evaluated using the following steps: Update each of the dependencies. In other words, recursively evaluate each dependency rule. Compare the last modified time for each of the dependencies to the target. If the target does not exist, or at least one of the dependencies refers to a file with a last modified time more recent than the target, execute the rule's actions.