Boost logo

Boost-Build :

From: Rene Rivera (grafik666_at_[hidden])
Date: 2003-07-14 11:06:22


[2003-07-14] Paul Schmidt wrote:

>--- In jamboost_at_[hidden], Rene Rivera <grafik666_at_r...> wrote:
>> The ones you are using are global variables, hence they only have
>one value.
>
>:
>
>> To fix... you need to set those variables "on" the target so that
>they get a
>> specific different value for each target built with the corresponding
>> toolset.
>
>Ahhhh. So what's happening is *all* of the toolsets are loaded up
>front, and the variations in the build process are dependent on the
>TOOLS= argument on the command line.

Hmm, not really, it's a question of when the variables you set are used. In
a way everything is loaded up front ;-) -- But the toolsets are loaded for
each top level target declared. The actions, which have the variables you
are setting, are used during the make stage which executes all the commands
in the actions and happens after all loading is done. Setting the variables
on the targets (Jam syntax: AS on some_target = asm_1 ;) scopes the variable
value to have that value only when that target executes its' build actions.
The "flags" rule takes care of doing that assignment for you.

>Thanks very much, but this leads to another problem. For the
>Playstation 2, there are actually *2* processors in the box (EE and
>IOP), and although the instruction sets are (more or less) the same,
>include paths and libraries are different between the two. Aside: The
>binary file extensions are different, too: .ELF for the EE, and .IRX
>for the IOP.
>
>So some binaries need to be built for the EE, and some for the IOP. It
>seems that creating a new toolset for the IOP side might not be the
>right approach, because then e.g. a top-level
> bjam -sTOOLS="snps2ee snps2iop"
>
>will build both binaries for all subprojects, and that's not what we
>want.
>
>What would be the right approach to for this?

I'd say use the <architecture> and <instruction-set> features which you can
specify on a per top level target basis. Look at the how the gcc-tools.jam
does it to support building for supporting the various CPUs that gcc
supports.

-- grafik - Don't Assume Anything
-- rrivera (at) acm.org - grafik (at) redshift-software.com
-- 102708583 (at) icq

 


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