I couldn't get this to work:

alias vprocn : ../../import/tns-r/import/aaavproc/vprocn.o : <hptns-arch>tnsr ;

lib ioa :
    db.c
    vprocn
    ;

/usr/bin/bash -i -c "bjam hptnsr3d"
/cygdrive/c/mse/proj/boost-build/build/generators.jam:918: in ensure-type from module generators
error: target { ../../import/tns-r/import/aaavproc/vprocn.o. } has no type
/cygdrive/c/mse/proj/boost-build/build/generators.jam:1138: in generators.construct from module generators
/cygdrive/c/mse/proj/boost-build/build/targets.jam:1329: in construct from module object(typed-target)@161
/cygdrive/c/mse/proj/boost-build/build/targets.jam:1175: in object(typed-target)@161.generate from module object(typed-target)@161
/cygdrive/c/mse/proj/boost-build/build/targets.jam:764: in generate-really from module object(main-target)@202
/cygdrive/c/mse/proj/boost-build/build/targets.jam:737: in object(main-target)@202.generate from module object(main-target)@202
/cygdrive/c/mse/proj/boost-build/build/targets.jam:252: in object(project-target)@154.generate from module object(project-target)@154
/cygdrive/c/mse/proj/boost-build/build-system.jam:291: in load from module build-system
/cygdrive/c/mse/proj/boost-build/kernel/modules.jam:261: in import from module modules
/cygdrive/c/mse/proj/boost-build/kernel/bootstrap.jam:121: in boost-build from module
/cygdrive/c/mse/proj/boost-build/boost-build.jam:1: in module scope from module


Is bjam thrown by the fact that there is no local C or C++ source file present for vprocn.o?

I arrived at a solution to this by adding a feature and rule logic to my toolset that allows a given Jamfile in a fairly complex project tree to include property <hptns-prebuilt>vproc for a given exe or lib target.  (I don't want to have to cut and paste a bunch of conditional alias statements to every Jamfile for this.)  Based on a rule invoked in the Jamroot (hptns.register-prebuilt) that associates different vproc objects with different variants (variables = architecture, runtime-link), the toolset determines which specific vproc[x].o object to include in the link when it sees <hptns-prebuilt>vproc in the link properties. 

If there's a more straightforward way I could have solved this, it would be good to know.

Best regards,
Mark



Vladimir Prus <ghost@cs.msu.su> wrote:

Well, the features only matter for 'lib' rule. You can use this:

alias vprocn : import/tns-r/import/aaavproc/vprocn.o : tnsr ;
alias vprocn :