summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Floury <pierre.floury@gmail.com>2013-08-02 12:01:11 (GMT)
committer Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-08-05 21:14:32 (GMT)
commit07203d78c24df74a77d73b17437d37dce41d232e (patch)
treece3434841241e8469589cca6b88d2004f47e67e4
parente0d640232e0ac4f091e06834b4688537bf138136 (diff)
downloadbuildroot-07203d78c24df74a77d73b17437d37dce41d232e.tar.gz
buildroot-07203d78c24df74a77d73b17437d37dce41d232e.tar.bz2
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>
-rw-r--r--package/Config.in1
-rw-r--r--package/trace-cmd/Config.in16
-rw-r--r--package/trace-cmd/trace-cmd.mk26
3 files changed, 43 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index 7069d77..f5b14f6 100644
--- a/package/Config.in
+++ b/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"
diff --git a/package/trace-cmd/Config.in b/package/trace-cmd/Config.in
new file mode 100644
index 0000000..8d79304
--- /dev/null
+++ b/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
diff --git a/package/trace-cmd/trace-cmd.mk b/package/trace-cmd/trace-cmd.mk
new file mode 100644
index 0000000..ada0306
--- /dev/null
+++ b/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))