On 27.10.2020 11:57, Andrew Cooper wrote: > On 27/10/2020 10:37, Jan Beulich wrote: >> On 27.10.2020 11:27, Olaf Hering wrote: >>> Am Tue, 27 Oct 2020 11:16:04 +0100 >>> schrieb Jan Beulich <jbeul...@suse.com>: >>> >>>> This pattern is used when a rule consists of multiple commands >>>> having their output appended to one another's. >>> My understanding is: a rule is satisfied as soon as the file exists. >> No - once make has found that a rule's commands need running, it'll >> run the full set and only check again afterwards. > > It stops at the first command which fails. > > Olaf is correct, but the problem here is an incremental build issue, not > a parallel build issue. > > Intermediate files must not use the name of the target, or a failure and > re-build will use the (bogus) intermediate state rather than rebuilding it.
But there's no intermediate file here - the file gets created in one go. Furthermore doesn't make delete the target file(s) when a rule fails? (One may not want to rely on this, and hence indeed keep multi- part rules update intermediate files of different names.) Jan