Fix an issue with PATH_SEPARATOR_CHAR when cross-compiling for Windows.
authorPaul Smith <psmith@gnu.org>
Mon, 16 Jan 2012 21:29:44 +0000 (21:29 +0000)
committerPaul Smith <psmith@gnu.org>
Mon, 16 Jan 2012 21:29:44 +0000 (21:29 +0000)
Fixes Savannah bug #34818.

ChangeLog
make.h

index f58922e..6fdc292 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-01-16  Paul Smith  <psmith@gnu.org>
+
+       * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling
+       for Windows.  Patch by Chris Sutcliffe <ir0nh34d@gmail.com>
+       Fixes Savannah bug #34818.
+
 2012-01-15  Paul Smith  <psmith@gnu.org>
 
        * variable.h: Prototype an interface for defining new make functions.
diff --git a/make.h b/make.h
index 8caf14a..b6956f7 100644 (file)
--- a/make.h
+++ b/make.h
@@ -315,11 +315,15 @@ char *strsignal (int signum);
 #define N_(msgid)           gettext_noop (msgid)
 #define S_(msg1,msg2,num)   ngettext (msg1,msg2,num)
 
-/* Handle other OSs.  */
-#ifndef PATH_SEPARATOR_CHAR
-# if defined(HAVE_DOS_PATHS)
-#  define PATH_SEPARATOR_CHAR ';'
-# elif defined(VMS)
+/* Handle other OSs.
+   To overcome an issue parsing paths in a DOS/Windows environment when
+   built in a unix based environment, override the PATH_SEPARATOR_CHAR
+   definition unless being built for Cygwin. */
+#if defined(HAVE_DOS_PATHS) && !defined(__CYGWIN__)
+# undef PATH_SEPARATOR_CHAR
+# define PATH_SEPARATOR_CHAR ';'
+#elif !defined(PATH_SEPARATOR_CHAR)
+# if defined (VMS)
 #  define PATH_SEPARATOR_CHAR ','
 # else
 #  define PATH_SEPARATOR_CHAR ':'