From: Timo Hirvonen Date: Thu, 25 May 2006 16:41:25 GMT Subject: Re: [PATCH] Don't write directly to a make target ($@). Message-ID: <20060525194125.9380842a.tihirvon@gmail.com> In-Reply-To: <7vejyixe5g.fsf@assigned-by-dhcp.cox.net> Junio C Hamano wrote: > Jim Meyering writes: > > > Otherwise, if make is suspended, or killed with prejudice, or if the > > system crashes, you could be left with an up-to-date, yet corrupt, > > generated file. > > Thanks. Maybe you would want a "make clean" target for them too > if you do this. I often use $@+ instead of t$@ so that I can > say "rm -f *+" there. > > > @@ -496,37 +496,43 @@ builtin-help.o: common-cmds.h > > rm -f $@ && ln git$X $@ > > > > common-cmds.h: Documentation/git-*.txt > > - ./generate-cmdlist.sh > $@ > > + ./generate-cmdlist.sh > t$@ > > + mv t$@ $@ > > > > IOW, like this: > > common-cmds.h: Documentation/git-*.txt > rm -f $@+ $@ > ./generate-cmdlist.sh > $@+ > mv $@+ $@ > > clean:: > rm -f *+ Or just use one tmp file, i.e. ".tmp" instead of t$@. -- http://onion.dynserv.net/~timo/