Hi Tim,
>Now I thought that -MM should not include <a.h> in the depenancy list.
>What's going on. What am I missing?
What's going on is that you are using -I instead of -idirafter.
-I adds a path to the general include path list.
-idirafter adds a path to the system include path list.
The -MM and -MMD filter out the system include path list, not the general include path list.
HTH, --Eljay