> From: David Ergo <[EMAIL PROTECTED]>
> Date: Tue, 28 Feb 2006 13:08:10 +0100
> Cc: Xavier Marichal <[EMAIL PROTECTED]>,
>       =?ISO-8859-1?Q?S=E9bastien?= Frippiat <[EMAIL PROTECTED]>
> I managed to compile a working version of make 3.81rc1 for MSYS but I
> had do some modifications.
> 
> first config/config.guess and config/config.sub must be simply patched
> to support MSYS build system (see config_msys.patch in attachment).
> 
> sources must be patched (bugs correction) like specified hereunder (also
> in sources_msys.patch in attachment) :

Thank you for your report.  However:

> file job.c, at line 2525 :
>   && strchr (sh_chars_sh, p[1]) == 0)
> should be :
>   && strchr (sh_chars, p[1]) == 0)
> 
> file implicit.c, at line 355 :
>   if (!check_lastslash)
> should be :
>   if (check_lastslash)
> 
> file make.h, at line 350 : 
>   #if defined(HAVE_DOS_PATHS)
> should be :
>   #if defined(HAVE_DOS_PATHS) && !defined(__MSYS__)

Sorry, it seems I don't understand enough about MSYS-specific issues
to figure out these problems.  sh_chars[] does not exist in the
WINDOWS32 build; are you saying that you are building the Unix parts
of the code?  I always thought that MSYS builds are actually MinGW
builds, i.e. they use the Windows runtime DLL's, not Cygwin-style
Posix runtime libraries.  Am I mistaken?  If so, what is the
difference between a Cygwin build of Make and an MSYS build?

In any case, the first two of the 3 changes you suggest above cannot
be made as you asked for them, since that would break the other ports
of Make for DOS/Windows.  If I understand more about the reasons (see
my questions above), I hope to be able to craft a patch that fixes the
MSYS build without screwing others.

> And after executing 'configure', I had to modify config.h manually
> before executing make (easier for me than correcting the configure
> script) :
> 
> to support dos-style paths, changed :
>   /* #undef HAVE_DOS_PATHS */
> into
>   #define HAVE_DOS_PATHS 1

Again, I don't understand this: if configure says that MSYS doesn't
have DOS drive letters, why do you need to enable its support?

> and to use the internal realpath function as a workaround to the buggy
> msys realpath() function (otherwise the test 'functions/realpath' fails
> at line 19 about realpath of ///), changed :
>   #define HAVE_REALPATH 1
> into
>   /* #undef HAVE_REALPATH */

This should be handled by modifying the configure test for realpath.
Can you explain what is buggy in the MSYS implementation, so the
configure test could be augmented?

TIA


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to