bug-make
[Top][All Lists]
Advanced

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

[bug #15718] Weird behavior of the SHELL variable on Win32


From: Eli Zaretskii
Subject: [bug #15718] Weird behavior of the SHELL variable on Win32
Date: Mon, 13 Feb 2006 22:30:09 +0200
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Follow-up Comment #8, bug #15718 (project make):

Here's a response to Comments #2 and #5:

It's not true that ``SHELL variable assignment within Makefile doesn't work
for Win32 port of GNU make''.  It's just that it's a bit tricky, and also
your test Makefile was too simple to force Make to invoke the shell.  Try
this Makefile instead:

SHELL = perl.exe

all: ; echo 'hello

Note: the unmatched single quote is intentional (it forces Make to invoke the
shell)!

Also note that the .exe extension is currently required, since Make looks for
the shell's file name without appending executable extensions (I think this is
a misfeature, so I will try to fix it soon).

With these changes in the Makefile, I see with the latest beta of Make 3.81
the same behavior as you see in the Cygwin build.

P.S. In general, I think that setting SHELL to anything but a shell, either
cmd.exe or some version of Unixy shell, is playing with fire, and not only on
Windows: GNU Make assumes too much about the shell (it knows about characters
that need special treatment and commands that are built into the shell, for
starters).  Using a program such as Perl that violates these assumptions will
generally cause things to fall apart.

Children, don't try that at home!


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=15718>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

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