Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2008-07-06 07:08:06


On Jul 6, 2008, at 3:49 AM, Vladimir Prus wrote:

> Daryle Walker wrote:
>
>> I'm trying to tweak Boost.Integer, and I noticed that only 3 of the 6
>> test files there are being used. I changed the jam-file there, but I
>> don't use Boost.Build myself, so can someone here confirm that the
>> changes work. You can check out the exact changes with Change-set
>> 47123 at <http://svn.boost.org/trac/boost/changeset/47123>.
>
> In other words, you've checked in something, and you don't know if
> that
> works? You really better learn how to use Boost.Build -- for the
> mainstream
> toolsets and operating systems, it's trivial.

I did read the documentation first.... (And it's a copy & paste of
an existing line in the file.)

..

OK, I tried Boost.Build out:

1. Since I'm loading from SVN, I'm have to make sure bjam is always
generated after an update. I have this in a shell script:

//=================================
MY_HOME=~
MY_PROGRAMMING="$MY_HOME"/Documents/Programming
MY_BOOST="$MY_PROGRAMMING"/Boost
MY_BOOST_SVN="$MY_BOOST"/main-svn/boost-trunk

echo "Updating Boost Main SVN"
cd "$MY_BOOST_SVN"
svn update
echo "Rebuilding Boost.Jam for SVN"
cd "$MY_BOOST_SVN"/tools/jam/src
sh ./build.sh
cp bin.macosxppc/bjam "$MY_HOME"/bin/bjam-svn
rm -rf bootstrap
rm -rf bin.macosxppc
//=================================

Is there a better way to do this? Is making the final executable be
named "bjam-svn" bad? Calling "bjam-svn --version" gets me
"Boost.Build V2 (Milestone 12) Boost.Jam 03.1.17" (on two lines). It
properly uses the "darwin" toolset when building.

2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have
to put the *-config.jam files in my home directory. My copies of the
latest Boost download and the subversion repository are also in this
directory. Will that mess anything up? What's the "site-config.jam"
file for anyway? Only one line was uncommented in "user-config.jam",
the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11)
system?

3. When I tried out the hello example, I got:

//=================================
daryle[example]$ cd hello
daryle[hello]$ ls
Jamroot hello.cpp
daryle[hello]$ bjam-svn
..found 9 targets...
..updating 5 targets...
MkDir1 bin
MkDir1 bin/gcc-4.0.1
MkDir1 bin/gcc-4.0.1/debug
gcc.compile.c++ bin/gcc-4.0.1/debug/hello.o
gcc.link bin/gcc-4.0.1/debug/hello
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: --
start-group
collect2: ld returned 1 exit status

     "g++" -o "bin/gcc-4.0.1/debug/hello" -Wl,--start-group "bin/
gcc-4.0.1/debug/hello.o" -Wl,-Bstatic -Wl,-Bdynamic -Wl,--end-
group -g

..failed gcc.link bin/gcc-4.0.1/debug/hello...
..failed updating 1 target...
..updated 4 targets...
//=================================

Attempts to specify "darwin," based on Googling "boost '--start-
group'," got

//=================================
daryle[hello]$ bjam-svn toolset=darwin
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/feature.jam:466: in feature.validate-value-string from module
feature
error: "10.2" is not a known value of feature <macosx-version>
error: legal values: "10.5" "10.4" "10.3" "iphone-2.0" "iphone-1.x"
"iphonesim-2.0"
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/property.jam:274: in validate1 from module property
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/property.jam:299: in validate from module property
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/property.jam:308: in property.validate-property-sets from
module property
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/toolset.jam:151: in flags from module toolset
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
tools/darwin.jam:227: in init-available-sdk-versions from module darwin
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
tools/darwin.jam:178: in darwin.init from module darwin
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build/toolset.jam:38: in toolset.using from module toolset
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build-system.jam:434: in process-explicit-toolset-requests from
module build-system
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
build-system.jam:513: in load from module build-system
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
example/../kernel/modules.jam:281: in import from module modules
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
example/../kernel/bootstrap.jam:128: in boost-build from module
~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/
example/boost-build.jam:6: in module scope from module
//=================================

(Home directory sanitized to "~" for my protection.) Am I missing
something in user-config.jam?

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk