Have Win DMD use gmake instead of a separate DMMake makefile?

Dejan Lekic dejan.lekic at gmail.com
Tue Aug 13 00:35:47 PDT 2013


On Monday, 12 August 2013 at 16:29:36 UTC, H. S. Teoh wrote:
> 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

Thanks for the link! I found this excellent paper there: 
http://gittup.org/tup/build_system_rules_and_algorithms.pdf . :)


More information about the Digitalmars-d mailing list