blob: 80f593379b0872ee79bc969c2431cc67c0311340 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#
2# Copyright (C) 2008 OpenedHand Ltd.
3#
4
5SUMMARY = "Profiling tools"
6LICENSE = "MIT"
7
8PR = "r3"
9
10PACKAGE_ARCH = "${MACHINE_ARCH}"
11
12inherit packagegroup
13
14PROFILE_TOOLS_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sysprof', '', d)}"
15# sysprof doesn't support aarch64
16PROFILE_TOOLS_X_aarch64 = ""
17PROFILE_TOOLS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-analyze', '', d)}"
18
19RRECOMMENDS_${PN} = "\
20 perf \
21 trace-cmd \
22 blktrace \
23 ${PROFILE_TOOLS_X} \
24 ${PROFILE_TOOLS_SYSTEMD} \
25 "
26
27PROFILETOOLS = "\
28 powertop \
29 latencytop \
30 "
31
32# systemtap needs elfutils which is not fully buildable on uclibc
33# hence we exclude it from uclibc based builds
34SYSTEMTAP = "systemtap"
35SYSTEMTAP_libc-uclibc = ""
36SYSTEMTAP_mips = ""
37SYSTEMTAP_mips64 = ""
38SYSTEMTAP_mips64n32 = ""
39SYSTEMTAP_aarch64 = ""
40
41# lttng-ust uses sched_getcpu() which is not there on uclibc
42# for some of the architectures it can be patched to call the
43# syscall directly but for x86_64 __NR_getcpu is a vsyscall
44# which means we can not use syscall() to call it. So we ignore
45# it for x86_64/uclibc
46
47LTTNGUST = "lttng-ust"
48LTTNGUST_libc-uclibc = ""
49LTTNGUST_aarch64 = ""
50
51LTTNGTOOLS = "lttng-tools"
52LTTNGTOOLS_aarch64 = ""
53
54LTTNGMODULES = "lttng-modules"
55LTTNGMODULES_aarch64 = ""
56
57BABELTRACE = "babeltrace"
58BABELTRACE_aarch64 = ""
59
60# valgrind does not work on mips
61
62VALGRIND = "valgrind"
63VALGRIND_libc-uclibc = ""
64VALGRIND_mips = ""
65VALGRIND_mips64 = ""
66VALGRIND_mips64n32 = ""
67VALGRIND_arm = ""
68VALGRIND_aarch64 = ""
69
70# exmap-console
71# exmap-server
72
73RDEPENDS_${PN} = "\
74 ${PROFILETOOLS} \
75 ${LTTNGUST} \
76 ${LTTNGTOOLS} \
77 ${LTTNGMODULES} \
78 ${BABELTRACE} \
79 ${SYSTEMTAP} \
80 ${VALGRIND} \
81 "