Targets that are honest about their inputs: phony targets, real dependencies, and the rebuild that should not have happened.