SHELL on W2K (gmake 3.79.1) is cmd.exe not /bin/sh

Parish parish@ntlworld.com
Wed Mar 12 15:57:00 GMT 2003


I am trying to help someone get Mozilla building on W2K but we can't get
it to work because, it appears, the value of SHELL is being set to
cmd.exe (i.e. COMSPEC). It is being run from the cygwin bash shell.

My setup works fine so I am looking for differences. I got him to run
make with -p and send me the output. The relevant bits from this are:

# GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
# Built for i686-pc-cygwin
# Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
# 	Free Software Foundation, Inc.

# environment
COMSPEC = C:\WINNT\system32\cmd.exe

# environment
PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

# makefile
SHELL = C:/WINNT/system32/cmd.exe

# makefile
MAKEFLAGS =  --win32 -p

# environment
PATH = /usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINNT/system32:
/cygdrive/c/WINNT:/cygdrive/c/WINNT/System32/Wbem:
/cygdrive/c/Progra~1/Microsoft SQL Server/80/Tools/BINN:
/cygdrive/d/Projects/Perl/bin/:/cygdrive/d/projects/nasm:
/cygdrive/d/Projects/MozTools/bin:/bin:/cygdrive/d/Projects/WinCvs:
/cygdrive/c/util:/cygdrive/d/Progra~1/Resource Kit/:
/cygdrive/d/Progra~1/Micros~1/Common/Tools/WinNT:
/cygdrive/d/Progra~1/Micros~1/Common/MSDev98/Bin:
/cygdrive/d/Progra~1/Micros~1/Common/Tools:
/cygdrive/d/Progra~1/Micros~1/VC98/bin:/usr/X11R6/bin

# environment
MAKE_MODE = unix

On my system SHELL=/bin/sh and MAKEFLAGS= --unix -p, which is correct.

The following are in his environment (and matches mine):

BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="8" [4]="release"
[5]="i686-pc-cygwin")
BASH_VERSION='2.05b.0(8)-release'
COMSPEC='C:\WINNT\system32\cmd.exe'
HOME=/cygdrive/d/Projects
HOSTTYPE=i686
MACHTYPE=i686-pc-cygwin
MAKE_MODE=unix
OPTERR=1
OPTIND=1
OS=Windows_NT
OSTYPE=cygwin
PATH='/usr/local/bin:/usr/bin:/bin:/cygdrive/d/Projects/Perl/bin/:
/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:
/cygdrive/c/WINNT/System32/Wbem:/cygdrive/c/util:
/cygdrive/d/Progra~1/Resource Kit/:
/cygdrive/c/Progra~1/Microsoft SQL Server/80/Tools/BINN:
/cygdrive/d/Projects/WinCvs:
/cygdrive/d/Progra~1/Micros~1/Common/Tools/WinNT:
/cygdrive/d/Progra~1/Micros~1/Common/MSDev98/Bin:
/cygdrive/d/Progra~1/Micros~1/Common/Tools:
/cygdrive/d/Progra~1/Micros~1/VC98/bin:/cygdrive/d/projects/nasm:
/cygdrive/d/Projects/MozTools/bin:/bin:/usr/X11R6/bin'
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
PIPESTATUS=([0]="2")
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1

He has sh.exe in /bin (/cygdrive/d/Projects/cygwin/bin). I can reproduce
the problem on my system by renaming sh.exe and he assures me that
typing ''/bin/sh'' at the bash prompt works.

I've read the section about SHELL in the GNU make manual at
http://www.gnu.org/manual/make/html_chapter/make_5.html#SEC54 and
everything seems to be correct.

One other thing, probably as a result of SHELL being cmd.exe, is that
some paths in the output from make -p are in quotes, e.g.:

# makefile (from `client.mk', line 87)
TOPSRCDIR := "/cygdrive/d/Projects/mozilla"

line 87 in client.mk being:

TOPSRCDIR := $(shell echo "$(TOPSRCDIR)" | sed -e 's%//%/%')

I'm stumped. What have I/we missed? Can anyone suggest anything else to try?

Thanks.

Regards,

Parish




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list