# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI="2" SUPPORT_PYTHON_ABIS="1" inherit eutils flag-o-matic python toolchain-funcs DESCRIPTION="The ultimate disassembler library (X86-32, X86-64)" HOMEPAGE="http://www.ragestorm.net/distorm/" SRC_URI="http://ragestorm.net/distorm/${PN}-pkg${PV}.tar.bz2" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="+python" DEPEND="python? ( >=dev-lang/python-2.4 )" RDEPEND="${DEPEND}" RESTRICT_PYTHON_ABIS="3.*" S="${WORKDIR}/${PN}" src_prepare() { epatch "${FILESDIR}/${P}-python.patch" epatch "${FILESDIR}/${P}-respect_flags.patch" } src_compile() { cd "${WORKDIR}/${PN}/build/linux" emake CC="$(tc-getCC)" clib || die "emake clib failed" if use python; then building() { # Build ../../src/pydistorm.o separately with each enabled version of Python. rm -f ../../src/pydistorm.o # Additional CFLAGS retrieved from build/linux/Makefile. emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -I$(python_get_includedir) -Wall -fPIC -DSUPPORT_64BIT_OFFSET -D_DLL" TARGET="distorm.so-${PYTHON_ABI}" py } python_execute_function building fi cd "${WORKDIR}/${PN}/linuxproj" emake CC="$(tc-getCC)" disasm || die "emake disasm failed" } src_install() { cd "${WORKDIR}/${PN}/build/linux" dolib.so libdistorm64.so if use python; then installation() { dodir "$(python_get_sitedir)" install distorm.so-${PYTHON_ABI} "${D}$(python_get_sitedir)/distorm.so" } python_execute_function -q installation fi cd "${WORKDIR}/${PN}" newlib.a distorm64.a libdistorm64.a dobin linuxproj/disasm dodir "/usr/include" install distorm.h "${D}usr/include/" || die "Unable to install distorm.h" }