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

Nick Sabalausky SeeWebsiteToContactMe at semitwist.com
Sun Aug 11 00:23:53 PDT 2013


On Sat, 10 Aug 2013 22:48:14 -0700
Walter Bright <newshound2 at digitalmars.com> wrote:

> On 8/10/2013 4:21 PM, Jonathan M Davis wrote:
> > On Saturday, August 10, 2013 14:35:04 Nick Sabalausky wrote:
> >> Is this something that would be acceptable, or does building DMD
> >> for Windows need to stay as DM make?
> >
> > I don't see any problem with it, but that doesn't mean that Walter
> > won't.
> 
> Tools built for Unix never work right on Windows. It's why, for
> example, I run git on Linux and don't use the Windows badly ported
> versions of git. Tiresome problems revolve around failure to adapt to
> \ path separators, ; in PATH, CRLF line endings, Windows SEH, case
> insensitive file names, no symbolic links, etc., no Perl installed,
> etc.
> 

Fair point.

> 
> > Another suggestion that I kind of liked was to just build them all
> > with a single script written in D and ditch make entirely, which
> > would seriously reduce the amount of duplication across platforms.
> > But that's obviously a much bigger change and would likely be much
> > more controversial than simply using a more standard make.
> 
> I don't see much point in that. The dmd build is straightforward, and
> I see no particular gain from reinventing that wheel.
> 

The current state is fairly awful when trying to do cross-platform
automation of anything that involves building DMD. The make targets
are completely different, the available configuration options and
defaults are completely different, and the output locations are
completely different. Trying to deal with and accommodate the divergent
behaviors of posix.mak and win*.mak is a minefield that leads to
fragile, tangled code even with my best attempts to keep it clean. And
this isn't the first time I've automated building DMD, either.

And yea, all those differences can be addressed, but as long as we're
maintaining posix/win buildscripts separately - and in essentially two
separate languages (two flavors of make) - then divergence is only
going to reoccur.



More information about the Digitalmars-d mailing list