Browse Source

trace-cmd: new package

This commit adds a new package for the trace-cmd tool.  This tool is a
command line front end of ftrace.  It collects traces on your target.
You can analyse these traces on the target or on the host via the gui
"kernel shark".

[Thomas: use TARGET_CONFIGURE_OPTS, define _GNU_SOURCE to get
O_CLOEXEC definition on uClibc, add thread and largefile
dependencies.]

Signed-off-by: Pierre Floury <pierre.floury@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Pierre Floury 12 years ago
parent
commit
07203d78c2
3 changed files with 43 additions and 0 deletions
  1. 1 0
      package/Config.in
  2. 16 0
      package/trace-cmd/Config.in
  3. 26 0
      package/trace-cmd/trace-cmd.mk

+ 1 - 0
package/Config.in

@@ -48,6 +48,7 @@ source "package/strace/Config.in"
 source "package/stress/Config.in"
 source "package/sysprof/Config.in"
 source "package/tinymembench/Config.in"
+source "package/trace-cmd/Config.in"
 source "package/whetstone/Config.in"
 source "package/valgrind/Config.in"
 source "package/pv/Config.in"

+ 16 - 0
package/trace-cmd/Config.in

@@ -0,0 +1,16 @@
+config BR2_PACKAGE_TRACE_CMD
+	bool "trace-cmd"
+	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	help
+	  Command line reader for ftrace.
+
+	  To use this profiling tool, you should enable ftrace in your kernel
+	  configuration. This command collect traces on your target.
+	  You can analyse these traces on the target or on the host via the gui
+	  "kernel shark"
+
+	  http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git
+
+comment "trace-cmd needs a toolchain with largefile and threads support"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS

+ 26 - 0
package/trace-cmd/trace-cmd.mk

@@ -0,0 +1,26 @@
+################################################################################
+#
+# trace-cmd
+#
+################################################################################
+
+TRACE_CMD_VERSION = trace-cmd-v2.2.1
+TRACE_CMD_SITE = http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git
+TRACE_CMD_SITE_METHOD = git
+TRACE_CMD_INSTALL_STAGING = YES
+TRACE_CMD_LICENSE = GPLv2 LGPLv2.1
+TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB
+
+define TRACE_CMD_BUILD_CMDS
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \
+		-C $(@D) all
+endef
+
+define TRACE_CMD_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/trace-cmd $(TARGET_DIR)/usr/bin/trace-cmd
+	$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/trace-cmd/plugins
+	$(INSTALL) -D -m 0755 $(@D)/plugin_*.so $(TARGET_DIR)/usr/lib/trace-cmd/plugins
+endef
+
+$(eval $(generic-package))