>> The scenario is the following:
>>
>> lib A, is build as a dll or static library.
>> lib B is build only as a static library. B uses A.
>> exe C uses B and A.
>>
>> In unix, i had no problems. But in windows ...
>>
>> In windows I have
>> - two versions of A
>> - A.dll (shared) A.lib(importlib)
>> - AS.lib (static)
>> - two versions of B, both static:
>> - B.lib uses A.lib, and consecuently A.dll. B.lib referes A symbols
>> with __declspec(dllimport)
>> - BS.lib uses AS.lib. BS.lib doesn't use __declspec(dllimport)
>> - two versions of C
>> - C.exe uses B.lib and A.lib ( and A.dll )
>> - CS.exe uses BS.lib and AS.lib
>>
>> How can I express this in Jamfiles?
>>
> You should be able to write this out basically
> as is (warning untested):
> lib A : $(A-sources) :
> <link>shared <define>A_DYN_LINK : : # requirements
> <define>A_DYN_LINK ; # usage requirements
> lib AS : $(A-sources) : <link>static ;
> lib B : $(B-sources) A : <link>static ;
> lib BS : $(B-sources) AS : <link>static ;
> exe C : A B ;
> exe CS : AS BS ;