make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUmake compared with Watcom make


From: Johan Bezem
Subject: Re: GNUmake compared with Watcom make
Date: Tue, 21 Jan 2003 09:29:58 +0100

Hi,

I don't use Watcom, but I'm using GNUmake on Win32 (Cygwin) and Solaris (AIX
and HP-UX less frequently); my findings regarding the timings have been that
the makefile structure has a rather high influence on run-time performance
of null-builds; especially using superfluous shells to start commands that
don't need it, or spawning make itself in an explicit extra shell is
prohibitively expensive.
Using the same source codebase, I achieved a 90% reduction of null-build
performance by doing a full redesign of the makefile structure, *but* I
achieved that performance increase not just on W2K but also (approx. same
amount) on Solaris.

So, if wmake has a very efficient W32 spawn you might see such differences.
Further comments inline.

Michael Mounteney wrote:
> 
> I tried some comparisons between Win-32 ports of GNUmake and Watcom's wmake
> programme.
> 
> The impetus for the comparison was my wish to simplify a multi-platform build
> system which uses GNUmake on Mandrake GNU/Linux for some jobs, and wmake on
> Win-32 (either '98 or 2000) for Windows-target compilations.  Since the
> makefile syntaxes are incompatible (thanks Watcom for fixing a lot of things
> that weren't actually broken), the system requires several included
> (`!include' on wmake) sub-makefiles and I wanted to eliminate these.
> 
> I was puzzled to observe that GNUmake is /much/ /much/ slower than GNUmake on
> null builds (timestamp checks on an already up-to-date system).  Here are
> some figures.  The crumby system is due to my recent emigration and the
> majority of my kit being still in customs.

GNUmake vs. GNUmake. I suppose you intended to say 'wmake', or not?

> 
> (1) Pentium 120 laptop running Windows 98 with a 10 Mb connection to a SPArc
> Classic running Solaris 9 and Samba 2.2.2.  Build hosted entirely on the
> server:
> Wmake:  50.08 seconds ; GNUmake 21 minutes, 58.72 seconds.

I try to avoid building over a network, and objects files are *always*
generated locally. I simply takes too long.
I have to assume that the makefile complexity is identical, otherwise these
numbers mean nothing.
Go hunting for superflous spawn's and shell's, GNUmake can be very
unforgiving ;-)

> 
> (2) Pentium III 650 laptop running Windows 2000 SP3 with the build hosted
> locally:
> Wmake 4.01 seconds ; GNUmake 16.66 seconds.
> 
> Although I didn't time it, a null build on the Pentium III laptop, with a NFS
> 3 connection on 100 Mb to the SPArc server, this time running Mandrake Linux
> 8.1 with its stock make, runs in a couple of seconds.

Isn't that also GNUmake? Do a 'make --version'...

> 
> So the weak link appears to be gmake *on Win-32*.
> 
> Possibly the reason is the crap MS compiler.   I did try to build gmake from
> source using the Watcom compiler, but it choked, so I assume that all build of
> GNUmake on Win-32 have been done with MS C++ or VC++.  Any comments ?  has
> anyone heard of any success in building gmake with Watcom ?  I googled but
> couldn't find anything.

Not necessarily, but the GNUmake source code tends to use unix constructs
that can only be "translated" into something similar under W32. This tends
to be slow. I suggest checking out 'Cygwin' (http://www.cygwin.com), a
POSIX-layer for use on W32, that comes with it's own (ported) set of tools,
including a 'make' 3.79.1 natively compiled by the GNU c compiler. Works
perfectly for me!

HTH,

Johan Bezem
CSK Software AG




reply via email to

[Prev in Thread] Current Thread [Next in Thread]