Need help deciphering posix.mak

ketmar via Digitalmars-d digitalmars-d at puremagic.com
Thu Nov 27 13:30:49 PST 2014


On Thu, 27 Nov 2014 23:17:34 +0300
Dmitry Olshansky via Digitalmars-d <digitalmars-d at puremagic.com> 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...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20141127/879d8265/attachment.sig>


More information about the Digitalmars-d mailing list