title: How to deal with two groups of prerequisites, one which must be run before the other?
body: <p>I often find myself in a situation where I want some prerequisites performed, but then I don't care about the order of the other tasks.  This often comes up in testing, where I want to compile the core programs/libraries, but then I'd like to be able to let make handle the test scheduling.</p>
  
  <p><strong>What is the most appropriate idiom for dealing with multiple groups of prerequisites, one group which must be run before the other?</strong></p>
  
  <p>The approaches that I've come up with so far are (in the following examples, $(TESTS) are the targets to run the tests, and $(OBJS) are the target to build the objects):</p>
  
  <pre><code>test: $(OBJS)
      make $(TESTS)
  </code></pre>
  
  <p>or</p>
  
  <pre><code>$(TESTS): $(OBJS)
  
  test: $(TESTS)
  </code></pre>