
On Jul 6, 2008, at 7:35 AM, Vladimir Prus wrote:
Daryle Walker wrote:
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.
This looks fine. I'm not sure about "better" way -- if this one works, then it works.
But I don't think Boost.Jam gets updated that often, but I'm building each time (and cleaning afterwards). I wonder if there's a way to use "svn info --xml" to get the date of the last Boost.Jam repository update, do some comparisons, and use that to activate the need for a rebuild. (My scripting skills are minimal.)
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?
No, you need "darwin" as tools.
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"? But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default? .. Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam? Would that line complement or replace the current GCC line?
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>
Oh, you actually have 10.2 SDK installed? Can you "svn up" and try again?
Building the Hello example after my last SVN update didn't change anything. Are you assuming that I'm actively using the 10.2 SDK? I'm not, but... ..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(.5?) [1] loaded. So far, I've only used the native 10.4 one. Boost.Build must be able to deal with the presence of multiple SDKs, and (generally) pick the latest; if it can't, then a bug report needs to be filed. I don't have a 10.5 system, but the setup has changed from what I've read. The version of xcode that come with 10.5, xcode 3.0, made a clean break from sub-10.5 systems; they will only build 10.5 programs. The last version of xcode for 10.4, xcode 2.5, is made to be loaded onto a 10.5 system (in a separate directory) to serve all sub-10.5 programming needs. [1] The sub-10.4 SDKs are targeted to the last free point-version of each line. There's no 10.0 SDK because 10.1 was a free upgrade from it. -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com