Re: [PATCH v2 4/5] Makefile: add the ".DELETE_ON_ERROR" flag
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 30, 2021, 18:36 UTC
- Message-ID
- <xmqqft0cebft.fsf@gitster.g>
- In-Reply-To
- <YGM/i+k4r0q8FKg2@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 31 quoted lines
> 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 >$@