$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Rene Rivera (grafik.list_at_[hidden])
Date: 2005-01-22 14:20:47
Jody Hagins wrote:
> and so on.  As you can see, it ignores the --builddir command line
> option.  This is the source of my first confusion since the
> documentation indicates that bjam will "find" the Jamrules for the
> project (which it obviously does, or it would not know how to build
> everything, I imagine).
> 
> I get similar behavior in other subdirectories.  Since running in a
> subdir is probably common, I imagine I am missing something,...
Yes running in a subdir is common.. But placing the build results 
outside of the Boost tree is not common for developers. What the 
boost-root/Jamfile does is it translates all those autoconf like 
switches into variables and targets Boost.Build understands. In the case 
of "--builddir" it translates it to the global "ALL_LOCATE_TARGET". We 
know the docs are not good on this.. But here's the relevant info:
http://www.boost.org/tools/build/v1/build_system.htm#user_globals
So if you are in the test subdir you would:
bjam "-sTOOLS=gcc" "-sALL_LOCATE_TARGET=/home/jody/boost-build"
> In addition, I will need to do something "special" in the test, and I
> can ont find a good example in other test Jamfiles.  For my test, I need
> to create a shared library locally for testing, but I do not want it
> installed anywhere.  I simply need it for testing the dll code ability
> to open/close/find symbols.
No so special.. Boost.Config does just that also. Look at 
libs/config/test/link/Jamfile which declares the LIBs and DLLs. It's 
probably a good idea to have it as config has it in a subdirectory, as 
it lets you test just that build by itself. And in your 
library-root/libs/<library>/test/Jamfile you add references to those 
libraries. In the case of Boost.Config it's tests are directly in 
status/Jamfile:
     test-suite config
         : [ run libs/config/test/config_test.cpp
                 : #args
                 : #input-files
                 : #requirements
                 <threading>multi <no-warn>config_test.cpp
           ]
            [ run libs/config/test/config_info.cpp : : : 
<test-info>always_show_run_output ]
            [ run libs/config/test/abi/abi_test.cpp 
libs/config/test/abi/main.cpp ]
            [ run libs/config/test/limits_test.cpp 
<lib>../libs/test/build/boost_test_exec_monitor ]
            [ run libs/config/test/link/main.cpp 
<dll>../libs/config/test/link/link_test
                 : #args
                 : #input-files
                 : #requirements
                 <runtime-link>dynamic
                 <define>BOOST_DYN_LINK=1
                 <define>BOOST_CONFIG_NO_LIB=1
                 :
                 config_link_test
           ]
           [ compile-fail libs/config/test/threads/test_thread_fail1.cpp ]
           [ compile-fail libs/config/test/threads/test_thread_fail2.cpp ]
         ;
But you can do the same in you test/Jamfile. Above the reference to the 
DLL is "<dll>../libs/config/test/link/link_test", of course you would 
use different paths ;-)
-- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com - 102708583/icq