Re: make --guaranteed-real-dry-run
So was this ever resolved? Did anything get into the documentation? Thanks. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
RE: make --guaranteed-real-dry-run
So was this ever resolved? I was happy with the suggestions on the thread, whatever they were, and no-one objected. Did anything get into the documentation? No. If someone were motivated enough to raise a bug, then I expect I could find the time to dig out the old mails, apply them to the current source and generate a patch to attach to the bug. Someone might then commit the changes. -Original Message- From: jida...@jidanni.org [mailto:jida...@jidanni.org] Sent: Friday, January 23, 2009 12:16 To: Martin Dorey Cc: m...@packages.debian.org; bug-make@gnu.org Subject: Re: make --guaranteed-real-dry-run So was this ever resolved? Did anything get into the documentation? Thanks. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
make --guaranteed-real-dry-run
In the documentation everywhere you mention -n, --just-print, --dry-run, --recon Print the commands that would be executed, but do not execute them. You should also say: Well, that is not exactly the truth, in some cases a even non-malicious programmer can construct a makefile that will still execute commands. In fact it is quite common and intentional... The same goes for -t... See (info (make)MAKE Variable) (info (make)Options/Recursion). At least add one word that one still can get wet. Also please document how one can achieve a --guaranteed-real-dry-run. Furthermore, one notes in the make --dry-run output that there is no way to distinguish the lines that were really run from those that weren't. Only when one sees e.g., /bin/sh: curl-config: command not found does one notice something sneaky is happening. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
RE: make --guaranteed-real-dry-run
It's not clear whether you're complaining about rules whose commands are run even with -n or -t, or whether you're complaining about commands run by eg $(shell). Assuming the former, the documentation already explains: The `-n', `-t', and `-q' options do not affect command lines that begin with `+' characters or contain the strings `$(MAKE)' or `${MAKE}'. Note that only the line containing the `+' character or the strings `$(MAKE)' or `${MAKE}' is run regardless of these options. Other lines in the same rule are not run unless they too begin with `+' or contain `$(MAKE)' or `${MAKE}' That's just below the main description of what -n does, but it looks like you're reading the summary of the command line switches. There's a link to the main description right after the sentence you quoted. That sentence has been further improved in the CVS version to read: Print the recipe that would be executed, but do not execute it. @xref{Instead of Execution, ,Instead of Executing the Recipes}. One reason why I find that to be an improvement is because it's now clearer that it only refers to commands in recipes, not commands in variable assignments, conditionals or elsewhere. Also please document how one can achieve a --guaranteed-real-dry-run. That would be ignoring the wish of the makefile author that those commands be run even with -n. More constructively, make --debug might help you. A program called remake received rave reviews in http://savannah.gnu.org/bugs/?18617. And, in the last resort, strace remains excellent. -Original Message- From: bug-make-bounces+mdorey=bluearc@gnu.org [mailto:bug-make-bounces+mdorey=bluearc@gnu.org] On Behalf Of jida...@jidanni.org Sent: Thursday, January 01, 2009 09:12 To: bug-make@gnu.org Subject: make --guaranteed-real-dry-run In the documentation everywhere you mention -n, --just-print, --dry-run, --recon Print the commands that would be executed, but do not execute them. You should also say: Well, that is not exactly the truth, in some cases a even non-malicious programmer can construct a makefile that will still execute commands. In fact it is quite common and intentional... The same goes for -t... See (info (make)MAKE Variable) (info (make)Options/Recursion). At least add one word that one still can get wet. Also please document how one can achieve a --guaranteed-real-dry-run. Furthermore, one notes in the make --dry-run output that there is no way to distinguish the lines that were really run from those that weren't. Only when one sees e.g., /bin/sh: curl-config: command not found does one notice something sneaky is happening. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: make --guaranteed-real-dry-run
What really bugs me is we do man make, and see -n, --just-print, --dry-run, --recon Print the commands that would be executed, but do not execute them. But that is just plain not always true, and one has to read the fine print in other documents to find the whole story. So throughout the years we use make -n, until one day something blows up in our face. What I'm saying is that things like that at least need a asterisk and a footnote, else, well, how can you say with a clear conscience we warned you? Yes down on the bottom is says for the full story see the info pages, but that's not how warning labels are done. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: make --guaranteed-real-dry-run
On Thu, Jan 1, 2009 at 12:15 PM, jida...@jidanni.org wrote: What really bugs me is we do man make, and see -n, --just-print, --dry-run, --recon Print the commands that would be executed, but do not execute them. But that is just plain not always true, and one has to read the fine print in other documents to find the whole story. So make a serious suggestion for the additional words that would have clarified it for you. Please don't try to use a footnote, as they work poorly when a manpage is viewed on-line. (Footnotes in info-pages are only bearable because the viewer forcibly presents them.) What I'm saying is that things like that at least need a asterisk and a footnote, else, well, how can you say with a clear conscience we warned you? The GNU make manpage starts with this: WARNING This man page is an extract of the documentation of GNU make. It is updated only occasionally, because the GNU project does not use nroff. For complete, current docu- mentation, refer to the Info file make.info which is made from the Texinfo source file make.texi. Since you continued to read past that, you apparently were unconcerned that you were reading incomplete, possibly out-of-date documentation. If you don't see that in your version, then you're either using an out-of-date version of GNU make, or your system packager has rewritten the manpage, placing it out of control of the GNU make developers. Yes down on the bottom is says for the full story see the info pages, but that's not how warning labels are done. 1) it's at the top, not the bottom, of the official manpage. 2) if that's not enough, then I suggest you remove the make manpage from your system, as that's the only sure way to not have incomplete data on it. Philip Guenther ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
RE: make --guaranteed-real-dry-run
make --help in CVS has been updated with the recipe clarification but still says: -n, --just-print, --dry-run, --recon\n\ Don't actually run any recipe; just print them.\n I agree that make --help is on particularly dubious ground when saying any recipe. Saying something woolly and referring to the documentation is one thing, but saying something definitive yet, strictly speaking, incorrect, with no caveat or reference, is something else. We need to be concise, so people can find what they're looking for, yet we still need to convey the sense of what the switch does. How about: Don't actually run normal recipes; just print them. -Original Message- From: bug-make-bounces+mdorey=bluearc@gnu.org [mailto:bug-make-bounces+mdorey=bluearc@gnu.org] On Behalf Of jida...@jidanni.org Sent: Thursday, January 01, 2009 12:54 To: guent...@gmail.com Cc: bug-make@gnu.org Subject: Re: make --guaranteed-real-dry-run PG The GNU make manpage starts with this: PG WARNING OK, but not make --help. Anyway please change things like -n, --just-print, --dry-run, --recon Don't actually run any commands; just print them. To Don't actually run any commands usually; just print them. The exact wording I leave up to you. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: make --guaranteed-real-dry-run
MD Don't actually run normal recipes; just print them. Well OK. A hint in the air that something is up the sleeve is better than nothing. P.S. here on Debian sid $ man make|egrep 19\|Manual|tr -s ' '|tac GNU 22 August 1989 MAKE(1) Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc. This file is part of GNU make. See the chapter `Problems and Bugs' in The GNU Make Manual. The GNU Make Manual $ make --version GNU Make 3.81 ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make