Thanks for the response. My responses are below.
Vladimir Prus wrote:
I've tried it a number of different ways but none of them worked.
On Saturday 07 July 2007 00:41, Ray Lambert wrote:
(root) has an empty Jamroot and 'common' and 'tests' each have a (very
simple) Jamfile. 'common' builds a static lib and the targets in 'tests'
try to link to it.
The Jamfile in 'common' looks like this:
lib common : [ glob *.cpp ] : <include>. <include>.. <link>static ;
The Jamfile in 'tests' looks like this:
exe xmltest : xmltest.cpp ..//common [ lib expat ] : <include>../.. ;
This "..//common", strictly speaking, refers to entire directory 'common', not
the target 'common' in directory common. You might want to try
but I can't see why that can matter.
In any case, note that the directory I'm building in is:
The directory I'm referring to is: myproject/common
So, '..' should be sufficient to get to the latter from the former and
the path you suggested, '../common', would be invalid from
'myproject/common/tests'. '../../common' would be valid. I tried both
of these (and a few others) but none of them worked.
My understanding of the // syntax is that it tells bjam to look in the
Jamfile at that point in the path for the target name that appears
after the // (in this case, common). Is that correct or have I
Based on my assumptions, I would expect '..//common' to work and,
indeed, it does work on Linux.
I don't believe so. Everything is in lower case except for the
Jamfiles. The files were originally created that way on Linux and were
put into a Subversion repo, which I checked-out to Winblows. So
everything should be identical to the way it was on Linux (and, indeed,
it does appear to be so).
'common' builds successfully. When I try to build the target 'xmltest' in
'tests' I get the following error:
error: Unable to find file or target named
error: referred from project at
Again, this all works perfectly on Linux. I've seached quite a bit but I
cannot find anything relating to bugs or alternative behaviour of the
'..//common' syntax on windows.
Are you sure there's no upper-case-vs-lower-case problem going on? Again,
bjam is supposed to ignore case on windows, completely.
Nevertheless, I tried renaming the 'common' Jamfile to all lowercase
but that didn't make a difference.
I also tried the build from a regular dosbox (instead of Cygwin's
shell) to see if that was interfering (although I couldn't imagine why
it would). No luck.
I also tried moving the project tree to my C: drive (it was on D:) and
putting 'myproject' right off root (in case there was some path-related
thing going on) and I also tried 'myproject' right off root on D:. No
Any other ideas?
I really love boost.build (it's a way-overdue evolution from make) and
I want to use it for this project but my time is limited and if I can't
get the build working I'm going to be forced to revert to makefiles. 8(
Thanks again for your help!