Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2002-08-21 16:44:15


From: "bill_kempf" <williamkempf_at_[hidden]>

> > Me neither. Isn't that the same as what happens when you do a
> clean first?
> > BTW, are you explicitly requesting the "test" target? Tests don't
> run as a
> > result of building "all"
>
> Not precisely. It only cleans up files/directories that it creates
> and thinks should be cleaned. If any files are left over the
> directories aren't removed.

You're right. "clean" is failing to remove some of the testing residue
files. I just fixed that, I think.

> It would be nice to have a distclean
> that clobbered the directory no matter what.

Wouldn't it?

> Also, it appears the output files from "run" aren't cleaned. So bin
> isn't deleted any more in any event.

I think I took care of that.

> Further, and this is the one I often find frustrating, clean also
> invokes clean on dependent projects. So cleaning
> $BOOST/libs/thread/test will also clean $BOOST/libs/thread/build and
> $BOOST/libs/test/build. It would be nice to have a target that only
> cleaned the current project, leaving dependent targets alone.

Sure would!

> Now that I'm done with asking for further enhancements, let's get
> back to the subject ;).

Whew!

> > > Another thing I notice is that only one target (including it's 4
> > > variants) is being built, and is named test_base.test. It
> appears
> > > that this is the target based on test_thread.cpp. The other 5
> > > targets aren't built or run at all.
> >
> > Perhaps because they're up-to-date?
>
> bjam -sTOOLS=vc7 clean
> bjam -sTOOLS=vc7 test
>
> Produces the following tree:
>
> bin
> test_base.test
> debug
> runtime-link-dynamic
> threading-multi
> runtime-link-static
> threading-multi
> release
> runtime-link-dynamic
> threading-multi
> runtime-link-static
> threading-multi
>
> Since I specified only one target, "test", it makes sense that only
> one was built.

No it doesn't. "test" is an abstract target like "all" or "exe", which
depends on a whole bunch of actual targets, namely all of the test results.
I've enclosed a listing of the commands executed when I build test, then
clean, then test again. I can't understand why it wouldn't be happening for
you, but you could look at the -d+12 output to see what decisions it's
making.

> What's not as obvious is why the target produced
> is "test_base.test", why the target for test_thread.cpp is this
> target, or what target name would be valid for, say, the target that
> builds test_condition.cpp. Seems like a case where I should RTFM,
> but it doesn't appear that the "run" target is documented.

It's documented in tools/buid/testing.jam only.

> Sorry to
> be a pest about this, but I need some more enlightenment.

You're not a pest; I'll try to help.

-Dave

 


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