# T
# |
# U
# |
# V

# $ produce T
# $ touch U
# $ touch V
# $ produce T -u U
# $ rm U
# $ produce T # does nothing - it thinks T is up to date but it's not!

[T]
deps = U
recipe = touch %{target}

[U]
deps = V
recipe = touch %{target}

[V]
recipe = touch %{target}

Test case stub showing problem with pretend
Test case stub showing problem with pretend

A FILE that is REBUILT and also depends on an OUT-OF-DATE PRETEND target poses
a problem because it is rebuilt but is then still out of date, but no longer
detectably so if the intermediate pretend target is deleted. Therefore, the
lowest link in the out-of-date chain needs to be touched after the build. This
poses an... interesting refactoring challenge.
