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/