title: makefiles CFLAGS
body: <p>In the process of learning <a href="https://en.wikipedia.org/wiki/TinyOS" rel="nofollow noreferrer">TinyOS</a> I have discovered that I am totally clueless about makefiles.</p>
  <p>There are many optional compile time features that can be used by way of declaring preprocessor variables.</p>
  <p>To use them you have to do things like:</p>
  <p><code>CFLAGS=&quot;-DPACKET_LINK&quot;</code>        this enables a certain feature.</p>
  <p>and</p>
  <p><code>CFLAGS=&quot;-DPACKET_LINK&quot; &quot;-DLOW_POWER&quot;</code> enables two features.</p>
  <p>Can someone dissect these lines for me and tell me whats going on? Not in terms of TinyOS, but in terms of makefiles!</p>