gnustep-dev
[Top][All Lists]
Advanced

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

Re: Heads up: CMake build system for libobjc


From: Richard Frith-Macdonald
Subject: Re: Heads up: CMake build system for libobjc
Date: Thu, 13 Dec 2012 16:10:57 +0000

On 13 Dec 2012, at 14:40, David Chisnall wrote:

> On 13 Dec 2012, at 14:22, Ivan Vučica wrote:
> 
>> If my vote counts (and it doesn't have to, and this isn't a democracy, et 
>> cetera, et cetera), I'd say "Makefiles are still the most portable thing 
>> around". At least a basic Makefile that doesn't require cmake would be 
>> awesome. 
> 
> Unfortunately, that isn't true.  One of the current build systems is a 
> portable Makefile, however it restricts itself to the portable stuff in Make 
> (and therefore works with BSD and GNU make, and at least used to work with 
> Solaris Make, although I've not tested it for a while), and so can't use 
> inclusions or conditionals.  
> 
> Because it can't use conditionals, it can't optionally provide flags that are 
> required on some platforms and not others.  It is also restricted to only 
> being able to build the runtime in a single configuration.  It is also slow 
> and takes about twice as long to compile as the Makefiles generated from 
> CMake (for this project, ninja is about the same speed as make, because it 
> doesn't have any recursive make invocations, but it does maintain a more 
> accurate dependency graph, so I still prefer it).

gnu-make ... is more portable than cmake (and is installed as standard in many 
more places, and *all* GNUstep systems), and has none of the limitations listed 
for posix make ... so simply using gnu-make would be a good solution.

As far as performance is concerned ... of course cmake is bound to be slower 
than make (since cmake builds make files and then executes them, it can't 
possibly be as fast), but that's not relevant for a small project like libobjc2 
... almost any build system would be fast enough on any modern machine.


reply via email to

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