This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]