title: How does $@ work in a make conditional?
body: <p>I'm using GNU Make 3.80.  In my Makefile, I use automatic variable $@ to refer to the current target.</p>
  
  <pre><code>    @echo current target is ... [$@]
  ifeq ($@,sms)
      @echo yep, they are equal
  else
      @echo no, they are not equal
  endif
  </code></pre>
  
  <p>It seems that $@ expands to sms, as shown in the output below.</p>
  
  <p>Output is:</p>
  
  <pre><code>current target is ... [sms]
  no, they are not equal
  </code></pre>
  
  <p>My question:  since $@ (apparently) expands to sms, shouldn't the "true" branch of the ifeq conditional be executed (with the consequence that the output should read yep, they are equal)?  [I am at a loss as to why the output is no, they are not equal.]</p>