http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51341
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-29 15:26:29 UTC --- (In reply to comment #3) > I am a little confused. -MT will create .d file. Then make command will > include > .d and re-compile if dependency file changes. The issue is that g++ 4.6.1 > doesn't re-compile if I touch .h. Does this mean my test.d format is wrong? If Did you read the linked bug report? Did you look at the content of test.d? > I need another -MT, what syntax it should be? Thanks a lot! g++ -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" "-MT$@" $< -o $@