title: GNU Makefile rule generating a few targets from a single source file
body: <p>I am attempting to do the following. There is a program, call it <code>foo-bin</code>, that takes in a single input file and generates two output files. A dumb Makefile rule for this would be:</p>
  
  <pre><code>file-a.out file-b.out: input.in
      foo-bin input.in file-a.out file-b.out
  </code></pre>
  
  <p>However, this does not tell <code>make</code> in any way that both targets will be generated simultaneously. That is fine when running <code>make</code> in serial, but will likely cause trouble if one tries <code>make -j16</code> or something equally crazy.</p>
  
  <p><strong>The question is whether there exists a way to write a proper Makefile rule for such a case?</strong> Clearly, it would generate a DAG, but somehow the GNU make manual does not specify how this case could be handled. </p>
  
  <p>Running the same code twice and generating only one result is out of the question, because the computation takes time (think: hours). Outputting only one file would also be rather difficult, because frequently it is used as an input to GNUPLOT which doesn't know how to handle only a fraction of a data file.</p>