From: op_jared_oberhaus (oberhaus_at_[hidden])
Date: 2002-06-20 19:53:30
I found Boost.Build recently, and I want to use it for my project
(not Boost), and I have several problems:
1. I can't figure out how I should get started.
2. I can't find any good examples to write Jamfile's, either with
standard Perforce Jam and especially not with Boost.Build.
3. I figured out some things, and I'm trying to build a dll target
by referencing a lib target that's already built, but it's just not
By the way, I'm running WinXP.
1. I found boost-build.win.zip on sourceforge which seems to have a
distribution of boost.build that mostly works. But I seem to have
found a bug in it, maybe, which is why I'm having a problem with #3.
So that caused me to go searching for a more recent version. So I
downloaded boost 1.28, and moved the files that seemed appropriate
into my tools/build directory, and tried to compile the jam under
boost/tools/build/jam_src. I haven't yet been able to build jam,
Perforce, ft, or boost versions, but I tried... Anyhow, I downloaded
a different jam.exe from the sourceforge site, and that one behaved
differently as well. And with the new files that I got from boost
1.28, the Jamfile's that I got to work before no longer worked at
all, with the older jam.exe I had or the new one I found that I
downloaded, and I don't really have a clue why. jam -d5 or jam -d9
didn't tell me much at all, except that it was ignoring everything
in my Jamfile.
So, the question is, where the heck do I get a complete up to date
distribution of this?
2. I tried to find examples in the boost directory, but the examples
are very limited. I couldn't find anywhere in boost where an exe was
built, and certainly not anything where a target depended on another
target in a different directory.
Has someone used Boost.Build to build a large system other than
Boost, and have simple examples for doing straightforward things
that don't seem applicable to boost? For instance:
Building a library (the one thing I can see Boost does)
Building a dll and linking in other libraries
Building an exe and linking in other libraries
Building multiple exe's and running unit tests with them
3. My current specific problem is that I'm trying to build a dll,
and construct it from multiple static libraries. I followed the
instructions at http://www.boost.org/tools/build/build_system.htm,
specifically "Describing Main Targets". It says:
sources is a list of paths to source files and dependency targets. A
dependency target path is preceded by <template>, <lib>, <dll>, or
<exe>, and the final path component specifies the name of a main
target in a Jamfile located in the directory given by the initial
path components. Paths may be absolute or relative.
When I try something like this in my Jamfile:
It cannot find the actual compiled "compiledlib" that's a target
in "../otherlib/Jamfile". The exact same variants are being built
when running the Jamfile for the dll and compiling "compiledlib". It
claims it's looking in "../otherlib/compiledlib/....." when it
really should be looking in "../otherlib/bin/compiledlib/....". And
when I copy the entire directory so there is the correct path, it
looks for "../otherlib/bin/compiledlib/...../compiledlib" and
totally ignores the
file "../otherlib/bin/compiledlib/...../compiledlib.lib" which is
the file I want to link with!
What am I doing wrong? Does boost.build only work for boost?
The claim that Jam/FTJam is easy to use is irrelevant, because they
are useless without large and complex rule files. That is why I
turned to Boost.build, but as you can see I'm having trouble
figuring out how to get it to work...
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