| # Copyright 1999-2009 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/sys-power/iasl/iasl-20090123.ebuild,v 1.6 2009/10/07 16:15:23 nixnut Exp $ |
| |
| inherit toolchain-funcs flag-o-matic eutils |
| |
| MY_PN=acpica-unix |
| MY_P=${MY_PN}-${PV} |
| MY_TESTS_P=${MY_PN/ca/tests}-${PV} |
| DESCRIPTION="Intel ACPI Source Language (ASL) compiler" |
| HOMEPAGE="http://www.intel.com/technology/iapc/acpi/" |
| SRC_URI="http://www.acpica.org/download/${MY_P}.tar.gz |
| test? ( http://www.acpica.org/download/${MY_TESTS_P}.tar.gz )" |
| |
| LICENSE="iASL" |
| SLOT="0" |
| KEYWORDS="amd64 ppc x86 ~x86-fbsd" |
| |
| IUSE="test" |
| DEPEND="sys-devel/bison |
| sys-devel/flex" |
| |
| RDEPEND="" |
| |
| S=${WORKDIR}/${MY_P} |
| |
| pkg_setup() { |
| if use test |
| then |
| ewarn 'You have selected USE="test". This will install the test results' |
| ewarn "into /usr/share/${PF}/, compressed as a tarball." |
| ewarn 'The tests themselves will only rarely die, but the test results' |
| ewarn 'are interesting for arch testing. The tests may take quite some' |
| ewarn 'time to complete.' |
| fi |
| } |
| |
| src_unpack() { |
| unpack ${A} |
| cd "${S}" |
| epatch "${FILESDIR}"/iasl-20080701-parallelmake.patch |
| |
| sed -i -e 's:LDFLAGS=:LDLIBS+=:' \ |
| "${S}"/compiler/Makefile || die "unable to fix compiler Makefile" |
| } |
| |
| src_compile() { |
| local target bin |
| append-flags -fno-strict-aliasing |
| |
| for target in compiler tools/acpisrc tools/acpixtract tools/acpiexec |
| do |
| einfo "Compiling in ${target}/" |
| cd "${S}"/${target} |
| case "${target}" in |
| compiler) bin=iasl;; |
| *) bin=${target#*/};; |
| esac |
| |
| emake CC="$(tc-getCC)" || die "emake in ${target} failed" |
| einfo "Finished compiling ${target}" |
| |
| mv ${bin} "${T}" || die "mv ${bin} failed" |
| einfo "Finished moving ${bin}" |
| |
| make clean || die "make clean in ${target} failed" |
| einfo "Finished cleaning ${target}" |
| |
| echo ${bin} >>"${T}"/binlist |
| done |
| einfo "$(<"${T}"/binlist)" |
| } |
| |
| src_test() { |
| aslts_test |
| #aapits_test |
| #The aapits test currently fails, missing include probably. |
| } |
| |
| src_install() { |
| local bin |
| for bin in $(<"${T}"/binlist) ; do |
| dobin "${T}"/${bin} |
| done |
| dodoc README changes.txt |
| if use test ; then |
| tb="${T}"/testresults.tar.bz2 |
| export ASLTSDIR="$(<"${T}"/asltdir)" |
| ebegin "Creating Test Tarball" |
| tar -cjf "${tb}" -C "${ASLTSDIR}"/tmp/RESULTS . || die "tar failed" |
| eend $? |
| dodir /usr/share/${PF} |
| insinto /usr/share/${PF} |
| doins ${tb} || die "doins testresults.tar.bz2 failed" |
| fi |
| |
| } |
| |
| aslts_test() { |
| export ASL="${T}"/iasl \ |
| acpiexec="${T}"/acpiexec \ |
| ASLTSDIR="${WORKDIR}/${MY_TESTS_P}"/tests/aslts |
| export PATH="${PATH}:${ASLTSDIR}/bin" |
| echo "$ASLTSDIR" >"${T}"/asltdir |
| cd "${ASLTSDIR}" |
| edos2unix $(find . -type 'f') || die "edos2unix failed in aslts" |
| make install || die "make install aslts test failed" |
| chmod +x $(find bin/ | sed -r -e '/\/[A-Z_]+$/d') || die "chmod bin +x failed" |
| |
| #The below Do commands runs the tests twice and then dies if the results aren't |
| #Identical. |
| Do 1 || die "failed Do 1" |
| Do 2 || die "failed Do 2" |
| } |
| |
| aapits_test() { |
| mv "${WORKDIR}/${MY_TESTS_P}/tests/aapits" "${S}/tools/" || die "mv failed" |
| cd "${S}/tools/aapits" || die "cannot find ${S}/tools/aapits" |
| edos2unix $(find . -type 'f') || die "edos2unix failed in aapits" |
| chmod +x $(find bin/ | sed -r -e '/\/[A-Z_]+$/d') || die "chmod bin +x failed" |
| make || die "make in aapits failed" |
| cd asl || die "cd asl failed" |
| make || die "make in asl failed" |
| cd ../bin |
| ./aapitsrun || die "aapitsrun failed" |
| } |