On Thu, 27 Nov 2014 23:17:34 +0300 Dmitry Olshansky via Digitalmars-d <[email protected]> wrote:
> Okay, so I'm prepping up a SCons build of Phobos. It comes along rather > nicely, I've replicated most of posix.mak paraphernalia in ~150 LOC that > does work for both Windows and Linux, the rest of POSIX to follow shortly. > > Some make targets are trivial to translate (ddocs, zips etc.) but > unittest runner and SO/PIC build flags is an arcane mess. So I'm asking > if anybody know what's the heck it tries to do and can just tell me to > save the time on reverse-enginering. > > 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. > 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 > 4. We promptly ignore these files afterwards... > 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 > 6. Run it passing a specific module to unittest: > https://github.com/D-Programming-Language/phobos/blob/master/posix.mak#L355 > > I hope I got it right. And I'm not entirely sure where SO/DLL fits > (except for setting the PIC flag which is quite straight-forward). > > My hopes are that once I get over these obstacle and replicate whatever > we wanted here in the first, we could get down to 2 files for all of our > platform builds: > 1. SConstruct - setup environment, detect OS, fiddle with parameters and > in general defines "how" to build stuff (estimate: 160-180 LOCs) > 2. SConscript - a laconic file showing what to build, doing so in simple > cross platform, with plain *.d globs. (estimate: about 60-70 LOCs) > > That means in general that SConstruct is changed only for new > platform/compiler and SConscript only when source/targets structure > radically changes. > does this mean that 'make' will be eventually dropped? oh, noes...
signature.asc
Description: PGP signature
