Subject: RE: bug#10665: 24.0.93; Building for MS Windows using MinGW encounters a build problem in ../emacs-24.0.93/src/makefile

From: "Gallagher, Kevin" <[email-masked]>
Date: Mon, 30 Jan 2012 14:58:37 -0600

Hi Eli,

I did some further investigation and the problem is definitely NOT with the MSYS bash. When I build from a Windows command line, I see the exact same symptom.  It turns out that the actual problem is with the MSYS GNU make.  If, instead, I use the MinGW GNU make executable, called mingw32-make.exe, the problem disappears.  (The MSYS GNU make is version 3.81 while the MinGW version is 3.82.)

By the way, the nt/INSTALL file is very out-of-date with its disparaging remarks toward the MSYS port of bash.  The latest version is really quite good. I have used it extensively for quite some time without any issues.  Indeed, I have used it together with the MSYS GNU make on a large software development project for over a year, utilizing a large number of makefiles making extensive use of GNU make features; all without encountering any issues with these tools, until I ran into the problem with the rule for the globals.h target.

Finally, my previous concern about the rule for the target globals.h in the ../emacs-24.0.93/src/makefile:

  globals.h: gl-stamp
        @cmd /c rem true

seems to be still valid.  What is the point of a rule explicitly invoking the Windows command interpreter and passing it ONLY a comment line? 

Regards,

Kevin

-----Original Message-----
From: Eli Zaretskii [mailto:[email-masked]] 
Sent: Monday, January 30, 2012 12:56 PM
To: Gallagher, Kevin
Cc: [email-masked]
Subject: Re: bug#10665: 24.0.93; Building for MS Windows using MinGW encounters a build problem in ../emacs-24.0.93/src/makefile

> From: "Gallagher, Kevin" <[email-masked]>
> Date: Mon, 30 Jan 2012 12:35:02 -0600
> 
> The problem is in the generated ../emacs-24.0.93/src/makefile, which
> has the following target and associated rule:
> 
> globals.h: gl-stamp
>       @cmd /c rem true
> 
> In an MinGW/MSYS bash shell, this rule invokes the MS Windows cmd.exe
> command interpreter, which issues a prompt and then does not exit, thereby
> halting the build.  The output from make looks like this, at this point:
> 
> echo timestamp > gl-stamp
> Microsoft Windows XP [Version 5.1.2600]
> (C) Copyright 1985-2001 Microsoft Corp.
> 
> c:\emacs-24.0.93\src>

This is a known issue with the MSYS Bash.  That shell is not supported
by the Windows build of Emacs, for this very reason, see nt/INSTALL.

Just remove MSYS from your PATH, and you should be able to build EMacs
just fine.  You don't need a Unixy shell.

I'm closing this bug report.

Thanks for reporting and digging into this.