title: How can I force gnu make to not build recipe in parallel?
body: <p>How can I tell gnu make not to build some recipe in parallel. Let's say I have the following makefile :</p>
  
  <pre><code>sources = a.xxx b.xxx c.xxx
  target  = program
  
  all : $(target)
  
  $(target) : $(patsubst %.xxx,%.o,$(sources))
      $(CXX) -o $@ $&lt;
  
  %.o : %.cpp
      $(CXX) -c -o $@ $&lt;
  
  %.cpp : %.xxx
      my-pre-processor -o $@ $&lt;
  </code></pre>
  
  <p>However, the <code>my-pre-processor</code> command create temporary files with fixed name (I cannot change this). This is working fine if I just use make without the <code>-j</code> parameter. However, if the <code>-j</code> option is used, the build sometimes fails because two concurrent invocation of <code>my-pre-processor</code> overwrite their temporary files.</p>
  
  <p>I'd like to know if there is a way to tell make that it must not build the try to parallelize the execution of the <code>%.cpp : %.xxx</code> recipes.</p>