suricodes commited on
Commit
94a94c0
·
verified ·
1 Parent(s): ae576c1

Upload 16 files

Browse files
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>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
28
+ </font>&nbsp; <a href="libs/libraries.htm">Libraries</a>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
29
+ </font>&nbsp; <a href="tools/index.html">Tools&nbsp;</a>&nbsp;<font color="#FFFFFF">&nbsp;
30
+ </font>&nbsp; <a href="http://www.boost.org">Web Site</a>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
31
+ </font>&nbsp; <a href="http://www.boost.org/users/news/">News</a>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
32
+ </font>&nbsp; <a href="http://www.boost.org/community/">Community</a>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
33
+ </font>&nbsp; <a href="http://www.boost.org/users/faq.html">FAQ</a>&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
34
+ </font>&nbsp; <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 &copy; 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
+