On Wednesday, 15 June 2016 at 15:39:47 UTC, Andrei Alexandrescu wrote:
On 06/15/2016 08:05 AM, John Colvin wrote:
On Wednesday, 15 June 2016 at 11:47:00 UTC, Walter Bright wrote:
On 6/15/2016 4:07 AM, Edwin van Leeuwen wrote:
How about using reggae?

https://github.com/atilaneves/phobos/blob/reggae/reggaefile.d

I haven't studied either.

If you do study that reggae file, remember that it's a deliberate transliteration of the makefile and therefore is a lot more verbose than it *could* be if done from a clean slate or as a proper translation. IIRC it was done to show that reggae could do literally everything the
makefile does, in the same way.

Does it do -j? -- Andrei

Short answer: yes.

Long answer: it has multiple backends. I assume the one that'd be used for dmd/druntime/phobos would be the binary (compiled D code) one since that one doesn't have dependencies on anything else. It does what ninja does, which is to use the number of cores on the system. There are also the ninja, make and tup backends and those do what they do.

I've been meaning to update my reggae branch for a while but haven't been able to gather enough motivation. The part that just builds the library is easy (I haven't tried compiling the code below):

alias cObjs = objectFiles!(Sources!("etc/c/zlib"),
                           Flags("-m64 -fPIC -O3"));
alias dObjs = objectFiles!(Sources!(["std", "etc"]),
Flags("-conf= -m64 -w -dip25 -O -release"),
                           ImportPaths("../druntime/import"));
auto static_phobos = link("$project/generated/linux/release/64/libphobos",
                          cObjs ~ dObjs,
                          "-lib");

The problem is all the other targets, and I can't break any of them, and they're all annoying in their own special way. The auto-tester only covers a fraction and I have no idea if all of them are still being used by anyone. Does anyone do MinGW builds with posix.mak for instance? I'm half convinced it's broken.

Atila

Reply via email to