Subject: bug#12955: 24.3.50; Build process on MS-Windows: sometimes needs "human intervention"

From: Dani Moncayo <[email-masked]>
Date: Wed, 21 Nov 2012 21:49:53 +0100

Hello,

Sometimes, when building the trunk on MS-Windows, the make process get
stuck when this like of `src/makefile' is executed:

  cmd /c "fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"

What happens is that a new cmd.exe session is open and waiting for
input, when the expected behavior for that session is to execute the
command between double quotes and exit.  So I have to copy&paste the
command, execute it and exit the cmd session so that the build process
can continue.

This problem is known to Eli, Juanma and those who build Emacs on
Windows, and is related to MSYS and the translation it performs with
filesystem paths ("/c" is translated to "c:\" for example).

If you have MSYS installed in your system, it is easy to reproduce the problem:
1. Open a cmd.exe console.
2. Run: sh  (to start a bash session).
3. Run: cmd /c "dir".

--> A new cmd session is created, it is waiting for input and the
"dir" command has not been executed.

Fortunately, I just found a solution for this: just remove the space
between the `/c' and the double quote:
3. Run: cmd /c"dir".

--> This time the cmd session executes the "dir" command and then
ends, returning control to the bash session.

So, please, apply the following patch to the trunk for fixing this
problem (I've just tested it):

=== modified file 'src/makefile.w32-in'
--- src/makefile.w32-in 2012-11-17 23:16:24 +0000
+++ src/makefile.w32-in 2012-11-21 20:21:30 +0000
@@ -234,7 +234,7 @@
 gl-stamp: ../lib-src/$(BLD)/make-docfile.exe $(GLOBAL_SOURCES)
        - $(DEL) gl-tmp
        "$(THISDIR)/../lib-src/$(BLD)/make-docfile" -d . -g
$(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
-       cmd /c "fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"
+       cmd /c"fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"
        - $(DEL) gl-tmp
        echo timestamp > $@

Thanks.

In GNU Emacs 24.3.50.1 (i386-mingw-nt6.1.7601)
 of 2012-11-21 on MS-W7-DANI
Bzr revision: 110971 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -Ic:/emacs/libs/libXpm-3.5.10/include -Ic:/emacs/libs/libXpm-3.5.10/src
 -Ic:/emacs/libs/libpng-1.2.37-lib/include -Ic:/emacs/libs/zlib-1.2.5
 -Ic:/emacs/libs/giflib-4.1.4-1-lib/include
 -Ic:/emacs/libs/jpeg-6b-4-lib/include
 -Ic:/emacs/libs/tiff-3.8.2-1-lib/include
 -Ic:/emacs/libs/libxml2-2.7.8-w32-bin/include/libxml2
 -Ic:/emacs/libs/gnutls-3.0.9-w32-bin/include
 -Ic:/emacs/libs/libiconv-1.9.2-1-lib/include'

-- 
Dani Moncayo