title: Order-only prerequisites not working correctly in GNU make?
body: <p>I have a problem with order-only prerequisites. These do not execute first at all. Am I mis-understanding the way order-only prerequisites work?</p>
  
  <p>The following make script:</p>
  
  <pre><code>.PHONY: mefirst mefirst2
  
  mefirst:
      @echo "I'm first!"
  
  mefirst2:
      @echo "I'm first too!"
  
  normaltarget: normaltarget2 | mefirst2
      @echo "normaltarget done"
  
  normaltarget2: a b c 
      @echo "normaltarget2 done"
  
  helloworld: normaltarget | mefirst
      @echo "helloworld done"
  
  .DEFAULT_GOAL := go
  go: helloworld
      @echo "go done"
  
  a:
      @echo a
  b:
      @echo b
  c:
      @echo c
  </code></pre>
  
  <p>...prints out the following:</p>
  
  <pre><code>a
  b
  c
  normaltarget2 done
  I'm first too!
  normaltarget done
  I'm first!
  helloworld done
  go done
  </code></pre>
  
  <p>...instead of what I would expect:</p>
  
  <pre><code>I'm first!
  I'm first too!
  a
  b
  c
  normaltarget2 done
  normaltarget done
  helloworld done
  go done
  </code></pre>
  
  <p>What am I doing wrong?</p>