From: Eli Zaretskii Date: Fri, 23 Nov 2012 08:47:34 +0000 (+0200) Subject: Fix bug #12955 with building under MSYS Bash. X-Git-Tag: emacs-24.3.90~173^2~18^2~14 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a879f0eaae49460a29c840e3e35acdb84aa9aa7e;p=emacs.git Fix bug #12955 with building under MSYS Bash. src/makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead of a literal "/". (gl-stamp): Invoke fc.exe directly, not through cmd. --- diff --git a/nt/ChangeLog b/nt/ChangeLog index 6737f952a43..ae6cb231614 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,10 @@ +2012-11-23 Eli Zaretskii + + * gmake.defs (SWITCHCHAR): Define to // under MSYS, / otherwise. + (Bug#12955) + + * nmake.defs (SWITCHCHAR): Define to /. + 2012-11-23 Paul Eggert Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958). diff --git a/nt/gmake.defs b/nt/gmake.defs index 358c262db28..3d545fab975 100644 --- a/nt/gmake.defs +++ b/nt/gmake.defs @@ -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 diff --git a/nt/nmake.defs b/nt/nmake.defs index 16a787ea30a..2c6bc66b673 100644 --- a/nt/nmake.defs +++ b/nt/nmake.defs @@ -22,6 +22,7 @@ all: THE_SHELL = $(COMSPEC) SHELLTYPE=CMD +SWITCHCHAR=/ MAKETYPE=nmake diff --git a/src/ChangeLog b/src/ChangeLog index 5566b623cec..45df517eff5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-11-23 Eli Zaretskii + + * 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 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958). diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 5d0c6e72146..a296f6eb393 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -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 > $@