> How can "some of them might not be?" Do you have an example?
Consider using something like
$ gcc -MM foo.c
foo.o: foo.c foo.h
to provide you with accurate dependency rules.