1. 10 Mar, 2015 1 commit
  2. 09 Mar, 2015 7 commits
  3. 06 Mar, 2015 2 commits
    • Brad King's avatar
      cc1ee213
    • Brad King's avatar
      Makefile: Fix multiple custom command outputs regression (#15116) · 66a9c90c
      Brad King authored
      In commit v3.2.0-rc1~272^2~2 (Makefile: Fix rebuild with multiple custom
      command outputs, 2014-12-05) we changed the generated makefile pattern
      for multiple outputs from
      
        out1: depends...
                commands...
        out2: out1
      
      to
      
        out1 out2: depends...
                commands...
      
      This was based on the incorrect assumption that make tools would treat
      this as a combined output rule and run the command(s) exactly once for
      them.  It turns out that instead this new pattern is equivalent to
      
        out1: depends...
                commands...
        out2: depends...
                commands...
      
      so the commands may be run more than once.
      
      Some documents suggest using a "dedicated witness" stamp file:
      
        stamp: depends...
                rm -f stamp
                touch stamp.tmp
                commands...
                mv stamp.tmp stamp
        out1 out2: stamp
      
      However, if the commands fail the error message will refer to the stamp
      instead of any of the real outputs, which may be confusing to readers.
      Also, this approach seems to have the same behavior of the original
      approach that motiviated the above commit: multiple invocations are
      needed to bring consumers of the outputs up to date.
      
      Instead we can return to the original approach but add an explicit
      touch to each extra output rule:
      
        out1: depends...
                commands...
        out2: out1
                touch -c out2
      
      This causes make tools to recognize that all outputs have changed and
      therefore to execute any commands that consume them.
      66a9c90c
  4. 03 Mar, 2015 1 commit
  5. 02 Mar, 2015 2 commits
  6. 28 Feb, 2015 2 commits
  7. 27 Feb, 2015 2 commits
  8. 26 Feb, 2015 2 commits
  9. 24 Feb, 2015 2 commits
  10. 23 Feb, 2015 1 commit
  11. 20 Feb, 2015 5 commits
  12. 19 Feb, 2015 2 commits
  13. 18 Feb, 2015 4 commits
  14. 13 Feb, 2015 2 commits
  15. 12 Feb, 2015 2 commits
  16. 11 Feb, 2015 3 commits