b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | # |
| 2 | # Copyright (C) 2006-2016 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:=strace |
| 12 | PKG_VERSION:=6.11 |
| 13 | PKG_RELEASE:=1 |
| 14 | |
| 15 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz |
| 16 | PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION) |
| 17 | PKG_HASH:=83262583a3529f02c3501aa8b8ac772b4cbc03dc934e98bab6e4883626e283a5 |
| 18 | |
| 19 | PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> |
| 20 | PKG_LICENSE:=LGPL-2.1-or-later |
| 21 | PKG_LICENSE_FILES:=COPYING |
| 22 | PKG_CPE_ID:=cpe:/a:strace_project:strace |
| 23 | |
| 24 | PKG_FIXUP:=autoreconf |
| 25 | PKG_INSTALL:=1 |
| 26 | |
| 27 | PKG_CONFIG_DEPENDS := \ |
| 28 | CONFIG_STRACE_LIBDW \ |
| 29 | CONFIG_STRACE_LIBUNWIND |
| 30 | |
| 31 | include $(INCLUDE_DIR)/package.mk |
| 32 | include $(INCLUDE_DIR)/nls.mk |
| 33 | |
| 34 | HOST_CFLAGS += -I$(LINUX_DIR)/user_headers/include |
| 35 | |
| 36 | CONFIGURE_VARS+= \ |
| 37 | LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ |
| 38 | CPPFLAGS_FOR_BUILD="$(HOST_CPPFLAGS)" \ |
| 39 | CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ |
| 40 | CC_FOR_BUILD="$(HOST_CC)" |
| 41 | |
| 42 | define Package/strace |
| 43 | SECTION:=utils |
| 44 | CATEGORY:=Utilities |
| 45 | TITLE:=System call tracer |
| 46 | URL:=https://strace.io/ |
| 47 | DEPENDS:=+STRACE_LIBDW:libdw +STRACE_LIBUNWIND:libunwind |
| 48 | endef |
| 49 | |
| 50 | define Package/strace/description |
| 51 | A useful diagnostic, instructional, and debugging tool. Allows you to track what |
| 52 | system calls a program makes while it is running. |
| 53 | endef |
| 54 | |
| 55 | define Package/strace/config |
| 56 | choice |
| 57 | prompt "stack tracing support" |
| 58 | default STRACE_NONE |
| 59 | |
| 60 | config STRACE_NONE |
| 61 | bool "None" |
| 62 | |
| 63 | config STRACE_LIBDW |
| 64 | bool "libdw" |
| 65 | |
| 66 | config STRACE_LIBUNWIND |
| 67 | bool "libunwind (experimental)" |
| 68 | endchoice |
| 69 | endef |
| 70 | |
| 71 | CONFIGURE_ARGS += \ |
| 72 | --with-libdw=$(if $(CONFIG_STRACE_LIBDW),yes,no) \ |
| 73 | --with-libunwind=$(if $(CONFIG_STRACE_LIBUNWIND),yes,no) \ |
| 74 | --enable-mpers=no \ |
| 75 | --without-libselinux |
| 76 | |
| 77 | MAKE_FLAGS := \ |
| 78 | CCOPT="$(TARGET_CFLAGS)" |
| 79 | |
| 80 | define Package/strace/install |
| 81 | $(INSTALL_DIR) $(1)/usr/bin |
| 82 | $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/strace $(1)/usr/bin/ |
| 83 | endef |
| 84 | |
| 85 | $(eval $(call BuildPackage,strace)) |