| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | # | 
 | 2 | # Copyright (C) 2011-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 | include $(INCLUDE_DIR)/kernel.mk | 
 | 10 |  | 
 | 11 | PKG_NAME:=perf | 
 | 12 | PKG_VERSION:=$(LINUX_VERSION) | 
 | 13 | PKG_RELEASE:=5 | 
 | 14 |  | 
 | 15 | PKG_BUILD_FLAGS:=no-mips16 no-lto | 
 | 16 | PKG_BUILD_PARALLEL:=1 | 
 | 17 | PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | 
 | 18 | PKG_FLAGS:=nonshared | 
 | 19 |  | 
 | 20 | # Perf's makefile and headers are not relocatable and must be built from the | 
 | 21 | # Linux sources directory | 
 | 22 | PKG_BUILD_DIR:=$(LINUX_DIR)/tools/perf-$(TARGET_DIR_NAME) | 
 | 23 |  | 
 | 24 | include $(INCLUDE_DIR)/package.mk | 
 | 25 | include $(INCLUDE_DIR)/nls.mk | 
 | 26 |  | 
 | 27 | define Package/perf | 
 | 28 |   SECTION:=devel | 
 | 29 |   CATEGORY:=Development | 
 | 30 |   DEPENDS:= +libelf +libdw +PACKAGE_libunwind:libunwind +libpthread +librt +objdump @!IN_SDK @KERNEL_PERF_EVENTS \ | 
 | 31 | 	    +PACKAGE_libbfd:libbfd +PACKAGE_libopcodes:libopcodes +libtraceevent | 
 | 32 |   TITLE:=Linux performance monitoring tool | 
 | 33 |   VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE) | 
 | 34 |   URL:=http://www.kernel.org | 
 | 35 | endef | 
 | 36 |  | 
 | 37 | define Package/perf/description | 
 | 38 |   perf is the Linux performance monitoring tool | 
 | 39 | endef | 
 | 40 |  | 
 | 41 | HOST_CFLAGS += -I$(LINUX_DIR)/tools/include | 
 | 42 |  | 
 | 43 | TARGET_LDFLAGS += $(INTL_LDFLAGS) | 
 | 44 |  | 
 | 45 | MAKE_FLAGS = \ | 
 | 46 | 	ARCH="$(LINUX_KARCH)" \ | 
 | 47 | 	NO_LIBPERL=1 \ | 
 | 48 | 	NO_LIBPYTHON=1 \ | 
 | 49 | 	NO_NEWT=1 \ | 
 | 50 | 	NO_LZMA=1 \ | 
 | 51 | 	NO_BACKTRACE=1 \ | 
 | 52 | 	NO_LIBNUMA=1 \ | 
 | 53 | 	NO_GTK2=1 \ | 
 | 54 | 	NO_LIBAUDIT=1 \ | 
 | 55 | 	NO_LIBCRYPTO=1 \ | 
 | 56 | 	NO_LIBUNWIND=1 \ | 
 | 57 | 	NO_LIBZSTD=1 \ | 
 | 58 | 	NO_LIBCAP=1 \ | 
 | 59 | 	CROSS_COMPILE="$(TARGET_CROSS)" \ | 
 | 60 | 	CC="$(TARGET_CC)" \ | 
 | 61 | 	LD="$(TARGET_CROSS)ld" \ | 
 | 62 | 	EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ | 
 | 63 | 	LDFLAGS="$(TARGET_LDFLAGS)" \ | 
 | 64 | 	KBUILD_HOSTCFLAGS="$(HOST_CFLAGS)" \ | 
 | 65 | 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | 
 | 66 | 	PKG_CONFIG="$(PKG_CONFIG)" \ | 
 | 67 | 	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" \ | 
 | 68 | 	EXCLUDE_EXTLIBS="-lstdc++" \ | 
 | 69 | 	EXTRA_PERFLIBS="$(shell $(TARGET_CC) -print-file-name=libstdc++.a)" \ | 
 | 70 | 	WERROR=0 \ | 
 | 71 | 	O=$(PKG_BUILD_DIR) \ | 
 | 72 | 	prefix=/usr | 
 | 73 |  | 
 | 74 | ifeq ($(LINUX_KARCH),powerpc) | 
 | 75 | 	MAKE_FLAGS += NO_AUXTRACE=1 | 
 | 76 | endif | 
 | 77 |  | 
 | 78 | define Build/Compile | 
 | 79 | 	+$(MAKE) $(PKG_JOBS) $(MAKE_FLAGS) \ | 
 | 80 | 		--no-print-directory \ | 
 | 81 | 		-C $(LINUX_DIR)/tools/perf \ | 
 | 82 | 		-f Makefile.perf | 
 | 83 | endef | 
 | 84 |  | 
 | 85 | define Package/perf/install | 
 | 86 | 	$(INSTALL_DIR) $(1)/usr/bin | 
 | 87 | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/perf $(1)/usr/bin/ | 
 | 88 | endef | 
 | 89 |  | 
 | 90 | $(eval $(call BuildPackage,perf)) |