Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-04-21 08:34:59

Now that we've finally got msvc and borland to work properly under
Cygwin, I've come to the conclusion that it may be neccessary to build
in some core jam support for windows-style paths. The alternative of
using backquoted invocations of `cygpath` is simply too awful to
tolerate (see tools/build/new/msvc.jam). This is important especially
for users of older versions of windows (e.g. 98) with highly
restricted command-line length. I suggest a new modifier :W which uses to
convert paths to windows-native format under Cygwin and which is a
no-op elsewehere. This should allow us to write a single version of
most build actions without special-casing Cygwin.

I'm not diving right in to do it immediately because:

1. I want to make sure this is the only core change which is
immediately needed, especially in the area of path
translation. There are a number of other functions at which might be
worth exposing.

2. I am not sure that this is quite enough. As you can see from
borland.jam, I eventually gave up on trying to run Borland's
TLIB tool through the cygwin shell (I write/execute a .bat file
instead) because it was getting confused by paths like
"bin/lib/borland/link-static/auxilliary.lib". No matter how I
quoted the path, the dash was being interpreted by TLIB as an
option separator. On the other hand, it's important to run
TLIB through the Cygwin shell to get around path limitations.
I'd like to have a better understanding of this problem before
adding core features.

I'm also a bit nervous about the need to reset the TMP variable from
the directory name it starts with to something like /tmp in order to
make the tests succeed. I'm not clear where in the code that
requirement comes from, but it might indicate a need for an inverse
operation to :W (say, :C)? If anyone understands this problem, I'd
appreciate some description of what's going on.

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at