Upload 16 files
Browse files- tools/boost_1_65_1/INSTALL +8 -0
- tools/boost_1_65_1/Jamroot +312 -0
- tools/boost_1_65_1/LICENSE_1_0.txt +23 -0
- tools/boost_1_65_1/b2 +0 -0
- tools/boost_1_65_1/bjam +0 -0
- tools/boost_1_65_1/boost-build.jam +17 -0
- tools/boost_1_65_1/boost.css +66 -0
- tools/boost_1_65_1/boost.png +0 -0
- tools/boost_1_65_1/boostcpp.jam +705 -0
- tools/boost_1_65_1/bootstrap.bat +81 -0
- tools/boost_1_65_1/bootstrap.log +139 -0
- tools/boost_1_65_1/bootstrap.sh +409 -0
- tools/boost_1_65_1/index.htm +25 -0
- tools/boost_1_65_1/index.html +130 -0
- tools/boost_1_65_1/project-config.jam +41 -0
- tools/boost_1_65_1/rst.css +149 -0
tools/boost_1_65_1/INSTALL
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
See ./index.html for information about this release. The "Getting Started"
|
| 2 |
+
section is a useful starting place.
|
| 3 |
+
|
| 4 |
+
---------------------------
|
| 5 |
+
Copyright Beman Dawes, 2008
|
| 6 |
+
|
| 7 |
+
Distributed under the Boost Software License, Version 1.0.
|
| 8 |
+
See ./LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt
|
tools/boost_1_65_1/Jamroot
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright Vladimir Prus 2002-2006.
|
| 2 |
+
# Copyright Dave Abrahams 2005-2006.
|
| 3 |
+
# Copyright Rene Rivera 2005-2007.
|
| 4 |
+
# Copyright Douglas Gregor 2005.
|
| 5 |
+
#
|
| 6 |
+
# Distributed under the Boost Software License, Version 1.0.
|
| 7 |
+
# (See accompanying file LICENSE_1_0.txt or copy at
|
| 8 |
+
# http://www.boost.org/LICENSE_1_0.txt)
|
| 9 |
+
|
| 10 |
+
# Usage:
|
| 11 |
+
#
|
| 12 |
+
# b2 [options] [properties] [install|stage]
|
| 13 |
+
#
|
| 14 |
+
# Builds and installs Boost.
|
| 15 |
+
#
|
| 16 |
+
# Targets and Related Options:
|
| 17 |
+
#
|
| 18 |
+
# install Install headers and compiled library files to the
|
| 19 |
+
# ======= configured locations (below).
|
| 20 |
+
#
|
| 21 |
+
# --prefix=<PREFIX> Install architecture independent files here.
|
| 22 |
+
# Default; C:\Boost on Win32
|
| 23 |
+
# Default; /usr/local on Unix. Linux, etc.
|
| 24 |
+
#
|
| 25 |
+
# --exec-prefix=<EPREFIX> Install architecture dependent files here.
|
| 26 |
+
# Default; <PREFIX>
|
| 27 |
+
#
|
| 28 |
+
# --libdir=<DIR> Install library files here.
|
| 29 |
+
# Default; <EPREFIX>/lib
|
| 30 |
+
#
|
| 31 |
+
# --includedir=<HDRDIR> Install header files here.
|
| 32 |
+
# Default; <PREFIX>/include
|
| 33 |
+
#
|
| 34 |
+
# stage Build and install only compiled library files to the
|
| 35 |
+
# ===== stage directory.
|
| 36 |
+
#
|
| 37 |
+
# --stagedir=<STAGEDIR> Install library files here
|
| 38 |
+
# Default; ./stage
|
| 39 |
+
#
|
| 40 |
+
# Other Options:
|
| 41 |
+
#
|
| 42 |
+
# --build-type=<type> Build the specified pre-defined set of variations of
|
| 43 |
+
# the libraries. Note, that which variants get built
|
| 44 |
+
# depends on what each library supports.
|
| 45 |
+
#
|
| 46 |
+
# -- minimal -- (default) Builds a minimal set of
|
| 47 |
+
# variants. On Windows, these are static
|
| 48 |
+
# multithreaded libraries in debug and release
|
| 49 |
+
# modes, using shared runtime. On Linux, these are
|
| 50 |
+
# static and shared multithreaded libraries in
|
| 51 |
+
# release mode.
|
| 52 |
+
#
|
| 53 |
+
# -- complete -- Build all possible variations.
|
| 54 |
+
#
|
| 55 |
+
# --build-dir=DIR Build in this location instead of building within
|
| 56 |
+
# the distribution tree. Recommended!
|
| 57 |
+
#
|
| 58 |
+
# --show-libraries Display the list of Boost libraries that require
|
| 59 |
+
# build and installation steps, and then exit.
|
| 60 |
+
#
|
| 61 |
+
# --layout=<layout> Determine whether to choose library names and header
|
| 62 |
+
# locations such that multiple versions of Boost or
|
| 63 |
+
# multiple compilers can be used on the same system.
|
| 64 |
+
#
|
| 65 |
+
# -- versioned -- Names of boost binaries include
|
| 66 |
+
# the Boost version number, name and version of
|
| 67 |
+
# the compiler and encoded build properties. Boost
|
| 68 |
+
# headers are installed in a subdirectory of
|
| 69 |
+
# <HDRDIR> whose name contains the Boost version
|
| 70 |
+
# number.
|
| 71 |
+
#
|
| 72 |
+
# -- tagged -- Names of boost binaries include the
|
| 73 |
+
# encoded build properties such as variant and
|
| 74 |
+
# threading, but do not including compiler name
|
| 75 |
+
# and version, or Boost version. This option is
|
| 76 |
+
# useful if you build several variants of Boost,
|
| 77 |
+
# using the same compiler.
|
| 78 |
+
#
|
| 79 |
+
# -- system -- Binaries names do not include the
|
| 80 |
+
# Boost version number or the name and version
|
| 81 |
+
# number of the compiler. Boost headers are
|
| 82 |
+
# installed directly into <HDRDIR>. This option is
|
| 83 |
+
# intended for system integrators building
|
| 84 |
+
# distribution packages.
|
| 85 |
+
#
|
| 86 |
+
# The default value is 'versioned' on Windows, and
|
| 87 |
+
# 'system' on Unix.
|
| 88 |
+
#
|
| 89 |
+
# --buildid=ID Add the specified ID to the name of built libraries.
|
| 90 |
+
# The default is to not add anything.
|
| 91 |
+
#
|
| 92 |
+
# --python-buildid=ID Add the specified ID to the name of built libraries
|
| 93 |
+
# that depend on Python. The default is to not add
|
| 94 |
+
# anything. This ID is added in addition to --buildid.
|
| 95 |
+
#
|
| 96 |
+
# --help This message.
|
| 97 |
+
#
|
| 98 |
+
# --with-<library> Build and install the specified <library>. If this
|
| 99 |
+
# option is used, only libraries specified using this
|
| 100 |
+
# option will be built.
|
| 101 |
+
#
|
| 102 |
+
# --without-<library> Do not build, stage, or install the specified
|
| 103 |
+
# <library>. By default, all libraries are built.
|
| 104 |
+
#
|
| 105 |
+
# Properties:
|
| 106 |
+
#
|
| 107 |
+
# toolset=toolset Indicate the toolset to build with.
|
| 108 |
+
#
|
| 109 |
+
# variant=debug|release Select the build variant
|
| 110 |
+
#
|
| 111 |
+
# link=static|shared Whether to build static or shared libraries
|
| 112 |
+
#
|
| 113 |
+
# threading=single|multi Whether to build single or multithreaded binaries
|
| 114 |
+
#
|
| 115 |
+
# runtime-link=static|shared
|
| 116 |
+
# Whether to link to static or shared C and C++
|
| 117 |
+
# runtime.
|
| 118 |
+
#
|
| 119 |
+
|
| 120 |
+
# TODO:
|
| 121 |
+
# - handle boost version
|
| 122 |
+
# - handle python options such as pydebug
|
| 123 |
+
|
| 124 |
+
import boostcpp ;
|
| 125 |
+
import package ;
|
| 126 |
+
|
| 127 |
+
import sequence ;
|
| 128 |
+
import xsltproc ;
|
| 129 |
+
import set ;
|
| 130 |
+
import path ;
|
| 131 |
+
import link ;
|
| 132 |
+
|
| 133 |
+
path-constant BOOST_ROOT : . ;
|
| 134 |
+
constant BOOST_VERSION : 1.65.1 ;
|
| 135 |
+
constant BOOST_JAMROOT_MODULE : $(__name__) ;
|
| 136 |
+
|
| 137 |
+
boostcpp.set-version $(BOOST_VERSION) ;
|
| 138 |
+
|
| 139 |
+
use-project /boost/architecture : libs/config/checks/architecture ;
|
| 140 |
+
|
| 141 |
+
local all-headers =
|
| 142 |
+
[ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost libs/*/*/include/boost ] ] ;
|
| 143 |
+
|
| 144 |
+
for dir in $(all-headers)
|
| 145 |
+
{
|
| 146 |
+
link-directory $(dir)-headers : libs/$(dir)/include/boost : <location>. ;
|
| 147 |
+
explicit $(dir)-headers ;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
if $(all-headers)
|
| 151 |
+
{
|
| 152 |
+
constant BOOST_MODULARLAYOUT : $(all-headers) ;
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
project boost
|
| 156 |
+
: requirements <include>.
|
| 157 |
+
|
| 158 |
+
[ boostcpp.architecture ]
|
| 159 |
+
[ boostcpp.address-model ]
|
| 160 |
+
|
| 161 |
+
# Disable auto-linking for all targets here, primarily because it caused
|
| 162 |
+
# troubles with V2.
|
| 163 |
+
<define>BOOST_ALL_NO_LIB=1
|
| 164 |
+
# Used to encode variant in target name. See the 'tag' rule below.
|
| 165 |
+
<tag>@$(__name__).tag
|
| 166 |
+
<conditional>@handle-static-runtime
|
| 167 |
+
# Comeau does not support shared lib
|
| 168 |
+
<toolset>como:<link>static
|
| 169 |
+
<toolset>como-linux:<define>_GNU_SOURCE=1
|
| 170 |
+
# When building docs within Boost, we want the standard Boost style
|
| 171 |
+
<xsl:param>boost.defaults=Boost
|
| 172 |
+
: usage-requirements <include>.
|
| 173 |
+
: build-dir bin.v2
|
| 174 |
+
;
|
| 175 |
+
|
| 176 |
+
# This rule is called by Boost.Build to determine the name of target. We use it
|
| 177 |
+
# to encode the build variant, compiler name and boost version in the target
|
| 178 |
+
# name.
|
| 179 |
+
#
|
| 180 |
+
rule tag ( name : type ? : property-set )
|
| 181 |
+
{
|
| 182 |
+
return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ;
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
rule python-tag ( name : type ? : property-set )
|
| 186 |
+
{
|
| 187 |
+
return [ boostcpp.python-tag $(name) : $(type) : $(property-set) ] ;
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
rule handle-static-runtime ( properties * )
|
| 191 |
+
{
|
| 192 |
+
# Using static runtime with shared libraries is impossible on Linux, and
|
| 193 |
+
# dangerous on Windows. Therefore, we disallow it. This might be drastic,
|
| 194 |
+
# but it was disabled for a while without anybody complaining.
|
| 195 |
+
|
| 196 |
+
# For CW, static runtime is needed so that std::locale works.
|
| 197 |
+
if <link>shared in $(properties) && <runtime-link>static in $(properties) &&
|
| 198 |
+
! ( <toolset>cw in $(properties) )
|
| 199 |
+
{
|
| 200 |
+
ECHO "error: link=shared together with runtime-link=static is not allowed" ;
|
| 201 |
+
ECHO "error: such property combination is either impossible " ;
|
| 202 |
+
ECHO "error: or too dangerious to be of any use" ;
|
| 203 |
+
EXIT ;
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
all-libraries = [ MATCH .*libs/(.*)/build/.* : [ glob libs/*/build/Jamfile.v2 ]
|
| 208 |
+
[ glob libs/*/build/Jamfile ] ] ;
|
| 209 |
+
|
| 210 |
+
all-libraries = [ sequence.unique $(all-libraries) ] ;
|
| 211 |
+
# The function_types library has a Jamfile, but it's used for maintenance
|
| 212 |
+
# purposes, there's no library to build and install.
|
| 213 |
+
all-libraries = [ set.difference $(all-libraries) : function_types ] ;
|
| 214 |
+
|
| 215 |
+
# Setup convenient aliases for all libraries.
|
| 216 |
+
|
| 217 |
+
local rule explicit-alias ( id : targets + )
|
| 218 |
+
{
|
| 219 |
+
alias $(id) : $(targets) ;
|
| 220 |
+
explicit $(id) ;
|
| 221 |
+
}
|
| 222 |
+
|
| 223 |
+
# First, the complicated libraries: where the target name in Jamfile is
|
| 224 |
+
# different from its directory name.
|
| 225 |
+
explicit-alias prg_exec_monitor : libs/test/build//boost_prg_exec_monitor ;
|
| 226 |
+
explicit-alias test_exec_monitor : libs/test/build//boost_test_exec_monitor ;
|
| 227 |
+
explicit-alias unit_test_framework : libs/test/build//boost_unit_test_framework ;
|
| 228 |
+
explicit-alias bgl-vis : libs/graps/build//bgl-vis ;
|
| 229 |
+
explicit-alias serialization : libs/serialization/build//boost_serialization ;
|
| 230 |
+
explicit-alias wserialization : libs/serialization/build//boost_wserialization ;
|
| 231 |
+
for local l in $(all-libraries)
|
| 232 |
+
{
|
| 233 |
+
if ! $(l) in test graph serialization
|
| 234 |
+
{
|
| 235 |
+
explicit-alias $(l) : libs/$(l)/build//boost_$(l) ;
|
| 236 |
+
}
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
# Log has an additional target
|
| 240 |
+
explicit-alias log_setup : libs/log/build//boost_log_setup ;
|
| 241 |
+
|
| 242 |
+
alias headers : $(all-headers)-headers : : : <include>. ;
|
| 243 |
+
explicit headers ;
|
| 244 |
+
|
| 245 |
+
# Make project ids of all libraries known.
|
| 246 |
+
for local l in $(all-libraries)
|
| 247 |
+
{
|
| 248 |
+
use-project /boost/$(l) : libs/$(l)/build ;
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
if [ path.exists $(BOOST_ROOT)/tools/inspect/build ]
|
| 252 |
+
{
|
| 253 |
+
use-project /boost/tools/inspect : tools/inspect/build ;
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
if [ path.exists $(BOOST_ROOT)/libs/wave/tool/build ]
|
| 257 |
+
{
|
| 258 |
+
use-project /boost/libs/wave/tool : libs/wave/tool/build ;
|
| 259 |
+
}
|
| 260 |
+
|
| 261 |
+
# This rule should be called from libraries' Jamfiles and will create two
|
| 262 |
+
# targets, "install" and "stage", that will install or stage that library. The
|
| 263 |
+
# --prefix option is respected, but --with and --without options, naturally, are
|
| 264 |
+
# ignored.
|
| 265 |
+
#
|
| 266 |
+
# - libraries -- list of library targets to install.
|
| 267 |
+
#
|
| 268 |
+
rule boost-install ( libraries * )
|
| 269 |
+
{
|
| 270 |
+
package.install install
|
| 271 |
+
: <dependency>/boost//install-proper-headers $(install-requirements)
|
| 272 |
+
: # No binaries
|
| 273 |
+
: $(libraries)
|
| 274 |
+
: # No headers, it is handled by the dependency.
|
| 275 |
+
;
|
| 276 |
+
|
| 277 |
+
install stage : $(libraries) : <location>$(BOOST_STAGE_LOCATE) ;
|
| 278 |
+
|
| 279 |
+
module [ CALLER_MODULE ]
|
| 280 |
+
{
|
| 281 |
+
explicit stage ;
|
| 282 |
+
explicit install ;
|
| 283 |
+
}
|
| 284 |
+
}
|
| 285 |
+
|
| 286 |
+
# Creates a library target, adding autolink support and also creates
|
| 287 |
+
# stage and install targets via boost-install, above.
|
| 288 |
+
rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * )
|
| 289 |
+
{
|
| 290 |
+
name = boost_$(name) ;
|
| 291 |
+
autolink = <link>shared:<define>$(name:U)_DYN_LINK=1 ;
|
| 292 |
+
lib $(name)
|
| 293 |
+
: $(sources)
|
| 294 |
+
: $(requirements) $(autolink)
|
| 295 |
+
: $(default-build)
|
| 296 |
+
: $(usage-requirements) $(autolink)
|
| 297 |
+
;
|
| 298 |
+
boost-install $(name) ;
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
|
| 302 |
+
headers =
|
| 303 |
+
# The .SUNWCCh files are present in tr1 include directory and have to be
|
| 304 |
+
# installed (see http://lists.boost.org/Archives/boost/2007/05/121430.php).
|
| 305 |
+
[ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
|
| 306 |
+
[ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* : CVS .svn ]
|
| 307 |
+
[ path.glob boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
|
| 308 |
+
;
|
| 309 |
+
|
| 310 |
+
# Declare special top-level targets that build and install the desired variants
|
| 311 |
+
# of the libraries.
|
| 312 |
+
boostcpp.declare-targets $(all-libraries) : $(headers) ;
|
tools/boost_1_65_1/LICENSE_1_0.txt
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Boost Software License - Version 1.0 - August 17th, 2003
|
| 2 |
+
|
| 3 |
+
Permission is hereby granted, free of charge, to any person or organization
|
| 4 |
+
obtaining a copy of the software and accompanying documentation covered by
|
| 5 |
+
this license (the "Software") to use, reproduce, display, distribute,
|
| 6 |
+
execute, and transmit the Software, and to prepare derivative works of the
|
| 7 |
+
Software, and to permit third-parties to whom the Software is furnished to
|
| 8 |
+
do so, all subject to the following:
|
| 9 |
+
|
| 10 |
+
The copyright notices in the Software and this entire statement, including
|
| 11 |
+
the above license grant, this restriction and the following disclaimer,
|
| 12 |
+
must be included in all copies of the Software, in whole or in part, and
|
| 13 |
+
all derivative works of the Software, unless such copies or derivative
|
| 14 |
+
works are solely in the form of machine-executable object code generated by
|
| 15 |
+
a source language processor.
|
| 16 |
+
|
| 17 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 18 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 19 |
+
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
| 20 |
+
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
| 21 |
+
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
| 22 |
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
| 23 |
+
DEALINGS IN THE SOFTWARE.
|
tools/boost_1_65_1/b2
ADDED
|
Binary file (362 kB). View file
|
|
|
tools/boost_1_65_1/bjam
ADDED
|
Binary file (362 kB). View file
|
|
|
tools/boost_1_65_1/boost-build.jam
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (C) 2002-2003 David Abrahams.
|
| 2 |
+
# Copyright (C) 2002-2003 Vladimir Prus.
|
| 3 |
+
# Copyright (C) 2003,2007 Rene Rivera.
|
| 4 |
+
# Use, modification and distribution are subject to the
|
| 5 |
+
# Boost Software License, Version 1.0. (See accompanying file
|
| 6 |
+
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
| 7 |
+
|
| 8 |
+
# This is the initial file loaded by Boost Jam when run from any Boost library
|
| 9 |
+
# folder. It allows us to choose which Boost Build installation to use for
|
| 10 |
+
# building Boost libraries. Unless explicitly selected using a command-line
|
| 11 |
+
# option, the version included with the Boost library distribution is used (as
|
| 12 |
+
# opposed to any other Boost Build version installed on the user's sytem).
|
| 13 |
+
|
| 14 |
+
BOOST_ROOT = $(.boost-build-file:D) ;
|
| 15 |
+
BOOST_BUILD = [ MATCH --boost-build=(.*) : $(ARGV) ] ;
|
| 16 |
+
BOOST_BUILD ?= tools/build/src ;
|
| 17 |
+
boost-build $(BOOST_BUILD) ;
|
tools/boost_1_65_1/boost.css
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*=============================================================================
|
| 2 |
+
Copyright 2002 William E. Kempf
|
| 3 |
+
Distributed under the Boost Software License, Version 1.0. (See accompany-
|
| 4 |
+
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
| 5 |
+
=============================================================================*/
|
| 6 |
+
|
| 7 |
+
H1
|
| 8 |
+
{
|
| 9 |
+
FONT-SIZE: 200%;
|
| 10 |
+
COLOR: #00008B;
|
| 11 |
+
}
|
| 12 |
+
H2
|
| 13 |
+
{
|
| 14 |
+
FONT-SIZE: 150%;
|
| 15 |
+
}
|
| 16 |
+
H3
|
| 17 |
+
{
|
| 18 |
+
FONT-SIZE: 125%;
|
| 19 |
+
}
|
| 20 |
+
H4
|
| 21 |
+
{
|
| 22 |
+
FONT-SIZE: 108%;
|
| 23 |
+
}
|
| 24 |
+
BODY
|
| 25 |
+
{
|
| 26 |
+
FONT-SIZE: 100%;
|
| 27 |
+
BACKGROUND-COLOR: #ffffff;
|
| 28 |
+
COLOR: #000000;
|
| 29 |
+
}
|
| 30 |
+
PRE
|
| 31 |
+
{
|
| 32 |
+
MARGIN-LEFT: 2em;
|
| 33 |
+
FONT-FAMILY: Courier,
|
| 34 |
+
monospace;
|
| 35 |
+
}
|
| 36 |
+
CODE
|
| 37 |
+
{
|
| 38 |
+
FONT-FAMILY: Courier,
|
| 39 |
+
monospace;
|
| 40 |
+
}
|
| 41 |
+
CODE.as_pre
|
| 42 |
+
{
|
| 43 |
+
white-space: pre;
|
| 44 |
+
}
|
| 45 |
+
.index
|
| 46 |
+
{
|
| 47 |
+
TEXT-ALIGN: left;
|
| 48 |
+
}
|
| 49 |
+
.page-index
|
| 50 |
+
{
|
| 51 |
+
TEXT-ALIGN: left;
|
| 52 |
+
}
|
| 53 |
+
.definition
|
| 54 |
+
{
|
| 55 |
+
TEXT-ALIGN: left;
|
| 56 |
+
}
|
| 57 |
+
.footnote
|
| 58 |
+
{
|
| 59 |
+
FONT-SIZE: 66%;
|
| 60 |
+
VERTICAL-ALIGN: super;
|
| 61 |
+
TEXT-DECORATION: none;
|
| 62 |
+
}
|
| 63 |
+
.function-semantics
|
| 64 |
+
{
|
| 65 |
+
CLEAR: left;
|
| 66 |
+
}
|
tools/boost_1_65_1/boost.png
ADDED
|
tools/boost_1_65_1/boostcpp.jam
ADDED
|
@@ -0,0 +1,705 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Boost.Build support specific for the Boost C++ Libraries.
|
| 2 |
+
# Copyright Vladimir Prus 2002-2010.
|
| 3 |
+
# Copyright Dave Abrahams 2005-2006.
|
| 4 |
+
# Copyright Rene Rivera 2005-2007.
|
| 5 |
+
# Copyright Douglas Gregor 2005.
|
| 6 |
+
#
|
| 7 |
+
# Distributed under the Boost Software License, Version 1.0.
|
| 8 |
+
# (See accompanying file LICENSE_1_0.txt or copy at
|
| 9 |
+
# http://www.boost.org/LICENSE_1_0.txt)
|
| 10 |
+
|
| 11 |
+
import "class" : new ;
|
| 12 |
+
import common ;
|
| 13 |
+
import configure ;
|
| 14 |
+
import build-system ;
|
| 15 |
+
import generate ;
|
| 16 |
+
import modules ;
|
| 17 |
+
import option ;
|
| 18 |
+
import os ;
|
| 19 |
+
import package ;
|
| 20 |
+
import path ;
|
| 21 |
+
import project ;
|
| 22 |
+
import regex ;
|
| 23 |
+
import set ;
|
| 24 |
+
import targets ;
|
| 25 |
+
import feature ;
|
| 26 |
+
import property ;
|
| 27 |
+
|
| 28 |
+
##############################################################################
|
| 29 |
+
#
|
| 30 |
+
# 0. General setup. Parse options, check them.
|
| 31 |
+
#
|
| 32 |
+
##############################################################################
|
| 33 |
+
|
| 34 |
+
BOOST_ROOT = [ modules.binding $(__name__) ] ;
|
| 35 |
+
BOOST_ROOT = $(BOOST_ROOT:D) ;
|
| 36 |
+
|
| 37 |
+
rule set-version ( version )
|
| 38 |
+
{
|
| 39 |
+
BOOST_VERSION = $(version) ;
|
| 40 |
+
|
| 41 |
+
local version-tag = [ MATCH ^([^.]+)[.]([^.]+)[.]([^.]+) : $(BOOST_VERSION)
|
| 42 |
+
] ;
|
| 43 |
+
if $(version-tag[3]) = 0
|
| 44 |
+
{
|
| 45 |
+
version-tag = $(version-tag[1-2]) ;
|
| 46 |
+
}
|
| 47 |
+
BOOST_VERSION_TAG = $(version-tag:J=_) ;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
# Option to choose how many variants to build. The default is "minimal".
|
| 51 |
+
build-type = [ option.get build-type ] ;
|
| 52 |
+
build-type ?= minimal ;
|
| 53 |
+
if ! ( $(build-type) in complete minimal )
|
| 54 |
+
{
|
| 55 |
+
EXIT The value of the --build-type option should be either 'complete' or
|
| 56 |
+
'minimal' ;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
# What kind of layout are we doing?
|
| 60 |
+
layout = [ option.get layout : "" ] ;
|
| 61 |
+
# On Windows, we used versioned layout by default in order to be compatible with
|
| 62 |
+
# autolink. On other systems, we use system layout which is what every other
|
| 63 |
+
# program uses. Note that the Windows check is static, and will not be affected
|
| 64 |
+
# by specific build properties used.
|
| 65 |
+
if ! $(layout)
|
| 66 |
+
{
|
| 67 |
+
if [ os.name ] = NT
|
| 68 |
+
{
|
| 69 |
+
layout = versioned ;
|
| 70 |
+
}
|
| 71 |
+
else
|
| 72 |
+
{
|
| 73 |
+
layout = system ;
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
layout-$(layout) = true ;
|
| 77 |
+
|
| 78 |
+
if $(layout) = system && $(build-type) = complete
|
| 79 |
+
{
|
| 80 |
+
ECHO error: Cannot use --layout=system with --build-type complete. ;
|
| 81 |
+
ECHO error: Please use either --layout=versioned or --layout=tagged ;
|
| 82 |
+
ECHO error: if you wish to build multiple variants. ;
|
| 83 |
+
if [ os.name ] != NT
|
| 84 |
+
{
|
| 85 |
+
ECHO error: Note that --layout=system is used by default on Unix
|
| 86 |
+
starting with Boost 1.40. ;
|
| 87 |
+
}
|
| 88 |
+
EXIT ;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
# Possible stage only location.
|
| 92 |
+
stage-locate = [ option.get stagedir ] ;
|
| 93 |
+
stage-locate ?= stage ;
|
| 94 |
+
BOOST_STAGE_LOCATE = $(stage-locate) ;
|
| 95 |
+
|
| 96 |
+
# Custom build ID.
|
| 97 |
+
build-id = [ option.get buildid ] ;
|
| 98 |
+
if $(build-id)
|
| 99 |
+
{
|
| 100 |
+
BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" _ ] ;
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
# Python build id (for Python libraries only).
|
| 104 |
+
python-id = [ option.get "python-buildid" ] ;
|
| 105 |
+
if $(python-id)
|
| 106 |
+
{
|
| 107 |
+
PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
################################################################################
|
| 112 |
+
#
|
| 113 |
+
# 1. 'tag' function adding decorations suitable to the properties if versioned
|
| 114 |
+
# or tagged layout is requested. Called from Jamroot.
|
| 115 |
+
#
|
| 116 |
+
################################################################################
|
| 117 |
+
|
| 118 |
+
rule tag ( name : type ? : property-set )
|
| 119 |
+
{
|
| 120 |
+
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
|
| 121 |
+
{
|
| 122 |
+
local result ;
|
| 123 |
+
if $(layout) = versioned
|
| 124 |
+
{
|
| 125 |
+
result = [ common.format-name
|
| 126 |
+
<base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
|
| 127 |
+
-$(BUILD_ID)
|
| 128 |
+
: $(name) : $(type) : $(property-set) ] ;
|
| 129 |
+
}
|
| 130 |
+
else if $(layout) = tagged
|
| 131 |
+
{
|
| 132 |
+
result = [ common.format-name
|
| 133 |
+
<base> <threading> <runtime>
|
| 134 |
+
-$(BUILD_ID)
|
| 135 |
+
: $(name) : $(type) : $(property-set) ] ;
|
| 136 |
+
}
|
| 137 |
+
else if $(layout) = system
|
| 138 |
+
{
|
| 139 |
+
result = [ common.format-name
|
| 140 |
+
<base>
|
| 141 |
+
-$(BUILD_ID)
|
| 142 |
+
: $(name) : $(type) : $(property-set) ] ;
|
| 143 |
+
}
|
| 144 |
+
else
|
| 145 |
+
{
|
| 146 |
+
EXIT error: invalid layout '$(layout:E=)' ;
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
# Optionally add version suffix. On NT, library with version suffix will
|
| 150 |
+
# not be recognized by linkers. On CYGWIN, we get strage duplicate
|
| 151 |
+
# symbol errors when library is generated with version suffix. On OSX,
|
| 152 |
+
# version suffix is not needed -- the linker expects the
|
| 153 |
+
# libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
|
| 154 |
+
# either. Pgi compilers can not accept a library with version suffix.
|
| 155 |
+
if $(type) = SHARED_LIB &&
|
| 156 |
+
! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
|
| 157 |
+
! [ $(property-set).get <toolset> ] in pgi
|
| 158 |
+
{
|
| 159 |
+
result = $(result).$(BOOST_VERSION) ;
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
return $(result) ;
|
| 163 |
+
}
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
# Specialized tag function to use for libraries linking to Python.
|
| 167 |
+
# Appends value of --python-buildid if provided.
|
| 168 |
+
rule python-tag ( name : type ? : property-set )
|
| 169 |
+
{
|
| 170 |
+
local result = $(name) ;
|
| 171 |
+
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
|
| 172 |
+
{
|
| 173 |
+
result = $(result)-$(PYTHON_ID) ;
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
# forward to the boost tagging rule
|
| 177 |
+
return [ tag $(result) : $(type) : $(property-set) ] ;
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
################################################################################
|
| 181 |
+
#
|
| 182 |
+
# 2. Declare targets that build and install all libraries. Specifically:
|
| 183 |
+
#
|
| 184 |
+
# - 'stage-proper' that puts all libraries in stage/lib
|
| 185 |
+
# - 'install-proper' that install libraries and headers to system location
|
| 186 |
+
# - 'stage-unversioned' that creates links to libraries without boost version
|
| 187 |
+
# in name
|
| 188 |
+
# - 'install-unversioned' which creates unversioned linked to installed
|
| 189 |
+
# libraries.
|
| 190 |
+
#
|
| 191 |
+
################################################################################
|
| 192 |
+
|
| 193 |
+
# Worker function suitable to the 'generate' metatarget. Creates a link to
|
| 194 |
+
# 'source', striping any version number information from the name.
|
| 195 |
+
rule make-unversioned-links ( project name ? : property-set : sources * )
|
| 196 |
+
{
|
| 197 |
+
local filter ;
|
| 198 |
+
if [ modules.peek : NT ]
|
| 199 |
+
{
|
| 200 |
+
filter = (.*[.]lib) ;
|
| 201 |
+
}
|
| 202 |
+
else
|
| 203 |
+
{
|
| 204 |
+
filter =
|
| 205 |
+
(.*[.]so)[.0-9]*
|
| 206 |
+
(.*[.]dylib)
|
| 207 |
+
(.*[.]a) ;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
local result ;
|
| 211 |
+
for local s in $(sources)
|
| 212 |
+
{
|
| 213 |
+
local m = [ MATCH ^(.*)-[0-9_]+$(filter)$ : [ $(s).name ] ] ;
|
| 214 |
+
if $(m)
|
| 215 |
+
{
|
| 216 |
+
local ea = [ $(s).action ] ;
|
| 217 |
+
local ep = [ $(ea).properties ] ;
|
| 218 |
+
local a = [ new non-scanning-action $(s) : symlink.ln : $(ep) ] ;
|
| 219 |
+
result += [ new file-target $(m:J=) exact : [ $(s).type ] :
|
| 220 |
+
$(project) : $(a) ] ;
|
| 221 |
+
}
|
| 222 |
+
}
|
| 223 |
+
return $(result) ;
|
| 224 |
+
}
|
| 225 |
+
|
| 226 |
+
rule filtered-target ( name : message + : sources + : requirements * )
|
| 227 |
+
{
|
| 228 |
+
message $(name)-message : warning: $(message) ;
|
| 229 |
+
alias $(name) : $(sources) : $(requirements) ;
|
| 230 |
+
alias $(name) : $(name)-message ;
|
| 231 |
+
|
| 232 |
+
local p = [ project.current ] ;
|
| 233 |
+
$(p).mark-target-as-explicit $(name) ;
|
| 234 |
+
$(p).mark-target-as-explicit $(name)-message ;
|
| 235 |
+
}
|
| 236 |
+
|
| 237 |
+
rule declare_install_and_stage_proper_targets ( libraries * : headers * )
|
| 238 |
+
{
|
| 239 |
+
local p = [ project.current ] ;
|
| 240 |
+
for local l in $(libraries)
|
| 241 |
+
{
|
| 242 |
+
if $(l) = locale
|
| 243 |
+
{
|
| 244 |
+
filtered-target $(l)-for-install :
|
| 245 |
+
Skipping Boost.Locale library with threading=single. :
|
| 246 |
+
libs/$(l)/build : <threading>multi ;
|
| 247 |
+
}
|
| 248 |
+
else if $(l) = wave
|
| 249 |
+
{
|
| 250 |
+
filtered-target $(l)-for-install :
|
| 251 |
+
Skipping Boost.Wave library with threading=single. :
|
| 252 |
+
libs/$(l)/build : <threading>multi ;
|
| 253 |
+
}
|
| 254 |
+
else if $(l) = thread
|
| 255 |
+
{
|
| 256 |
+
filtered-target $(l)-for-install :
|
| 257 |
+
Skipping Boost.Thread library with threading=single. :
|
| 258 |
+
libs/$(l)/build : <threading>multi ;
|
| 259 |
+
}
|
| 260 |
+
else
|
| 261 |
+
{
|
| 262 |
+
alias $(l)-for-install : libs/$(l)/build ;
|
| 263 |
+
$(p).mark-target-as-explicit $(l)-for-install ;
|
| 264 |
+
}
|
| 265 |
+
}
|
| 266 |
+
local library-targets = $(libraries)-for-install ;
|
| 267 |
+
|
| 268 |
+
install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
|
| 269 |
+
|
| 270 |
+
if $(layout-versioned)
|
| 271 |
+
{
|
| 272 |
+
install-requirements +=
|
| 273 |
+
<install-header-subdir>boost-$(BOOST_VERSION_TAG)/boost ;
|
| 274 |
+
}
|
| 275 |
+
else
|
| 276 |
+
{
|
| 277 |
+
install-requirements += <install-header-subdir>boost ;
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
if [ os.name ] = NT
|
| 281 |
+
{
|
| 282 |
+
install-requirements += <install-default-prefix>C:/Boost ;
|
| 283 |
+
}
|
| 284 |
+
else
|
| 285 |
+
{
|
| 286 |
+
install-requirements += <install-default-prefix>/usr/local ;
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
p = [ project.current ] ;
|
| 290 |
+
|
| 291 |
+
# Complete install.
|
| 292 |
+
package.install install-proper
|
| 293 |
+
: $(install-requirements) <install-no-version-symlinks>on
|
| 294 |
+
:
|
| 295 |
+
: $(libraries)-for-install
|
| 296 |
+
: $(headers)
|
| 297 |
+
;
|
| 298 |
+
$(p).mark-target-as-explicit install-proper ;
|
| 299 |
+
|
| 300 |
+
# Install just library.
|
| 301 |
+
install stage-proper
|
| 302 |
+
: $(libraries)-for-install
|
| 303 |
+
: <location>$(stage-locate)/lib
|
| 304 |
+
<install-dependencies>on <install-type>LIB
|
| 305 |
+
<install-no-version-symlinks>on
|
| 306 |
+
;
|
| 307 |
+
$(p).mark-target-as-explicit stage-proper ;
|
| 308 |
+
|
| 309 |
+
# Commented out as it does not seem to work. Whoever wrote this originally,
|
| 310 |
+
# left some typos in the code, but when that got corrected and the code got
|
| 311 |
+
# enabled - it started reporting ambiguous/duplicate target Boost Build
|
| 312 |
+
# errors. Anyone requiring unversioned staged libraries needs to correct
|
| 313 |
+
# those errors before reenabling this code. For more detailed information
|
| 314 |
+
# see the related Boost library development mailing list thread at
|
| 315 |
+
# 'http://lists.boost.org/Archives/boost/2012/06/194312.php'.
|
| 316 |
+
# (06.07.2012.) (Jurko)
|
| 317 |
+
#~ if $(layout-versioned) && ( [ modules.peek : NT ] || [ modules.peek : UNIX ] )
|
| 318 |
+
#~ {
|
| 319 |
+
#~ generate stage-unversioned : stage-proper :
|
| 320 |
+
#~ <generating-rule>@boostcpp.make-unversioned-links ;
|
| 321 |
+
#~ $(p).mark-target-as-explicit stage-unversioned ;
|
| 322 |
+
#~
|
| 323 |
+
#~ generate install-unversioned : install-proper :
|
| 324 |
+
#~ <generating-rule>@boostcpp.make-unversioned-links ;
|
| 325 |
+
#~ $(p).mark-target-as-explicit install-unversioned ;
|
| 326 |
+
#~ }
|
| 327 |
+
#~ else
|
| 328 |
+
{
|
| 329 |
+
# Create do-nothing aliases.
|
| 330 |
+
alias stage-unversioned ;
|
| 331 |
+
$(p).mark-target-as-explicit stage-unversioned ;
|
| 332 |
+
alias install-unversioned ;
|
| 333 |
+
$(p).mark-target-as-explicit install-unversioned ;
|
| 334 |
+
}
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
|
| 338 |
+
################################################################################
|
| 339 |
+
#
|
| 340 |
+
# 3. Declare top-level targets 'stage' and 'install'. These examine the
|
| 341 |
+
# --build-type option and, in case it is 'complete', build the 'install-proper'
|
| 342 |
+
# and 'stage-proper' targets with a number of property sets.
|
| 343 |
+
#
|
| 344 |
+
################################################################################
|
| 345 |
+
|
| 346 |
+
class top-level-target : alias-target-class
|
| 347 |
+
{
|
| 348 |
+
import modules ;
|
| 349 |
+
|
| 350 |
+
rule __init__ ( name : project : sources * : requirements *
|
| 351 |
+
: default-build * : usage-requirements * )
|
| 352 |
+
{
|
| 353 |
+
alias-target-class.__init__ $(name) : $(project) : $(sources) :
|
| 354 |
+
$(requirements) : $(default-build) : $(usage-requirements) ;
|
| 355 |
+
|
| 356 |
+
self.build-type = [ modules.peek boostcpp : build-type ] ;
|
| 357 |
+
# On Linux, we build the release variant by default, since few users
|
| 358 |
+
# will ever want to debug C++ Boost libraries, and there is no ABI
|
| 359 |
+
# incompatibility between debug and release variants. We build shared
|
| 360 |
+
# and static libraries since that is what most packages seem to provide
|
| 361 |
+
# (.so in libfoo and .a in libfoo-dev).
|
| 362 |
+
self.minimal-properties = [ property-set.create <variant>release
|
| 363 |
+
<threading>multi <link>shared <link>static <runtime-link>shared ] ;
|
| 364 |
+
# On Windows, new IDE projects use:
|
| 365 |
+
#
|
| 366 |
+
# runtime-link=dynamic, threading=multi, variant=(debug|release)
|
| 367 |
+
#
|
| 368 |
+
# and in addition, C++ Boost's autolink defaults to static linking.
|
| 369 |
+
self.minimal-properties-win = [ property-set.create <variant>debug
|
| 370 |
+
<variant>release <threading>multi <link>static <runtime-link>shared
|
| 371 |
+
] ;
|
| 372 |
+
|
| 373 |
+
self.complete-properties = [ property-set.create
|
| 374 |
+
<variant>debug <variant>release
|
| 375 |
+
<threading>single <threading>multi
|
| 376 |
+
<link>shared <link>static
|
| 377 |
+
<runtime-link>shared <runtime-link>static ] ;
|
| 378 |
+
}
|
| 379 |
+
|
| 380 |
+
rule generate ( property-set )
|
| 381 |
+
{
|
| 382 |
+
modules.poke : top-level-targets : [ modules.peek : top-level-targets ]
|
| 383 |
+
$(self.name) ;
|
| 384 |
+
if $(self.build-type) = minimal
|
| 385 |
+
{
|
| 386 |
+
local expanded ;
|
| 387 |
+
|
| 388 |
+
local os = [ $(property-set).get <target-os> ] ;
|
| 389 |
+
# Because we completely override the parent's 'generate' we need to
|
| 390 |
+
# check for default feature values ourselves.
|
| 391 |
+
if ! $(os)
|
| 392 |
+
{
|
| 393 |
+
os = [ feature.defaults <target-os> ] ;
|
| 394 |
+
os = $(os:G=) ;
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
+
if $(os) = windows
|
| 398 |
+
{
|
| 399 |
+
expanded = [ targets.apply-default-build $(property-set)
|
| 400 |
+
: $(self.minimal-properties-win) ] ;
|
| 401 |
+
}
|
| 402 |
+
else
|
| 403 |
+
{
|
| 404 |
+
expanded = [ targets.apply-default-build $(property-set)
|
| 405 |
+
: $(self.minimal-properties) ] ;
|
| 406 |
+
}
|
| 407 |
+
return [ build-multiple $(expanded) ] ;
|
| 408 |
+
}
|
| 409 |
+
else if $(self.build-type) = complete
|
| 410 |
+
{
|
| 411 |
+
local expanded = [ targets.apply-default-build $(property-set)
|
| 412 |
+
: $(self.complete-properties) ] ;
|
| 413 |
+
|
| 414 |
+
# Filter inappopriate combinations.
|
| 415 |
+
local filtered ;
|
| 416 |
+
for local p in $(expanded)
|
| 417 |
+
{
|
| 418 |
+
# See comment in handle-static-runtime regarding this logic.
|
| 419 |
+
if [ $(p).get <link> ] = shared
|
| 420 |
+
&& [ $(p).get <runtime-link> ] = static
|
| 421 |
+
&& [ $(p).get <toolset> ] != cw
|
| 422 |
+
{
|
| 423 |
+
# Skip this.
|
| 424 |
+
}
|
| 425 |
+
else
|
| 426 |
+
{
|
| 427 |
+
filtered += $(p) ;
|
| 428 |
+
}
|
| 429 |
+
}
|
| 430 |
+
return [ build-multiple $(filtered) ] ;
|
| 431 |
+
}
|
| 432 |
+
else
|
| 433 |
+
{
|
| 434 |
+
import errors ;
|
| 435 |
+
errors.error "Unknown build type" ;
|
| 436 |
+
}
|
| 437 |
+
}
|
| 438 |
+
|
| 439 |
+
rule build-multiple ( property-sets * )
|
| 440 |
+
{
|
| 441 |
+
local usage-requirements = [ property-set.empty ] ;
|
| 442 |
+
local result ;
|
| 443 |
+
for local p in $(property-sets)
|
| 444 |
+
{
|
| 445 |
+
local r = [ alias-target-class.generate $(p) ] ;
|
| 446 |
+
if $(r)
|
| 447 |
+
{
|
| 448 |
+
usage-requirements = [ $(usage-requirements).add $(r[1]) ] ;
|
| 449 |
+
result += $(r[2-]) ;
|
| 450 |
+
}
|
| 451 |
+
}
|
| 452 |
+
return $(usage-requirements) [ sequence.unique $(result) ] ;
|
| 453 |
+
}
|
| 454 |
+
}
|
| 455 |
+
|
| 456 |
+
rule declare_top_level_targets ( libraries * : headers * )
|
| 457 |
+
{
|
| 458 |
+
declare_install_and_stage_proper_targets $(libraries) : $(headers) ;
|
| 459 |
+
|
| 460 |
+
targets.create-metatarget top-level-target : [ project.current ]
|
| 461 |
+
: install
|
| 462 |
+
: install-proper install-unversioned
|
| 463 |
+
;
|
| 464 |
+
targets.create-metatarget top-level-target : [ project.current ]
|
| 465 |
+
: stage
|
| 466 |
+
: stage-proper stage-unversioned
|
| 467 |
+
;
|
| 468 |
+
|
| 469 |
+
p = [ project.current ] ;
|
| 470 |
+
$(p).mark-target-as-explicit install stage ;
|
| 471 |
+
|
| 472 |
+
# This target is built by default, and will forward to 'stage' after
|
| 473 |
+
# producing some explanations.
|
| 474 |
+
targets.create-metatarget top-level-target : [ project.current ]
|
| 475 |
+
: forward
|
| 476 |
+
: explain stage
|
| 477 |
+
;
|
| 478 |
+
}
|
| 479 |
+
|
| 480 |
+
|
| 481 |
+
stage-abs = [ path.native [ path.root $(stage-locate)/lib [ path.pwd ] ] ] ;
|
| 482 |
+
|
| 483 |
+
|
| 484 |
+
################################################################################
|
| 485 |
+
#
|
| 486 |
+
# 4. Add hook to report configuration before the build, and confirmation with
|
| 487 |
+
# setup instructions after the build.
|
| 488 |
+
#
|
| 489 |
+
################################################################################
|
| 490 |
+
|
| 491 |
+
message explain : "\nBuilding the Boost C++ Libraries.\n\n" ;
|
| 492 |
+
local p = [ project.current ] ;
|
| 493 |
+
$(p).mark-target-as-explicit explain ;
|
| 494 |
+
|
| 495 |
+
rule pre-build ( )
|
| 496 |
+
{
|
| 497 |
+
local tl = [ modules.peek : top-level-targets ] ;
|
| 498 |
+
if stage in $(tl) || install in $(tl)
|
| 499 |
+
{
|
| 500 |
+
# FIXME: Remove 'if' when Boost regression tests start using trunk bjam.
|
| 501 |
+
if PAD in [ RULENAMES ]
|
| 502 |
+
{
|
| 503 |
+
configure.print-component-configuration ;
|
| 504 |
+
}
|
| 505 |
+
}
|
| 506 |
+
}
|
| 507 |
+
IMPORT $(__name__) : pre-build : : $(__name__).pre-build ;
|
| 508 |
+
build-system.set-pre-build-hook $(__name__).pre-build ;
|
| 509 |
+
|
| 510 |
+
# FIXME: Revise stage_abs.
|
| 511 |
+
rule post-build ( ok ? )
|
| 512 |
+
{
|
| 513 |
+
if forward in [ modules.peek : top-level-targets ]
|
| 514 |
+
{
|
| 515 |
+
if $(ok)
|
| 516 |
+
{
|
| 517 |
+
local include-path = [ path.native $(BOOST_ROOT) ] ;
|
| 518 |
+
ECHO "
|
| 519 |
+
|
| 520 |
+
The Boost C++ Libraries were successfully built!
|
| 521 |
+
|
| 522 |
+
The following directory should be added to compiler include paths:
|
| 523 |
+
|
| 524 |
+
$(include-path)
|
| 525 |
+
|
| 526 |
+
The following directory should be added to linker library paths:
|
| 527 |
+
|
| 528 |
+
$(stage-abs)
|
| 529 |
+
" ;
|
| 530 |
+
}
|
| 531 |
+
}
|
| 532 |
+
}
|
| 533 |
+
IMPORT $(__name__) : post-build : : $(__name__).post-build ;
|
| 534 |
+
build-system.set-post-build-hook $(__name__).post-build ;
|
| 535 |
+
|
| 536 |
+
|
| 537 |
+
################################################################################
|
| 538 |
+
#
|
| 539 |
+
# 5. Top-level setup.
|
| 540 |
+
#
|
| 541 |
+
################################################################################
|
| 542 |
+
|
| 543 |
+
# Decides which libraries are to be installed by looking at --with-<library>
|
| 544 |
+
# --without-<library> arguments. Returns the list of directories under "libs"
|
| 545 |
+
# which must be built and installed.
|
| 546 |
+
#
|
| 547 |
+
rule libraries-to-install ( existing-libs * )
|
| 548 |
+
{
|
| 549 |
+
local argv = [ modules.peek : ARGV ] ;
|
| 550 |
+
local with-parameter = [ MATCH ^--with-(.*) : $(argv) ] ;
|
| 551 |
+
local without-parameter = [ MATCH ^--without-(.*) : $(argv) ] ;
|
| 552 |
+
|
| 553 |
+
if ! $(with-parameter) && ! $(without-parameter)
|
| 554 |
+
{
|
| 555 |
+
# Nothing is specified on command line. See if maybe project-config.jam
|
| 556 |
+
# has some choices.
|
| 557 |
+
local libs = [ modules.peek project-config : libraries ] ;
|
| 558 |
+
with-parameter = [ MATCH ^--with-(.*) : $(libs) ] ;
|
| 559 |
+
without-parameter = [ MATCH ^--without-(.*) : $(libs) ] ;
|
| 560 |
+
}
|
| 561 |
+
|
| 562 |
+
# Do some checks.
|
| 563 |
+
if $(with-parameter) && $(without-parameter)
|
| 564 |
+
{
|
| 565 |
+
EXIT error: both --with-<library> and --without-<library> specified ;
|
| 566 |
+
}
|
| 567 |
+
|
| 568 |
+
local wrong = [ set.difference $(with-parameter) : $(existing-libs) ] ;
|
| 569 |
+
if $(wrong)
|
| 570 |
+
{
|
| 571 |
+
EXIT error: wrong library name '$(wrong[1])' in the --with-<library>
|
| 572 |
+
option. ;
|
| 573 |
+
}
|
| 574 |
+
local wrong = [ set.difference $(without-parameter) : $(existing-libs) ] ;
|
| 575 |
+
if $(wrong)
|
| 576 |
+
{
|
| 577 |
+
EXIT error: wrong library name '$(wrong[1])' in the --without-<library>
|
| 578 |
+
option. ;
|
| 579 |
+
}
|
| 580 |
+
|
| 581 |
+
if $(with-parameter)
|
| 582 |
+
{
|
| 583 |
+
return [ set.intersection $(existing-libs) : $(with-parameter) ] ;
|
| 584 |
+
}
|
| 585 |
+
else
|
| 586 |
+
{
|
| 587 |
+
return [ set.difference $(existing-libs) : $(without-parameter) ] ;
|
| 588 |
+
}
|
| 589 |
+
}
|
| 590 |
+
|
| 591 |
+
rule declare-targets ( all-libraries * : headers * )
|
| 592 |
+
{
|
| 593 |
+
configure.register-components $(all-libraries) ;
|
| 594 |
+
|
| 595 |
+
# Select the libraries to install.
|
| 596 |
+
libraries = [ libraries-to-install $(all-libraries) ] ;
|
| 597 |
+
configure.components-building $(libraries) ;
|
| 598 |
+
|
| 599 |
+
if [ option.get "show-libraries" : : true ]
|
| 600 |
+
{
|
| 601 |
+
ECHO The following libraries require building: ;
|
| 602 |
+
for local l in $(libraries)
|
| 603 |
+
{
|
| 604 |
+
ECHO " - $(l)" ;
|
| 605 |
+
}
|
| 606 |
+
EXIT ;
|
| 607 |
+
}
|
| 608 |
+
|
| 609 |
+
declare_top_level_targets $(libraries) : $(headers) ;
|
| 610 |
+
}
|
| 611 |
+
|
| 612 |
+
# Returns the properties identifying the toolset. We'll use them
|
| 613 |
+
# below to configure checks. These are essentially same as in
|
| 614 |
+
# configure.builds, except we don't use address-model and
|
| 615 |
+
# architecture - as we're trying to detect them here.
|
| 616 |
+
#
|
| 617 |
+
rule toolset-properties ( properties * )
|
| 618 |
+
{
|
| 619 |
+
local toolset = [ property.select <toolset> : $(properties) ] ;
|
| 620 |
+
local toolset-version-property = "<toolset-$(toolset:G=):version>" ;
|
| 621 |
+
return [ property.select <target-os> <toolset> $(toolset-version-property) : $(properties) ] ;
|
| 622 |
+
}
|
| 623 |
+
|
| 624 |
+
feature.feature deduced-address-model : 32 64 : propagated optional composite hidden ;
|
| 625 |
+
feature.compose <deduced-address-model>32 : <address-model>32 ;
|
| 626 |
+
feature.compose <deduced-address-model>64 : <address-model>64 ;
|
| 627 |
+
|
| 628 |
+
rule deduce-address-model ( properties * )
|
| 629 |
+
{
|
| 630 |
+
local result ;
|
| 631 |
+
local filtered = [ toolset-properties $(properties) ] ;
|
| 632 |
+
|
| 633 |
+
if [ configure.builds /boost/architecture//32 : $(filtered) : 32-bit ]
|
| 634 |
+
{
|
| 635 |
+
result = 32 ;
|
| 636 |
+
}
|
| 637 |
+
else if [ configure.builds /boost/architecture//64 : $(filtered) : 64-bit ]
|
| 638 |
+
{
|
| 639 |
+
result = 64 ;
|
| 640 |
+
}
|
| 641 |
+
|
| 642 |
+
if $(result)
|
| 643 |
+
{
|
| 644 |
+
# Normally, returning composite feature here is equivalent to forcing
|
| 645 |
+
# consituent properties as well. But we only want to indicate toolset
|
| 646 |
+
# deduced default, so also pick whatever address-model is explicitly
|
| 647 |
+
# specified, if any.
|
| 648 |
+
result = <deduced-address-model>$(result) [ property.select <address-model> : $(properties) ] ;
|
| 649 |
+
}
|
| 650 |
+
return $(result) ;
|
| 651 |
+
}
|
| 652 |
+
|
| 653 |
+
rule address-model ( )
|
| 654 |
+
{
|
| 655 |
+
return <conditional>@boostcpp.deduce-address-model ;
|
| 656 |
+
}
|
| 657 |
+
|
| 658 |
+
local deducable-architectures = arm mips1 power sparc x86 combined ;
|
| 659 |
+
feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
|
| 660 |
+
for a in $(deducable-architectures)
|
| 661 |
+
{
|
| 662 |
+
feature.compose <deduced-architecture>$(a) : <architecture>$(a) ;
|
| 663 |
+
}
|
| 664 |
+
|
| 665 |
+
rule deduce-architecture ( properties * )
|
| 666 |
+
{
|
| 667 |
+
local result ;
|
| 668 |
+
local filtered = [ toolset-properties $(properties) ] ;
|
| 669 |
+
if [ configure.builds /boost/architecture//arm : $(filtered) : arm ]
|
| 670 |
+
{
|
| 671 |
+
result = arm ;
|
| 672 |
+
}
|
| 673 |
+
else if [ configure.builds /boost/architecture//mips1 : $(filtered) : mips1 ]
|
| 674 |
+
{
|
| 675 |
+
result = mips1 ;
|
| 676 |
+
}
|
| 677 |
+
else if [ configure.builds /boost/architecture//power : $(filtered) : power ]
|
| 678 |
+
{
|
| 679 |
+
result = power ;
|
| 680 |
+
}
|
| 681 |
+
else if [ configure.builds /boost/architecture//sparc : $(filtered) : sparc ]
|
| 682 |
+
{
|
| 683 |
+
result = sparc ;
|
| 684 |
+
}
|
| 685 |
+
else if [ configure.builds /boost/architecture//x86 : $(filtered) : x86 ]
|
| 686 |
+
{
|
| 687 |
+
result = x86 ;
|
| 688 |
+
}
|
| 689 |
+
else if [ configure.builds /boost/architecture//combined : $(filtered) : combined ]
|
| 690 |
+
{
|
| 691 |
+
result = combined ;
|
| 692 |
+
}
|
| 693 |
+
|
| 694 |
+
if $(result)
|
| 695 |
+
{
|
| 696 |
+
# See comment in deduce-address-model.
|
| 697 |
+
result = <deduced-architecture>$(result) [ property.select <architecture> : $(properties) ] ;
|
| 698 |
+
}
|
| 699 |
+
return $(result) ;
|
| 700 |
+
}
|
| 701 |
+
|
| 702 |
+
rule architecture ( )
|
| 703 |
+
{
|
| 704 |
+
return <conditional>@boostcpp.deduce-architecture ;
|
| 705 |
+
}
|
tools/boost_1_65_1/bootstrap.bat
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@ECHO OFF
|
| 2 |
+
|
| 3 |
+
REM Copyright (C) 2009 Vladimir Prus
|
| 4 |
+
REM
|
| 5 |
+
REM Distributed under the Boost Software License, Version 1.0.
|
| 6 |
+
REM (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
| 7 |
+
|
| 8 |
+
ECHO Building Boost.Build engine
|
| 9 |
+
if exist ".\tools\build\src\engine\bin.ntx86\b2.exe" del tools\build\src\engine\bin.ntx86\b2.exe
|
| 10 |
+
if exist ".\tools\build\src\engine\bin.ntx86\bjam.exe" del tools\build\src\engine\bin.ntx86\bjam.exe
|
| 11 |
+
if exist ".\tools\build\src\engine\bin.ntx86_64\b2.exe" del tools\build\src\engine\bin.ntx86_64\b2.exe
|
| 12 |
+
if exist ".\tools\build\src\engine\bin.ntx86_64\bjam.exe" del tools\build\src\engine\bin.ntx86_64\bjam.exe
|
| 13 |
+
pushd tools\build\src\engine
|
| 14 |
+
|
| 15 |
+
call .\build.bat %* > ..\..\..\..\bootstrap.log
|
| 16 |
+
@ECHO OFF
|
| 17 |
+
|
| 18 |
+
popd
|
| 19 |
+
|
| 20 |
+
if exist ".\tools\build\src\engine\bin.ntx86\bjam.exe" (
|
| 21 |
+
copy .\tools\build\src\engine\bin.ntx86\b2.exe . > nul
|
| 22 |
+
copy .\tools\build\src\engine\bin.ntx86\bjam.exe . > nul
|
| 23 |
+
goto :bjam_built)
|
| 24 |
+
|
| 25 |
+
if exist ".\tools\build\src\engine\bin.ntx86_64\bjam.exe" (
|
| 26 |
+
copy .\tools\build\src\engine\bin.ntx86_64\b2.exe . > nul
|
| 27 |
+
copy .\tools\build\src\engine\bin.ntx86_64\bjam.exe . > nul
|
| 28 |
+
goto :bjam_built)
|
| 29 |
+
|
| 30 |
+
goto :bjam_failure
|
| 31 |
+
|
| 32 |
+
:bjam_built
|
| 33 |
+
|
| 34 |
+
REM Ideally, we should obtain the toolset that build.bat has
|
| 35 |
+
REM guessed. However, it uses setlocal at the start and does not
|
| 36 |
+
REM export BOOST_JAM_TOOLSET, and I don't know how to do that
|
| 37 |
+
REM properly. Default to msvc for now.
|
| 38 |
+
set toolset=msvc
|
| 39 |
+
|
| 40 |
+
ECHO import option ; > project-config.jam
|
| 41 |
+
ECHO. >> project-config.jam
|
| 42 |
+
ECHO using %toolset% ; >> project-config.jam
|
| 43 |
+
ECHO. >> project-config.jam
|
| 44 |
+
ECHO option.set keep-going : false ; >> project-config.jam
|
| 45 |
+
ECHO. >> project-config.jam
|
| 46 |
+
|
| 47 |
+
ECHO.
|
| 48 |
+
ECHO Bootstrapping is done. To build, run:
|
| 49 |
+
ECHO.
|
| 50 |
+
ECHO .\b2
|
| 51 |
+
ECHO.
|
| 52 |
+
ECHO To adjust configuration, edit 'project-config.jam'.
|
| 53 |
+
ECHO Further information:
|
| 54 |
+
ECHO.
|
| 55 |
+
ECHO - Command line help:
|
| 56 |
+
ECHO .\b2 --help
|
| 57 |
+
ECHO.
|
| 58 |
+
ECHO - Getting started guide:
|
| 59 |
+
ECHO http://boost.org/more/getting_started/windows.html
|
| 60 |
+
ECHO.
|
| 61 |
+
ECHO - Boost.Build documentation:
|
| 62 |
+
ECHO http://www.boost.org/build/doc/html/index.html
|
| 63 |
+
|
| 64 |
+
goto :end
|
| 65 |
+
|
| 66 |
+
:bjam_failure
|
| 67 |
+
|
| 68 |
+
ECHO.
|
| 69 |
+
ECHO Failed to build Boost.Build engine.
|
| 70 |
+
ECHO Please consult bootstrap.log for further diagnostics.
|
| 71 |
+
ECHO.
|
| 72 |
+
ECHO You can try to obtain a prebuilt binary from
|
| 73 |
+
ECHO.
|
| 74 |
+
ECHO http://sf.net/project/showfiles.php?group_id=7586^&package_id=72941
|
| 75 |
+
ECHO.
|
| 76 |
+
ECHO Also, you can file an issue at http://svn.boost.org
|
| 77 |
+
ECHO Please attach bootstrap.log in that case.
|
| 78 |
+
|
| 79 |
+
goto :end
|
| 80 |
+
|
| 81 |
+
:end
|
tools/boost_1_65_1/bootstrap.log
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
###
|
| 2 |
+
### Using 'gcc' toolset.
|
| 3 |
+
###
|
| 4 |
+
rm -rf bootstrap
|
| 5 |
+
mkdir bootstrap
|
| 6 |
+
gcc -o bootstrap/jam0 command.c compile.c constants.c debug.c execcmd.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c class.c cwd.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c pathunix.c
|
| 7 |
+
execcmd.c: In function ‘onintr’:
|
| 8 |
+
execcmd.c:120:5: warning: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
|
| 9 |
+
120 | out_printf( "...interrupted\n" );
|
| 10 |
+
| ^~~~~~~~~~
|
| 11 |
+
jam.c: In function ‘main’:
|
| 12 |
+
jam.c:669:5: warning: implicit declaration of function ‘exec_done’; did you mean ‘regex_done’? [-Wimplicit-function-declaration]
|
| 13 |
+
669 | exec_done();
|
| 14 |
+
| ^~~~~~~~~
|
| 15 |
+
| regex_done
|
| 16 |
+
make.c: In function ‘make’:
|
| 17 |
+
make.c:105:5: warning: implicit declaration of function ‘exec_init’ [-Wimplicit-function-declaration]
|
| 18 |
+
105 | exec_init();
|
| 19 |
+
| ^~~~~~~~~
|
| 20 |
+
make.c:136:13: warning: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
|
| 21 |
+
136 | out_printf( "...found %d target%s...\n", counts->targets,
|
| 22 |
+
| ^~~~~~~~~~
|
| 23 |
+
make.c: In function ‘make0’:
|
| 24 |
+
make.c:739:13: warning: implicit declaration of function ‘out_flush’ [-Wimplicit-function-declaration]
|
| 25 |
+
739 | out_flush();
|
| 26 |
+
| ^~~~~~~~~
|
| 27 |
+
filesys.c: In function ‘file_archivescan_impl’:
|
| 28 |
+
filesys.c:360:10: warning: implicit declaration of function ‘filelist_empty’; did you mean ‘filelist_next’? [-Wimplicit-function-declaration]
|
| 29 |
+
360 | if ( filelist_empty( archive->members ) )
|
| 30 |
+
| ^~~~~~~~~~~~~~
|
| 31 |
+
| filelist_next
|
| 32 |
+
modules/path.c: In function ‘path_exists’:
|
| 33 |
+
modules/path.c:16:12: warning: implicit declaration of function ‘file_query’ [-Wimplicit-function-declaration]
|
| 34 |
+
16 | return file_query( list_front( lol_get( frame->args, 0 ) ) ) ?
|
| 35 |
+
| ^~~~~~~~~~
|
| 36 |
+
fileunix.c: In function ‘file_archscan’:
|
| 37 |
+
fileunix.c:236:10: warning: implicit declaration of function ‘filelist_empty’; did you mean ‘filelist_next’? [-Wimplicit-function-declaration]
|
| 38 |
+
236 | if ( filelist_empty( archive->members ) )
|
| 39 |
+
| ^~~~~~~~~~~~~~
|
| 40 |
+
| filelist_next
|
| 41 |
+
fileunix.c:238:14: warning: implicit declaration of function ‘file_collect_archive_content_’; did you mean ‘file_collect_dir_content_’? [-Wimplicit-function-declaration]
|
| 42 |
+
238 | if ( file_collect_archive_content_( archive ) < 0 )
|
| 43 |
+
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 44 |
+
| file_collect_dir_content_
|
| 45 |
+
./bootstrap/jam0 -f build.jam --toolset=gcc --toolset-root= clean
|
| 46 |
+
...found 1 target...
|
| 47 |
+
...updating 1 target...
|
| 48 |
+
...updated 1 target...
|
| 49 |
+
./bootstrap/jam0 -f build.jam --toolset=gcc --toolset-root=
|
| 50 |
+
...found 160 targets...
|
| 51 |
+
...updating 3 targets...
|
| 52 |
+
[MKDIR] bin.linuxx86_64
|
| 53 |
+
[COMPILE] bin.linuxx86_64/b2
|
| 54 |
+
debugger.c: In function ‘debug_print_frame’:
|
| 55 |
+
debugger.c:402:17: warning: too many arguments for format [-Wformat-extra-args]
|
| 56 |
+
402 | printf( "( ", frame->rulename );
|
| 57 |
+
| ^~~~
|
| 58 |
+
debugger.c: In function ‘debug_print_frame_info’:
|
| 59 |
+
debugger.c:431:17: warning: too many arguments for format [-Wformat-extra-args]
|
| 60 |
+
431 | printf( "( ", frame->rulename );
|
| 61 |
+
| ^~~~
|
| 62 |
+
debugger.c: In function ‘debug_start_child’:
|
| 63 |
+
debugger.c:1180:5: warning: implicit declaration of function ‘pipe’ [-Wimplicit-function-declaration]
|
| 64 |
+
1180 | pipe(pipe1);
|
| 65 |
+
| ^~~~
|
| 66 |
+
debugger.c:1182:11: warning: implicit declaration of function ‘fork’ [-Wimplicit-function-declaration]
|
| 67 |
+
1182 | pid = fork();
|
| 68 |
+
| ^~~~
|
| 69 |
+
debugger.c:1186:9: warning: implicit declaration of function ‘close’; did you mean ‘pclose’? [-Wimplicit-function-declaration]
|
| 70 |
+
1186 | close( pipe1[ 0 ] );
|
| 71 |
+
| ^~~~~
|
| 72 |
+
| pclose
|
| 73 |
+
debugger.c: In function ‘debug_mi_format_breakpoint’:
|
| 74 |
+
debugger.c:1776:13: warning: zero-length gnu_printf format string [-Wformat-zero-length]
|
| 75 |
+
1776 | printf( "" );
|
| 76 |
+
| ^~
|
| 77 |
+
debugger.c: In function ‘run_command’:
|
| 78 |
+
debugger.c:2627:12: warning: implicit declaration of function ‘isdigit’ [-Wimplicit-function-declaration]
|
| 79 |
+
2627 | while( isdigit( *command_name ) ) ++command_name;
|
| 80 |
+
| ^~~~~~~
|
| 81 |
+
debugger.c: In function ‘process_command’:
|
| 82 |
+
debugger.c:2654:26: warning: implicit declaration of function ‘isspace’ [-Wimplicit-function-declaration]
|
| 83 |
+
2654 | while ( *iter && isspace( *iter ) )
|
| 84 |
+
| ^~~~~~~
|
| 85 |
+
debugger.c: In function ‘debug_list_read’:
|
| 86 |
+
debugger.c:163:5: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
|
| 87 |
+
163 | fscanf( in, "%d", &len );
|
| 88 |
+
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
| 89 |
+
execcmd.c: In function ‘onintr’:
|
| 90 |
+
execcmd.c:120:5: warning: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
|
| 91 |
+
120 | out_printf( "...interrupted\n" );
|
| 92 |
+
| ^~~~~~~~~~
|
| 93 |
+
execcmd.c: In function ‘argv_from_shell’:
|
| 94 |
+
execcmd.c:54:22: warning: ‘%d’ directive writing between 1 and 11 bytes into a region of size 4 [-Wformat-overflow=]
|
| 95 |
+
54 | sprintf( jobno, "%d", slot + 1 );
|
| 96 |
+
| ^~
|
| 97 |
+
execcmd.c:54:21: note: directive argument in the range [-2147483647, 2147483647]
|
| 98 |
+
54 | sprintf( jobno, "%d", slot + 1 );
|
| 99 |
+
| ^~~~
|
| 100 |
+
In file included from /usr/include/stdio.h:867,
|
| 101 |
+
from jam.h:340,
|
| 102 |
+
from execcmd.c:11:
|
| 103 |
+
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 2 and 12 bytes into a destination of size 4
|
| 104 |
+
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
|
| 105 |
+
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 106 |
+
37 | __bos (__s), __fmt, __va_arg_pack ());
|
| 107 |
+
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 108 |
+
jam.c: In function ‘main’:
|
| 109 |
+
jam.c:669:5: warning: implicit declaration of function ‘exec_done’; did you mean ‘regex_done’? [-Wimplicit-function-declaration]
|
| 110 |
+
669 | exec_done();
|
| 111 |
+
| ^~~~~~~~~
|
| 112 |
+
| regex_done
|
| 113 |
+
make.c: In function ‘make’:
|
| 114 |
+
make.c:105:5: warning: implicit declaration of function ‘exec_init’ [-Wimplicit-function-declaration]
|
| 115 |
+
105 | exec_init();
|
| 116 |
+
| ^~~~~~~~~
|
| 117 |
+
make.c:136:13: warning: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
|
| 118 |
+
136 | out_printf( "...found %d target%s...\n", counts->targets,
|
| 119 |
+
| ^~~~~~~~~~
|
| 120 |
+
filesys.c: In function ‘file_archivescan_impl’:
|
| 121 |
+
filesys.c:360:10: warning: implicit declaration of function ‘filelist_empty’; did you mean ‘filelist_next’? [-Wimplicit-function-declaration]
|
| 122 |
+
360 | if ( filelist_empty( archive->members ) )
|
| 123 |
+
| ^~~~~~~~~~~~~~
|
| 124 |
+
| filelist_next
|
| 125 |
+
modules/path.c: In function ‘path_exists’:
|
| 126 |
+
modules/path.c:16:12: warning: implicit declaration of function ‘file_query’ [-Wimplicit-function-declaration]
|
| 127 |
+
16 | return file_query( list_front( lol_get( frame->args, 0 ) ) ) ?
|
| 128 |
+
| ^~~~~~~~~~
|
| 129 |
+
fileunix.c: In function ‘file_archscan’:
|
| 130 |
+
fileunix.c:236:10: warning: implicit declaration of function ‘filelist_empty’; did you mean ‘filelist_next’? [-Wimplicit-function-declaration]
|
| 131 |
+
236 | if ( filelist_empty( archive->members ) )
|
| 132 |
+
| ^~~~~~~~~~~~~~
|
| 133 |
+
| filelist_next
|
| 134 |
+
fileunix.c:238:14: warning: implicit declaration of function ‘file_collect_archive_content_’; did you mean ‘file_collect_dir_content_’? [-Wimplicit-function-declaration]
|
| 135 |
+
238 | if ( file_collect_archive_content_( archive ) < 0 )
|
| 136 |
+
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 137 |
+
| file_collect_dir_content_
|
| 138 |
+
[COPY] bin.linuxx86_64/bjam
|
| 139 |
+
...updated 3 targets...
|
tools/boost_1_65_1/bootstrap.sh
ADDED
|
@@ -0,0 +1,409 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/sh
|
| 2 |
+
# Copyright (C) 2005, 2006 Douglas Gregor.
|
| 3 |
+
# Copyright (C) 2006 The Trustees of Indiana University
|
| 4 |
+
#
|
| 5 |
+
# Distributed under the Boost Software License, Version 1.0.
|
| 6 |
+
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
| 7 |
+
|
| 8 |
+
# boostinspect:notab - Tabs are required for the Makefile.
|
| 9 |
+
|
| 10 |
+
BJAM=""
|
| 11 |
+
TOOLSET=""
|
| 12 |
+
BJAM_CONFIG=""
|
| 13 |
+
BUILD=""
|
| 14 |
+
PREFIX=/usr/local
|
| 15 |
+
EPREFIX=
|
| 16 |
+
LIBDIR=
|
| 17 |
+
INCLUDEDIR=
|
| 18 |
+
LIBS=""
|
| 19 |
+
PYTHON=python
|
| 20 |
+
PYTHON_VERSION=
|
| 21 |
+
PYTHON_ROOT=
|
| 22 |
+
ICU_ROOT=
|
| 23 |
+
|
| 24 |
+
# Handle case where builtin shell version of echo command doesn't
|
| 25 |
+
# support -n. Use the installed echo executable if there is one
|
| 26 |
+
# rather than builtin version to ensure -n is supported.
|
| 27 |
+
ECHO=`which echo`
|
| 28 |
+
if test "x$ECHO" = x; then
|
| 29 |
+
ECHO=echo
|
| 30 |
+
fi
|
| 31 |
+
|
| 32 |
+
# Internal flags
|
| 33 |
+
flag_no_python=
|
| 34 |
+
flag_icu=
|
| 35 |
+
flag_show_libraries=
|
| 36 |
+
|
| 37 |
+
for option
|
| 38 |
+
do
|
| 39 |
+
case $option in
|
| 40 |
+
|
| 41 |
+
-help | --help | -h)
|
| 42 |
+
want_help=yes ;;
|
| 43 |
+
|
| 44 |
+
-prefix=* | --prefix=*)
|
| 45 |
+
PREFIX=`expr "x$option" : "x-*prefix=\(.*\)"`
|
| 46 |
+
;;
|
| 47 |
+
|
| 48 |
+
-exec-prefix=* | --exec-prefix=*)
|
| 49 |
+
EPREFIX=`expr "x$option" : "x-*exec-prefix=\(.*\)"`
|
| 50 |
+
;;
|
| 51 |
+
|
| 52 |
+
-libdir=* | --libdir=*)
|
| 53 |
+
LIBDIR=`expr "x$option" : "x-*libdir=\(.*\)"`
|
| 54 |
+
;;
|
| 55 |
+
|
| 56 |
+
-includedir=* | --includedir=*)
|
| 57 |
+
INCLUDEDIR=`expr "x$option" : "x-*includedir=\(.*\)"`
|
| 58 |
+
;;
|
| 59 |
+
|
| 60 |
+
-show-libraries | --show-libraries )
|
| 61 |
+
flag_show_libraries=yes
|
| 62 |
+
;;
|
| 63 |
+
|
| 64 |
+
-with-bjam=* | --with-bjam=* )
|
| 65 |
+
BJAM=`expr "x$option" : "x-*with-bjam=\(.*\)"`
|
| 66 |
+
;;
|
| 67 |
+
|
| 68 |
+
-with-icu | --with-icu )
|
| 69 |
+
flag_icu=yes
|
| 70 |
+
;;
|
| 71 |
+
|
| 72 |
+
-with-icu=* | --with-icu=* )
|
| 73 |
+
flag_icu=yes
|
| 74 |
+
ICU_ROOT=`expr "x$option" : "x-*with-icu=\(.*\)"`
|
| 75 |
+
;;
|
| 76 |
+
|
| 77 |
+
-without-icu | --without-icu )
|
| 78 |
+
flag_icu=no
|
| 79 |
+
;;
|
| 80 |
+
|
| 81 |
+
-with-libraries=* | --with-libraries=* )
|
| 82 |
+
library_list=`expr "x$option" : "x-*with-libraries=\(.*\)"`
|
| 83 |
+
if test "$library_list" != "all"; then
|
| 84 |
+
old_IFS=$IFS
|
| 85 |
+
IFS=,
|
| 86 |
+
for library in $library_list
|
| 87 |
+
do
|
| 88 |
+
LIBS="$LIBS --with-$library"
|
| 89 |
+
|
| 90 |
+
if test $library = python; then
|
| 91 |
+
requested_python=yes
|
| 92 |
+
fi
|
| 93 |
+
done
|
| 94 |
+
IFS=$old_IFS
|
| 95 |
+
|
| 96 |
+
if test "x$requested_python" != xyes; then
|
| 97 |
+
flag_no_python=yes
|
| 98 |
+
fi
|
| 99 |
+
fi
|
| 100 |
+
;;
|
| 101 |
+
|
| 102 |
+
-without-libraries=* | --without-libraries=* )
|
| 103 |
+
library_list=`expr "x$option" : "x-*without-libraries=\(.*\)"`
|
| 104 |
+
old_IFS=$IFS
|
| 105 |
+
IFS=,
|
| 106 |
+
for library in $library_list
|
| 107 |
+
do
|
| 108 |
+
LIBS="$LIBS --without-$library"
|
| 109 |
+
|
| 110 |
+
if test $library = python; then
|
| 111 |
+
flag_no_python=yes
|
| 112 |
+
fi
|
| 113 |
+
done
|
| 114 |
+
IFS=$old_IFS
|
| 115 |
+
;;
|
| 116 |
+
|
| 117 |
+
-with-python=* | --with-python=* )
|
| 118 |
+
PYTHON=`expr "x$option" : "x-*with-python=\(.*\)"`
|
| 119 |
+
;;
|
| 120 |
+
|
| 121 |
+
-with-python-root=* | --with-python-root=* )
|
| 122 |
+
PYTHON_ROOT=`expr "x$option" : "x-*with-python-root=\(.*\)"`
|
| 123 |
+
;;
|
| 124 |
+
|
| 125 |
+
-with-python-version=* | --with-python-version=* )
|
| 126 |
+
PYTHON_VERSION=`expr "x$option" : "x-*with-python-version=\(.*\)"`
|
| 127 |
+
;;
|
| 128 |
+
|
| 129 |
+
-with-toolset=* | --with-toolset=* )
|
| 130 |
+
TOOLSET=`expr "x$option" : "x-*with-toolset=\(.*\)"`
|
| 131 |
+
;;
|
| 132 |
+
|
| 133 |
+
-*)
|
| 134 |
+
{ echo "error: unrecognized option: $option
|
| 135 |
+
Try \`$0 --help' for more information." >&2
|
| 136 |
+
{ (exit 1); exit 1; }; }
|
| 137 |
+
;;
|
| 138 |
+
|
| 139 |
+
esac
|
| 140 |
+
done
|
| 141 |
+
|
| 142 |
+
if test "x$want_help" = xyes; then
|
| 143 |
+
cat <<EOF
|
| 144 |
+
\`./bootstrap.sh' prepares Boost for building on a few kinds of systems.
|
| 145 |
+
|
| 146 |
+
Usage: $0 [OPTION]...
|
| 147 |
+
|
| 148 |
+
Defaults for the options are specified in brackets.
|
| 149 |
+
|
| 150 |
+
Configuration:
|
| 151 |
+
-h, --help display this help and exit
|
| 152 |
+
--with-bjam=BJAM use existing Boost.Jam executable (bjam)
|
| 153 |
+
[automatically built]
|
| 154 |
+
--with-toolset=TOOLSET use specific Boost.Build toolset
|
| 155 |
+
[automatically detected]
|
| 156 |
+
--show-libraries show the set of libraries that require build
|
| 157 |
+
and installation steps (i.e., those libraries
|
| 158 |
+
that can be used with --with-libraries or
|
| 159 |
+
--without-libraries), then exit
|
| 160 |
+
--with-libraries=list build only a particular set of libraries,
|
| 161 |
+
describing using either a comma-separated list of
|
| 162 |
+
library names or "all"
|
| 163 |
+
[all]
|
| 164 |
+
--without-libraries=list build all libraries except the ones listed []
|
| 165 |
+
--with-icu enable Unicode/ICU support in Regex
|
| 166 |
+
[automatically detected]
|
| 167 |
+
--without-icu disable Unicode/ICU support in Regex
|
| 168 |
+
--with-icu=DIR specify the root of the ICU library installation
|
| 169 |
+
and enable Unicode/ICU support in Regex
|
| 170 |
+
[automatically detected]
|
| 171 |
+
--with-python=PYTHON specify the Python executable [python]
|
| 172 |
+
--with-python-root=DIR specify the root of the Python installation
|
| 173 |
+
[automatically detected]
|
| 174 |
+
--with-python-version=X.Y specify the Python version as X.Y
|
| 175 |
+
[automatically detected]
|
| 176 |
+
|
| 177 |
+
Installation directories:
|
| 178 |
+
--prefix=PREFIX install Boost into the given PREFIX
|
| 179 |
+
[/usr/local]
|
| 180 |
+
--exec-prefix=EPREFIX install Boost binaries into the given EPREFIX
|
| 181 |
+
[PREFIX]
|
| 182 |
+
|
| 183 |
+
More precise control over installation directories:
|
| 184 |
+
--libdir=DIR install libraries here [EPREFIX/lib]
|
| 185 |
+
--includedir=DIR install headers here [PREFIX/include]
|
| 186 |
+
|
| 187 |
+
EOF
|
| 188 |
+
fi
|
| 189 |
+
test -n "$want_help" && exit 0
|
| 190 |
+
|
| 191 |
+
# TBD: Determine where the script is located
|
| 192 |
+
my_dir="."
|
| 193 |
+
|
| 194 |
+
# Determine the toolset, if not already decided
|
| 195 |
+
if test "x$TOOLSET" = x; then
|
| 196 |
+
guessed_toolset=`$my_dir/tools/build/src/engine/build.sh --guess-toolset`
|
| 197 |
+
case $guessed_toolset in
|
| 198 |
+
acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
|
| 199 |
+
TOOLSET=$guessed_toolset
|
| 200 |
+
;;
|
| 201 |
+
|
| 202 |
+
intel-* )
|
| 203 |
+
TOOLSET=intel
|
| 204 |
+
;;
|
| 205 |
+
|
| 206 |
+
mingw )
|
| 207 |
+
TOOLSET=gcc
|
| 208 |
+
;;
|
| 209 |
+
|
| 210 |
+
sun* )
|
| 211 |
+
TOOLSET=sun
|
| 212 |
+
;;
|
| 213 |
+
|
| 214 |
+
* )
|
| 215 |
+
# Not supported by Boost.Build
|
| 216 |
+
;;
|
| 217 |
+
esac
|
| 218 |
+
fi
|
| 219 |
+
|
| 220 |
+
rm -f config.log
|
| 221 |
+
|
| 222 |
+
# Build bjam
|
| 223 |
+
if test "x$BJAM" = x; then
|
| 224 |
+
$ECHO -n "Building Boost.Build engine with toolset $TOOLSET... "
|
| 225 |
+
pwd=`pwd`
|
| 226 |
+
(cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
|
| 227 |
+
if [ $? -ne 0 ]; then
|
| 228 |
+
echo
|
| 229 |
+
echo "Failed to build Boost.Build build engine"
|
| 230 |
+
echo "Consult 'bootstrap.log' for more details"
|
| 231 |
+
exit 1
|
| 232 |
+
fi
|
| 233 |
+
cd "$pwd"
|
| 234 |
+
arch=`cd $my_dir/tools/build/src/engine && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
|
| 235 |
+
BJAM="$my_dir/tools/build/src/engine/$arch/b2"
|
| 236 |
+
echo "tools/build/src/engine/$arch/b2"
|
| 237 |
+
cp "$BJAM" .
|
| 238 |
+
cp "$my_dir/tools/build/src/engine/$arch/bjam" .
|
| 239 |
+
|
| 240 |
+
fi
|
| 241 |
+
|
| 242 |
+
# TBD: Turn BJAM into an absolute path
|
| 243 |
+
|
| 244 |
+
# If there is a list of libraries
|
| 245 |
+
if test "x$flag_show_libraries" = xyes; then
|
| 246 |
+
cat <<EOF
|
| 247 |
+
|
| 248 |
+
The following Boost libraries have portions that require a separate build
|
| 249 |
+
and installation step. Any library not listed here can be used by including
|
| 250 |
+
the headers only.
|
| 251 |
+
|
| 252 |
+
The Boost libraries requiring separate building and installation are:
|
| 253 |
+
EOF
|
| 254 |
+
$BJAM -d0 --show-libraries | grep '^[[:space:]]*-'
|
| 255 |
+
exit 0
|
| 256 |
+
fi
|
| 257 |
+
|
| 258 |
+
# Setup paths
|
| 259 |
+
if test "x$EPREFIX" = x; then
|
| 260 |
+
EPREFIX="$PREFIX"
|
| 261 |
+
fi
|
| 262 |
+
|
| 263 |
+
if test "x$LIBDIR" = x; then
|
| 264 |
+
LIBDIR="$EPREFIX/lib"
|
| 265 |
+
fi
|
| 266 |
+
|
| 267 |
+
if test "x$INCLUDEDIR" = x; then
|
| 268 |
+
INCLUDEDIR="$PREFIX/include"
|
| 269 |
+
fi
|
| 270 |
+
|
| 271 |
+
# Find Python
|
| 272 |
+
if test "x$flag_no_python" = x; then
|
| 273 |
+
result=`$PYTHON -c "exit" > /dev/null 2>&1`
|
| 274 |
+
if [ "$?" -ne "0" ]; then
|
| 275 |
+
flag_no_python=yes
|
| 276 |
+
fi
|
| 277 |
+
fi
|
| 278 |
+
|
| 279 |
+
if test "x$flag_no_python" = x; then
|
| 280 |
+
if test "x$PYTHON_VERSION" = x; then
|
| 281 |
+
$ECHO -n "Detecting Python version... "
|
| 282 |
+
PYTHON_VERSION=`$PYTHON -c "import sys; print (\"%d.%d\" % (sys.version_info[0], sys.version_info[1]))"`
|
| 283 |
+
echo $PYTHON_VERSION
|
| 284 |
+
fi
|
| 285 |
+
|
| 286 |
+
if test "x$PYTHON_ROOT" = x; then
|
| 287 |
+
$ECHO -n "Detecting Python root... "
|
| 288 |
+
PYTHON_ROOT=`$PYTHON -c "import sys; print(sys.prefix)"`
|
| 289 |
+
echo $PYTHON_ROOT
|
| 290 |
+
fi
|
| 291 |
+
fi
|
| 292 |
+
|
| 293 |
+
# Configure ICU
|
| 294 |
+
$ECHO -n "Unicode/ICU support for Boost.Regex?... "
|
| 295 |
+
if test "x$flag_icu" != xno; then
|
| 296 |
+
if test "x$ICU_ROOT" = x; then
|
| 297 |
+
COMMON_ICU_PATHS="/usr /usr/local /sw"
|
| 298 |
+
for p in $COMMON_ICU_PATHS; do
|
| 299 |
+
if test -r $p/include/unicode/utypes.h; then
|
| 300 |
+
ICU_ROOT=$p
|
| 301 |
+
fi
|
| 302 |
+
done
|
| 303 |
+
|
| 304 |
+
if test "x$ICU_ROOT" = x; then
|
| 305 |
+
echo "not found."
|
| 306 |
+
else
|
| 307 |
+
BJAM_CONFIG="$BJAM_CONFIG -sICU_PATH=$ICU_ROOT"
|
| 308 |
+
echo "$ICU_ROOT"
|
| 309 |
+
fi
|
| 310 |
+
else
|
| 311 |
+
BJAM_CONFIG="$BJAM_CONFIG -sICU_PATH=$ICU_ROOT"
|
| 312 |
+
echo "$ICU_ROOT"
|
| 313 |
+
fi
|
| 314 |
+
else
|
| 315 |
+
echo "disabled."
|
| 316 |
+
fi
|
| 317 |
+
|
| 318 |
+
# Backup the user's existing project-config.jam
|
| 319 |
+
JAM_CONFIG_OUT="project-config.jam"
|
| 320 |
+
if test -r "project-config.jam"; then
|
| 321 |
+
counter=1
|
| 322 |
+
|
| 323 |
+
while test -r "project-config.jam.$counter"; do
|
| 324 |
+
counter=`expr $counter + 1`
|
| 325 |
+
done
|
| 326 |
+
|
| 327 |
+
echo "Backing up existing Boost.Build configuration in project-config.jam.$counter"
|
| 328 |
+
mv "project-config.jam" "project-config.jam.$counter"
|
| 329 |
+
fi
|
| 330 |
+
|
| 331 |
+
# Generate user-config.jam
|
| 332 |
+
echo "Generating Boost.Build configuration in project-config.jam..."
|
| 333 |
+
cat > project-config.jam <<EOF
|
| 334 |
+
# Boost.Build Configuration
|
| 335 |
+
# Automatically generated by bootstrap.sh
|
| 336 |
+
|
| 337 |
+
import option ;
|
| 338 |
+
import feature ;
|
| 339 |
+
|
| 340 |
+
# Compiler configuration. This definition will be used unless
|
| 341 |
+
# you already have defined some toolsets in your user-config.jam
|
| 342 |
+
# file.
|
| 343 |
+
if ! $TOOLSET in [ feature.values <toolset> ]
|
| 344 |
+
{
|
| 345 |
+
using $TOOLSET ;
|
| 346 |
+
}
|
| 347 |
+
|
| 348 |
+
project : default-build <toolset>$TOOLSET ;
|
| 349 |
+
EOF
|
| 350 |
+
|
| 351 |
+
# - Python configuration
|
| 352 |
+
if test "x$flag_no_python" = x; then
|
| 353 |
+
cat >> project-config.jam <<EOF
|
| 354 |
+
|
| 355 |
+
# Python configuration
|
| 356 |
+
import python ;
|
| 357 |
+
if ! [ python.configured ]
|
| 358 |
+
{
|
| 359 |
+
using python : $PYTHON_VERSION : $PYTHON_ROOT ;
|
| 360 |
+
}
|
| 361 |
+
EOF
|
| 362 |
+
fi
|
| 363 |
+
|
| 364 |
+
if test "x$ICU_ROOT" != x; then
|
| 365 |
+
cat >> project-config.jam << EOF
|
| 366 |
+
|
| 367 |
+
path-constant ICU_PATH : $ICU_ROOT ;
|
| 368 |
+
|
| 369 |
+
EOF
|
| 370 |
+
fi
|
| 371 |
+
|
| 372 |
+
cat >> project-config.jam << EOF
|
| 373 |
+
|
| 374 |
+
# List of --with-<library> and --without-<library>
|
| 375 |
+
# options. If left empty, all libraries will be built.
|
| 376 |
+
# Options specified on the command line completely
|
| 377 |
+
# override this variable.
|
| 378 |
+
libraries = $LIBS ;
|
| 379 |
+
|
| 380 |
+
# These settings are equivivalent to corresponding command-line
|
| 381 |
+
# options.
|
| 382 |
+
option.set prefix : $PREFIX ;
|
| 383 |
+
option.set exec-prefix : $EPREFIX ;
|
| 384 |
+
option.set libdir : $LIBDIR ;
|
| 385 |
+
option.set includedir : $INCLUDEDIR ;
|
| 386 |
+
|
| 387 |
+
# Stop on first error
|
| 388 |
+
option.set keep-going : false ;
|
| 389 |
+
EOF
|
| 390 |
+
|
| 391 |
+
cat << EOF
|
| 392 |
+
|
| 393 |
+
Bootstrapping is done. To build, run:
|
| 394 |
+
|
| 395 |
+
./b2
|
| 396 |
+
|
| 397 |
+
To adjust configuration, edit 'project-config.jam'.
|
| 398 |
+
Further information:
|
| 399 |
+
|
| 400 |
+
- Command line help:
|
| 401 |
+
./b2 --help
|
| 402 |
+
|
| 403 |
+
- Getting started guide:
|
| 404 |
+
http://www.boost.org/more/getting_started/unix-variants.html
|
| 405 |
+
|
| 406 |
+
- Boost.Build documentation:
|
| 407 |
+
http://www.boost.org/build/doc/html/index.html
|
| 408 |
+
|
| 409 |
+
EOF
|
tools/boost_1_65_1/index.htm
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
| 2 |
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
| 3 |
+
|
| 4 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
| 5 |
+
<head>
|
| 6 |
+
<meta http-equiv="refresh" content="0; URL=index.html" />
|
| 7 |
+
|
| 8 |
+
<title></title>
|
| 9 |
+
<link rel="stylesheet" href="doc/src/boostbook.css" type="text/css" />
|
| 10 |
+
</head>
|
| 11 |
+
|
| 12 |
+
<body>
|
| 13 |
+
Automatic redirection failed, please go to <a href=
|
| 14 |
+
"index.html">index.html</a>.
|
| 15 |
+
|
| 16 |
+
<div class="copyright-footer">
|
| 17 |
+
<p>Copyright 2008 Rene Rivera</p>
|
| 18 |
+
|
| 19 |
+
<p>Distributed under the Boost Software License, Version 1.0. (See
|
| 20 |
+
accompanying file <a href="LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy
|
| 21 |
+
at <a href=
|
| 22 |
+
"http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
|
| 23 |
+
</div>
|
| 24 |
+
</body>
|
| 25 |
+
</html>
|
tools/boost_1_65_1/index.html
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
| 2 |
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
| 3 |
+
|
| 4 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
| 5 |
+
<head>
|
| 6 |
+
<title>Boost C++ Libraries</title>
|
| 7 |
+
<link rel="stylesheet" href="doc/src/boostbook.css" type="text/css" />
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<body>
|
| 11 |
+
<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
|
| 12 |
+
<tr>
|
| 13 |
+
<td width="277">
|
| 14 |
+
<a href="index.html">
|
| 15 |
+
<img src="boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"/></a></td>
|
| 16 |
+
<td width="337" align="middle">
|
| 17 |
+
<h2 style="text-align: center">
|
| 18 |
+
|
| 19 |
+
Release 1.65.1
|
| 20 |
+
</h2>
|
| 21 |
+
</td>
|
| 22 |
+
</tr>
|
| 23 |
+
</table>
|
| 24 |
+
|
| 25 |
+
<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" height="26" width="671">
|
| 26 |
+
<tr>
|
| 27 |
+
<td height="16" width="661"><a href="more/getting_started/index.html">Getting Started</a> <font color="#FFFFFF">
|
| 28 |
+
</font> <a href="libs/libraries.htm">Libraries</a> <font color="#FFFFFF">
|
| 29 |
+
</font> <a href="tools/index.html">Tools </a> <font color="#FFFFFF">
|
| 30 |
+
</font> <a href="http://www.boost.org">Web Site</a> <font color="#FFFFFF">
|
| 31 |
+
</font> <a href="http://www.boost.org/users/news/">News</a> <font color="#FFFFFF">
|
| 32 |
+
</font> <a href="http://www.boost.org/community/">Community</a> <font color="#FFFFFF">
|
| 33 |
+
</font> <a href="http://www.boost.org/users/faq.html">FAQ</a> <font color="#FFFFFF">
|
| 34 |
+
</font> <a href="more/index.htm">More Info</a></td>
|
| 35 |
+
</tr>
|
| 36 |
+
</table>
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
<h2 class="title">Welcome to the Boost C++ Libraries</h2>
|
| 40 |
+
|
| 41 |
+
<p>Boost provides free peer-reviewed portable C++ source libraries.</p>
|
| 42 |
+
|
| 43 |
+
<p>We emphasize libraries that work well with the C++ Standard Library.
|
| 44 |
+
Boost libraries are intended to be widely useful, and usable across a broad
|
| 45 |
+
spectrum of applications. The <a href=
|
| 46 |
+
"http://www.boost.org/users/license.html">Boost license</a> encourages both
|
| 47 |
+
commercial and non-commercial use.</p>
|
| 48 |
+
|
| 49 |
+
<p>We aim to establish "existing practice" and provide reference
|
| 50 |
+
implementations so that Boost libraries are suitable for eventual
|
| 51 |
+
standardization. Ten Boost libraries are already included in the <a href=
|
| 52 |
+
"http://www.open-std.org/jtc1/sc22/wg21/">C++ Standards Committee's</a>
|
| 53 |
+
Library Technical Report (<a href=
|
| 54 |
+
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf">TR1</a>)
|
| 55 |
+
and will be included in the upcoming revision of the C++ Standard. More
|
| 56 |
+
Boost libraries are proposed for the upcoming <a href=
|
| 57 |
+
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1810.html">TR2</a>.</p>
|
| 58 |
+
|
| 59 |
+
<h3>Changes in this release</h3>
|
| 60 |
+
|
| 61 |
+
<p>
|
| 62 |
+
|
| 63 |
+
Boost 1.65
|
| 64 |
+
includes 2 new
|
| 65 |
+
libraries
|
| 66 |
+
|
| 67 |
+
(<a href="libs/poly_collection/index.html">PolyCollection</a>, <a href="libs/stacktrace/index.html">Stacktrace</a>)
|
| 68 |
+
as well as updates to many existing libraries.
|
| 69 |
+
See
|
| 70 |
+
<a href="http://www.boost.org/users/history/version_1_65_1.html">Release
|
| 71 |
+
History</a> for more information.</p>
|
| 72 |
+
|
| 73 |
+
<h3>Getting Started</h3>
|
| 74 |
+
|
| 75 |
+
<p>If Boost hasn't already been installed on your system, follow the
|
| 76 |
+
<a href="more/getting_started/index.html">Getting Started Guide</a> to
|
| 77 |
+
complete the installation. But if you've reached to this point by
|
| 78 |
+
installing Boost from a Windows pre-build executable or a pre-built Linux
|
| 79 |
+
and Unix distribution package, that's already been completed. Likewise, if
|
| 80 |
+
you're reading this on your organization's internal web server, the
|
| 81 |
+
installation is probably already complete.</p>
|
| 82 |
+
|
| 83 |
+
<h3>Contents</h3>
|
| 84 |
+
|
| 85 |
+
<p>The release directory tree contains almost all of Boost; documentation,
|
| 86 |
+
sources, headers, scripts, tools, and everything else a Boost user might
|
| 87 |
+
need!</p>
|
| 88 |
+
|
| 89 |
+
<h3>Library Documentation</h3>
|
| 90 |
+
|
| 91 |
+
<p>The starting point for the documentation of individual libraries is the
|
| 92 |
+
<a href="libs/libraries.htm">Libraries page</a>, which gives a brief
|
| 93 |
+
description of each library and links to its documentation.</p>
|
| 94 |
+
|
| 95 |
+
<h3>Web Site</h3>
|
| 96 |
+
|
| 97 |
+
<p>Some general interest or often changing Boost information lives only on
|
| 98 |
+
the <a href="http://www.boost.org">Boost web site</a>. The release contains
|
| 99 |
+
links to the site, so while browsing it you'll see occasional broken links
|
| 100 |
+
if you aren't connected to the Internet. But everything needed to use the
|
| 101 |
+
Boost libraries is contained within the release.</p>
|
| 102 |
+
|
| 103 |
+
<h3>Background</h3>
|
| 104 |
+
|
| 105 |
+
<p>Read the <a href="http://www.boost.org/users/">introductory material</a>
|
| 106 |
+
to help you understand what Boost is about and to help in educating your
|
| 107 |
+
organization about Boost.</p>
|
| 108 |
+
|
| 109 |
+
<h3>Community</h3>
|
| 110 |
+
|
| 111 |
+
<p>Boost welcomes and thrives on participation from a variety of
|
| 112 |
+
individuals and organizations. Many avenues for participation are available
|
| 113 |
+
in the <a href="http://www.boost.org/community/">Boost Community</a>.</p>
|
| 114 |
+
|
| 115 |
+
<div class="copyright-footer">
|
| 116 |
+
<p>Copyright © 2008 Beman Dawes, Rene Rivera</p>
|
| 117 |
+
|
| 118 |
+
<p>Distributed under the Boost Software License, Version 1.0. (See
|
| 119 |
+
accompanying file <a href="LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy
|
| 120 |
+
at <a href=
|
| 121 |
+
"http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
|
| 122 |
+
|
| 123 |
+
<p>This software is <a href="http://www.opensource.org/">Open Source
|
| 124 |
+
Initiative</a> approved Open Source Software.</p>
|
| 125 |
+
|
| 126 |
+
<p>Open Source Initiative Approved is a trademark of the Open Source
|
| 127 |
+
Initiative.</p>
|
| 128 |
+
</div>
|
| 129 |
+
</body>
|
| 130 |
+
</html>
|
tools/boost_1_65_1/project-config.jam
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Boost.Build Configuration
|
| 2 |
+
# Automatically generated by bootstrap.sh
|
| 3 |
+
|
| 4 |
+
import option ;
|
| 5 |
+
import feature ;
|
| 6 |
+
|
| 7 |
+
# Compiler configuration. This definition will be used unless
|
| 8 |
+
# you already have defined some toolsets in your user-config.jam
|
| 9 |
+
# file.
|
| 10 |
+
if ! gcc in [ feature.values <toolset> ]
|
| 11 |
+
{
|
| 12 |
+
using gcc ;
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
project : default-build <toolset>gcc ;
|
| 16 |
+
|
| 17 |
+
# Python configuration
|
| 18 |
+
import python ;
|
| 19 |
+
if ! [ python.configured ]
|
| 20 |
+
{
|
| 21 |
+
using python : 2.7 : /usr ;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
path-constant ICU_PATH : /usr ;
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
# List of --with-<library> and --without-<library>
|
| 28 |
+
# options. If left empty, all libraries will be built.
|
| 29 |
+
# Options specified on the command line completely
|
| 30 |
+
# override this variable.
|
| 31 |
+
libraries = ;
|
| 32 |
+
|
| 33 |
+
# These settings are equivivalent to corresponding command-line
|
| 34 |
+
# options.
|
| 35 |
+
option.set prefix : /usr/local ;
|
| 36 |
+
option.set exec-prefix : /usr/local ;
|
| 37 |
+
option.set libdir : /usr/local/lib ;
|
| 38 |
+
option.set includedir : /usr/local/include ;
|
| 39 |
+
|
| 40 |
+
# Stop on first error
|
| 41 |
+
option.set keep-going : false ;
|
tools/boost_1_65_1/rst.css
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@import url("doc/src/boostbook.css");
|
| 2 |
+
@import url("doc/src/docutils.css");
|
| 3 |
+
/* Copyright David Abrahams 2006. Distributed under the Boost
|
| 4 |
+
Software License, Version 1.0. (See accompanying
|
| 5 |
+
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
| 6 |
+
*/
|
| 7 |
+
|
| 8 |
+
dl.docutils dt {
|
| 9 |
+
font-weight: bold }
|
| 10 |
+
|
| 11 |
+
img.boost-logo {
|
| 12 |
+
border: none;
|
| 13 |
+
vertical-align: middle
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
pre.literal-block span.concept {
|
| 17 |
+
font-style: italic;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
.nav {
|
| 21 |
+
display: inline;
|
| 22 |
+
list-style-type: none;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
.prevpage {
|
| 26 |
+
padding-top: -5px;
|
| 27 |
+
text-align: left;
|
| 28 |
+
float: left;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.nextpage {
|
| 32 |
+
padding-top: -20px;
|
| 33 |
+
text-align: right;
|
| 34 |
+
float: right;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
div.small {
|
| 38 |
+
font-size: smaller }
|
| 39 |
+
|
| 40 |
+
h2 a {
|
| 41 |
+
font-size: 90%;
|
| 42 |
+
}
|
| 43 |
+
h3 a {
|
| 44 |
+
font-size: 80%;
|
| 45 |
+
}
|
| 46 |
+
h4 a {
|
| 47 |
+
font-size: 70%;
|
| 48 |
+
}
|
| 49 |
+
h5 a {
|
| 50 |
+
font-size: 60%;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
dl,table
|
| 54 |
+
{
|
| 55 |
+
text-align: left;
|
| 56 |
+
font-size: 10pt;
|
| 57 |
+
line-height: 1.15;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
/*=============================================================================
|
| 62 |
+
Tables
|
| 63 |
+
=============================================================================*/
|
| 64 |
+
|
| 65 |
+
/* The only clue docutils gives us that tables are logically tables,
|
| 66 |
+
and not, e.g., footnotes, is that they have border="1". Therefore
|
| 67 |
+
we're keying off of that. We used to manually patch docutils to
|
| 68 |
+
add a "table" class to all logical tables, but that proved much too
|
| 69 |
+
fragile.
|
| 70 |
+
*/
|
| 71 |
+
|
| 72 |
+
table[border="1"]
|
| 73 |
+
{
|
| 74 |
+
width: 92%;
|
| 75 |
+
margin-left: 4%;
|
| 76 |
+
margin-right: 4%;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
table[border="1"]
|
| 80 |
+
{
|
| 81 |
+
padding: 4px;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
/* Table Cells */
|
| 85 |
+
table[border="1"] tr td
|
| 86 |
+
{
|
| 87 |
+
padding: 0.5em;
|
| 88 |
+
text-align: left;
|
| 89 |
+
font-size: 9pt;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
table[border="1"] tr th
|
| 93 |
+
{
|
| 94 |
+
padding: 0.5em 0.5em 0.5em 0.5em;
|
| 95 |
+
border: 1pt solid white;
|
| 96 |
+
font-size: 80%;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
@media screen
|
| 100 |
+
{
|
| 101 |
+
|
| 102 |
+
/* Tables */
|
| 103 |
+
table[border="1"] tr td
|
| 104 |
+
{
|
| 105 |
+
border: 1px solid #DCDCDC;
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
table[border="1"] tr th
|
| 109 |
+
{
|
| 110 |
+
background-color: #F0F0F0;
|
| 111 |
+
border: 1px solid #DCDCDC;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
pre,
|
| 115 |
+
.screen
|
| 116 |
+
{
|
| 117 |
+
border: 1px solid #DCDCDC;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
td pre
|
| 121 |
+
td .screen
|
| 122 |
+
{
|
| 123 |
+
border: 0px
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
.sidebar pre
|
| 127 |
+
{
|
| 128 |
+
border: 0px
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
pre,
|
| 134 |
+
.screen
|
| 135 |
+
{
|
| 136 |
+
font-size: 9pt;
|
| 137 |
+
display: block;
|
| 138 |
+
margin: 1pc 4% 0pc 4%;
|
| 139 |
+
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
/* Program listings in tables don't get borders */
|
| 143 |
+
td pre,
|
| 144 |
+
td .screen
|
| 145 |
+
{
|
| 146 |
+
margin: 0pc 0pc 0pc 0pc;
|
| 147 |
+
padding: 0pc 0pc 0pc 0pc;
|
| 148 |
+
}
|
| 149 |
+
|