--- /dev/null
+comment "boost needs a toolchain w/ C++, threads"
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_BOOST_ARCH_SUPPORTS
+ bool
+ default y if !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 && \
+ !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
+
+config BR2_PACKAGE_BOOST
+ bool "boost"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS
+ # Boost could theorically be built with threading=single, but
+ # that unfortunately doesn't work. Until someone fixes that,
+ # let's depend on threads.
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ A general purpose C++ library
+
+ http://www.boost.org/
+
+if BR2_PACKAGE_BOOST
+
+choice
+ prompt "Layout"
+ default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
+ help
+ Selects the layout of Boost binary names
+
+config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
+ bool "system"
+ help
+ Boost binary names do not include the Boost version number
+ or the name and version number of the compiler.
+
+config BR2_PACKAGE_BOOST_LAYOUT_TAGGED
+ bool "tagged"
+ help
+ Boost binary names include the encoded build properties such
+ as variant and threading, but do not include compiler name
+ and version, or Boost version. This option is useful if you
+ build several variants of Boost, using the same compiler.
+
+config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
+ bool "versioned"
+ help
+ Boost binary names include the Boost version number, name
+ and version of the compiler and encoded build properties.
+
+endchoice
+
+config BR2_PACKAGE_BOOST_LAYOUT
+ string
+ default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
+ default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED
+ default "versioned" if BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
+
+config BR2_PACKAGE_BOOST_ATOMIC
+ bool "boost-atomic"
+
+config BR2_PACKAGE_BOOST_CHRONO
+ bool "boost-chrono"
+
+config BR2_PACKAGE_BOOST_CONTAINER
+ bool "boost-container"
+
+config BR2_PACKAGE_BOOST_CONTEXT
+ bool "boost-context"
+ depends on (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel \
+ || BR2_powerpc || BR2_sparc || BR2_x86_64)
+
+config BR2_PACKAGE_BOOST_DATE_TIME
+ bool "boost-date_time"
+
+config BR2_PACKAGE_BOOST_EXCEPTION
+ bool "boost-exception"
+
+config BR2_PACKAGE_BOOST_FILESYSTEM
+ bool "boost-filesystem"
+
+config BR2_PACKAGE_BOOST_GRAPH
+ bool "boost-graph"
+
+config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
+ bool "boost-graph_parallel"
+
+config BR2_PACKAGE_BOOST_IOSTREAMS
+ bool "boost-iostreams"
+ select BR2_PACKAGE_BZIP2
+ select BR2_PACKAGE_ZLIB
+
+config BR2_PACKAGE_BOOST_LOCALE
+ depends on BR2_USE_WCHAR
+ bool "boost-locale"
+
+comment "boost-locale needs a toolchain w/ wchar"
+ depends on !BR2_USE_WCHAR
+
+config BR2_PACKAGE_BOOST_LOG
+ bool "boost-log"
+ depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+ # for some reason, uClibc on PowerPC fails to build the boost
+ # log module
+ depends on !(BR2_powerpc && BR2_TOOLCHAIN_USES_UCLIBC)
+
+comment "boost-log needs a toolchain w/ NPTL"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
+ depends on !(BR2_powerpc && BR2_TOOLCHAIN_USES_UCLIBC)
+
+config BR2_PACKAGE_BOOST_MATH
+ bool "boost-math"
+
+config BR2_PACKAGE_BOOST_MPI
+ bool "boost-mpi"
+
+config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
+ bool "boost-program_options"
+
+config BR2_PACKAGE_BOOST_PYTHON
+ depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
+ bool "boost-python"
+
+config BR2_PACKAGE_BOOST_RANDOM
+ bool "boost-random"
+
+config BR2_PACKAGE_BOOST_REGEX
+ bool "boost-regex"
+
+config BR2_PACKAGE_BOOST_SERIALIZATION
+ bool "boost-serialization"
+
+config BR2_PACKAGE_BOOST_SIGNALS
+ bool "boost-signals"
+
+config BR2_PACKAGE_BOOST_SYSTEM
+ bool "boost-system"
+
+config BR2_PACKAGE_BOOST_TEST
+ bool "boost-test"
+ depends on BR2_USE_MMU # fork()
+
+config BR2_PACKAGE_BOOST_THREAD
+ bool "boost-thread"
+
+config BR2_PACKAGE_BOOST_TIMER
+ bool "boost-timer"
+
+config BR2_PACKAGE_BOOST_WAVE
+ bool "boost-wave"
+
+endif