title: GNU Make documentation: contradiction in ifdef?
body: <p>The following is the documentation for the ifdef conditional in GNU Make. What is this suppose to be telling me?</p>
  
  <pre><code>conditional-directive
  text-if-true
  else
  text-if-false
  endif
  </code></pre>
  
  <p>The ifdef form takes the name of a variable as its argument, not a reference to a variable. <strong>The value of that variable has a non-empty value, the text-if-true is effective;</strong> otherwise, the text-if-false, if any, is effective. Variables that have never been defined have an empty value. The text variable-name is expanded, so it could be a variable or function that expands to the name of a variable.</p>
  
  <p>Note that <strong>ifdef only tests whether a variable has a value. It does not expand the variable to see if that value is nonempty.</strong> Consequently, tests using ifdef return true for all definitions except those likefoo =. To test for an empty value, use ifeq ($(foo),).</p>