At 11:40 PM 8/16/2006, Christopher Faylor wrote: >I don't understand why isn't this just using the UNIX-ish settings for >Cygwin. The settings should, at the very least, be the same as the >UNIX-sh case.
Because there was a bug where sh_chars_sh was being directly referenced if HAVE_DOS_PATHS was on. I have a new patch. diff -p make381orig/make-3.81/config.h.in make-3.81/config.h.in *** make381orig/make-3.81/config.h.in Sat Apr 1 01:40:00 2006 --- make-3.81/config.h.in Wed Aug 16 16:31:10 2006 *************** *** 75,80 **** --- 75,84 ---- /* Use platform specific coding */ #undef HAVE_DOS_PATHS + #ifdef __CYGWIN__ + #define HAVE_DOS_PATHS 1 + #endif + /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 diff -p make381orig/make-3.81/job.c make-3.81/job.c *** make381orig/make-3.81/job.c Sun Mar 19 22:03:04 2006 --- make-3.81/job.c Thu Aug 17 10:06:24 2006 *************** construct_command_argv_internal (char *l *** 2521,2527 **** #endif if (p[1] != '\\' && p[1] != '\'' && !isspace ((unsigned char)p[1]) ! && strchr (sh_chars_sh, p[1]) == 0) /* back up one notch, to copy the backslash */ --p; #endif /* HAVE_DOS_PATHS */ --- 2521,2527 ---- #endif if (p[1] != '\\' && p[1] != '\'' && !isspace ((unsigned char)p[1]) ! && strchr (sh_chars, p[1]) == 0) /* back up one notch, to copy the backslash */ --p; #endif /* HAVE_DOS_PATHS */ diff -p make381orig/make-3.81/make.h make-3.81/make.h *** make381orig/make-3.81/make.h Wed Feb 15 18:54:43 2006 --- make-3.81/make.h Thu Aug 17 10:10:39 2006 *************** extern int strcmpi (const char *,const c *** 347,353 **** #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 ',' --- 347,353 ---- #define S_(msg1,msg2,num) ngettext (msg1,msg2,num) /* Handle other OSs. */ ! #if defined(HAVE_DOS_PATHS) && !defined(__CYGWIN__) # define PATH_SEPARATOR_CHAR ';' #elif defined(VMS) # define PATH_SEPARATOR_CHAR ',' I also searched the HAVE_DOS_PATHS and found the separator problem as well. Can someone help with the correct way in configure.in to change, the following in configure.in to set HAVE_DOS_PATHS to 1 when on cygwin? # If we're building on Windows/DOS/OS/2, add some support for DOS drive specs. if test "$PATH_SEPARATOR" = ';'; then AC_DEFINE(HAVE_DOS_PATHS, 1, [Define this if your system requires backslashes or drive specs in pathnames.]) fi For now I have an ifdef CYGWIN in the config.h.in, but that does not seem like the correct way to do this. Thanks. -Bill _______________________________________________ Make-w32 mailing list Make-w32@gnu.org http://lists.gnu.org/mailman/listinfo/make-w32