comment "boost requires a toolchain with C++, large file and thread support enabled"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_BOOST
	bool "boost"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_LARGEFILE
	# 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
	select BR2_PACKAGE_BZIP2
	select BR2_PACKAGE_ZLIB
	help
	  A general purpose C++ library

	  http://www.boost.org/

if BR2_PACKAGE_BOOST

config BR2_PACKAGE_BOOST_CHRONO
	bool "boost-chrono"

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"

config BR2_PACKAGE_BOOST_LOCALE
	depends on BR2_USE_WCHAR
	bool "boost-locale"

comment "boost-locale requires a toolchain with wchar support"
	depends on !BR2_USE_WCHAR

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_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"

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

