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