[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make 3.81rc1 / MSYS
From: |
Eli Zaretskii |
Subject: |
Re: make 3.81rc1 / MSYS |
Date: |
Fri, 03 Mar 2006 19:38:21 +0200 |
> From: David Ergo <address@hidden>
> Date: Tue, 28 Feb 2006 13:08:10 +0100
> Cc: Xavier Marichal <address@hidden>,
> =?ISO-8859-1?Q?S=E9bastien?= Frippiat <address@hidden>
> 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