blob: dd9844504bb7178cf938977f9e6cb15b817db467 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#
2# Copyright (C) 2008 OpenedHand Ltd.
3#
4
5SUMMARY = "Profiling tools"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006
7PR = "r3"
8
9PACKAGE_ARCH = "${MACHINE_ARCH}"
10
11inherit packagegroup
12
13PROFILE_TOOLS_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sysprof', '', d)}"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014# sysprof doesn't support aarch64 and nios2
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015PROFILE_TOOLS_X_aarch64 = ""
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016PROFILE_TOOLS_X_nios2 = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017PROFILE_TOOLS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-analyze', '', d)}"
18
19RRECOMMENDS_${PN} = "\
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050020 ${PERF} \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050021 trace-cmd \
22 blktrace \
23 ${PROFILE_TOOLS_X} \
24 ${PROFILE_TOOLS_SYSTEMD} \
25 "
26
27PROFILETOOLS = "\
28 powertop \
29 latencytop \
30 "
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050031PERF = "perf"
32PERF_libc-musl = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033
34# systemtap needs elfutils which is not fully buildable on uclibc
35# hence we exclude it from uclibc based builds
36SYSTEMTAP = "systemtap"
37SYSTEMTAP_libc-uclibc = ""
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050038SYSTEMTAP_libc-musl = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050039SYSTEMTAP_mips = ""
Patrick Williamsc0f7c042017-02-23 20:41:17 -060040SYSTEMTAP_mipsel = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041SYSTEMTAP_mips64 = ""
42SYSTEMTAP_mips64n32 = ""
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050043SYSTEMTAP_nios2 = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050044SYSTEMTAP_aarch64 = ""
45
46# lttng-ust uses sched_getcpu() which is not there on uclibc
47# for some of the architectures it can be patched to call the
48# syscall directly but for x86_64 __NR_getcpu is a vsyscall
49# which means we can not use syscall() to call it. So we ignore
50# it for x86_64/uclibc
51
52LTTNGUST = "lttng-ust"
53LTTNGUST_libc-uclibc = ""
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050054LTTNGUST_libc-musl = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050055
56LTTNGTOOLS = "lttng-tools"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050057LTTNGTOOLS_libc-musl = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050058
59LTTNGMODULES = "lttng-modules"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050060
61BABELTRACE = "babeltrace"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050062
Patrick Williamsc0f7c042017-02-23 20:41:17 -060063# valgrind does not work on the following configurations/architectures
Patrick Williamsc124f4f2015-09-15 14:41:29 -050064
65VALGRIND = "valgrind"
66VALGRIND_libc-uclibc = ""
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050067VALGRIND_libc-musl = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050068VALGRIND_mips = ""
Patrick Williamsc0f7c042017-02-23 20:41:17 -060069VALGRIND_mipsel = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070VALGRIND_mips64 = ""
71VALGRIND_mips64n32 = ""
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050072VALGRIND_nios2 = ""
Patrick Williamsc0f7c042017-02-23 20:41:17 -060073VALGRIND_armv4 = ""
74VALGRIND_armv5 = ""
75VALGRIND_armv6 = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076VALGRIND_aarch64 = ""
77
Patrick Williamsc124f4f2015-09-15 14:41:29 -050078RDEPENDS_${PN} = "\
79 ${PROFILETOOLS} \
80 ${LTTNGUST} \
81 ${LTTNGTOOLS} \
82 ${LTTNGMODULES} \
83 ${BABELTRACE} \
84 ${SYSTEMTAP} \
85 ${VALGRIND} \
86 "