On Mon, Aug 12, 2013 at 11:16:19AM +0100, Russel Winder wrote: > On Sun, 2013-08-11 at 15:41 -0700, H. S. Teoh wrote: > > On Sun, Aug 11, 2013 at 09:26:11AM +0100, Russel Winder wrote: > > > On Sat, 2013-08-10 at 14:27 -0400, Nick Sabalausky wrote: > > > […] > > > > is discovering and dealing with all the fun little differences > > > > between the posix and win32 makefiles (and now we have some > > > > win64 makefiles as well). > > > […] > > > > > > Isn't this sort of problem solved by using SCons, Waf or (if you > > > really have to) CMake? > > [...] > > > > +1. But people around here seems to have a beef against anything > > that isn't make. *shrug* > > Make was a revolution and a revelation in 1977, it changed my life. > However, it is sad to see projects such as Rust, Julia and D clinging > to a 35 year old build concept when it has been proved time and time > again that external DSL frameworks for build do not work for > cross-platform working. Only internal DSL build frameworks have > succeeded in that arena, cf. Gradle, SBT, SCons, Waf,…
+1. If I were the one making the decisions, I'd go for SCons. Or tup (http://gittup.org/tup/), but tup seems to be currently posix-specific, so SCons still wins if you want cross-platform building. > The only part of this thread that has any up side at all is to ditch > all build frameworks and write the build in D over the bootstrap D > that will be essential for the D build since D is written in D. It's a > pity Rust hasn't twigged to this. I think the D build tool should extend / be built on top of rdmd to be able to handle non-D sources. Once we have that, we basically already have a working build system. > I note that the Go tooling is written is C and Go, they ditched make > when they realized their vision for packaging – which works very well > indeed, particularly pulling in source packages from GitHub, BitBucket > and Launchpad, compiling and installing the compiled package into the > appropriate place for use. I ditched make about a decade ago, and I would never go back if I had the choice. Sadly, most of the rest of the world still seems stuck in that quagmirem, unable to move on. > On the other hand, I bet a cross-platform SCons build of D could be in > place and production within days as opposed to the > <substitute-your-favourite-long-time> that a D rewrite in D will take. > It doesn't matter than the SCons build may be thrown away down the > line, it solves a problem now for not that much effort. What do you say? Let's throw together an SConstruct for DMD, druntime, and phobos, and submit a pull for it? The only downside is that I can predict people will start complaining about the Python dependency. (Which is why I proposed writing a build system in D -- it will be superior to make (anything would be!), and people will have no excuse about what language it's written in.) > Still if the core D community are clinging to "build == make", then > they will have to suffer the irritant of having to have a separate > build system for each and every platform. That's they way Make is. [...] I used to evangelize SCons to everybody I meet... but after people adamantly refused to abandon their precious outdated crappy makefiles, I gave up. If they wish to continue suffering, it's not really my business to stop them. T -- WINDOWS = Will Install Needless Data On Whole System -- CompuMan
