title: inclusion of header files -- relative to current directory or to include directories?
body: <p>I have the following direcory stucture:</p>
  
  <pre><code>src
    +-- lib1
      +-- lib1.h
    +-- lib2
     +-- lib2.h
  </code></pre>
  
  <p>Both <code>lib1</code> and <code>lib2</code> are gonna be distributed (installed). <code>lib2</code> makes use of <code>lib1</code>, so it needs some includes:</p>
  
  <pre><code>#include "../lib1/lib1.h" // 1
  #include "lib1/lib1.h"    // 2
  #include &lt;lib1/lib1.h&gt;    // 3
  </code></pre>
  
  <p>(1) is the straight forward way, but is very unflexible. (2) is the way I use at the moment, but the build system needs to know that <code>src</code> needs to be added to the include path. (3) seems the best for me under the <em>distribution</em> aspect because then it can be assumed that the headers reside in a standard location, but it's not too obvious for me how a build system handles that (in this case, <code>lib1</code> needs to be installed before <code>lib2</code> can be compiled).</p>
  
  <p>What's the recommended way?</p>