Jeff King <peff@xxxxxxxx> writes: > On Tue, Mar 30, 2021 at 01:31:40AM +0200, Ævar Arnfjörð Bjarmason wrote: > >> >> Use the GNU make ".DELETE_ON_ERROR" flag. >> > >> > Yay! >> > >> > With versions of $(MAKE) where this feature is available, it is far >> > more preferrable to use it than "generate into temporary and rename >> > to the final" dance. >> > >> > We do require / depend on GNU but I do not offhand know if this is >> > available in all versions that still matter. If we know we can >> > assume the presence of this feature the I do not mind if we jump >> > directly to this step without those "do the same for $(CC)" steps >> > (which I deem crazy) before it. >> >> Even if it's not available in all versions that's OK. You just won't get >> the nicer removal behavior on on error on such a jurassic gmake, but >> you'll probably have way bigger issues with your late-90s-era software. >> >> It's not a syntax error on a gmake or other make that doesn't know about >> it either, i.e. you can also add a target like: >> >> .THIS_DOES_NOT_EXIST_AS_A_GMAKE_FEATURE: >> >> And gmake willl happily ignore it. > > Yes, I think it's fine to treat it as "nice if we have it, but OK > otherwise". But also, .DELETE_ON_ERROR first shows up in the GNU make > git repository in version 3.71.5 from 1994. So I think we can probably > just assume it's everywhere. OK. That raises my hopes up that we may be able to simplify things like this config-list.h: $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh \ >$@+ && mv $@+ $@ into config-list.h: $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh >$@