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

From: Dani Moncayo <[email-masked]>
Date: Wed, 21 Nov 2012 23:43:45 +0100

> $(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 > $@

I've grepped the sources and there is another instance of this
problem, in that same file (src/makefile.w32-in):
   @cmd /c rem true

This sentence must not be executed in my current builds because I've
not had to touch it for my build to succeeded.  But if the sentence is
executed under some circumstances, the same problem will crop up.

So here is a new version of the patch which fixed that case too and
includes an informative commentary:

=== modified file 'src/makefile.w32-in'
--- src/makefile.w32-in 2012-11-17 23:16:24 +0000
+++ src/makefile.w32-in 2012-11-21 22:42:06 +0000
@@ -228,13 +228,17 @@
        xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
 obj = $(GLOBAL_SOURCES:.c=.o)

+# WARNING: Every `cmd /c' command must have the form:
+#     cmd /c"some-command"
+# without any space between the /c and the first double quote.
+# This is needed to avoid problems when sh.exe is used as shell.
 globals.h: gl-stamp
-       @cmd /c rem true
+       @cmd /c"rem true"

 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 > $@

-- 
Dani Moncayo