On Fri, 2006-12-01 at 13:08 -0800, david baker wrote:

> I'm forwarding a note I sent to Karl Berry <[EMAIL PROTECTED]> which he 
> advised to be sent to you.  Additionally I am attaching screen shots of 
> the actions I took and published on linuxquestions.org and the 
> Makefile.in from LPRng-3.8.28. The GNU Make version which fails is 
> 3.81.  The GNU Make version which works is 3.80.

David: thanks for sending me the extra info.  In the future please
remember to CC the mailing list rather than sending things to me
directly.

The problem is that the LPRng makefile (or Makefile.in as the case may
be) is incorrect.  In particular, this line is very, very wrong:

  SHELL="/bin/sh"

The SHELL make variable is special to make, in that it specifies what
program make will invoke to run the commands you provide in your rules.
Also, make is not a shell, and make variable syntax is not identical to
shell variable syntax.  In particular, make variable values do NOT have
quotes expanded.

The above line, with the quotes, tells make that the shell it should
invoke is the literal string "/bin/sh" (with quotes).  That string does
not look to make like a "normal" Bourne shell name, so make doesn't
recognize it as such and tries to do something fairly bizarre.  I
suspect there may be a bug related to this, or at least unexpected
behavior.

Nevertheless, the above is quite wrong.  In general you shouldn't set
SHELL at all, but if you must then your Makefile.in should say merely:

  SHELL = /bin/sh

(no quotes).

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to