Need help deciphering posix.mak
Martin Nowak via Digitalmars-d
digitalmars-d at puremagic.com
Mon Dec 1 05:59:46 PST 2014
On Thursday, 27 November 2014 at 20:17:55 UTC, Dmitry Olshansky
wrote:
> What I know(?) so far:
> 1. First we build library in one go - trivial to reproduce.
> 2. Then we compile each unittest with -c and -deps to dump
> actual dependencies.
Yes, we compile one object file per module because memory doesn't
suffice to build everything at once.
> 3. Then we run a bunch of sed/sort/uniq to extract module names
> from verbose output of compiler (red flag IMHO, but anyway).
> https://github.com/D-Programming-Language/phobos/blob/master/posix.mak#L325
Converting DMD deps output to makefile dependency rules, what's
the problem with that?
> 4. We promptly ignore these files afterwards...
No, they are included as dependencies.
https://github.com/D-Programming-Language/phobos/blob/a0de97d5ca42f4ac861f6c8f88ab75a7108c3f09/posix.mak#L275
> 5. We build a unittester from Druntime (pulling sources out of
> tree - omg) with ALL of object files:
> https://github.com/D-Programming-Language/phobos/blob/master/posix.mak#L334
That's the test runner, didn't make to copy the sources, because
Phobos already depends on druntime anyhow.
> 6. Run it passing a specific module to unittest:
> https://github.com/D-Programming-Language/phobos/blob/master/posix.mak#L355
Yep, this is so because all unit tests live in a shared library.
So we need a special test runner to run only a single module,
allowing us to still parallelize testing.
More information about the Digitalmars-d
mailing list