1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Getting Started</title>
<meta content="HTML Tidy for Cygwin (vers 1st April 2002), see www.w3.org" name="generator">
<meta content="Microsoft FrontPage 5.0" name="generator">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<LINK href="../boost.css" type="text/css" rel="stylesheet"></head>
<body text="#000000" bgColor="#ffffff">
<table cellSpacing="0" cellPadding="0" width="100%" summary="" border="0">
<tr vAlign="top">
<td vAlign="top" align="left"><IMG height="86" alt="boost.png (6897 bytes)" src="../boost.png" width="277"></td>
<td vAlign="top" align="right">
<table cellSpacing="0" cellPadding="2" summary="" border="1">
<tr>
<td>
<table cellSpacing="0" cellPadding="2" summary="" border="0">
<tr>
<td bgColor="#dddddd">
<p>. <A href="../index.htm">Home</A><br>
. <A href="../libs/libraries.htm">Libraries</A><br>
. <A href="../people/people.htm">People</A><br>
. <A href="faq.htm">FAQ</A><br>
. <A href="index.htm">More</A></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<h1>Getting Started</h1>
<ul>
<li>
<A href="#Introduction">Introduction</A>
<li>
<A href="#Download">Download</A>
<ul>
<li>
<A href="#.zip">.zip file</A>
<li>
<A href="#.tar.gz">.tar.gz and .tar.bz2 files</A>
<li>
<A href="#CVS">Boost CVS Repository</A>
</li>
</ul>
<li>
<A href="#Preparation">Preparation</A>
<ul>
<li>
<A href="#Configuring">Configuring the tools</A>
<li>
<A href="#Tools">Supported Toolsets</A>
</li>
</ul>
<li>
<A href="#Build_Install">Build and Install</A>
<li>
<A href="#Results">Results</A>
<LI>
<A href="#auto-link">Automatic Linking on Windows</A>
<li>
<A href="#Additional_Steps">Additional Steps</A>
</li>
</ul>
<h2><a id="Introduction" name="Introduction">Introduction</a></h2>
<p>These instructions are intended to help you get started using the Boost
Libraries. This walks you through getting, building, and installing the
libraries. To summarize these are the steps to get Boost built and installed:</p>
<ol>
<li>
<A href="#step1">Download Boost</A>.
<li>
<A href="#step2">Install Boost.Jam</A>.
<li>
<A href="#step3">Configure your compiler toolset</A>.
<li>
<A href="#step4">Go to Boost distribution directory</A>.
<li>
<A href="#step5">Build and install</A>.
</li>
</ol>
<h2><a id="Download" name="Download"></a>Download</h2>
<table cellSpacing="2" cellPadding="2" width="100%" summary="" border="0">
<tr vAlign="top" align="left">
<td vAlign="top" align="center" width="40" bgColor="#ffff66"><font size="6"><b><a id="step1" name="step1"></a>1</b></font></td>
<td>The Boost Libraries are distributed through the SourceForge file distribution
system. Click here to <b><a href="http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041">
<font size="4">download releases from SourceForge</font></a></b>. And
unpack the release to a convenient location.</td>
</tr>
</table>
<p>The Boost release includes all of the libraries and other material from the web
site. It is available in <A href="#.zip">ZIP</A>, <A href="#.tar.gz">TAR.GZ</A>,
and <A href="#.tar.gz">TAR.BZ2</A> formats. Past releases are also available.</p>
It is also possible to download current snapshots of work-in-progress from
Boost's <A href="#CVS">CVS repository</A>.
<h3><a id="zip" name=".zip">.zip</a> file</h3>
The .zip format is widely supported by both free decoders and commercial
compress/archive utilities. If you don't already have a .zip file decoder,
download one from the <a href="http://www.info-zip.org/">Info-ZIP</a> web site,
which supplies versions for many operating systems.
<p>Text file line endings in the .zip file are as supplied by each library
developer. This works fine for Windows, but not for Unix/Linux. The
.tar.gz and .tar.bz2 files supply Unix/Linux friendly line endings.</p>
<h3><a id="tar_gz" name=".tar.gz">.tar.gz</a> and .tar.bz2 files</h3>
<p>The .tar.gz format is widely supported on Unix/Linux platforms. Some Windows
compress/archive utilities can read the format as well. Because the gzip
format compresses the archive as a single file rather than compressing each
file individually, the .tar.gz file is smaller that the .zip file.</p>
<p>The .tar.bz2 format is becoming widely available on Unix/Linux platforms and is
built into many tar utilities. This format differs for the .tar.gz format in
the compression used, which is considerably better and therefore creates
smaller files.</p>
<p>Text file line endings in the .tar.gz and .tar.bz2 files have been converted to
newlines for ease of use on Unix/Linux platforms.</p>
<h3>Boost <a id="CVS" name="CVS">CVS</a> Repository</h3>
<p>All Boost files, including the entire distribution tree including web site HTML
is maintained in a CVS repository. Command line, GUI, or browser access is
available.</p>
<h4>Boost CVS access via command line or graphical clients</h4>
For those who have CVS clients installed, the libraries are also available from
the public <a href="http://sourceforge.net/cvs/?group_id=7586">Boost CVS
repository</a>. Free command line clients (often already installed on
Linux/Unix systems) are available for many systems, and free GUI clients are
available for Windows, Mac, and other systems.
<p>See the much improved <a href="http://sourceforge.net/docman/?group_id=1">CVS
documentation</a> (Section F) from SourceForge, which includes links to the
home pages for various GUI and command line clients.</p>
<p>The general procedure for command-line clients is something like this:</p>
<blockquote><code>cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost login</code><br>
[Hit <return> when it asks for a password]<br>
<code>cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost checkout
boost</code><br>
<code>cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost logout</code> </blockquote>
Read the manual for your CVS client for further information.
<p>This access is read-only; if you are a library author and wish to have CVS
write access, please contact one of the <A href="moderators.html">moderators</A>.</p>
<h4>Boost CVS access via web <a id="Browser" name="Browser">Browser</a></h4>
For access to the CVS archive from any modern web browser, you can also use the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost/boost/">
web browser interface</a>. Try one of the color diffs to see how
a file has changed over time. <b>Note:</b> this interface is only suitable for
viewing individual files and their revision histories.
<h4><a id="generated" name="generated">Documentation</a> generated from BoostBook
in CVS</h4>
<p>Some of the Boost documentation is generated from <A href="../doc/html/boostbook.html">
BoostBook XML</A> source stored in the CVS repository, and will not appear
directly in the CVS tree as readable HTML. View a nightly build of the
generated HTML on the <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/libraries.html">
Nightly Generated Documentation</a> page. Where generated HTML is missing
from the CVS tree, an attempt has been made to include redirection to this
nightly build, but if you are away from an internet connection you may want to
download the generated documentation archive from the aforementioned page so
you can browse those documents offline.</p>
<h2><a id="Preparation" name="Preparation"></a>Preparation</h2>
<p>The recommended way to build and install the Boost Libraries is to use <A href="../tools/build/v1/build_system.htm">
Boost.Build</A>, the Boost Build system. The rest of these instructions
explain that use, but it is up to you to use this method, or not. Note that
some of the libraries also include non Boost.Build makefiles and/or project
files. But all include the needed files for building with Boost.Build.</p>
<table cellSpacing="2" cellPadding="2" width="100%" summary="" border="0">
<tr vAlign="top" align="left">
<td vAlign="top" align="center" width="40" bgColor="#ffff66"><font size="6"><b><a id="step2" name="step2"></a>2</b></font></td>
<td>The build system uses <A href="../tools/build/jam_src/index.html">Boost.Jam</A>,
an extension of the <a href="http://www.perforce.com/jam/jam.html">Perforce Jam</a>
portable <i>make</i> replacement. The recommended way to get Boost.Jam if you
are using a Boost distribution is to <strong><a href="http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941">
download a prebuilt executable</a></strong> from SourceForge. If a
prebuilt executable is not provided for your platform or you are using Boost's
sources in an unreleased state, it may be neccessary to <A href="../tools/build/jam_src/index.html#building_bjam">
build <tt>bjam</tt> from sources</A> included in the Boost source tree. To
install Boost.Jam, copy the <tt>bjam</tt> executable to a location accessible
in your <tt>PATH</tt>.</td>
</tr>
</table>
<h3><a id="Configuring" name="Configuring">Configuring the tools</a></h3>
<p>Before using Boost.Build you will need to configure the compiler tools you are
using. The build system's toolsets are designed to work in either of two ways:</p>
<ol>
<li>
The user sets up all of the environment for each toolset he wants to use in the
normal way. For example, for Microsoft VC++, ...VC98/Bin or .../VC7/Bin is in
the PATH environment variable, VCVARS32.BAT or VSVARS32.BAT has been invoked,
etc. For Metrowerks CodeWarrior, cwenv.bat or equivalent has been called and
...Other Metrowerks Tools/Command Line Tools is in the path. Many Unix
operating systems come preconfigured this way and require no user intervention.<br>
<br>
<li>
The user doesn't want his environment cluttered with settings or has
nonstandard installations for some of his tools. Instead, he or she sets
variables which point to the toolset installation directories, either in the
command shell environment or on the <code>bjam</code> command-line. These
variables are used by the build system to locate the tools and invoke the
necessary setup. To set the variables on the <tt>bjam</tt> command-line you use
the "<tt>-s</tt>" option. For example:<br>
<br>
<tt>bjam "-sGCC_ROOT_DIRECTORY=/usr/local/gcc-3.3.2"</tt><br>
<br>
Some variables, like the toolset <tt>TOOLS</tt> variable, can accept multiple
values separated by spaces. Others, like the path above, can contain spaces.
For such circumstances you should use quotes appropriate for your command
interpreter.<br>
</li>
</ol>
<h3><a id="Tools" name="Tools">Supported Toolsets</a></h3>
<table cellSpacing="2" cellPadding="2" width="100%" summary="" border="0">
<tr vAlign="top" align="left">
<td vAlign="top" align="center" width="40" bgColor="#ffff66"><font size="6"><b><a id="step3" name="step3"></a>3</b></font></td>
<td>The following toolsets are supported by Boost.Build. For information about <A href="#Configuring">
configuring</A> each toolset, click its name in the leftmost column.</td>
</tr>
</table>
<br>
<table cellPadding="5" summary="" border="1">
<tr>
<td><b>TOOLS Name</b></td>
<td><b>Description</b></td>
</tr>
<tr>
<td><A href="../tools/build/v1/borland-tools.html"><code>borland</code></A></td>
<td><a href="http://www.borland.com/bcppbuilder/freecompiler">Borland</a> C++</td>
</tr>
<tr>
<td><A href="../tools/build/v1/como-tools.html"><code>como</code></A></td>
<td><a href="http://www.comeaucomputing.com">Comeau C++</a> compiler front-end for
non-Windows platforms</td>
</tr>
<tr>
<td><code><A href="../tools/build/v1/como-tools.html">como-win32</A></code></td>
<td><a href="http://www.comeaucomputing.com">Comeau C++</a> compiler front-end for
Windows, using Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a>as
a back-end.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/cw-tools.html"><code>cw</code></A></td>
<td><a href="http://www.metrowerks.com">Metrowerks CodeWarrior</a> Pro 6.x, 7.x,
8.x, and 9.x command-line tools</td>
</tr>
<tr>
<td><A href="../tools/build/v1/darwin-tools.html"><code>darwin</code></A></td>
<td>Apple Darwin OS hosted GNU <a href="http://developer.apple.com/tools/compilers.html">
GCC</a></td>
</tr>
<tr>
<td><A href="../tools/build/v1/dmc-tools.html"><code>dmc</code></A></td>
<td><a href="http://www.digitalmars.com/">Digital Mars C++</a>.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/dmc-stlport-tools.html"><code>dmc-stlport</code></A></td>
<td><a href="http://www.digitalmars.com/">Digital Mars C++</a>, using the <a href="http://www.stlport.org">
STLport</a> standard library implementation</td>
</tr>
<tr>
<td><A href="../tools/build/v1/edg-tools.html"><code>edg</code></A></td>
<td><a href="http://www.edg.com/">Edison Design Group</a> compiler front-end
(evaluation version)</td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-tools.html"><code>gcc</code></A></td>
<td><a href="http://gcc.gnu.org">GNU GCC</a> on Unix and <a href="http://www.cygwin.com">
Cygwin</a>.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-stlport-tools.html"><code>gcc-stlport</code></A></td>
<td><a href="http://gcc.gnu.org">GNU GCC</a> on Unix and <a href="http://www.cygwin.com">
Cygwin</a>, using the <a href="http://www.stlport.org">STLport</a> standard
library implementation</td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-nocygwin-tools.html"><code>gcc-nocygwin</code></A></td>
<td>GNU GCC Cygwin command line compiler tools running in "no-cygwin" mode
(produces commercially redistributable objects)</td>
</tr>
<tr>
<td><A href="../tools/build/v1/intel-linux-tools.html"><code>intel-linux</code></A></td>
<td><a href="http://www.intel.com/software/products/compilers/c60l/">Intel C++ for
Linux</a></td>
</tr>
<tr>
<td><A href="../tools/build/v1/intel-win32-tools.html"><code>intel-win32</code></A></td>
<td><a href="http://www.intel.com/software/products/compilers/c60/">Intel C++ for
Windows</a> using the Dinkumware standard library in the Intel-required
Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> 6 or 7
installation</td>
</tr>
<tr>
<td><A href="../tools/build/v1/kcc-tools.html"><code>kcc</code></A></td>
<td><a href="http://developer.intel.com/software/products/kcc/">KAI C++</a></td>
</tr>
<tr>
<td><A href="../tools/build/v1/kylix-tools.html"><code>kylix</code></A></td>
<td><a href="http://www.borland.com/kylix">Borland C++ for Linux (Kylix).</a></td>
</tr>
<tr>
<td><A href="../tools/build/v1/mingw-tools.html"><code>mingw</code></A></td>
<td>GNU GCC and associated tools in <a href="http://www.mingw.org">MinGW</a> configuration
(produces commercially redistributable objects)</td>
</tr>
<tr>
<td><A href="../tools/build/v1/mingw-stlport-tools.html"><code>mingw-stlport</code></A></td>
<td>GNU GCC and associated tools in <a href="http://www.mingw.org">MinGW</a> configuration
(produces commercially redistributable objects), using the <a href="http://www.stlport.org">
STLport</a> standard library implementation</td>
</tr>
<tr>
<td><A href="../tools/build/v1/mipspro-tools.html"><code>mipspro</code></A></td>
<td>SGI <a href="http://www.sgi.com/developers/devtools/languages/mipspro.html">MIPSpro
C and C++</a></td>
</tr>
<tr>
<td><A href="../tools/build/v1/msvc-tools.html"><code>msvc</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> version
6 command-line tools. NOTE; For version 7.x (the .NET series) use the vc7 or
vc-7_1 toolsets below.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/msvc-stlport-tools.html"><code>msvc-stlport</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> version
6 command-line tools, using the <a href="http://www.stlport.org">STLport</a> standard
library implementation. NOTE; For version 7.x (the .NET series) use the
vc7-stlport or vc-7_1-stlport toolsets below.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/sunpro-tools.html"><code>sunpro</code></A></td>
<td><a href="http://wwws.sun.com/software/sundev/suncc/index.html">SunPRO C++</a> compiler</td>
</tr>
<tr>
<td><A href="../tools/build/v1/tru64cxx-tools.html"><code>tru64cxx</code></A></td>
<td><a href="http://www.tru64unix.compaq.com/cplus/">Compaq C++</a> for Tru64 UNIX
(versions prior to 6.5)</td>
</tr>
<tr>
<td><A href="../tools/build/v1/tru64cxx-tools.html"><code>tru64cxx65</code></A></td>
<td><a href="http://www.tru64unix.compaq.com/cplus/">Compaq C++</a> Version 6.5
for Tru64 UNIX</td>
</tr>
<tr>
<td><A href="../tools/build/v1/vacpp-tools.html"><code>vacpp</code></A></td>
<td><a href="http://www-3.ibm.com/software/ad/vacpp/">IBM Visual Age C++</a> command-line
tools</td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc7-tools.html"><code>vc7</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> command-line
tools from Visual Studio .NET.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc7-stlport-tools.html"><code>vc7-stlport</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> command-line
tools from Visual Studio .NET + STLPort.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc-7_1-tools.html"><code>vc-7_1</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> command-line
tools from Visual Studio .NET 2003.</td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc-7_1-stlport-tools.html"><code>vc-7_1-stlport</code></A></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a> command-line
tools from Visual Studio .NET 2003 + STLPort.</td>
</tr>
</table>
<h2><a id="Build_Install" name="Build_Install"></a>Build and Install</h2>
<p>The common build and install process is driven by the top-level build file (<A href="../Jamfile">Jamfile</A>).</p>
<table cellSpacing="2" cellPadding="2" width="100%" summary="" border="0">
<tr vAlign="top" align="left">
<td vAlign="top" align="center" width="40" bgColor="#ffff66"><font size="6"><b><a id="step4" name="step4"></a>4</b></font></td>
<td>
<p>First you need to change to the directory where you have the Boost distribution
you downloaded. For example:</p>
<blockquote>
<p><code>chdir boost-1.31.0</code></p>
</blockquote>
</td>
</tr>
</table>
<p>The default build and install attempts to build all available libraries and
install to default locations the libraries and Boost header files. On Unix
systems the default install location is "<tt>/usr/local</tt>", and on Windows
systems the default is "<tt>C:\Boost</tt>". Within those directories libraries
are installed to the "<tt>lib</tt>" subdirectory, and headers to an "<tt>include/boost-1_31</tt>"
subdirectory, the version will reflect the distribution you are installing.</p>
<table cellSpacing="2" cellPadding="2" width="100%" summary="" border="0">
<tr vAlign="top" align="left">
<td vAlign="top" align="center" width="40" bgColor="#ffff66"><font size="6"><b><a id="step5" name="step5"></a>5</b></font></td>
<td>Invoke the build system, specifying the <A href="#Tools">toolset</A>(s) you
wish to use, to build and install. For example for GNU/GCC. <blockquote>
<p><code>bjam "-sTOOLS=gcc" install</code></p>
</blockquote>
<p>Or if you are interested only in the built libraries you can have them built
and collected to a common directory without installation.</p>
<blockquote>
<p><code>bjam "-sTOOLS=gcc" stage</code></p>
</blockquote>
</td>
</tr>
</table>
<p>The build and install system can be controlled through a set of options similar
in style to GNU configure options. The options allow you to, among other
things, change the install location, disable building of libraries, etc. You
can see a summary of the available options by invoking "<tt>bjam --help</tt>".
The full invocation takes the form:</p>
<blockquote>
<p><code>bjam [<i>options</i>...] [install|stage]</code></p>
</blockquote>
<table cellSpacing="0" cellPadding="2" summary="" border="1">
<tr>
<th>
Action</th>
<td> </td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><i>none</i></td>
<td vAlign="top" align="left">Only builds the Boost libraries. This lets you do
the first part of what the <tt>install</tt> action normally does without
copying the built libraries to the install location.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>install</tt></td>
<td vAlign="top" align="left">Builds and installs Boost libraries and headers.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>stage</tt></td>
<td vAlign="top" align="left">Builds the Boost libraries and copies them into a
common directory.</td>
</tr>
<tr>
<th noWrap>
Option</th>
<td vAlign="top" align="left"> </td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--help</tt></td>
<td vAlign="top" align="left">Shows a short summary of the options and syntax of
the command.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>-sTOOLS=<<i>toolsets</i>></tt></td>
<td vAlign="top" align="left">The list of tools to compile with. Usually only one
is needed.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--prefix=PREFIX</tt></td>
<td vAlign="top" align="left">Install architecture independent files here.<br>
Default; <tt>C:\Boost</tt> on Win32.<br>
Default; <tt>/usr/local</tt> on Unix. Linux, etc.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--exec-prefix=EPREFIX</tt></td>
<td vAlign="top" align="left">Install architecture dependent files here.<br>
Default; <tt>PREFIX</tt></td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--libdir=DIR</tt></td>
<td vAlign="top" align="left">Install libraries here.<br>
Default; <tt>EPREFIX/lib</tt></td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--includedir=DIR</tt></td>
<td vAlign="top" align="left">Install source headers here. The Boost headers are
installed in a version specific "<tt>boost-<version></tt>" subdirectory
in this directory.<br>
Default; <tt>PREFIX/include</tt></td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--builddir=DIR</tt></td>
<td vAlign="top" align="left">Build in this location instead of building within
the distribution tree. This moves where the sources for the libraries are
compiled to before they are installed. Recommended!</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--stagedir=DIR</tt></td>
<td vAlign="top" align="left">When staging only, with the "<tt>stage</tt>" action,
copy to the given location.<br>
Default; <tt>./stage</tt></td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--without-<<i>library</i>></tt></td>
<td vAlign="top" align="left">Do not build, stage, or install the specified
library.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--with-<<i>library</i>></tt></td>
<td vAlign="top" align="left">Build, stage, or install the specified library. This
changes the default from trying to build all possible libraries, to only
building the speicfied libraries.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--with-python-root[=PYTHON_ROOT]</tt></td>
<td vAlign="top" align="left">Build Boost.Python libraries with the Python devel
packages located at <tt>PYTHON_ROOT</tt>. The Boost.Python libraries are built
only if the build can find the Python development package at this location.<br>
Default; <tt>C:\tools\python</tt> on Win32.<br>
Default; <tt>/usr/local</tt> on Unix, Linux, etc.<br>
Default; <tt>/usr</tt> on Cygwin.</td>
</tr>
<tr>
<td vAlign="top" noWrap align="left"><tt>--with-pydebug</tt></td>
<td vAlign="top" align="left">Build Boost.Python libraries using the Python debug
runtime. This builds an additional set of libraries for use with the debug
version of Python. The regular versions of the Boost.Python libraries are also
built.</td>
</tr>
</table>
<p>There are additional options as supported by <A href="../tools/build/v1/build_system.htm">
Boost.Build</A> and <A href="../tools/build/jam_src/index.html">Boost.Jam</A>.
Of the additional options perhaps the most imporant is "<tt>-s<A href="../tools/build/v1/build_system.htm#build">BUILD</A>=<features/variants></tt>"
which lets you override what is built by default. The "<tt><features/variants></tt>"
value is a list, separated by spaces, of build requests. Features take the form
of a tag and a value or values. And variants are single symbolic names for a
collection of features. For example the default is to request "<tt>debug release
<runtime-link>static/dynamic <threading>single/multi</tt>", in
which "<tt>debug</tt>" and "<tt>release</tt>" are variants, and the rest
features with two values each.</p>
<p>If you have some feedback about the build and install process please drop us a
line at the <A href="mailing_lists.htm#jamboost">Boost.Build mailing list</A>.
We are particularly interested if it works for your platform and if it there is
anything that you feel could be done better.</p>
<h2><a id="Results" name="Results"></a>Results</h2>
<p>The results of building come in to forms: static libraries, and dynamic
libraries. Depending on the platform the libraries produced have different
names to accommodate the platform requirements. For a single Boost library the
build with the default will produce eight different libraries. For example
building the Boost.Datetime library on Unix type system it would produce:</p>
<ol>
<li>
<tt>libboost_date_time-gcc-d-1_31.so</tt>
<li>
<tt>libboost_date_time-gcc-mt-d-1_31.so</tt>
<li>
<tt>libboost_date_time-gcc-1_31.so</tt>
<li>
<tt>libboost_date_time-gcc-mt-1_31.so</tt>
<li>
<tt>libboost_date_time-gcc-d-1_31.a</tt>
<li>
<tt>libboost_date_time-gcc-mt-d-1_31.a</tt>
<li>
<tt>libboost_date_time-gcc-1_31.a</tt>
<li>
<tt>libboost_date_time-gcc-mt-1_31.a</tt><br>
</li>
</ol>
<table cellSpacing="0" cellPadding="0" width="100%" summary="" border="0">
<tr>
<td colSpan="11">
<table cellSpacing="2" cellPadding="2" bgColor="#cccccc" summary="" border="0">
<tr>
<th>
· Library Prefix</th></tr>
</table>
</td>
<td width="80%"> </td>
</tr>
<tr>
<td vAlign="bottom" bgColor="#cccccc" rowSpan="7"><tt><font size="+1">lib</font></tt></td>
<td colSpan="11">
<table cellSpacing="2" cellPadding="2" summary="" border="0">
<tr>
<th>
· Library Name</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" rowSpan="6"><tt><font size="+1">boost_date_time</font></tt></td>
<td colSpan="10">
<table cellSpacing="2" cellPadding="2" bgColor="#cccccc" summary="" border="0">
<tr>
<th>
· Toolset</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" bgColor="#cccccc" rowSpan="5"><tt><font size="+1">-</font></tt></td>
<td vAlign="bottom" bgColor="#cccccc" rowSpan="5"><tt><font size="+1">gcc</font></tt></td>
<td colSpan="8">
<table cellSpacing="2" cellPadding="2" summary="" border="0">
<tr>
<th>
· Threading</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" rowSpan="4"><tt><font size="+1">-</font></tt></td>
<td vAlign="bottom" rowSpan="4"><tt><font size="+1">mt</font></tt></td>
<td colSpan="6">
<table cellSpacing="2" cellPadding="2" bgColor="#cccccc" summary="" border="0">
<tr>
<th>
· Runtime</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" bgColor="#cccccc" rowSpan="3"><tt><font size="+1">-</font></tt></td>
<td vAlign="bottom" bgColor="#cccccc" rowSpan="3"><tt><font size="+1">d</font></tt></td>
<td colSpan="4">
<table cellSpacing="2" cellPadding="2" summary="" border="0">
<tr>
<th>
· Boost Version</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" rowSpan="2"><tt><font size="+1">-</font></tt></td>
<td vAlign="bottom" rowSpan="2"><tt><font size="+1">1_31</font></tt></td>
<td colSpan="2">
<table cellSpacing="2" cellPadding="2" bgColor="#cccccc" summary="" border="0">
<tr>
<th>
· Library Type</th></tr>
</table>
</td>
</tr>
<tr>
<td vAlign="bottom" bgColor="#cccccc"><tt><font size="+1">.a</font></tt></td>
<td> </td>
</tr>
</table>
<h3>Library Prefix</h3>
<p>The "lib" prefix on the libraries is a requirement on many platforms, like
Unix, and on others like GCC running on Windows. The prefix is therefore added
to all libraries on Unix type systems, and to static libraries on Windows. That
is on Unix shared libraries and static libraries (object archives) are named
respectively:</p>
<ul>
<li>
<tt>lib*.so</tt>
<li>
<tt>lib*.a</tt>
</li>
</ul>
<p>On Windows shared libraries do not have the prefix to differentiate the import
libraries from static libraries. Consequently on Windows the libraries are
named:</p>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="0">
<TR>
<TD><FONT face="Courier New">*.dll</FONT></TD>
<TD>Dynamic library version.</TD>
</TR>
<TR>
<TD><FONT face="Courier New">*.lib</FONT>
</TD>
<TD>Import library for the dll.</TD>
</TR>
<TR>
<TD><FONT face="Courier New">lib*.lib</FONT>
</TD>
<TD>Static library version.</TD>
</TR>
</TABLE>
</P>
<h3>Library Name</h3>
<p>For Boost libraries the name has the "<tt>boost_</tt>" prefix to separate them
from other libraries in your system.</p>
<h3>Toolset</h3>
<p>The toolset name is an abbreviation based on the compiler you are building
with. The abbreviation is composed of a short, 2 to 4 characters, tag for the
compiler and a version number of the compiler's major and minor revision (if
available). For example if your toolset is "<tt>gcc-3_2_3</tt>" the toolset tag
would be "<tt>gcc32</tt>". The toolset abbreviations used are as follows:</p>
<table cellPadding="5" summary="" border="1">
<tr>
<td><b>TOOLS Name</b></td>
<td><b>Abbreviation</b></td>
</tr>
<tr>
<td><A href="../tools/build/v1/borland-tools.html"><code>borland</code></A></td>
<td><tt>bcb</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/como-tools.html"><code>como</code></A></td>
<td><tt>como</tt></td>
</tr>
<tr>
<td><code><A href="../tools/build/v1/como-tools.html">como-win32</A></code></td>
<td><tt>como</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/cw-tools.html"><code>cw</code></A></td>
<td><tt>cw</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/darwin-tools.html"><code>darwin</code></A></td>
<td><tt>osx</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/dmc-tools.html"><code>dmc</code></A></td>
<td><tt>dmc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/dmc-stlport-tools.html"><code>dmc-stlport</code></A></td>
<td><tt>dmc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/edg-tools.html"><code>edg</code></A></td>
<td><tt>edg</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-tools.html"><code>gcc</code></A></td>
<td><tt>gcc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-stlport-tools.html"><code>gcc-stlport</code></A></td>
<td><tt>gcc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/gcc-nocygwin-tools.html"><code>gcc-nocygwin</code></A></td>
<td><tt>gcc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/intel-linux-tools.html"><code>intel-linux</code></A></td>
<td><tt>il</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/intel-win32-tools.html"><code>intel-win32</code></A></td>
<td><tt>iw</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/kcc-tools.html"><code>kcc</code></A></td>
<td><tt>kcc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/kylix-tools.html"><code>kylix</code></A></td>
<td><tt>bck</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/mingw-tools.html"><code>mingw</code></A></td>
<td><tt>mgw</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/mingw-stlport-tools.html"><code>mingw-stlport</code></A></td>
<td><tt>mgw</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/mipspro-tools.html"><code>mipspro</code></A></td>
<td><tt>mp</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/msvc-tools.html"><code>msvc</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/msvc-stlport-tools.html"><code>msvc-stlport</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/sunpro-tools.html"><code>sunpro</code></A></td>
<td><tt>sw</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/tru64cxx-tools.html"><code>tru64cxx</code></A></td>
<td><tt>tru</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/tru64cxx-tools.html"><code>tru64cxx65</code></A></td>
<td><tt>tru</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/vacpp-tools.html"><code>vacpp</code></A></td>
<td><tt>xlc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc7-tools.html"><code>vc7</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc7-stlport-tools.html"><code>vc7-stlport</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc-7_1-tools.html"><code>vc-7_1</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td><A href="../tools/build/v1/vc-7_1-stlport-tools.html"><code>vc-7_1-stlport</code></A></td>
<td><tt>vc</tt></td>
</tr>
<tr>
<td>Others</td>
<td>The first part of the toolset name.</td>
</tr>
</table>
<h3>Threading</h3>
<p>This tag indicates if the library is compiled with threading support. If
threading is enabled "<tt>-mt</tt>" is added, otherwise nothing is added.</p>
<h3>Runtime</h3>
<p>This specifies the type of runtime the library was compiled against, and the
type of code that is compiled. More commonly this encodes the ABI variation
used in the code. For each feature of the runtime system and code compilation
option a single letter is added to this tag.</p>
<table cellPadding="5" summary="" border="1">
<tr>
<td><b>Key</b></td>
<td><b>Feature</b></td>
</tr>
<tr>
<td><tt>s</tt></td>
<td>Static link to runtime.</td>
</tr>
<tr>
<td><tt>g</tt></td>
<td>Debug runtime.</td>
</tr>
<tr>
<td><tt>y</tt></td>
<td>Debug Python system.</td>
</tr>
<tr>
<td><tt>d</tt></td>
<td>Debug enabled code.</td>
</tr>
<tr>
<td><tt>p</tt></td>
<td>STLport runtime, instead of the vendor toolset runtime.</td>
</tr>
<tr>
<td><tt>n</tt></td>
<td>STLport runtime using the "native" IO streams instead of the STLport IO
streams.</td>
</tr>
</table>
<p>For example if you compile debug code for STLport using native IO streams, and
statically link to the debug runtime the tag would be: "<tt>-sgdpn</tt>".</p>
<h3>Boost Version</h3>
<p>This is the short label for the version of the Boost Libraries. The major and
minor version numbers are taken together separated by an underscore. For
example version 1.31.0 would be tagged as "<tt>-1_31</tt>". The patch version
number is not included because it is assumed that patch versions are upward
compatible.</p>
<h3>Library Type</h3>
<p>The extension holds the type of library. This follows the platform
requirements. On Windows this is "<tt>.dll</tt>" for shared libraries, and "<tt>.lib</tt>"
for static libraries including import libraries. On Unix this is ".a" for
static libraries (archives), and ".so" for shared libraries. For toolsets that
support it in Unix they will also have a full version extension (for example "<tt>.so.1.31.0</tt>")
with a symbolic link for the un-versioned library.</p>
<H2><A name="#auto-link"></A>Automatic Linking on Windows</H2>
<P>For most Boost libraries that have separate source, the correct build variant
is linked against automatically when you include one of that library's header
files. For this feature to work, your compiler must support the <code>#pragma
comment(lib, name)</code> feature (Microsoft Visual C++, Intel C++,
Metrowerks C++ , and Borland C++ all support this).</P>
<P>If you are linking to a dynamic runtime, then you can choose to link to either
a static or a dynamic Boost library, the default is to do a static link.
You can alter this for a specific library <EM>whatever</EM> by defining
BOOST_WHATEVER_DYN_LINK to force Boost library <EM>whatever</EM> to be linked
dynamically. Alternatively you can force all Boost libraries to dynamic
link by defining BOOST_ALL_DYN_LINK.</P>
<P>This feature can be disabled for Boost library <EM>whatever</EM> by defining
BOOST_WHATEVER_NO_LIB, or for all of Boost by defining BOOST_ALL_NO_LIB.</P>
<P>If you want to observe which libraries are being linked against then defining
BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a <code>#pragma
message</code> each time a library is selected for linking.</P>
<P>There are some Boost libraries (<A href="../libs/test/doc/index.html">Boost.Test</A>
is one one special case), where automatic linking is not supported for
technical reasons: please consult the documentation for each of the libraries
you are using for more information, and the <A href="../libs/config/index.html">Boost.Config</A>
documentation for more information on configuration macros. The following
table shows the current supported configurations, (Boost libraries not listed
here consist of headers only):</P>
<P>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="100%" border="1">
<TR>
<TD><STRONG>Library</STRONG></TD>
<TD><STRONG>Static Link</STRONG></TD>
<TD><STRONG>Dynamic Link</STRONG></TD>
<TD><STRONG>Default linkage</STRONG></TD>
<TD><STRONG>Automatic library selection</STRONG></TD>
<TD><STRONG>Comments</STRONG></TD>
</TR>
<TR>
<TD>Date-Time</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>static</TD>
<TD>Yes</TD>
<TD> </TD>
</TR>
<TR>
<TD>Filesystem</TD>
<TD>Yes</TD>
<TD>
<P>Yes</P>
</TD>
<TD>static</TD>
<TD>Yes</TD>
<TD> </TD>
</TR>
<TR>
<TD>Graph</TD>
<TD>Yes</TD>
<TD>No</TD>
<TD>static</TD>
<TD>No</TD>
<TD>The separate Graph library source is needed only when <A href="../libs/graph/doc/read-graphviz.html">
reading an AT&T graphviz file.</A></TD>
</TR>
<TR>
<TD>Program Options</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>static</TD>
<TD>Yes</TD>
<TD> </TD>
</TR>
<TR>
<TD>Python</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>dynamic</TD>
<TD>No</TD>
<TD>Since all Python extensions are DLL's it makes sense to dynamic link to the
Boost Python library by default (static linking is only really an option
if you are embedding python).</TD>
</TR>
<TR>
<TD>Regex</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>static</TD>
<TD>Yes</TD>
<TD> </TD>
</TR>
<TR>
<TD>Serialisation</TD>
<TD>Yes</TD>
<TD>No</TD>
<TD>static</TD>
<TD>No</TD>
<TD>Automatic linking support will be introduced in a future release.</TD>
</TR>
<TR>
<TD>Signals</TD>
<TD>Yes</TD>
<TD>Yes</TD>
<TD>static</TD>
<TD>Yes</TD>
<TD> </TD>
</TR>
<TR>
<TD>Test</TD>
<TD>Yes</TD>
<TD>No</TD>
<TD>static</TD>
<TD>No</TD>
<TD>Which library you link to depends upon which program entry point you define,
rather than which Boost.Test features you use.</TD>
</TR>
<TR>
<TD>Thread</TD>
<TD>Partial</TD>
<TD>Yes</TD>
<TD>dynamic</TD>
<TD>Yes</TD>
<TD>For technical reasons static linking is supported on only one Windows compiler
(Visual C++).</TD>
</TR>
</TABLE>
</P>
<h2><a id="Additional_Steps" name="Additional_Steps"></a>Additional Steps</h2>
<p>Depending on your platform and configuration you may need to perform some
additional configuration to get Boost to build and install.</p>
<ul>
<li>
<A href="../libs/config/config.htm#configuring">Configure the boost source code</A>.
This step should not be required on the vast majority of platforms, but if
you're trying to build Boost on an untested or unsupported platform it may be
necessary.<br>
<br>
<li>
If Boost.Build has problems detecting your Python installation it will print a
short messages about how to configure for finding the Python installation. For
more information, see these detailed <a href="../libs/python/doc/building.html#building">
instructions</a>.</li></ul>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED"
s-format="%d %B, %Y" startspan -->
8 November, 2004 <!--webbot bot="Timestamp" endspan i-checksum="38706" --></p>
<p>Copyright © Rene Rivera 2003.<br>
Copyright © Jens Maurer 2001.<BR>
Copyright © John Maddock 2004.</p>
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</body>
</html>
|