Set .DELETE_ON_ERROR rather than using the strange construction <command> || ($(RM) $@; exit 1) in a few places.