On Thu, 2024-10-10 at 11:45 -0400, Dmitry Goncharov wrote: > There is little benefit to mark files built by static pattern rules > precious, because static pattern rules do not build intermediate > files.
It's a mistake to consider .PRECIOUS in the context of intermediate files. This is a common misunderstanding that, unlike globbing expressions for example, probably DOES deserve some changes to the manual to make clear. .PRECIOUS is dangerous and should almost never be needed or used. Its goal is to prevent make from deleting files automatically when a recipe fails (for any reason). There are very few, very rare situations where this is what you want, because it means that if (for example) the user uses ^C to kill a build and the recipe leaves a half-constructed target file behind your build will start to fail until you go delete it by hand. I have a hard time even imagining a good reason to use it. If you want to avoid a target being marked intermediate there are other, better ways to do that (use .SECONDARY or even just mention the target as a prerequisite of some rule, somewhere). .PRECIOUS is a very wrong solution to the intermediate situation.