On Wed, 5 Jul 2017, Marc Espie wrote: > This is a very slight deviation from posix rules, but not in spirit. My > interpretation is that posix rules describe the intent of the make rules > (produce a file in such a way), but don't really care about intermediate > names. ... > .l.c: > - ${LEX.l} ${.IMPSRC} > - mv lex.yy.c ${.TARGET} > + ${LEX.l} -o ${.TARGET} ${.IMPSRC}
Only concern I would have is whether an up-to-date-but-broken .c file would be left behind if lex fails after creating the file, resulting in the next build thinking it doesn't need to run lex (and then doing the Wrong Thing with the broken file). Will lex remove the bogus output file if it fails? (That's a benefit to using "-o $@" and _not_ ">$@", as the former gives lex the name of the file so it can cleanup on failure.) (The current rule of course doesn't have this issue because the broken file left behind would be the intermediate and not the actual target.) Philip