[Cmake] Re: [Mingw-msys] Building cmake with MSYS and mingw

Earnie Boyd earnie_boyd at yahoo.com
Mon Feb 3 08:15:09 EST 2003


John Fletcher wrote:
> Hello
> 
> I am trying to build the package cmake ( see 
> http://www.cmake.org/HTML/Index.html ) using Mingw 2 and 
> MSYS.  The package uses ./configure and this fails.  This is 
> because it has a define for CYGWIN but not one for MSYS, and it 
> therefore thinks it is in a Linux environment, not a Win32 one.
> 
> Questions.
> 
> 1. Is there something defined specifically for the MSYS 
> environment and if so what is it?
> 
> 2. What is it that is different between MSYS and CYGWIN so that I 
> can change the cmake code to compile with MSYS?
> 
> I am sending this to both MSYS and Cmake lists.
> 

The default use of MSYS is to help porters execute configure which 
requires a POSIX/Bourne compatible environment.  However, at the moment, 
programs that read scripts such as perl, make, CMake, etc that are 
likely to read POSIX style paths need to be built for the MSYS runtime 
in order to function nicely.  To accomplish this there exists an 
msysDVLPR alpha package on the SF project files page for MinGW.  Install 
it into the top level MSYS directory, ``cd / && tar -zxf ...msysDVLPR...''.

Now your set up to be able to build a CMake that is dependent on the 
msys-1.0.dll runtime.  Execute ``msysdvlpr'' to switch your system 
identification and default PATH.  Uname will now return MSYS as the 
system instead of MINGW32 as the system.  This is done in a new command 
window that will open.  I never meant MSYS to be an official host, 
target or build system so I've never added it to the config.guess and 
config.sub files officially, so you'll need to modify config.guess and 
config.sub to add these.  Simply copy the cygwin entries and modify 
cygwin to msys.

Now comes the build, gcc will identify the system as __MSYS__.  So you 
can either add __MSYS__ whereever you find __CYGWIN__ or you can ``make 
CC="gcc -D__CYGWIN__"''.

Earnie.




More information about the CMake mailing list