config BR2_PACKAGE_BOTAN_ARCH_SUPPORTS
	bool
	default y if BR2_arm || BR2_armeb || BR2_i386 || BR2_m68k    || \
		BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
		BR2_powerpc || BR2_powerpc64 || BR2_sparc || BR2_sh  || \
		BR2_x86_64

config BR2_PACKAGE_BOTAN
	bool "botan"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future
	select BR2_PACKAGE_BOOST_FILESYSTEM if BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_SYSTEM if BR2_PACKAGE_BOOST
	help
	  Botan is a crypto library for C++

	  http://botan.randombit.net

comment "botan needs a toolchain w/ C++, threads, gcc >= 4.8"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS

comment "botan needs a toolchain not affected by GCC bug 64735"
	depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
