bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU Make bug report: broken dry-run functionality with sub-make invo


From: Martin Dorey
Subject: Re: GNU Make bug report: broken dry-run functionality with sub-make invocations
Date: Fri, 18 Mar 2022 17:48:01 +0000

Maybe putting it in the form of a patch on the latest git source will help it over the finish line:

diff --git a/doc/make.1 b/doc/make.1
index ec6f8a3b..4c258d68 100644
--- a/doc/make.1
+++ b/doc/make.1
@@ -222,8 +222,12 @@ With no argument, removes a previous load limit.
 Use the latest mtime between symlinks and target.
 .TP 0.5i
 \fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR
-Print the commands that would be executed, but do not execute them (except in
-certain circumstances).
+Print the commands that would be executed, but do not execute them in
+most cases.
+If the line contains a call to \fB$(MAKE)\fR, the entire line will still be
+executed, with the \fB\-n\fR option passed to the sub-make instance that
+is run.
+Be prepared for side effects of output redirection.
 .TP 0.5i
 \fB\-o\fR \fIfile\fR, \fB\-\-old\-file\fR=\fIfile\fR, \fB\-\-assume\-old\fR=\fIfile\fR
 Do not remake the file


From: David A. Wheeler <dr.david.a.wheeler@gmail.com>
Sent: Friday, March 18, 2022 09:08
To: Ambrus Sumegi <Ambrus.Sumegi@arm.com>
Cc: psmith@gnu.org <psmith@gnu.org>; Martin Dorey <Martin.Dorey@hitachivantara.com>; bug-make@gnu.org <bug-make@gnu.org>
Subject: Re: GNU Make bug report: broken dry-run functionality with sub-make invocations
 
***** EXTERNAL EMAIL *****

> On Mar 18, 2022, at 3:19 AM, Ambrus Sumegi <Ambrus.Sumegi@arm.com> wrote:
>
> Thanks a lot for your suggestions, Martin and Paul. I understand the reasoning behind why Make cannot improve this behavior, and the conditional execution of tee that you both proposed looks like a concise and elegant solution to my problem. My only remaining concern is about the man page, which currently has this rather vague description of the switch in question:
>
>       -n, --just-print, --dry-run, --recon
>               Print the commands that would be executed, but do not execute them (except in certain circumstances).
>
> Perhaps the "(except in certain circumstances)" could be expanded to something like "If the line contains a call to $(MAKE), the entire line will still be executed, with the -n option passed to the sub-make instance. Be prepared for side effects of output redirection."

+1 to this. Proposal:

 Print the commands that would be executed, but do not execute them in most cases.
Note: If the line contains a call to $(MAKE), the entire line will still be executed, with the -n option passed to the sub-make instance that is run.
 Also, be prepared for side effects of output redirection.

(If someone has a better way to write that last sentence, please do so.)

It's a pretty important exception, so it should be explicitly described in the summary.

--- David A. Wheeler


reply via email to

[Prev in Thread] Current Thread [Next in Thread]