config BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	bool
	default y if BR2_ARM_CPU_ARMV7A
	default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
	default y if BR2_i386 || BR2_x86_64
	default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
	depends on !BR2_MIPS_SOFT_FLOAT

comment "valgrind needs a toolchain w/ dynamic library"
	depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_VALGRIND
	bool "valgrind"
	depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	depends on !BR2_STATIC_LIBS
	help
	  Tool for debugging and profiling Linux programs.

	  http://valgrind.org/

if BR2_PACKAGE_VALGRIND

config BR2_PACKAGE_VALGRIND_MEMCHECK
	bool "Memcheck: a memory error detector"
	default y
	help
	  This option allows to install the Memcheck tool

config BR2_PACKAGE_VALGRIND_CACHEGRIND
	bool "Cachegrind: a cache and branch-prediction profiler"
	default y
	help
	  This option allows to install the Cachegrind tool

config BR2_PACKAGE_VALGRIND_CALLGRIND
	bool "Callgrind: a call-graph generating cache and branch prediction profiler"
	default y
	help
	  This option allows to install the Callgrind tool

config BR2_PACKAGE_VALGRIND_HELGRIND
	bool "Helgrind: a thread error detector"
	default y
	help
	  This option allows to install the Helgrind tool

config BR2_PACKAGE_VALGRIND_DRD
	bool "DRD: a thread error detector"
	default y
	help
	  This option allows to install the DRD tool

config BR2_PACKAGE_VALGRIND_MASSIF
	bool "Massif: a heap profiler"
	default y
	help
	  This option allows to install the Massif tool

config BR2_PACKAGE_VALGRIND_DHAT
	bool "DHAT: a dynamic heap analysis tool"
	default y
	help
	  This option allows to install the DHAT tool

config BR2_PACKAGE_VALGRIND_SGCHECK
	bool "SGCheck: an experimental stack and global array overrun detector"
	help
	  This option allows to install the SGCheck tool

config BR2_PACKAGE_VALGRIND_BBV
	bool "BBV: an experimental basic block vector generation tool"
	help
	  This option allows to install the BBV tool

config BR2_PACKAGE_VALGRIND_LACKEY
	bool "Lackey: an example tool"
	help
	  This option allows to install the Lackey tool

config BR2_PACKAGE_VALGRIND_NULGRIND
	bool "Nulgrind: the minimal Valgrind tool"
	help
	  This option allows to install the Nulgrind tool

endif
