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