I've written up a minor improvement to the make documentation. The first change warns the user of the trouble that can happen when a file name contains '='. The second change adds an explanation to the error message "commands commence before first target", telling that it can be a consequence of a file name containing '='.
(Please Cc: me on any reply, since I'm not on the bug-make mailing list.) Dale ---------------------------------------------------------------------- diff -ru /usr/local/src/make-3.79.1/make.texinfo make-3.79.1.doc/make.texinfo --- /usr/local/src/make-3.79.1/make.texinfo 2000-06-20 10:00:17.000000000 -0400 +++ make-3.79.1.doc/make.texinfo 2004-01-23 15:18:41.000000000 -0500 @@ -1534,6 +1534,12 @@ the contents of the existing target file are no longer necessarily valid. +(Beware that if the first prerequisite contains an @samp{=}, the line +will be interpreted as a target-specific variable assignment rather +than as a rule. In the rare case +that a file name contains @samp{=}, this can happen. [EMAIL PROTECTED], ,Target-specific Variable Values}.) + How to update is specified by @var{commands}. These are lines to be executed by the shell (normally @samp{sh}), but with some extra features (@pxref{Commands, ,Writing the Commands in Rules}). @@ -9533,9 +9539,16 @@ @code{make} command (such as a variable assignment). Command scripts must always be associated with a target. -The second form is generated if the line has a semicolon as the first -non-whitespace character; @code{make} interprets this to mean you left -out the "target: prerequisite" section of a rule. @xref{Rule Syntax}. +These messages can also happen if the preceding rule line was mistaken +for a target-specific variable assignment because the first +prerequisite of the rule contained a @samp{=}. [EMAIL PROTECTED] Syntax}. [EMAIL PROTECTED], ,Target-specific Variable Values}. + +The second form is also generated if the line has a semicolon as the first +non-whitespace character; @code{make} interprets this to mean that the +line is a combined rule and command line, and that you left +out the "target: prerequisite" section of the rule. @xref{Rule Syntax}. @item No rule to make target [EMAIL PROTECTED]'. @itemx No rule to make target [EMAIL PROTECTED]', needed by [EMAIL PROTECTED]'. ---------------------------------------------------------------------- _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make