[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NT mingw/msys build problem
From: |
Lennart Borgman |
Subject: |
Re: NT mingw/msys build problem |
Date: |
Wed, 27 Oct 2004 21:16:43 +0200 |
----- Original Message -----
From: "Jason Rumney" <address@hidden>
: >I do not know how make works, but I can't avoid the hang when MSYS sh.exe
is
: >in the path. The hang is caused by $(shell echo) in the make file. This
does
: >not return since it runs "cmd echo" and that starts a new shell without
: >doing "echo". Actually it is bad syntax. The syntax for cmd is
...
: The $(shell COMMAND) macro should provide the correct arguments. That is
: the way cygwin and mingw32 make work, msys seems to be the only broken
: one in this regard.
There is something I do not understand here. Is not "shell" here cmd.exe? If
the parameters should be changed from "cmd echo" to "cmd /c echo" must it
not be made by GNU make? As far as I can see from this debug output from GNU
make it gives the parameter -c instead of /c to cmd.exe:
C:\emacscvs\emacs\nt>make -d SHELL=cmd.exe
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
find_and_set_shell path search set default_shell = e:/msys/1.0/bin/sh.exe
Reading makefiles...
Reading makefile `makefile'...
CreateProcess(C:\WINNT\System32\cmd.exe,cmd.exe -c echo,...)
When MSYS sh is not in the path a totally different route seem to be taken
by GNU Make:
C:\emacscvs\emacs\nt>make -d SHELL=cmd.exe
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Reading makefile `makefile'...
Creating temporary batch file C:\TEMP\make2692.bat
CreateProcess(C:\TEMP\make2692.bat,C:\TEMP\make2692.bat,...)
Cleaning up temporary batch file C:\TEMP\make2692.bat
Does not this look as a bug in GNU make when run on ms windows? I guess some
change must be made when porting to ms windows to GNU make to make it
recognize cmd.exe at all?
: >I do not understand why the test is made. It seems like make has found sh
: >already but it still wonders something about "shell". Why does make do
that?
: >
: >
: Make should know the shell already, but the Emacs makefiles do not. They
: need to do that test to find out.
I am surprised - is there no simple way to check the file name of the shell
executable? Or is that not considered reliable?
- Lennart
Re: NT mingw/msys build problem, Lennart Borgman, 2004/10/25