# # Copyright (C) 2006-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=valgrind PKG_VERSION:=3.23.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://sourceware.org/pub/valgrind/ PKG_HASH:=c5c34a3380457b9b75606df890102e7df2c702b9420c2ebef9540f8b5d56264d PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0+ PKG_CPE_ID:=cpe:/a:valgrind:valgrind PKG_FIXUP = autoreconf PKG_INSTALL := 1 PKG_BUILD_PARALLEL := 1 PKG_BUILD_FLAGS:=no-mips16 PKG_SSP:=0 STRIP:=: include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/kernel.mk define Package/valgrind SECTION:=devel CATEGORY:=Development DEPENDS:=@mips||mipsel||mips64||mips64el||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt TITLE:=debugging and profiling tools for Linux URL:=http://www.valgrind.org endef define Package/valgrind/default $(Package/valgrind) DEPENDS := valgrind endef define Package/valgrind-cachegrind $(Package/valgrind/default) TITLE += (cache profiling) endef define Package/valgrind-callgrind $(Package/valgrind/default) TITLE += (callgraph profiling) endef define Package/valgrind-drd $(Package/valgrind/default) TITLE += (thread error detection) endef define Package/valgrind-massif $(Package/valgrind/default) TITLE += (heap profiling) endef define Package/valgrind-helgrind $(Package/valgrind/default) TITLE += (thread debugging) endef define Package/valgrind-vgdb $(Package/valgrind/default) TITLE += (GDB interface) endef define Package/valgrind/description Valgrind is an award-winning suite of tools for debugging and profiling Linux programs. With the tools that come with Valgrind, you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling, to speed up and reduce memory use of your programs. endef CPU := $(patsubst x86_64,amd64,$(patsubst x86,i386,$(patsubst um,$(ARCH),$(LINUX_KARCH)))) CONFIGURE_VARS += \ UNAME_R=$(LINUX_VERSION) ifeq ($(CONFIG_ARCH_64BIT),y) CONFIGURE_ARGS += \ --enable-only64bit BITS := 64bit else CONFIGURE_ARGS += \ --enable-only32bit BITS := 32bit endif ifeq ($(CONFIG_arm_v7),y) CONFIGURE_ARGS += --host=armv7-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX)) endif CONFIGURE_ARGS += \ --enable-lto \ --enable-tls \ --without-mpicc \ define Package/valgrind/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/valgrind* $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ ./files/default.supp \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_core*.so \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-core*.xml \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-linux*.xml \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_memcheck*.so \ $(1)/usr/lib/valgrind/ ifneq ($(ARCH),aarch64) $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(CPU)-*.xml \ $(1)/usr/lib/valgrind/ endif $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-* endef define Package/valgrind-cachegrind/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cg_* $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-* \ $(1)/usr/lib/valgrind/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-* endef define Package/valgrind-callgrind/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/callgrind* $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-* \ $(1)/usr/lib/valgrind/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-* endef define Package/valgrind-drd/install $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_drd*.so \ $(1)/usr/lib/valgrind/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-* endef define Package/valgrind-massif/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ms_print $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_massif*.so \ $(1)/usr/lib/valgrind/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-* endef define Package/valgrind-helgrind/install $(INSTALL_DIR) $(1)/usr/lib/valgrind $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-* \ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_helgrind*.so \ $(1)/usr/lib/valgrind/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-* endef define Package/valgrind-vgdb/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vgdb $(1)/usr/bin/ $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin endef $(eval $(call BuildPackage,valgrind)) $(eval $(call BuildPackage,valgrind-cachegrind)) $(eval $(call BuildPackage,valgrind-callgrind)) $(eval $(call BuildPackage,valgrind-drd)) $(eval $(call BuildPackage,valgrind-massif)) $(eval $(call BuildPackage,valgrind-helgrind)) $(eval $(call BuildPackage,valgrind-vgdb))