In Cygwin /bin/sh is actuall ash. Try man sh to reveal the truth. You also want to read up on $MAKE_MODE, set in /etc/profile.

sh(1)
NAME
      ash - a shell

SYNOPSIS
      ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c command ] [ arg ] ...

COPYRIGHT
      Copyright 1989 by Kenneth Almquist.

DESCRIPTION
Ash is a version of sh with features similar to those of the System V
shell. This manual page lists all the features of ash but concen-
trates on the ones not in other shells.



David Boyce wrote:

Take a look at the GNU make manual (http://www.gnu.org/software/make/manual/html_mono/make.html) and read section 5.2 "Command Execution". Note that it says "By default, the program `/bin/sh' is used." But do read the whole section for background.

-David Boyce

At 05:32 PM 5/10/2005, Adam Heinz wrote:

[ Windows XP SP 2, Visual Studio 2003, Cygwin 1.5.12, Make 3.80 ]

I'm using a test makefile with a single goal:

all:
        @echo COMSPEC = $(COMSPEC)
        @echo MAKESHELL = $(MAKESHELL)
        @echo SHELL = $(SHELL)

When I have Visual Studio drive the makefile with

        make -k -C $(InputDir)\.. all

I get

        COMSPEC = /bin/bash
        MAKESHELL = /bin/bash
        SHELL = /bin/sh.exe

But when I tell Visual Studio to:

        echo COMSPEC = $(COMSPEC)
        echo MAKESHELL = $(MAKESHELL)
        echo SHELL = $(SHELL)

I get

        COMSPEC = /bin/bash
        MAKESHELL = /bin/bash
        SHELL = /bin/bash

which is the desired behavior -- mirroring the environment that I launched
Visual Studio in.


Why is make substituting in a default $SHELL?

Adam


_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make





_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make




_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to