[CMake] Cygwin GNU make vs. Nmake for a .net VXL build

Bill Hoffman bill.hoffman at kitware.com
Wed Dec 6 14:17:40 EST 2006


Wheeler, Frederick W (GE, Research) wrote:
>
>> correctly.  Then you can use make -j3 to do the build.  Due to a bug
>> in the cygwin make, you have to use this patched one:
>> http://www.cmake.org/files/make.exe
>>     
>
> I just took a crack at this, not to be able to build in parallel (w/
> -j3), but to use GNU make instead of NMake from the cygwin command
> line so I can hit ctrl-C and get the build to actually stop.  My
> experience with NMake is that if I hit ctrl-C I get a prompt, but the
> build continues in the background.
>
>   
The Ctrl-C thing has more to do with the window you run cygwin from.  If 
you are running cygwin
in the default windows window, cntl-c should work.  If you run it in 
rxvt it does not work.

> I'm using Windows 2000, MSVC .net 2003, recent cygwin, but with Cygwin
> GNU make 3.80.  The most recent Cygwin supplied make (3.81) will not
> work with CMake generated makefiles.
>
>   
You can use the binary that I provided in my email and see if it is 
faster....
> It works great, except that I'm finding that a VXL build with Cygwin
> GNU make takes a lot longer than one with NMake.  With GNU make, my
> initial build from scratch takes 197 min and a 2nd make run that does
> nothing takes 15 min.  With NMake, the initial build from scratch
> takes 83 min, and the 2nd make run takes 4 min.  The actual commands I
> used are
> below.  I wiped the build dir before running cmake in each case.
>   
That is not far off from what I am seeing...

nmake on a built cmake tree:
real    0m3.984s
user    0m0.031s
sys     0m0.046s

gmake on a bult cmake tree
real    0m6.110s
user    0m4.643s
sys     0m3.033s


However, with -j I can improve things:
make -j5  on a built cmake tree
real    0m4.109s
user    0m4.752s
sys     0m3.622s

You might be able to use -j N with visual studio 2003, but you have to 
change the debug
flags to use the in file debug info, instead of the pde file stuff.

-Bill



More information about the CMake mailing list