From: David Abrahams (dave_at_[hidden])
Date: 2003-03-20 17:41:56
Ali Azarbayejani <ali_at_[hidden]> writes:
>> > <F> (DESIGN) "Remote" builds are performed in root rather than
>> > remote directory. Consider building each target in the
>> > directory of its own Jamfile (rather than in the directory of
>> > the root Jamfile). This will alleviate command line overflow,
>> > guarantee consistent run-time behavior for a project when used
>> > on its own or as a sub-project, and help avoid internal
>> > implementation errors having to do with translating paths in
>> > many different contexts.
>> Do you mean that current dir for all compiler invocations is equal to the
>> directory where you've started bjam? I understand you, but the change is
>> controversial. For one thing, it will immediately broke *compilation* mode in
>> Emacs --- the error message will use file names relative to some other
>> directory than the one where you've run the compilation.
> I sympathize because I am an Emacs user, but I have to say that this
> is an Emacs problem and ought ideally to be solved by providing elisp
> code to do Emacs-based compiles.
AFAICT that requires rewriting compilation-mode. They don't seem to
provide for changing the local directory (though it surprises me
because make systems do that all the time). Anyway, your strategy
will be no help at all for ALL_LOCATE_TARGET builds, which put the
targets in a separate directory tree from the sources. That's really
the recommended way to do it anyway, and the only option for those
building from read-only sources.
> A user of my system encountered a similar problem because my system
> does change directory before building...I will check to see what his
> solution was (if any).
We could always have bjam use absolute paths, but then you might not
like the effect on command-lines ;-)
-- Dave Abrahams Boost Consulting www.boost-consulting.com
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