diff options
Diffstat (limited to 'dev-util/perf/perf-2.6.33_rc6.ebuild')
-rw-r--r-- | dev-util/perf/perf-2.6.33_rc6.ebuild | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/dev-util/perf/perf-2.6.33_rc6.ebuild b/dev-util/perf/perf-2.6.33_rc6.ebuild new file mode 100644 index 000000000000..be686e7162e7 --- /dev/null +++ b/dev-util/perf/perf-2.6.33_rc6.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-util/perf/perf-2.6.33_rc6.ebuild,v 1.1 2010/01/31 10:27:21 flameeyes Exp $ + +EAPI=2 + +inherit versionator eutils toolchain-funcs linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="http://perf.wiki.kernel.org/" + +LINUX_V=$(get_version_component_range 1-2) + +if [ ${PV/_rc} != ${PV} ]; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.bz2 + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + LINUX_VER=${PV} +fi + +LINUX_SOURCES=linux-${LINUX_VER}.tar.bz2 +SRC_URI="${SRC_URI} mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+demangle +doc perl" + +RDEPEND="demangle? ( sys-devel/binutils ) + perl? ( || ( >=dev-lang/perl-5.10 sys-devel/libperl ) ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + ${LINUX_PATCH+dev-util/patchutils} + doc? ( app-text/asciidoc app-text/xmlto )" + +S="${WORKDIR}/linux-${LINUX_VER}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +src_unpack() { + local _tarpattern= + local _filterdiff= + for _pattern in {tools/perf,include,lib,"arch/*/include"}; do + _tarpattern="${_tarpattern} linux-${LINUX_VER}/${_pattern}" + _filterdiff="${_filterdiff} -i ${_pattern}/*" + done + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + ebegin "Unpacking partial source tarball" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} ${_tarpattern} + eend $? || die "tar failed" + + ebegin "Filtering partial source patch" + filterdiff -p1 ${_filterdiff} -z "${DISTDIR}"/${LINUX_PATCH} > ${P}.patch || die + eend $? || die "filterdiff failed" + + MY_A= + for _AFILE in ${A}; do + [[ ${_AFILE} == ${LINUX_SOURCES} ]] && continue + [[ ${_AFILE} == ${LINUX_PATCH} ]] && continue + MY_A="${MY_A} ${_AFILE}" + done + [[ -n ${MY_A} ]] && unpack ${MY_A} +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]]; then + cd "${WORKDIR}"/linux-"${LINUX_VER}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/PERL_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + -e '/^ALL_CFLAGS =/s:$: $(CFLAGS_OPTIMIZE):' \ + -e '/^ALL_LDFLAGS =/s:$: $(LDFLAGS_OPTIMIZE):' \ + "${S}"/Makefile +} + +src_compile() { + local makeargs= + + use demangle || makeargs="${makeargs} NO_DEMANGLE= " + use perl || makeargs="${makeargs} NO_LIBPERL= " + + emake ${makeargs} \ + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + prefix="/usr" bindir_relative="sbin" \ + CFLAGS_OPTIMIZE="${CFLAGS}" \ + LDFLAGS_OPTIMIZE="${LDFLAGS}" || die + + if use doc; then + pushd Documentation + emake ${makeargs} || die + popd + fi +} + +src_test() { + : +} + +src_install() { + # Don't use make install or it'll be re-building the stuff :( + dobin perf || die + + dodoc CREDITS || die + + if use doc; then + dodoc Documentation/*.txt || die + dohtml Documentation/*.html || die + doman Documentation/*.1 || die + fi +} + +pkg_postinst() { + if ! use doc; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} |