Boost logo

Boost-Build :

From: Robert Ramey (Ramey_at_[hidden])
Date: 2004-12-21 15:10:00


I need some help with Jamfiles.

The Jamfile in my test directory has a main part that looks like:

if $(LIBTYPE) = dll {
echo "Testing serialization DLL" ;
}
else {
echo "Testing serialization static library" ;
}
# each of the following tests is run with each type of archive
rule run-invoke ( test-name : sources * : defn * )
{
Echo $(test-name) ;
# debug
local tests = [
run
$(sources)
<lib>../../test/build/boost_test_exec_monitor
<$(LIBTYPE)>../build/boost_serialization
: # args
: # input files
: # requirements
<stlport-iostream>on
<include>$(BOOST_ROOT)
<define>BOOST_ALL_NO_LIB=1
: # name
$(test-name)
: # default-build
debug
] ;
return $(tests) ;
}

My understanding was that the the requirements would be passed to the all
targets? described in #sources.

Specifically, I expected that <dll>../build/boost_serialization would be
built with the <define>BOOST_ALL_NO_LIB=1

It seems that my expectation was wrong. So my question is- how can I
"attach" a requirement to the <lib>.. and
<$(LIBTYPE)> targets?

I'm not sure that "target" is the right word here, but I hope you get the
idea.

Also if "<define>BOOST_ALL_NO_LIB=1" suppresses autolinking with tests, and
the library is built with common-variant-tag - how does the test program
link up to the correct library?

This is pretty opaque for me.

Robert Ramey

 


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