summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2017-01-16 13:11:10 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-19 22:45:43 +0000
commit33d05772c30036e8d2bb2dc8928989bf98d388f1 (patch)
treebd75b7cb3d2a845447f484ba2fd68c86120459a2
parentd4b2e8298127a5100eb99309e010c3002f769dd5 (diff)
downloadopenembedded-core-contrib-33d05772c30036e8d2bb2dc8928989bf98d388f1.tar.gz
openembedded-core-contrib-33d05772c30036e8d2bb2dc8928989bf98d388f1.tar.bz2
openembedded-core-contrib-33d05772c30036e8d2bb2dc8928989bf98d388f1.zip
perf: use PACKAGECONFIG instead of hand-rolled logic
PERF_FEATURES_ENABLE and perf_feature_enabled() was basically a poor man's clone of PACKAGECONFIG, without the automatic handling of dependencies and configure options. As part of the port to PACKAGECONFIG the options have been changed to remove the perf- prefix, but are otherwise unchanged. Also remove BUILDPERF_libc_uclibc assignment as nothing in the metadata uses a BUILDPERF variable. Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/recipes-kernel/perf/perf-features.inc22
-rw-r--r--meta/recipes-kernel/perf/perf.bb26
2 files changed, 9 insertions, 39 deletions
diff --git a/meta/recipes-kernel/perf/perf-features.inc b/meta/recipes-kernel/perf/perf-features.inc
deleted file mode 100644
index a4402cc50b..0000000000
--- a/meta/recipes-kernel/perf/perf-features.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-PERF_FEATURES_ENABLE ?= "perf-scripting perf-tui"
-
-def perf_feature_enabled(feature, trueval, falseval, d):
- """
- Check which perf features are enabled.
-
- The PERF_FEATURES_ENABLE variable lists the perf features to
- enable. Override it if you want something different from what's
- listed above, which is the default. If empty, the build won't
- enable any features (which may be exactly what you want, just a
- barebones perf without any extra baggage, what you get if you
- specify an empty feature list).
-
- Available perf features:
- perf-scripting: enable support for Perl and Python bindings
- perf-tui: enable support for the perf TUI (via libnewt)
-
- """
- enabled_features = d.getVar("PERF_FEATURES_ENABLE") or ""
- if feature in enabled_features:
- return trueval
- return falseval
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index cfbe628345..8b5028ea4c 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -10,24 +10,21 @@ LICENSE = "GPLv2"
PR = "r9"
-require perf-features.inc
-
BUILDPERF_libc-uclibc = "no"
+PACKAGECONFIG ??= "scripting tui"
+PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python"
# gui support was added with kernel 3.6.35
# since 3.10 libnewt was replaced by slang
# to cover a wide range of kernel we add both dependencies
-TUI_DEPENDS = "${@perf_feature_enabled('perf-tui', 'libnewt slang', '',d)}"
-SCRIPTING_DEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl python', '',d)}"
-LIBUNWIND_DEPENDS = "${@perf_feature_enabled('perf-libunwind', 'libunwind', '',d)}"
+PACKAGECONFIG[tui] = ",NO_NEWT=1,libnewt slang"
+PACKAGECONFIG[libunwind] = ",NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1,libunwind"
+PACKAGECONFIG[libnuma] = ",NO_LIBNUMA=1"
DEPENDS = " \
virtual/${MLPREFIX}libc \
${MLPREFIX}elfutils \
${MLPREFIX}binutils \
- ${TUI_DEPENDS} \
- ${SCRIPTING_DEPENDS} \
- ${LIBUNWIND_DEPENDS} \
bison flex xz \
xmlto-native \
asciidoc-native \
@@ -61,11 +58,6 @@ inherit kernelsrc
B = "${WORKDIR}/${BPN}-${PV}"
SPDX_S = "${S}/tools/perf"
-SCRIPTING_DEFINES = "${@perf_feature_enabled('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}"
-TUI_DEFINES = "${@perf_feature_enabled('perf-tui', '', 'NO_NEWT=1',d)}"
-LIBUNWIND_DEFINES = "${@perf_feature_enabled('perf-libunwind', '', 'NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1',d)}"
-LIBNUMA_DEFINES = "${@perf_feature_enabled('perf-libnuma', '', 'NO_LIBNUMA=1',d)}"
-
# The LDFLAGS is required or some old kernels fails due missing
# symbols and this is preferred than requiring patches to every old
# supported kernel.
@@ -82,8 +74,8 @@ EXTRA_OEMAKE = '\
EXTRA_CFLAGS="-ldw" \
EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \
perfexecdir=${libexecdir} \
- NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${LIBUNWIND_DEFINES} \
- ${SCRIPTING_DEFINES} ${LIBNUMA_DEFINES} \
+ NO_GTK2=1 NO_DWARF=1 \
+ ${PACKAGECONFIG_CONFARGS} \
'
EXTRA_OEMAKE += "\
@@ -116,7 +108,7 @@ do_install() {
unset CFLAGS
oe_runmake install
# we are checking for this make target to be compatible with older perf versions
- if [ "${@perf_feature_enabled('perf-scripting', 1, 0, d)}" = "1" ] && grep -q install-python_ext ${S}/tools/perf/Makefile*; then
+ if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then
oe_runmake DESTDIR=${D} install-python_ext
fi
}
@@ -225,7 +217,7 @@ RDEPENDS_${PN}-python =+ "bash python python-modules"
RDEPENDS_${PN}-perl =+ "bash perl perl-modules"
RDEPENDS_${PN}-tests =+ "python"
-RSUGGESTS_SCRIPTING = "${@perf_feature_enabled('perf-scripting', '${PN}-perl ${PN}-python', '',d)}"
+RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG', 'scripting', '${PN}-perl ${PN}-python', '',d)}"
RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}"
#FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core /usr/lib64/traceevent ${libdir}/traceevent"