Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: make fixes/patches availability 3.81?
Newsgroups: gmane.comp.gnu.make.windows
Date: Saturday 12th May 2007 07:46:46 UTC (over 10 years ago)
> Date: Fri, 11 May 2007 13:11:24 -0700 (PDT)
> From: Mark Txx 
> 
> Yes this was on Cygwin but may be a general WIN32 problem.
>   see:
> https://chess.eecs.berkeley.edu/bugzilla/show_bug.cgi?id=55
> http://www.cygwin.com/ml/cygwin-announce/2006-07/msg00008.html
>   I downloaded this working version binary
> http://www.cmake.org/files/cygwin/make.exe

So your problem was with drive letters in file names.

In that case, here's the relevant source patch:

2006-08-18  Eli Zaretskii  

	* configure.in (PATH_SEPARATOR_CHAR): Define to the value of
	$PATH_SEPARATOR.

	* make.h (PATH_SEPARATOR_CHAR): Define only if still undefined.
	Normally, it is defined in config.h.

	* config/dospaths.m4 : Define to yes on Cygwin as
	well.

	* job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Define
	sh_chars_sh for Windows platforms that emulate Unix.


--- configure.in~0	2006-04-01 12:36:40.000000000 +0300
+++ configure.in	2006-08-18 21:12:32.828125000 +0300
@@ -384,6 +384,8 @@
     ;;
 esac
 
+AC_DEFINE_UNQUOTED(PATH_SEPARATOR_CHAR,'$PATH_SEPARATOR',[Define to the
character that separates directories in PATH.])
+
 # Include the Maintainer's Makefile section, if it's here.
 
 MAINT_MAKEFILE=/dev/null

--- make.h~0	2006-02-16 03:54:43.000000000 +0200
+++ make.h	2006-08-18 21:12:32.859375000 +0300
@@ -347,12 +347,14 @@
 #define S_(msg1,msg2,num)   ngettext (msg1,msg2,num)
 
 /* Handle other OSs.  */
-#if defined(HAVE_DOS_PATHS)
-# define PATH_SEPARATOR_CHAR ';'
-#elif defined(VMS)
-# define PATH_SEPARATOR_CHAR ','
-#else
-# define PATH_SEPARATOR_CHAR ':'
+#ifndef PATH_SEPARATOR_CHAR
+# if defined(HAVE_DOS_PATHS)
+#  define PATH_SEPARATOR_CHAR ';'
+# elif defined(VMS)
+#  define PATH_SEPARATOR_CHAR ','
+# else
+#  define PATH_SEPARATOR_CHAR ':'
+# endif
 #endif
 
 /* This is needed for getcwd() and chdir().  */

--- config/dospaths.m4~0	2006-03-10 06:20:45.000000000 +0200
+++ config/dospaths.m4	2006-08-18 21:12:32.859375000 +0300
@@ -22,7 +22,7 @@
     AC_CACHE_CHECK([whether system uses MSDOS-style paths],
[ac_cv_dos_paths],
       [
         AC_COMPILE_IFELSE([
-#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ &&
!defined __EMX__ && !defined __MSYS__
+#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ &&
!defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__
 neither MSDOS nor Windows nor OS2
 #endif
 ],

--- job.c~0	2006-03-20 07:03:04.000000000 +0200
+++ job.c	2006-08-19 09:25:07.687500000 +0300
@@ -2307,6 +2307,12 @@ construct_command_argv_internal (char *l
                              "login", "logout", "read", "readonly", "set",
                              "shift", "switch", "test", "times", "trap",
                              "umask", "wait", "while", 0 };
+# ifdef HAVE_DOS_PATHS
+  /* This is required if the MSYS/Cygwin ports (which do not define
+     WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses
+     sh_chars_sh[] directly (see below).  */
+  static char *sh_chars_sh = sh_chars;
+# endif	 /* HAVE_DOS_PATHS */
 #endif
   register int i;
   register char *p;
 
CD: 3ms