It worked!!
Thanks.

2012/9/12 Steven Watanabe <watanabesj@gmail.com>
AMDG

On 09/12/2012 05:59 AM, Juan Carlos Franzoy wrote:
>
> This solution would duplicate all the targets which depends on A or B.
> Is there any way of including conditionally some sources (A or AS, B or BS
> for instance) in a target? or any other way to reduce verbosity?
> Is there any way of doing defining only one target for library A?
>

# Mangle the library and executable names
rule tag ( name : type ? : property-set )
{
  if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB EXE &&
    [ $(property-set).get <link> ] == static &&
    ! [ $(property-set).get <shared-a> ]
  {
    return $(name)S ;
  }
}
project : requirements <tag>@tag ;

# library A
lib A : ... : <link>shared:<define>A_DYN_LINK : :
  <link>shared:<define>A_DYN_LINK ;

# Force a separate subdirectory for B
feature.feature shared-a : on : optional ;

# Targets for B and BS
lib B.lib : ... A/<link>shared : <link>static <shared-a>on ;
lib B.lib-s : ... A/<link>static : <link>static ;
# Target alternative to select the correct version of B
alias B : B.lib : <link>shared ;
alias B : B.lib-s : <link>static ;

exe C : B ;

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build



--
  Juan Carlos Franzoy
Licenciado en Sistemas