[Top][All Lists]

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

Re: make environment

From: Jason Pearce
Subject: Re: make environment
Date: Wed, 11 May 2005 20:26:58 +0100
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

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.

      ash - a shell

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

      Copyright 1989 by Kenneth Almquist.

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 ( 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:

        @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?


Help-make mailing list

Help-make mailing list

reply via email to

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