config BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	bool
	default y if BR2_aarch64
	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
	default y if BR2_s390x
	depends on !BR2_MIPS_SOFT_FLOAT

comment "valgrind needs a toolchain w/ dynamic library, threads"
	depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_VALGRIND
	bool "valgrind"
	depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	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
