|
From: | Martin Dorey |
Subject: | RE: make --guaranteed-real-dry-run |
Date: | Thu, 1 Jan 2009 11:42:15 -0800 |
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----- 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-m
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 address@hidden http://lists.gnu.org/mailman/listinfo/bug-make |
[Prev in Thread] | Current Thread | [Next in Thread] |