@@ -501,15 +501,17 @@ def emit_rule(self, ins, outs, cmds=[], label=None):
501501
502502 emit (f"OUTS_{ outsn } " , "=" , * fouts , into = lines )
503503 emit (f"INS_{ insn } " , "=" , * fins , into = lines )
504+ emit (name , ":" , f"$(OUTS_{ outsn } )" , into = lines )
505+ emit (hashfile , ":" , into = lines )
506+ emit (f"\t @mkdir -p { self .dir } " , into = lines )
507+ emit (f"\t @touch { hashfile } " , into = lines )
504508 emit (
505- name ,
506- ":" ,
507- hashfile ,
508509 f"$(OUTS_{ outsn } )" ,
510+ "&:" if len (fouts ) > 1 else ":" ,
511+ f"$(INS_{ insn } )" ,
512+ hashfile ,
509513 into = lines ,
510514 )
511- emit (f"$(OUTS_{ outsn } )" , ":" , hashfile , into = lines )
512- emit (hashfile , ":" , f"$(INS_{ insn } )" , into = lines )
513515
514516 if label :
515517 emit ("\t $(hide)" , "$(ECHO) $(PROGRESSINFO)" + label , into = lines )
@@ -537,9 +539,6 @@ def emit_rule(self, ins, outs, cmds=[], label=None):
537539 emit (name , ":" , * fins , into = lines )
538540
539541 outputFp .write ("" .join (lines ))
540-
541- if outs :
542- emit (f"\t $(hide) touch { hashfile } " )
543542 emit ("" )
544543
545544
0 commit comments