source: general/genlib/boost.xml@ d0c749c

12.2 lazarus trunk xry111/for-12.3
Last change on this file since d0c749c was a2ed014c, checked in by Bruce Dubbs <bdubbs@…>, 5 weeks ago

Fix boost stats.

  • Property mode set to 100644
File size: 8.2 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY boost-download-http "https://github.com/boostorg/boost/releases/download/boost-&boost-version;/boost-&boost-dl-version;.tar.xz">
8 <!ENTITY boost-download-ftp " ">
9 <!ENTITY boost-md5sum "7ad40a9d9d1db59ee2ed62e8fa7134ed">
10 <!ENTITY boost-size "45 MB">
11 <!ENTITY boost-buildsize "899 MB (197 MB installed)">
12 <!ENTITY boost-time "1.8 SBU (Using parallelism=4; add 0.1 SBU for tests)">
13]>
14
15<sect1 id="boost" xreflabel="Boost-&boost-version;">
16 <?dbhtml filename="boost.html"?>
17
18 <title>boost-&boost-version;</title>
19
20 <indexterm zone="boost">
21 <primary sortas="a-Boost">Boost</primary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title>Introduction to Boost</title>
26
27 <para>
28 <application>Boost</application> provides a set of free peer-reviewed
29 portable C++ source libraries. It includes libraries for linear algebra,
30 pseudorandom number generation, multithreading, image processing, regular
31 expressions and unit testing.
32 </para>
33
34 &lfs121_checked;
35
36 <note>
37 <para>
38 This package will extract to the
39 <filename>boost-&boost-version;</filename>/ directory.
40 </para>
41 </note>
42
43 <bridgehead renderas="sect3">Package Information</bridgehead>
44 <itemizedlist spacing="compact">
45 <listitem>
46 <para>
47 Download (HTTP): <ulink url="&boost-download-http;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download (FTP): <ulink url="&boost-download-ftp;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download MD5 sum: &boost-md5sum;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download size: &boost-size;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated disk space required: &boost-buildsize;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated build time: &boost-time;
73 </para>
74 </listitem>
75 </itemizedlist>
76
77 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
78 <itemizedlist spacing="compact">
79 <listitem>
80 <para>
81 Required patch:
82 <ulink url="&patch-root;/boost-&boost-version;-upstream_fixes-1.patch"/>
83 </para>
84 </listitem>
85 </itemizedlist>
86
87 <bridgehead renderas="sect3">Boost Dependencies</bridgehead>
88
89 <bridgehead renderas="sect4">Recommended</bridgehead>
90 <para role="recommended">
91 <xref linkend="which"/>
92 </para>
93
94 <bridgehead renderas="sect4">Optional</bridgehead>
95 <para role="optional">
96 <xref linkend="icu"/>,
97 <xref linkend="numpy"/>, and
98 <ulink url="https://www.open-mpi.org/">Open MPI</ulink>
99 </para>
100
101 <para condition="html" role="usernotes">Editor Notes:
102 <ulink url="&blfs-wiki;/boost"/>
103 </para>
104 </sect2>
105
106 <sect2 role="installation">
107 <title>Installation of Boost</title>
108
109 <para>
110 First, fix a problem with Boost and <xref linkend="numpy"/> that causes
111 the build to fail:
112 </para>
113
114<screen><userinput remap="pre">patch -Np1 -i ../boost-&boost-version;-upstream_fixes-1.patch</userinput></screen>
115
116 <para>
117 Next, fix a build issue which occurs in the stacktrace library. This
118 issue is specific to i686 systems.
119 </para>
120
121<screen><userinput remap="pre">case $(uname -m) in
122 i?86)
123 sed -e "s/defined(__MINGW32__)/&amp; || defined(__i386__)/" \
124 -i ./libs/stacktrace/src/exception_headers.h ;;
125esac</userinput></screen>
126
127 <para>
128 This package can be built with several jobs running in parallel. In
129 the instructions below, <parameter>&lt;N&gt;</parameter> stands for the
130 number of jobs. Install <application>Boost</application> by running the
131 following commands:
132 </para>
133
134
135<screen><userinput>./bootstrap.sh --prefix=/usr --with-python=python3 &amp;&amp;
136./b2 stage -j<replaceable>&lt;N&gt;</replaceable> threading=multi link=shared</userinput></screen>
137
138 <para>
139 To run Boost.Build's regression tests, issue
140 <command>pushd tools/build/test; python3 test_all.py; popd</command>.
141 </para>
142
143 <para>
144 To run every library's regression tests, issue <command>pushd status;
145 ../b2; popd</command>. A few tests may fail. They take a very long time
146 (over 119 SBU at -j4) and use a very large amount of disk space
147 (46 GB). You should use the <parameter>-jN</parameter> switch to
148 speed them up.
149 </para>
150
151 <note>
152 <para>
153 Boost installs many versioned directories in /usr/lib/cmake.
154 If a new version of <application>Boost</application> is installed over a
155 previous version, the older cmake directories need to be
156 explicitly removed. To do this, run as the
157 <systemitem class="username">root</systemitem> user:
158 </para>
159
160<screen role="root"><userinput>rm -rf /usr/lib/cmake/[Bb]oost*</userinput></screen>
161
162 <para>
163 before installing the new version.
164 </para>
165 </note>
166
167 <para>
168 Now, as the <systemitem class="username">root</systemitem> user:
169 </para>
170
171<!-- dev note: ./b2 - -prefix=<DESTDIR>/usr install threading=multi link=shared -->
172
173<screen role="root"><userinput>./b2 install threading=multi link=shared</userinput></screen>
174
175 </sect2>
176
177 <sect2 role="commands">
178 <title>Command Explanations</title>
179<!--
180 <para>
181 <command>sed -i '/#include ...</command>: This removes the inclusion
182 of <filename>boost/phoenix/stl/tuple.hpp</filename> from this header-only
183 library, allowing applications which use it to link using recent C++.
184 </para>
185-->
186 <para>
187 <parameter>threading=multi</parameter>: This parameter ensures that
188 <application>Boost</application> is built with multithreading support.
189 </para>
190
191 <para>
192 <parameter>link=shared</parameter>: This parameter ensures that only
193 shared libraries are created, except for libboost_exception and
194 libboost_test_exec_monitor which are created as static. Most people
195 will not need the static libraries, and most programs using
196 <application>Boost</application> only use the headers. Omit
197 this parameter if you do need static libraries.
198 </para>
199
200 <para>
201 <parameter>--with-python=python3</parameter>: This switch ensures Python3
202 is used if Python2 is installed.
203 </para>
204
205 <para>
206 <option>-jN</option>: This switch may be added to the
207 <command>b2</command> command lines, to run up to N processes in
208 parallel.
209 </para>
210
211 </sect2>
212
213 <sect2 role="content">
214 <title>Contents</title>
215
216 <segmentedlist>
217 <segtitle>Installed Programs</segtitle>
218 <segtitle>Installed Libraries</segtitle>
219 <segtitle>Installed Directory</segtitle>
220
221 <seglistitem>
222 <seg>
223 None
224 </seg>
225 <seg>
226 libboost_atomic.so, libboost_charconv.so, libboost_chrono.so,
227 libboost_container.so, libboost_context.so, libboost_contract.so,
228 libboost_coroutine.so, libboost_date_time.so, libboost_exception.a,
229 libboost_fiber.so, libboost_filesystem.so, libboost_graph.so,
230 libboost_iostreams.so, libboost_json.so, libboost_locale.so,
231 libboost_log_setup.so, libboost_log.so, libboost_math_c99.so,
232 libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so,
233 libboost_math_tr1f.so, libboost_math_tr1l.so,
234 libboost_nowide.so, libboost_numpy3&python3-minor;.so,
235 libboost_prg_exec_monitor.so, libboost_program_options.so,
236 libboost_python3&python3-minor;.so, libboost_random.so,
237 libboost_regex.so, libboost_serialization.so,
238 libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so,
239 libboost_stacktrace_noop.so, libboost_system.so,
240 libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so,
241 libboost_type_erasure.so, libboost_unit_test_framework.so,
242 libboost_url.so, libboost_wave.so, and libboost_wserialization.so
243 </seg>
244 <seg>
245 /usr/include/boost
246 </seg>
247 </seglistitem>
248 </segmentedlist>
249
250 </sect2>
251
252</sect1>
Note: See TracBrowser for help on using the repository browser.