Boost logo

Boost-Build :

Subject: Re: [Boost-build] Compile boost libs each one with different version number
From: Christina Larocca (christina.larocca_at_[hidden])
Date: 2010-05-26 04:06:26


FYI, I tried with and without --v2

2010/5/26 Christina Larocca <christina.larocca_at_[hidden]>

> Hello again:
>
> This is the whole function:
>
>
> # This rule is called by Boost.Build to determine the name of target. We
> use it
> # to encode the build variant, compiler name and boost version in the
> target
> # name.
> #
> rule tag ( name : type ? : property-set )
> {
> if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
> {
> if $(layout) = versioned
>
> {
> local result = [ common.format-name
> <base> <toolset> <threading> <runtime>
> -$(BOOST_VERSION_TAG)
>
> -$(BUILD_ID)
> : $(name) : $(type) : $(property-set) ] ;
>
> # Optionally add version suffix. On NT, library with version
> suffix
> # will not be recognized by linkers. On CYGWIN, we get strage
> # duplicate symbol errors when library is generated with
> version
> # suffix. On OSX, version suffix is not needed -- the linker
> expects
> # the libFoo.1.2.3.dylib format. AIX linkers do not accept
> version
> # suffixes either. Pgi compilers can not accept library with
> version
> # suffix.
> if $(type) = SHARED_LIB &&
> ( ! ( [ $(property-set).get <target-os> ] in windows cygwin
> darwin aix ) &&
> ! ( [ $(property-set).get <toolset> ] in pgi ) )
> {
> result = $(result).$(BOOST_VERSION) ;
> }
>
> return $(result) ;
> }
> else
>
> {
> ECHO name: $(name) type: $(type) layout: $(layout) ;
> if $(name) = boost_math_c99
> {
> local result = [ common.format-name
> <base> -$(BUILD_ID)
> <base> -$(BUILD_ID)
> <base> -$(BUILD_ID)
> : $(name) : $(type) : $(property-set) ] ;
> }
> else
> {
> local result = [ common.format-name
> <base> -$(BUILD_ID)
> <base> -$(BUILD_ID))
> : $(name) : $(type) : $(property-set) ] ;
> }
> # Optionally add version suffix. On NT, library with version
> suffix
> # will not be recognized by linkers. On CYGWIN, we get strage
> # duplicate symbol errors when library is generated with
> version
> # suffix. On OSX, version suffix is not needed -- the linker
> expects
> # the libFoo.1.2.3.dylib format. AIX linkers do not accept
> version
> # suffixes either. Pgi compilers can not accept library with
> version
> # suffix.
> if $(type) = SHARED_LIB &&
> ( ! ( [ $(property-set).get <target-os> ] in windows cygwin
> darwin aix ) &&
> ! ( [ $(property-set).get <toolset> ] in pgi ) )
> {
> result = $(result).$(BOOST_VERSION) ;
> }
>
> return $(result) ;
> }
> }
> }
>
> With the ECHO command I get log lines as:
>
> user_at_comp:~/compilations/Boost/source2/boost_1_39_0) ./bjam --v2
> --layout=system
>
> Building C++ Boost.
>
> After the build, the headers will be located at
>
> /remote/mw/dsdeldev/compilations/Boost/source2/boost_1_39_0
>
> The libraries will be located at
>
> /remote/mw/dsdeldev/compilations/Boost/source2/boost_1_39_0/stage/lib
>
> Use 'bjam install --prefix=<path>' if you wish to install headers and
> libraries to a different location and remove the source tree.
>
>
> name: boost_date_time type: SHARED_LIB layout: system
> name: boost_system type: SHARED_LIB layout: system
> name: boost_filesystem type: SHARED_LIB layout: system
> warning: Graph library does not contain optional GraphML reader.
> note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the
> note: directories containing the Expat headers and libraries, respectively.
> name: boost_graph type: SHARED_LIB layout: system
> name: boost_iostreams type: SHARED_LIB layout: system
> name: boost_math_tr1 type: SHARED_LIB layout: system
> name: boost_math_tr1f type: SHARED_LIB layout: system
> name: boost_math_tr1l type: SHARED_LIB layout: system
> name: boost_math_c99 type: SHARED_LIB layout: system
> name: boost_math_c99f type: SHARED_LIB layout: system
> name: boost_math_c99l type: SHARED_LIB layout: system
> warning: skipping optional Message Passing Interface (MPI) library.
> note: to enable MPI support, add "using mpi ;" to user-config.jam.
> note: to suppress this message, pass "--without-mpi" to bjam.
> note: otherwise, you can safely ignore this message.
> name: boost_program_options type: SHARED_LIB layout: system
> name: boost_python type: SHARED_LIB layout: system
> warning: Building Boost.Regex with the optional Unicode/ICU support
> disabled.
> note: Please refer to the Boost.Regex documentation for more information
> note: this is a strictly optional feature.
> name: boost_regex type: SHARED_LIB layout: system
> name: boost_serialization type: SHARED_LIB layout: system
> name: boost_wserialization type: SHARED_LIB layout: system
> name: boost_signals type: SHARED_LIB layout: system
> name: boost_prg_exec_monitor type: SHARED_LIB layout: system
> name: boost_test_exec_monitor type: STATIC_LIB layout: system
> name: boost_unit_test_framework type: SHARED_LIB layout: system
> name: boost_thread type: SHARED_LIB layout: system
> name: boost_wave type: SHARED_LIB layout: system
> name: boost_date_time type: STATIC_LIB layout: system
> name: boost_system type: STATIC_LIB layout: system
> name: boost_filesystem type: STATIC_LIB layout: system
> name: boost_graph type: STATIC_LIB layout: system
> name: boost_iostreams type: STATIC_LIB layout: system
> name: boost_math_tr1 type: STATIC_LIB layout: system
> name: boost_math_tr1f type: STATIC_LIB layout: system
> name: boost_math_tr1l type: STATIC_LIB layout: system
> name: boost_math_c99 type: STATIC_LIB layout: system
> name: boost_math_c99f type: STATIC_LIB layout: system
> name: boost_math_c99l type: STATIC_LIB layout: system
> name: boost_program_options type: STATIC_LIB layout: system
> name: boost_python type: STATIC_LIB layout: system
> name: boost_regex type: STATIC_LIB layout: system
> name: boost_serialization type: STATIC_LIB layout: system
> name: boost_wserialization type: STATIC_LIB layout: system
> name: boost_signals type: STATIC_LIB layout: system
> name: boost_prg_exec_monitor type: STATIC_LIB layout: system
> name: boost_test_exec_monitor type: STATIC_LIB layout: system
> name: boost_unit_test_framework type: STATIC_LIB layout: system
> name: boost_thread type: STATIC_LIB layout: system
> name: boost_wave type: STATIC_LIB layout: system
> name: boost_date_time type: SHARED_LIB layout: system
> name: boost_system type: SHARED_LIB layout: system
> name: boost_filesystem type: SHARED_LIB layout: system
> name: boost_graph type: SHARED_LIB layout: system
> name: boost_iostreams type: SHARED_LIB layout: system
> name: boost_math_tr1 type: SHARED_LIB layout: system
> name: boost_math_tr1f type: SHARED_LIB layout: system
> name: boost_math_tr1l type: SHARED_LIB layout: system
> name: boost_math_c99 type: SHARED_LIB layout: system
> name: boost_math_c99f type: SHARED_LIB layout: system
> name: boost_math_c99l type: SHARED_LIB layout: system
> name: boost_program_options type: SHARED_LIB layout: system
> name: boost_python type: SHARED_LIB layout: system
> name: boost_regex type: SHARED_LIB layout: system
> name: boost_serialization type: SHARED_LIB layout: system
> name: boost_wserialization type: SHARED_LIB layout: system
> name: boost_signals type: SHARED_LIB layout: system
> name: boost_prg_exec_monitor type: SHARED_LIB layout: system
> name: boost_test_exec_monitor type: STATIC_LIB layout: system
> name: boost_unit_test_framework type: SHARED_LIB layout: system
> name: boost_thread type: SHARED_LIB layout: system
> name: boost_wave type: SHARED_LIB layout: system
> ...patience...
> ...patience...
> ...patience...
> ...found 5977 targets...
> ...updating 930 targets...
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/cbrtf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/copysignf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/erfcf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/erff.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/expm1f.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/fmaxf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/fminf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/fpclassifyf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/hypotf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/lgammaf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/llroundf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/log1pf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/lroundf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/nextafterf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/nexttowardf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/roundf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/tgammaf.o
> gcc.compile.c++
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/truncf.o
> gcc.link.dll
> bin.v2/libs/math/build/gcc-3.4.2/release/threading-multi/libboost_math_c99f.so
> common.copy stage/lib/libboost_math_c99f.so
>
> I hope this helps
>
> Regards
> Christina.
>
> 2010/5/25 Steven Watanabe <watanabesj_at_[hidden]>
>
>> AMDG
>>
>>
>> Christina Larocca wrote:
>>
>>> Hello, sorry for the double else, it was only a copy error.
>>>
>>> I've tried with:
>>>
>>> if $(name) = boost_math_c99
>>>
>>>
>>
>> This ought to work.
>>
>>
>> if <name>boost_math_c99
>>>
>>>
>>
>> This test should always be true. It is
>> parsed as
>>
>>
>> if "<name>boost_math_c99"
>>
>> and tests whether "<name>boost_math_c99" is
>> non-empty.
>>
>>
>> if $(base) = boost_math_c99
>>>
>>>
>>
>> base is not a variable that's in scope.
>>
>>
>> if <name>boost_math_c99
>>>
>>>
>>
>> This test should always succeed.
>>
>>
>> but nothing works. The if blocks are skipped.
>>>
>>>
>>
>> Try adding
>>
>> ECHO name: $(name) type: $(type) layout: $(layout) ;
>>
>> at the top of the tag rule.
>>
>> Also, can you post the whole function? The
>> layout=system block doesn't appear to get
>> executed at all.
>>
>>
>> In Christ,
>> Steven Watanabe
>>
>> _______________________________________________
>> Unsubscribe & other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost-build
>>
>
>



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