valgrind.mk 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #############################################################
  2. #
  3. # valgrind
  4. #
  5. #############################################################
  6. VALGRIND_VERSION = 3.7.0
  7. VALGRIND_SITE = http://valgrind.org/downloads/
  8. VALGRIND_SOURCE = valgrind-$(VALGRIND_VERSION).tar.bz2
  9. VALGRIND_CONF_OPT = --disable-tls
  10. # On ARM, Valgrind only supports ARMv7, and uses the arch part of the
  11. # host tuple to determine whether it's being built for ARMv7 or
  12. # not. Therefore, we adjust the host tuple to specify we're on
  13. # ARMv7. The valgrind package is guaranteed, through Config.in, to
  14. # only be selected on Cortex A8 and Cortex A9 platforms.
  15. ifeq ($(BR2_cortex_a8)$(BR2_cortex_a9),y)
  16. VALGRIND_CONF_OPT += \
  17. --host=$(patsubst arm-%,armv7-unknown-%,$(GNU_TARGET_NAME))
  18. endif
  19. define VALGRIND_INSTALL_UCLIBC_SUPP
  20. install -D -m 0644 package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/uclibc.supp
  21. endef
  22. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_INSTALL_UCLIBC_SUPP
  23. ifeq ($(BR2_PACKAGE_VALGRIND_MEMCHECK),)
  24. define VALGRIND_REMOVE_MEMCHECK
  25. rm -f $(TARGET_DIR)/usr/lib/valgrind/*memcheck*
  26. endef
  27. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MEMCHECK
  28. endif
  29. ifeq ($(BR2_PACKAGE_VALGRIND_CACHEGRIND),)
  30. define VALGRIND_REMOVE_CACHEGRIND
  31. rm -f $(TARGET_DIR)/usr/lib/valgrind/*cachegrind*
  32. for i in cg_annotate cg_diff cg_merge; do \
  33. rm -f $(TARGET_DIR)/usr/bin/$$i ; \
  34. done
  35. endef
  36. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CACHEGRIND
  37. endif
  38. ifeq ($(BR2_PACKAGE_VALGRIND_CALLGRIND),)
  39. define VALGRIND_REMOVE_CALLGRIND
  40. rm -f $(TARGET_DIR)/usr/lib/valgrind/*callgrind*
  41. for i in callgrind_annotate callgrind_control ; do \
  42. rm -f $(TARGET_DIR)/usr/bin/$$i ; \
  43. done
  44. endef
  45. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CALLGRIND
  46. endif
  47. ifeq ($(BR2_PACKAGE_VALGRIND_HELGRIND),)
  48. define VALGRIND_REMOVE_HELGRIND
  49. rm -f $(TARGET_DIR)/usr/lib/valgrind/*helgrind*
  50. endef
  51. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_HELGRIND
  52. endif
  53. ifeq ($(BR2_PACKAGE_VALGRIND_DRD),)
  54. define VALGRIND_REMOVE_DRD
  55. rm -f $(TARGET_DIR)/usr/lib/valgrind/*drd*
  56. endef
  57. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DRD
  58. endif
  59. ifeq ($(BR2_PACKAGE_VALGRIND_MASSIF),)
  60. define VALGRIND_REMOVE_MASSIF
  61. rm -f $(TARGET_DIR)/usr/lib/valgrind/*massif*
  62. rm -f $(TARGET_DIR)/usr/bin/ms_script
  63. endef
  64. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MASSIF
  65. endif
  66. ifeq ($(BR2_PACKAGE_VALGRIND_DHAT),)
  67. define VALGRIND_REMOVE_DHAT
  68. rm -f $(TARGET_DIR)/usr/lib/valgrind/*dhat*
  69. endef
  70. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DHAT
  71. endif
  72. ifeq ($(BR2_PACKAGE_VALGRIND_PTRCHECK),)
  73. define VALGRIND_REMOVE_PTRCHECK
  74. rm -f $(TARGET_DIR)/usr/lib/valgrind/*ptrcheck*
  75. endef
  76. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_PTRCHECK
  77. endif
  78. ifeq ($(BR2_PACKAGE_VALGRIND_BBV),)
  79. define VALGRIND_REMOVE_BBV
  80. rm -f $(TARGET_DIR)/usr/lib/valgrind/*bbv*
  81. endef
  82. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_BBV
  83. endif
  84. ifeq ($(BR2_PACKAGE_VALGRIND_LACKEY),)
  85. define VALGRIND_REMOVE_LACKEY
  86. rm -f $(TARGET_DIR)/usr/lib/valgrind/*lackey*
  87. endef
  88. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_LACKEY
  89. endif
  90. ifeq ($(BR2_PACKAGE_VALGRIND_NULGRIND),)
  91. define VALGRIND_REMOVE_NULGRIND
  92. rm -f $(TARGET_DIR)/usr/lib/valgrind/*none*
  93. endef
  94. VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_NULGRIND
  95. endif
  96. $(eval $(call AUTOTARGETS))