makefile: reduce unnecessary rebuilds