How to change current directory in GNU Make
<p>I want to separate the directory with sources from the directory with targets. And it seems that changing the current working directory from Makefile should be the simplest solution.</p>

<p>Explicit path to targets is not sufficient because of the following drawbacks:</p>

<ol>
<li>Redundant code in Makefile since every reference to target should be prefixed with variable.</li>
<li>More complex command line to build particular intermediate target (worse for debugging).</li>
</ol>

<p>See also <a href="http://make.mad-scientist.net/papers/rules-of-makefiles/#rule3" rel="noreferrer">Pauls's rule #3</a>:</p>

<blockquote>
  <p>Life is simplest if the targets are built in the current working
  directory.</p>
</blockquote>

<p><a href="http://make.mad-scientist.net/papers/how-not-to-use-vpath/" rel="noreferrer">Regarding VPATH</a> — I also agree that requiring developers "to change to the target directory before running make is a pain". </p>