45d0323dbc3d398e33f7b7d54956d70c1f63b9ae
[openwrt/openwrt.git] / package / devel / valgrind / Makefile
1 #
2 # Copyright (C) 2006-2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=valgrind
11 PKG_VERSION:=3.8.1
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
15 PKG_SOURCE_URL:=http://valgrind.org/downloads/
16 PKG_MD5SUM:=288758010b271119a0ffc0183f1d6e38
17
18 PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
19
20 PKG_FIXUP = autoreconf
21 PKG_INSTALL := 1
22 PKG_BUILD_PARALLEL := 1
23 PKG_USE_MIPS16:=0
24
25 include $(INCLUDE_DIR)/package.mk
26 include $(INCLUDE_DIR)/kernel.mk
27
28 define Package/valgrind
29 SECTION:=devel
30 CATEGORY:=Development
31 DEPENDS:=@mips||mipsel||i386||x86_64||powerpc||arm_v7 +libpthread +librt
32 TITLE:=debugging and profiling tools for Linux
33 URL:=http://www.valgrind.org
34 endef
35
36 define Package/valgrind/default
37 $(Package/valgrind)
38 DEPENDS := valgrind
39 endef
40
41 define Package/valgrind-cachegrind
42 $(Package/valgrind/default)
43 TITLE += (cache profiling)
44 endef
45
46 define Package/valgrind-callgrind
47 $(Package/valgrind/default)
48 TITLE += (callgraph profiling)
49 endef
50
51 define Package/valgrind-drd
52 $(Package/valgrind/default)
53 TITLE += (thread error detection)
54 endef
55
56 define Package/valgrind-massif
57 $(Package/valgrind/default)
58 TITLE += (heap profiling)
59 endef
60
61 define Package/valgrind-helgrind
62 $(Package/valgrind/default)
63 TITLE += (thread debugging)
64 endef
65
66 define Package/valgrind-vgdb
67 $(Package/valgrind/default)
68 TITLE += (GDB interface)
69 endef
70
71 define Package/valgrind/description
72 Valgrind is an award-winning suite of tools for debugging and
73 profiling Linux programs. With the tools that come with Valgrind,
74 you can automatically detect many memory management and threading
75 bugs, avoiding hours of frustrating bug-hunting, making your
76 programs more stable. You can also perform detailed profiling,
77 to speed up and reduce memory use of your programs.
78 endef
79
80 CPU := $(patsubst x86_64,amd64,$(patsubst x86,i386,$(LINUX_KARCH)))
81
82 CONFIGURE_VARS += \
83 UNAME_R=$(LINUX_VERSION)
84
85 ifeq ($(ARCH),x86_64)
86 BITS := 64bit
87 else
88 CONFIGURE_ARGS += \
89 --enable-only32bit
90 BITS := 32bit
91 endif
92
93 CONFIGURE_ARGS += \
94 --enable-tls \
95 --without-x \
96 --without-mpicc \
97 --without-uiout \
98 --disable-valgrindmi \
99 --disable-tui \
100 --disable-valgrindtk \
101 --without-included-gettext
102
103 define Package/valgrind/install
104 $(INSTALL_DIR) $(1)/usr/bin
105 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/valgrind* $(1)/usr/bin/
106 $(INSTALL_DIR) $(1)/usr/lib/valgrind
107 $(CP) \
108 ./files/default.supp \
109 $(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \
110 $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_core*.so \
111 $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(CPU)-*.xml \
112 $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-core*.xml \
113 $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-linux*.xml \
114 $(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-* \
115 $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_memcheck*.so \
116 $(1)/usr/lib/valgrind/
117 endef
118
119 define Package/valgrind-cachegrind/install
120 $(INSTALL_DIR) $(1)/usr/bin
121 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cg_* $(1)/usr/bin/
122 $(INSTALL_DIR) $(1)/usr/lib/valgrind
123 $(CP) \
124 $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-* \
125 $(1)/usr/lib/valgrind/
126 endef
127
128 define Package/valgrind-callgrind/install
129 $(INSTALL_DIR) $(1)/usr/bin
130 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/callgrind* $(1)/usr/bin/
131 $(INSTALL_DIR) $(1)/usr/lib/valgrind
132 $(CP) \
133 $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-* \
134 $(1)/usr/lib/valgrind/
135 endef
136
137 define Package/valgrind-drd/install
138 $(INSTALL_DIR) $(1)/usr/lib/valgrind
139 $(CP) \
140 $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-* \
141 $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_drd*.so \
142 $(1)/usr/lib/valgrind/
143 endef
144
145 define Package/valgrind-massif/install
146 $(INSTALL_DIR) $(1)/usr/bin
147 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ms_print $(1)/usr/bin/
148 $(INSTALL_DIR) $(1)/usr/lib/valgrind
149 $(CP) \
150 $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-* \
151 $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_massif*.so \
152 $(1)/usr/lib/valgrind/
153 endef
154
155 define Package/valgrind-helgrind/install
156 $(INSTALL_DIR) $(1)/usr/lib/valgrind
157 $(CP) \
158 $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-* \
159 $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_helgrind*.so \
160 $(1)/usr/lib/valgrind/
161 endef
162
163 define Package/valgrind-vgdb/install
164 $(INSTALL_DIR) $(1)/usr/bin
165 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vgdb $(1)/usr/bin/
166 endef
167
168 $(eval $(call BuildPackage,valgrind))
169 $(eval $(call BuildPackage,valgrind-cachegrind))
170 $(eval $(call BuildPackage,valgrind-callgrind))
171 $(eval $(call BuildPackage,valgrind-drd))
172 $(eval $(call BuildPackage,valgrind-massif))
173 $(eval $(call BuildPackage,valgrind-helgrind))
174 $(eval $(call BuildPackage,valgrind-vgdb))