title: Make rule using `$<` only adding one object to archive library
body: <p>I feel stupid, but I cannot find the solution myself:</p>
  <p>I have a <code>Makefile</code> that correctly builds objects from C source, and I want to place <code>$(OBJECTS)</code> in an archive library.
  I'm using GNU Make 4.0.</p>
  <pre class="lang-makefile prettyprint-override"><code>x.a: $(OBJECTS)
          echo &quot;$&lt; ($(OBJECTS))&quot;
          $(AR) $(ARFLAGS) $@ $&lt;
  </code></pre>
  <p>(Lines are indented with TABs in original. The echo was added for debugging purposes only, The <code>$(AR) $(ARFLAGS) $@ $&lt;</code> was copied from <code>make</code>'s internal rules)</p>
  <p>Make outputs (at the end after the objects were built):</p>
  <pre class="lang-text prettyprint-override"><code>echo &quot;log_thread/log_thread.o (log_thread/log_thread.o log_thread/thread.o)&quot;
  log_thread/log_thread.o (log_thread/log_thread.o log_thread/thread.o)
  ar rv x.a log_thread/log_thread.o
  ar: creating x.a
  a - log_thread/log_thread.o
  </code></pre>
  <p>So I expect both objects modules to be added to the library <code>x.a</code>, but <code>$&lt;</code> only contains one object module, as opposed to <code>$(OBJECTS)</code>).</p>
  <p>My Make knowledge may be a little rusty, maybe that's why I don't get it.
  Of course both object modules exist, and the output was created after having removed <code>x.a</code> (the original file is a bit more complex).</p>