title: Exact meaning of "system headers" for the GCC -MM flag
body: <p>According to the GCC documentation, the -MM flag will generate dependencies in this way:</p>
  
  <blockquote>
    <p>Like -M but do not mention header files that are found in system
    header directories, nor header files that are included, directly or
    indirectly, from such a header.</p>
  </blockquote>
  
  <p>I just found that the -MM flag when used in my projects not only suppresses dependencies to system headers, but also dependencies to third-party library headers I have locally installed in my home directory. Getting rid of system headers dependencies is usually convenient for me (as I do not edit them), but however I sometimes edit/customize third-party libraries, and of course I need to rebuild my code after such edits.</p>
  
  <p>So, my question is what's a "system header" for GCC? Let's suppose you install a customized version of libpng in your home directory, and edit it to suit your needs... is that a "system header" for GCC?</p>
  
  <p>I'm just moving to -M as a temporary workaround in the mean time.</p>