Re: [PATCH] Don't write directly to a make target ($@).
Junio C Hamano <junkio@cox.net> wrote:
Show 28 quoted lines
> Jim Meyering <jim@meyering.net> 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/