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

H. S. Teoh hsteoh at quickfur.ath.cx
Mon Aug 12 15:48:54 PDT 2013


On Mon, Aug 12, 2013 at 11:34:42AM -0700, Walter Bright wrote:
> On 8/12/2013 11:13 AM, Andrei Alexandrescu wrote:
> >I'm hanging a general comment here for a lack of a better place.
> >
> >We're far from being enamored to make and we have no vested interest
> >in keeping it. At the same time its place in the dmd foodchain is
> >relatively modest (i.e.  it's not a big hindrance to most developers)
> >and replacing it with even the perfect tool is unlikely to make our
> >lives significantly better. Worse, there seems to be no obvious
> >replacement for make - each seems to comes with its own issues as you
> >exemplify above for SCons - which further undermines motivation.
> >
> >Yes, there is duplication across posix.mak and winxx.mak. Inside
> >winxx.mak there is yet another level of annoying duplication. But we
> >don't work on those files frequently enough for all that to be a
> >large problem. That being said, yes, I wish that all got improved.
> >But the margins involved are small enough to make it difficult for
> >the solution to become worse than the problem.
> 
> Exactly. There's a matter of proportion. We don't need to use a cannon
> (and all the support a cannon needs) to kill a cockroach.

But you're missing the bigger picture. What I envision is that this D
build tool will go beyond merely building DMD/druntime/Phobos. If it's
successful, it can become the *standard* D build tool for all D
programs. Having a standard D build tool will go a long way in making D
programs portable and easy to install, besides freeing us from a
dependency on make.


> For example: building in a Python dependency just so a user can
> compile dmd? This is seriously out of place, besides a giant WTF
> telling anyone who wants to install dmd on Windows that he has to go
> find Python and install that, too?

Which is why I proposed writing the build system in D. Ideally, build
scripts would themselves be D programs... dogfooding ftw. :)

Objectively speaking, though, this is no different from being required
to install make in order to compile dmd. You still have to go out of the
way to install a 3rd party program before you can build dmd. The only
difference is that make tends to be preinstalled in more systems than
python (though nowadays most Linux distros come with python by default,
so this factor is becoming much less out of place than you're
suggesting).


T

-- 
Curiosity kills the cat. Moral: don't be the cat.


More information about the Digitalmars-d mailing list