Build a D project is now easy

Leandro Lucarella luca at llucax.com.ar
Mon Nov 22 21:14:19 PST 2010


Russel Winder, el 22 de noviembre a las 19:10 me escribiste:
> On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote:
> > Russel Winder wrote:
> > 
> > > but it has come to the end of its useful life
> > 
> > why. I ask because I just realized, that llvm still uses it.
> 
> For really small systems compiled on a single platform, Make can still
> "cut it".  But being an external DSL, the separation of relationship
> specification notation and action notation, and especially the platform
> specific action notation lead to insurmountable problems.  Go is trying
> to persevere with Make but the cracks show readily.  Also Make shows the
> cracks for large projects, it doesn't really scale.

False.

> Autotools was a brave attempt to make Make make big projects for
> Posix-compliant platforms.  CMake is a bold attempt to ensure Make

Automake is one of the biggest mistakes *ever*.

> handles things in a more platform independent way.  Autotools is, I
> think also reaching the end of its useful life -- it was an immense bit
> of m4 hackery, and deserves respect, just as Make does.

There is no point of comparison between Make and Autotools, Autotools is
a huge hack. Make is limited in scope, but it does what it's supposed to
do extremely well.

> The alternative to all this is to use an internal DSL, i.e. use a
> programming language directly.  SCons and Waf plough this furrow -- to
> name but the main two in a C, C++, D, LaTeX context.  SCons and Waf both
> suffer some serious issues, but they are the current market leaders for
> a more modern system.

I tried quite a few build systems for a big project (cmake, waf, aap,
scons, omake) and all had their own issues and specially limitations.
Eventually I decided to learn Make seriously, wrote a good Makefile and
never looked back...

Make can be very hard to learn, specially because people tend to use it
wrongly and there are very few good examples and tutorials/docs.

PS: I'm really talking about GMake :)

-- 
Leandro Lucarella (AKA luca)                     http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------
- Los romanos no tenían paz, loco... Necesitaban un poco de chala...


More information about the Digitalmars-d-announce mailing list