git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Don't write directly to a make target ($@).

From
Jim Meyering <jim@meyering.net>
Date
May 25, 2006, 16:42 UTC
Message-ID
<871wui5a4r.fsf@rho.meyering.net>
In-Reply-To
<7vejyixe5g.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> wrote:
Show 9 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.

I chose a prefix rather than a suffix, so that if git is built on a file system with unreasonable file name length limitations, the prefix will distinguish the temporary from the target; in that situation, a suffixed temporary name could map to the target name.

However, assuming reasonable file name length limits, using a suffix is generally better, since it works even when the target is an absolute name. Adding a prefix obviously won't work with an absolute name.

I'm happy to ignore 14-byte(and 8.3)-limited file systems and go with a suffix, if you still prefer that. New patch coming up.

Previous: Jim MeyeringNext: Jim Meyering
Message 5 of 6 in “Don't write directly to a make target ($@).”
  1. Don't write directly to a make target ($@).Jim Meyering, May 25, 2006
  2. Junio C HamanoMay 25, 2006
  3. Timo HirvonenMay 25, 2006
  4. Jim MeyeringMay 25, 2006
  5. Jim MeyeringMay 25, 2006
  6. Jim MeyeringMay 25, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.