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