valgrind.mk 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #############################################################
  2. #
  3. # valgrind
  4. #
  5. #############################################################
  6. VALGRIND_VERSION=3.2.3
  7. VALGRIND_SITE:=http://valgrind.org/downloads/
  8. VALGRIND_DIR:=$(BUILD_DIR)/valgrind-$(VALGRIND_VERSION)
  9. VALGRIND_SOURCE:=valgrind-$(VALGRIND_VERSION).tar.bz2
  10. VALGRIND_CAT:=$(BZCAT)
  11. $(DL_DIR)/$(VALGRIND_SOURCE):
  12. $(call DOWNLOAD,$(VALGRIND_SITE),$(VALGRIND_SOURCE))
  13. $(VALGRIND_DIR)/.unpacked: $(DL_DIR)/$(VALGRIND_SOURCE)
  14. $(VALGRIND_CAT) $(DL_DIR)/$(VALGRIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  15. touch $(VALGRIND_DIR)/.unpacked
  16. $(VALGRIND_DIR)/.patched: $(VALGRIND_DIR)/.unpacked
  17. toolchain/patch-kernel.sh $(VALGRIND_DIR) package/valgrind/ valgrind\*.patch
  18. touch $(VALGRIND_DIR)/.patched
  19. $(VALGRIND_DIR)/.configured: $(VALGRIND_DIR)/.patched
  20. (cd $(VALGRIND_DIR); rm -rf config.cache; \
  21. $(TARGET_CONFIGURE_OPTS) \
  22. $(TARGET_CONFIGURE_ARGS) \
  23. CC="$(TARGET_CC) $(TARGET_CFLAGS) -I$(LINUX_HEADERS_DIR)/include" \
  24. ./configure $(QUIET) \
  25. --target=$(GNU_TARGET_NAME) \
  26. --host=$(GNU_TARGET_NAME) \
  27. --build=$(GNU_HOST_NAME) \
  28. --prefix=/usr \
  29. $(DISABLE_NLS) \
  30. --without-uiout --disable-valgrindmi \
  31. --disable-tui --disable-valgrindtk \
  32. --without-x --without-included-gettext \
  33. --disable-tls \
  34. )
  35. touch $(VALGRIND_DIR)/.configured
  36. $(VALGRIND_DIR)/coregrind/valgrind: $(VALGRIND_DIR)/.configured
  37. $(MAKE) -C $(VALGRIND_DIR)
  38. touch -c $@
  39. $(TARGET_DIR)/usr/bin/valgrind: $(VALGRIND_DIR)/coregrind/valgrind
  40. $(MAKE) \
  41. prefix=$(TARGET_DIR)/usr \
  42. exec_prefix=$(TARGET_DIR)/usr \
  43. bindir=$(TARGET_DIR)/usr/bin \
  44. sbindir=$(TARGET_DIR)/usr/sbin \
  45. libexecdir=$(TARGET_DIR)/usr/lib \
  46. datadir=$(TARGET_DIR)/usr/share \
  47. sysconfdir=$(TARGET_DIR)/etc \
  48. sharedstatedir=$(TARGET_DIR)/usr/com \
  49. localstatedir=$(TARGET_DIR)/var \
  50. libdir=$(TARGET_DIR)/usr/lib \
  51. infodir=$(TARGET_DIR)/usr/info \
  52. mandir=$(TARGET_DIR)/usr/man \
  53. includedir=$(TARGET_DIR)/usr/include \
  54. -C $(VALGRIND_DIR) install
  55. mv $(TARGET_DIR)/usr/bin/valgrind $(TARGET_DIR)/usr/bin/valgrind.bin
  56. cp package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/
  57. cp package/valgrind/valgrind.sh $(TARGET_DIR)/usr/bin/valgrind
  58. chmod a+x $(TARGET_DIR)/usr/bin/valgrind
  59. rm -rf $(TARGET_DIR)/usr/share/doc/valgrind
  60. touch -c $@
  61. valgrind: $(TARGET_DIR)/usr/bin/valgrind
  62. valgrind-source: $(DL_DIR)/$(VALGRIND_SOURCE)
  63. valgrind-clean:
  64. -$(MAKE) -C $(VALGRIND_DIR) clean
  65. -rm -f $(TARGET_DIR)/usr/bin/valgrind*
  66. rm -rf $(TARGET_DIR)/usr/lib/valgrind
  67. valgrind-dirclean:
  68. rm -rf $(VALGRIND_DIR)
  69. #############################################################
  70. #
  71. # Toplevel Makefile options
  72. #
  73. #############################################################
  74. ifeq ($(BR2_PACKAGE_VALGRIND),y)
  75. TARGETS+=valgrind
  76. endif