[CMake] mingw vs MSYS makefiles

Kenneth Boyd zaimoni at zaimoni.com
Thu Feb 23 15:40:58 EST 2012


On 2/23/2012 1:46 PM, Bill Hoffman wrote:
>
> gmake behaves differently if /bin/sh is in the PATH.  The makefiles 
> for MinGW Makefiles are written for gmake running in the mode where it 
> does not have /bin/sh.   The makefiles for Msys Makefiles are written 
> so that they work with /bin/sh mode of gmake.   It all has to do with 
> which shell is running the commands from gmake.  In the MinGW case, it 
> is using a windows cmd.com shell, and in the Msys case it is using 
> /bin/sh.  They are of course very different.  There is no way to force 
> gmake to use a particular shell, it is all based on what is in the PATH.
Right.  Unfortunately, I have MingW installed from official tarballs, 
rather than the MSYS executable installer; the MSYS installer *.exe 
critically failed for me back in 2001, so once I got a working install 
procedure from official tarballs I stuck with it.

What is happening is that I have an official MingW /bin/sh in my path 
(which triggers MSYS), but the pathnames required by windows-side tools 
such as MingW32 gcc are still Windows-ish (MingW).

> About bug 7870, I am not sure that I understood that you were 
> proposing a new generator.  I thought the bug was more about getting 
> bootstrap to work.
Bootstrap failed at the time because there was no generator that 
worked.  The workaround indicated what was needed was a third generator 
(as MingW without bash in path is also a valid install method).
>    It does seem that there is an issue with allowing make.exe to work.
>   I think if you set CMAKE_MAKEPROGRAM to make.exe it should work.
Ok.
>  A patch that found different make.exe or make-mingw and then tested 
> them would not be rejected.   I still don't see how we can avoid 
> having separate generators for MinGW and Msys, and I certainly don't 
> think a third one would help reduce confusion.
I'm assuming that the Msys generator is intended for the results of the 
MSYS installer *.exe .  As such, I'd prefer to assume the current MSYS 
generator is known-good for that case.  My impression (please correct if 
inaccurate) is that it would be preferable to have the final patch 
augment the MSYS generator to discern which filepath convention is expected.

Further discussion looks like it belongs on the CMake-developers list.
> Also, I think someone might have fixed the bootstrap issues with Msys 
> at this point, but I am not sure... A lot has changed since 2008 when 
> that bug was created...
Right, will recheck that before proceeding.

Kenneth



More information about the CMake mailing list