emacs-devel
[Top][All Lists]
Advanced

[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





reply via email to

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