|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2005-08-21 06:32:13
Rob Stewart <stewart_at_[hidden]> writes:
> Like some others writing recently, I found that
> http://www.boost.org/more/getting_started.html doesn't paint the
> whole picture.
It's great that you're getting involved with this, but you really
should be connecting with Andrey Melnikov and Hendrik Schober,
who are supposedly working on a rewrite. Editorial comments on a
document that is about to be replaced are not necessarily going to
have much of an impact. Much of what you write below is a rehash of
stuff we've already discussed. In fact, you were clearly involved in
the thread:
http://thread.gmane.org/gmane.comp.lib.boost.devel/124641
http://thread.gmane.org/gmane.comp.lib.boost.devel/126320
As you can see, unless someone actually *does the work*, the best
editorial comments in the world won't have an impact. I know Schobi
got overwhelmed, and I'm sure Andrey could use some help with the
English language part. Why don't you throw in with them?
> In step five, the table describing the actions was a bit
> confusing. Some options were described with "<something>" values
> and others with "SOMETHING" values. I thought the latter were
> e-var references at first.
They are, in fact, or can be; bjam picks up all the environment
variables when you run it.
> Also in that table, there is mention of cygwin as a special
> case. Elsewhere, only *nix and windows are mentioned. Is cygwin
> considered *nix or windows in those other contexts?
Unix. I don't think that needs to be specially explained there,
although it should be explained that bjam acts like Cygwin is Unix if
you build bjam under the Cygwin shell, but a Windows build of bjam can
still build things using the Cygwin tools.
<snip rehash stuff>
> Now for the real problem: When I ran bjam -sTools=gcc
> --prefix=d:/dev/boost install, I was surprised to find that bjam
> wouldn't create that directory.
Did you get an error message saying it couldn't create _that_
directory? If not, why did you presume that was the problem?
> I created the directory and
> reran the command. Much to my chagrin, it then couldn't create
> d:/dev/boost/lib. I created that directory and reran the
> command. Finally, I thought, it needed but couldn't create
> "bin." Not "d:/dev/boost/bin" or some other fully qualified
> directory, but "bin." I tried creating d:/dev/boost/bin, but
> that didn't help. I didn't try creating $PWD/bin because I
> didn't really want files there. Since
> http://www.boost.org/more/getting_started.html doesn't mention a
> bin directory, I didn't know where else to create it.
>
> So, I could't seem to get bjam to build anything and it wasn't
> helping me to understand what was wrong. The error message was
> simple:
>
> MkDir1 bin
> spawn: No such file or directory
>
> This was in cygwin, so perhaps there's some confusion as to what
> should be on my path. At present, it's pretty simple:
> ~/bin:/bin:/usr/bin. Does bjam need more than that? If so,
> what? I don't know what MkDir1 is, so I was at somewhat of a
> loss.
>
> On a lark, I decided to set --builddir and rerun the command. I
> set it to d:/tmp/build and tried again. Lo and behold! It
> almost worked. The error then read:
>
> MkDir1 d:\tmp\build\bin
You're clearly using a Windows build of bjam to build under a cygwin
shell. That isn't going to work out... although maybe we should make
it work.
> spawn: No such file or directory
>
> That immediately made me wonder three things:
>
> 1. Why couldn't bjam create the bin subdirectory?
Unclear. problames from spawn usually mean there was something wrong
with the command line. Please try adding -d+2 to your bjam
command-line.
> 2. Why did bjam need to create a bin subdirectory instead of
> just using the directory I specified using --builddir?
Because that's the way it works. Why do you care what it creates
underneath your builddir?
> 3. Why didn't the error message indicate that "bin" was the
> --builddir value so I could know which parameter to
> manipulate?
a. I'd say
MkDir1 bin
spawn: No such file or directory
pretty clearly indicates where the problem is
b. The spawn message comes from the windows shell and is beyond bjam's
control.
> Well, the dance wasn't over yet. The next directory bjam wanted,
> but couldn't create was d:/tmp/build/bin/boost! Yes, I created
> that directory and tried again. Next I had to create
> d:/tmp/build/bin/boost/libs. Then it was
> d:/tmp/build/bin/boost/libs/date_time. I created that directory,
> too. Finally, I got this message:
>
> MkDir1 d:\tmp\build\bin\boost\libs\date_time\boost_date_time.dll
> spawn: No such file or directory
>
> At that point, I gave up. (No doubt I should have given up
> sooner!)
>
> Adding insult to injury were the interminable waits while bjam
> figured out over and over what needed to be done.
>
> Clearly, this isn't how things are supposed to work. Any ideas?
Lets' see the output with -d+2. Heck, add -d+4 too, for good measure.
And let's take this over to the jamboost list:
http://www.boost.org/more/mailing_lists.htm#jamboost
-- 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