From: Ray Lambert (codemonkey_at_[hidden])
Date: 2007-07-11 10:24:30
Thanks for the response. My responses are below.
Vladimir Prus wrote:
> 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.
I've tried it a number of different ways but none of them worked.
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 misunderstood?
Based on my assumptions, I would expect '..//common' to work and,
indeed, it does work on Linux.
>> '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: '..//common'
>> error: referred from project at
>> error: '.'
>> 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.
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
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 luck.
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!
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