Makefile dependency problems

First, a warning: If you have built parts of LLVM in the past day
you should consider doing a make clean. The problem is that the
.d files were being built with rules which will not actually get used.
This means any .o files that happened to get rebuilt will likely have
broken dependencies.

The problem is that for some object file foo.o, there typically end
being two rules. The first rule looks something like