There is a need to build versions of Boost other than ones that have been officially released. For example, the current release of Boost (1.54) will not compile when used from an Objective-C++ source file, because it defines a struct-typed static variable named 'nil', which conflicts with the Objective-C/C++ language keyword. This defect has been fixed ( https://svn.boost.org/trac/boost/ticket/5010 ). To implement this new feature, with this change the boost.sh script will now try to perform a Subversion checkout of the source code from the Boost source repository if no source tarball can be found corresponding to the requested version.

I put the code that performs the svn checkout into unpackBoost(). The reason for this is that the cleaning steps are carried out after downloadBoost() but before unpackBoost(). The svn checkout could happen in downloadBoost() and then unpack could make a completely separate copy of the source code in order to make it "clean", but I thought this large amount of duplication was overkill. But perhaps that is preferable to requiring a full "svn co" every time the script is run. I am open to suggestions on this issue.

Example usage:
    * BOOST_SRC_VERSION=HEAD ./boost.sh
    * BOOST_SRC_VERSION=85256 ./boost.sh
    * BOOST_SRC_VERSION=1_44_0 ./boost.sh
Merge branch 'extract-version-from-source' into source-from-boost-repo
Merge branch 'extract-version-from-source' into source-from-boost-repo
Merge pull request #5 from morsen/source-from-boost-repo

Support building specific revisions from Boost source repository