That's the problem with make and why there are so many build systems built on top of it. Make alone isn't enough.
It actually doesn't handle this case at all unless you use a compiler (-MMD) or any other external tool to basically generate the makefile. Otherwise you have to manage the source files and header dependencies yourself.