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...

Attachment: signature.asc
Description: PGP signature

Reply via email to