xref: /OK3568_Linux_fs/buildroot/package/boost/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1comment "boost needs a toolchain w/ C++, threads, wchar"
2	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
3
4config BR2_PACKAGE_BOOST
5	bool "boost"
6	depends on BR2_INSTALL_LIBSTDCPP
7	# Boost could theorically be built with threading=single, but
8	# that unfortunately doesn't work. Until someone fixes that,
9	# let's depend on threads.
10	depends on BR2_TOOLCHAIN_HAS_THREADS
11	depends on BR2_USE_WCHAR
12	help
13	  A general purpose C++ library
14
15	  http://www.boost.org/
16
17if BR2_PACKAGE_BOOST
18
19choice
20	prompt "Layout"
21	default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
22	help
23	  Selects the layout of Boost binary names
24
25config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
26	bool "system"
27	help
28	  Boost binary names do not include the Boost version number
29	  or the name and version number of the compiler.
30
31config BR2_PACKAGE_BOOST_LAYOUT_TAGGED
32	bool "tagged"
33	help
34	  Boost binary names include the encoded build properties such
35	  as variant and threading, but do not include compiler name
36	  and version, or Boost version. This option is useful if you
37	  build several variants of Boost, using the same compiler.
38
39config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
40	bool "versioned"
41	help
42	  Boost binary names include the Boost version number, name
43	  and version of the compiler and encoded build properties.
44
45endchoice
46
47config BR2_PACKAGE_BOOST_LAYOUT
48	string
49	default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
50	default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED
51	default "versioned" if BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
52
53config BR2_PACKAGE_BOOST_ATOMIC
54	bool "boost-atomic"
55	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
56	help
57	  C++11-style atomic<>.
58
59config BR2_PACKAGE_BOOST_CHRONO
60	bool "boost-chrono"
61	select BR2_PACKAGE_BOOST_SYSTEM
62	help
63	  Useful time utilities. C++11.
64
65config BR2_PACKAGE_BOOST_CONTAINER
66	bool "boost-container"
67	help
68	  Standard library containers and extensions.
69
70# see
71# http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/context/architectures.html
72# for the list of supported architectures. Sparc pretends to be
73# supported, but it doesn't build.
74config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
75	bool
76	default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM)
77	default y if BR2_i386
78	default y if BR2_mips
79	default y if BR2_mipsel
80	default y if BR2_powerpc
81	default y if BR2_x86_64
82
83config BR2_PACKAGE_BOOST_CONTEXT
84	bool "boost-context"
85	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
86	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
87		|| BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
88	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
89	select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
90	help
91	  C++11 context switching library.
92
93config BR2_PACKAGE_BOOST_CONTRACT
94	bool "boost-contract"
95	# pthread_condattr_setclock
96	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
97	select BR2_PACKAGE_BOOST_SYSTEM
98	help
99	  Contract programming for C++.
100
101comment "boost-contract needs a toolchain w/ NPTL"
102	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
103
104config BR2_PACKAGE_BOOST_COROUTINE
105	bool "boost-coroutine"
106	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
107	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
108	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
109	select BR2_PACKAGE_BOOST_CHRONO
110	select BR2_PACKAGE_BOOST_CONTEXT
111	select BR2_PACKAGE_BOOST_SYSTEM
112	select BR2_PACKAGE_BOOST_THREAD
113	help
114	  deprecated coroutine library, the non-depricated coroutine2
115	  library is a header-only library and does not need to be
116	  selected.
117
118comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
119	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
120	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
121	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
122
123config BR2_PACKAGE_BOOST_DATE_TIME
124	bool "boost-date_time"
125	help
126	  A set of date-time libraries based on generic programming
127	  concepts.
128
129config BR2_PACKAGE_BOOST_EXCEPTION
130	bool "boost-exception"
131	help
132	  The Boost Exception library supports transporting of arbitrary
133	  data in exception objects, and transporting of exceptions
134	  between threads.
135
136config BR2_PACKAGE_BOOST_FIBER
137	bool "boost-fiber"
138	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
139	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
140	# mips support uses the "pause" instruction, only available
141	# since mips32r2/mips64r2.
142	depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
143	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem
144	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
145	select BR2_PACKAGE_BOOST_CONTEXT
146	select BR2_PACKAGE_BOOST_FILESYSTEM
147	select BR2_PACKAGE_BOOST_SYSTEM
148	help
149	  C++11 userland threads library.
150
151comment "boost-fiber needs a toolchain w/ NPTL"
152	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
153	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
154	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
155
156comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
157	depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
158	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
159		|| BR2_TOOLCHAIN_GCC_AT_LEAST_6
160	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
161
162config BR2_PACKAGE_BOOST_FILESYSTEM
163	bool "boost-filesystem"
164	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
165	select BR2_PACKAGE_BOOST_ATOMIC
166	select BR2_PACKAGE_BOOST_SYSTEM
167	help
168	  The Boost Filesystem Library provides portable facilities to
169	  query and manipulate paths, files, and directories.
170
171config BR2_PACKAGE_BOOST_GRAPH
172	bool "boost-graph"
173	select BR2_PACKAGE_BOOST_REGEX
174	help
175	  The BGL graph interface and graph components are generic, in
176	  the same sense as the the Standard Template Library (STL).
177
178config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
179	bool "boost-graph_parallel"
180	help
181	  The PBGL graph interface and graph components are generic, in
182	  the same sense as the the Standard Template Library (STL).
183
184config BR2_PACKAGE_BOOST_IOSTREAMS
185	bool "boost-iostreams"
186	select BR2_PACKAGE_BZIP2
187	select BR2_PACKAGE_ZLIB
188	help
189	  Boost.IOStreams provides a framework for defining streams,
190	  stream buffers and i/o filters.
191
192config BR2_PACKAGE_BOOST_JSON
193	bool "boost-json"
194	select BR2_PACKAGE_BOOST_CONTAINER
195	help
196	  Boost.JSON is a portable C++ library which provides containers
197	  and algorithms that implement JavaScript Object Notation, or
198	  simply "JSON", a lightweight data-interchange format.
199
200	  To use the library "header-only" this option is not needed.
201
202config BR2_PACKAGE_BOOST_LOCALE
203	bool "boost-locale"
204	# When boost-locale is enabled with icu support, Boost no
205	# longer supports building the libboost_* libraries as static
206	# libraries, causing build failures when other boost features
207	# than boost-locale are enabled. To work around this, we
208	# prevent using boost-locale on static linking configurations
209	# with icu enabled. See
210	# https://svn.boost.org/trac/boost/ticket/9685 for more
211	# details.
212	depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
213	depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
214	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
215		|| !BR2_PACKAGE_ICU # boost-thread
216	select BR2_PACKAGE_BOOST_SYSTEM
217	select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
218	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
219	help
220	  Provide localization and Unicode handling tools for C++.
221
222comment "boost-locale needs a toolchain w/ dynamic library"
223	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
224	depends on BR2_PACKAGE_ICU
225	depends on BR2_STATIC_LIBS
226
227comment "boost-locale needs a toolchain not affected by GCC bug 64735"
228	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
229	depends on BR2_PACKAGE_ICU
230	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
231
232config BR2_PACKAGE_BOOST_LOG
233	bool "boost-log"
234	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
235	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
236	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
237	select BR2_PACKAGE_BOOST_ATOMIC
238	select BR2_PACKAGE_BOOST_DATE_TIME
239	select BR2_PACKAGE_BOOST_FILESYSTEM
240	select BR2_PACKAGE_BOOST_REGEX
241	select BR2_PACKAGE_BOOST_SYSTEM
242	select BR2_PACKAGE_BOOST_THREAD
243	help
244	  Logging library.
245
246comment "boost-log needs a toolchain w/ NPTL"
247	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
248	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
249
250comment "boost-log needs a toolchain not affected by GCC bug 64735"
251	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
252
253config BR2_PACKAGE_BOOST_MATH
254	bool "boost-math"
255	help
256	  Boost.Math includes several contributions in the domain of
257	  mathematics:
258
259	  The Greatest Common Divisor and Least Common
260	  Multiple library provides run-time and compile-time evaluation
261	  of the greatest common divisor (GCD) or least common multiple
262	  (LCM) of two integers.
263
264	  The Special Functions library currently provides eight
265	  templated special functions, in namespace boost.
266
267	  The Complex Number Inverse Trigonometric Functions are the
268	  inverses of trigonometric functions currently present in the
269	  C++ standard.
270
271	  Quaternions are a relative of complex numbers often used to
272	  parameterise rotations in three dimentional space.
273
274	  Octonions, like quaternions, are a relative of complex
275	  numbers.
276
277config BR2_PACKAGE_BOOST_MPI
278	bool "boost-mpi"
279	help
280	  Message Passing Interface library, for use in
281	  distributed-memory parallel application programming.
282
283config BR2_PACKAGE_BOOST_NOWIDE
284	bool "boost-nowide"
285	help
286	  Library for cross-platform, unicode aware programming.
287
288config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
289	bool "boost-program_options"
290	help
291	  The program_options library allows program developers to
292	  obtain program options, that is (name, value) pairs from the
293	  user, via conventional methods such as command line and config
294	  file.
295
296config BR2_PACKAGE_BOOST_PYTHON
297	bool "boost-python"
298	depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
299	help
300	  The Boost Python Library is a framework for interfacing Python
301	  and C++. It allows you to quickly and seamlessly expose C++
302	  classes functions and objects to Python, and vice-versa,
303	  using no special tools -- just your C++ compiler.
304
305config BR2_PACKAGE_BOOST_RANDOM
306	bool "boost-random"
307	select BR2_PACKAGE_BOOST_SYSTEM
308	help
309	  A complete system for random number generation.
310
311config BR2_PACKAGE_BOOST_REGEX
312	bool "boost-regex"
313	help
314	  A new infrastructure for generic algorithms that builds on top
315	  of the new iterator concepts.
316
317config BR2_PACKAGE_BOOST_SERIALIZATION
318	bool "boost-serialization"
319	help
320	  Serialization for persistence and marshalling.
321
322config BR2_PACKAGE_BOOST_STACKTRACE
323	bool "boost-stacktrace"
324	depends on !BR2_STATIC_LIBS
325	help
326	  Gather, store, copy and print backtraces.
327
328comment "boost-stacktrace needs a toolchain w/ dynamic library"
329	depends on BR2_STATIC_LIBS
330
331config BR2_PACKAGE_BOOST_SYSTEM
332	bool "boost-system"
333	help
334	  Operating system support, including the diagnostics support
335	  that will be part of the C++0x standard library.
336
337config BR2_PACKAGE_BOOST_TEST
338	bool "boost-test"
339	depends on BR2_USE_MMU # fork()
340	select BR2_PACKAGE_BOOST_SYSTEM
341	select BR2_PACKAGE_BOOST_TIMER
342	help
343	  Support for simple program testing, full unit testing, and for
344	  program execution monitoring.
345
346config BR2_PACKAGE_BOOST_THREAD
347	bool "boost-thread"
348	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
349	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
350	select BR2_PACKAGE_BOOST_CHRONO
351	select BR2_PACKAGE_BOOST_SYSTEM
352	help
353	  Portable C++ multi-threading. C++11, C++14.
354
355comment "boost-thread needs a toolchain not affected by GCC bug 64735"
356	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
357
358config BR2_PACKAGE_BOOST_TIMER
359	bool "boost-timer"
360	select BR2_PACKAGE_BOOST_CHRONO
361	select BR2_PACKAGE_BOOST_SYSTEM
362	help
363	  Event timer, progress timer, and progress display classes.
364
365config BR2_PACKAGE_BOOST_TYPE_ERASURE
366	bool "boost-type_erasure"
367	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
368	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
369	select BR2_PACKAGE_BOOST_SYSTEM
370	select BR2_PACKAGE_BOOST_THREAD
371	help
372	  Runtime polymorphism based on concepts.
373
374comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
375	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
376
377config BR2_PACKAGE_BOOST_WAVE
378	bool "boost-wave"
379	# limitation of assembler for coldfire
380	# error: Tried to convert PC relative branch to absolute jump
381	depends on !BR2_m68k_cf
382	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
383	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
384	select BR2_PACKAGE_BOOST_DATE_TIME
385	select BR2_PACKAGE_BOOST_FILESYSTEM
386	select BR2_PACKAGE_BOOST_SYSTEM
387	select BR2_PACKAGE_BOOST_THREAD
388	help
389	  The Boost.Wave library is a Standards conformant, and highly
390	  configurable implementation of the mandated C99/C++
391	  preprocessor functionality packed behind an easy to use
392	  iterator interface.
393
394comment "boost-wave needs a toolchain not affected by GCC bug 64735"
395	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
396
397endif
398