Boost logo

Boost-Build :

Subject: Re: [Boost-build] Implementing a complex Makefile process in Jam/Boost.Build
From: Vladimir Prus (ghost_at_[hidden])
Date: 2009-04-01 02:42:50


On Saturday 28 March 2009 03:49:12 Scott Long wrote:
> I guess I should make my question more specific.
>
> I understand (in concept) how to use rules to produce some of these
> build steps. The problem is that there is more than one type of ".c"
> file -- a stub input module (real code), and an intermediate module
> (array of bytes of compiled code).
>
> I don't understand how to use rules to make these two phases
> different, because both of them end in ".c"

Yes, this might require some additional work. The last product that requires
special handling is stubN.bin.c -- once you get this, everything else
can be handled by:

        lib stub : ... : <link>static ;

stubN.bin.c is produced from some other target using a tool that you build
yourself. Such usage of custom-built tools is a popular question that is
not addressed in the manual. I've just added a code example for that, see:

        https://svn.boost.org/trac/boost/browser/trunk/tools/build/v2/example/built_tool

In your case, you would have to explicitly define a 'make' metatarget named

        stubN.bin.c

Now, you also need to produce stubN.bin. I think it's easiest to just use another
'make' metatarget to run objcopy. To produce stubN, you probably need this:

   path-constant LDSCRIPT : ldscript ;
   exe stubN : stubN.c util.c : <linkflags>-Wl,-T$(LDSCRIPT) .... ;

.... should be probably replaced by some gcc options that tell it
not to link to standard libraries -- I guess -nostdlib should work.

Let me know if this helps.

- Volodya

        


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk