summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/valgrind/Config.in66
-rw-r--r--package/valgrind/valgrind.mk95
2 files changed, 161 insertions, 0 deletions
diff --git a/package/valgrind/Config.in b/package/valgrind/Config.in
index 0f656dc11..dacdd8655 100644
--- a/package/valgrind/Config.in
+++ b/package/valgrind/Config.in
@@ -6,3 +6,69 @@ config BR2_PACKAGE_VALGRIND
Tool for debugging and profiling Linux programs.
http://valgrind.kde.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_PTRCHECK
+ bool "Ptrcheck: an experimental head, stack and global array overrun detector"
+ help
+ This option allows to install the Ptrcheck 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
diff --git a/package/valgrind/valgrind.mk b/package/valgrind/valgrind.mk
index 24523bf6b..004c1ac02 100644
--- a/package/valgrind/valgrind.mk
+++ b/package/valgrind/valgrind.mk
@@ -25,4 +25,99 @@ endef
VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_INSTALL_UCLIBC_SUPP
+ifeq ($(BR2_PACKAGE_VALGRIND_MEMCHECK),)
+define VALGRIND_REMOVE_MEMCHECK
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*memcheck*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MEMCHECK
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_CACHEGRIND),)
+define VALGRIND_REMOVE_CACHEGRIND
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*cachegrind*
+ for i in cg_annotate cg_diff cg_merge; do \
+ rm -f $(TARGET_DIR)/usr/bin/$$i ; \
+ done
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CACHEGRIND
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_CALLGRIND),)
+define VALGRIND_REMOVE_CALLGRIND
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*callgrind*
+ for i in callgrind_annotate callgrind_control ; do \
+ rm -f $(TARGET_DIR)/usr/bin/$$i ; \
+ done
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CALLGRIND
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_HELGRIND),)
+define VALGRIND_REMOVE_HELGRIND
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*helgrind*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_HELGRIND
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_DRD),)
+define VALGRIND_REMOVE_DRD
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*drd*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DRD
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_MASSIF),)
+define VALGRIND_REMOVE_MASSIF
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*massif*
+ rm -f $(TARGET_DIR)/usr/bin/ms_script
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MASSIF
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_DHAT),)
+define VALGRIND_REMOVE_DHAT
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*dhat*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DHAT
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_PTRCHECK),)
+define VALGRIND_REMOVE_PTRCHECK
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*ptrcheck*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_PTRCHECK
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_BBV),)
+define VALGRIND_REMOVE_BBV
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*bbv*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_BBV
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_LACKEY),)
+define VALGRIND_REMOVE_LACKEY
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*lackey*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_LACKEY
+endif
+
+ifeq ($(BR2_PACKAGE_VALGRIND_NULGRIND),)
+define VALGRIND_REMOVE_NULGRIND
+ rm -f $(TARGET_DIR)/usr/lib/valgrind/*none*
+endef
+
+VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_NULGRIND
+endif
+
$(eval $(call AUTOTARGETS))