a164436d98
This is enabled for platforms/compilers that support the -MMD option, which creates a dependency file named out.d when compiling to a file named out.o, only including local, not system headers. The additional -MP option adds phony targets for all included headers, to avoid having make error out due to "no rule to make target foo.h" if a header is renamed/removed. This makes sure that all the right files are rebuilt if a header is changed, avoiding the need for a full rebuild if only a few files are affected.