eg. After running "false > $@", the output file modification time will be updated. So a despite failure, a repeated "make" will not re-run. Handle this by accumulating output to "$@.tmp", then move to $@ as a final step.
eg. After running "false > $@", the output file modification time will be updated. So a despite failure, a repeated "make" will not re-run. Handle this by accumulating output to "$@.tmp", then move to $@ as a final step.