title: How to remove remove multiple different extensions from a word list in GNU make?
body: <p>I have a list of filenames:</p>
  
  <pre><code>FILES := a.b c.d e.f
  </code></pre>
  
  <p>and I want to remove the extensions (suffixes) of all words to obtain:</p>
  
  <pre><code>a c e
  </code></pre>
  
  <p>what is the best way to do that?</p>
  
  <p>The best I could come up with was "cheating" with shell:</p>
  
  <pre><code>$(shell for f in $(INS_NODIR); do echo -n "$${f%.*} "; done )
  </code></pre>
  
  <p>but I am surprised there was not a more "built-in" way of doing this only with make built-in functions.</p>
  
  <p>thing I tried:</p>
  
  <ul>
  <li><p><code>patsubst</code>. It seems that it can only have one single wildcard, others being treated literally, and I'd like to do something like <code>%.%, %</code></p></li>
  <li><p>looking for a <code>notsufix</code> function.</p>
  
  <p>I was surprised that this does not exist, since the <code>dir</code> function has <code>notdir</code> counterpart, but the <code>suffix</code> function that exactly extracts extensions does not have a <code>notsuffix</code> counterpart</p></li>
  </ul>