]> code.delx.au - gnu-emacs/commitdiff
Fix bug #12955 with building under MSYS Bash.
authorEli Zaretskii <eliz@gnu.org>
Fri, 23 Nov 2012 08:47:34 +0000 (10:47 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 23 Nov 2012 08:47:34 +0000 (10:47 +0200)
 src/makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
 of a literal "/".
 (gl-stamp): Invoke fc.exe directly, not through cmd.

nt/ChangeLog
nt/gmake.defs
nt/nmake.defs
src/ChangeLog
src/makefile.w32-in

index 6737f952a43f84c7ec33b5a9af12084e1fad2623..ae6cb2316142a72197146612f754982cd032df2c 100644 (file)
@@ -1,3 +1,10 @@
+2012-11-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * gmake.defs (SWITCHCHAR): Define to // under MSYS, / otherwise.
+       (Bug#12955)
+
+       * nmake.defs (SWITCHCHAR): Define to /.
+
 2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
index 358c262db28bac0775a478f08ea398608511b60b..3d545fab9755a8459f5cb7fa39b7392c3a8d28aa 100644 (file)
@@ -69,10 +69,18 @@ sh_output := $(shell echo)
 ifeq "$(findstring ECHO, $(sh_output))" "ECHO"
 THE_SHELL = $(COMSPEC)$(ComSpec)
 SHELLTYPE=CMD
+SWITCHCHAR=/
 else
 USING_SH = 1
 THE_SHELL = $(SHELL)
 SHELLTYPE=SH
+# MSYS needs to double the slash in cmd-style switches to avoid
+# interpreting /x as a Posix style file name reference
+ifneq ($(MSYSTEM),)
+SWITCHCHAR=//
+else
+SWITCHCHAR=/
+endif
 endif
 
 MAKETYPE=gmake
index 16a787ea30a2cbd2028c7622d62d68beacbba378..2c6bc66b6735a0e73ac141e7c1754f29d458f70f 100644 (file)
@@ -22,6 +22,7 @@ all:
 \r
 THE_SHELL = $(COMSPEC)\r
 SHELLTYPE=CMD\r
+SWITCHCHAR=/\r
 \r
 MAKETYPE=nmake\r
 \r
index 5566b623cec7e6f5b7bda25146273fc77188baeb..45df517eff5323d8ba29887a59c435e1acb2facc 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
+       of a literal "/".  (Bug#12955)
+       (gl-stamp): Invoke fc.exe directly, not through cmd.
+
 2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
index 5d0c6e721462c64b8e0bae23911c45e379f91bc7..a296f6eb393bd78a05091a60e61fda892dc94206 100644 (file)
@@ -229,12 +229,12 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
 obj = $(GLOBAL_SOURCES:.c=.o)
 
 globals.h: gl-stamp
-       @cmd /c rem true
+       @cmd $(SWITCHCHAR)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"
+       fc.exe $(SWITCHCHAR)b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h
        - $(DEL) gl-tmp
        echo timestamp > $@