Files
poky/meta/recipes-kernel/perf/perf.bb
Richard Purdie 4b7a37e072 perf: Fix parsing error
Due to the use of ${@...} the code will try and expand this when
performing the initial parsing. If the sysroot doesn't exist with
an existing kernel, this will fail at parsing time.

Sinec we're already in python, just remove the ${@....} wrapping
and then we execute at do_package time which is what we want.

(From OE-Core rev: 053ca014e7eb8c9dd05cef42fe23f463f3eb15dd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-19 13:25:34 +00:00

116 lines
3.5 KiB
BlitzBasic

SUMMARY = "Performance analysis tools for Linux"
DESCRIPTION = "Performance counters for Linux are a new kernel-based \
subsystem that provide a framework for all things \
performance analysis. It covers hardware level \
(CPU/PMU, Performance Monitoring Unit) features \
and software features (software counters, tracepoints) \
as well."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
PR = "r8"
require perf-features.inc
BUILDPERF_libc-uclibc = "no"
TUI_DEPENDS = "${@perf_feature_enabled('perf-tui', 'libnewt', '',d)}"
SCRIPTING_DEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl python', '',d)}"
DEPENDS = "virtual/kernel \
virtual/${MLPREFIX}libc \
${MLPREFIX}elfutils \
${MLPREFIX}binutils \
${TUI_DEPENDS} \
${SCRIPTING_DEPENDS} \
bison flex \
"
SCRIPTING_RDEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl perl-modules python', '',d)}"
RDEPENDS_${PN} += "elfutils bash ${SCRIPTING_RDEPENDS}"
PROVIDES = "virtual/perf"
inherit linux-kernel-base kernel-arch pythonnative
# needed for building the tools/perf Python bindings
inherit python-dir
export STAGING_INCDIR
export STAGING_LIBDIR
export BUILD_SYS
export HOST_SYS
# needed for building the tools/perf Perl binding
inherit perlnative cpan-base
# Env var which tells perl if it should use host (no) or target (yes) settings
export PERLCONFIGTARGET = "${@is_target(d)}"
export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}/CORE"
export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
S = "${STAGING_KERNEL_DIR}"
B = "${WORKDIR}/${BPN}-${PV}"
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)}"
export LDFLAGS = "-ldl -lutil"
EXTRA_OEMAKE = \
'-C ${S}/tools/perf \
O=${B} \
CROSS_COMPILE=${TARGET_PREFIX} \
ARCH=${ARCH} \
CC="${CC}" \
AR="${AR}" \
perfexecdir=${libexecdir} \
NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${SCRIPTING_DEFINES} \
'
# We already pass the correct arguments to our compiler for the CFLAGS (if we
# don't override it, it'll add -m32/-m64 itself). For LDFLAGS, it was failing
# to find bfd symbols.
EXTRA_OEMAKE += "\
'CFLAGS=${CFLAGS}' \
'LDFLAGS=${LDFLAGS} -lpthread -lrt -lelf -lm -lbfd' \
\
'prefix=${prefix}' \
'bindir=${bindir}' \
'sharedir=${datadir}' \
'sysconfdir=${sysconfdir}' \
'perfexecdir=${libexecdir}/perf-core' \
\
'ETC_PERFCONFIG=${@oe.path.relative(prefix, sysconfdir)}' \
'sharedir=${@oe.path.relative(prefix, datadir)}' \
'mandir=${@oe.path.relative(prefix, mandir)}' \
'infodir=${@oe.path.relative(prefix, infodir)}' \
"
PARALLEL_MAKE = ""
do_compile() {
oe_runmake all
}
do_install() {
oe_runmake DESTDIR=${D} 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" -a $(grep install-python_ext ${S}/tools/perf/Makefile) = "0"]; then
oe_runmake DESTDIR=${D} install-python_ext
fi
}
do_configure_prepend () {
sed -i 's,-Werror ,,' ${S}/tools/perf/Makefile
}
python do_package_prepend() {
bb.data.setVar('PKGV', get_kernelversion('${S}').split("-")[0], d)
}
PACKAGE_ARCH = "${MACHINE_ARCH}"
FILES_${PN} += "${libexecdir}/perf-core"
FILES_${PN}-dbg += "${libdir}/python*/site-packages/.debug"
FILES_${PN} += "${libdir}/python*/site-packages"