# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=2 inherit eutils linux-mod DESCRIPTION="A memory analysis kernel module with userland tool" HOMEPAGE="http://www.berthels.co.uk/exmap/" SRC_URI="http://www.berthels.co.uk/${PN}/download/${P}.tgz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="gtk" RDEPEND="dev-libs/libpcre gtk? ( dev-cpp/gtkmm:2.4 x11-libs/gtk+:2 )" DEPEND="${RDEPEND} dev-libs/boost virtual/pkgconfig" MODULE_NAMES="exmap(misc:${S}/kernel)" BUILD_TARGETS="clean kernel_modules" src_prepare() { # patch find_task_by_pid to pid_task and &proc_root to NULL epatch "${FILESDIR}/${P}-kernel.patch" # use $(MAKE), remove -g on CXXFLAGS, clean up CXX/LD invocations # remove -Werror, bug 468246 epatch "${FILESDIR}/${PF}-makefiles.patch" # somthing strange between linux-mod supplied ARCH and old kernels # which leads to arch/x86/Makefile: file/dir x86 not found if kernel_is lt 2 6 25 ; then sed -i -e 's:\$(MAKE):unset ARCH ; \$(MAKE):' kernel/Makefile || die fi # new gcc include behavior epatch "${FILESDIR}/${P}-gcc.patch" # gcc4.5 fails on return false as std::string epatch "${FILESDIR}/${P}-gcc45.patch" # fix for 64bit from http://www.kdedevelopers.org/node/4166 epatch "${FILESDIR}/${P}-fix64bit.patch" # fix underlinking with -Wl,--as-needed epatch "${FILESDIR}/${P}-as-needed.patch" # no longer call make clean in kernel source dir epatch "${FILESDIR}/${P}-kernel-3.5.patch" rm -v src/{*.so,munged-ls-threeloads,prelinked-amule} || die } src_compile() { export KERNEL_DIR linux-mod_src_compile emake CXX="$(tc-getCXX)" LD="$(tc-getLD)" -C jutil || die emake CXX="$(tc-getCXX)" LD="$(tc-getLD)" -C src $(use gtk || echo exmtool) || die } src_install() { linux-mod_src_install dobin src/exmtool || die use gtk && { dobin src/gexmap || die ; } dodoc TODO README || die } pkg_postinst() { linux-mod_pkg_postinst elog "Please load the exmap kernel module before running exmtool or gexmap." }