mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-22 23:19:14 +02:00
112 lines
3 KiB
Bash
112 lines
3 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit edos2unix toolchain-funcs
|
|
|
|
MY_PN=acpica-unix
|
|
MY_P="${MY_PN}-${PV}"
|
|
MY_TESTS_P="${MY_PN/ca/tests}-${PV}"
|
|
REL_TAG="R${PV:0:4}_${PV:4:2}_${PV:6:2}"
|
|
|
|
DESCRIPTION="Intel ACPI Source Language (ASL) compiler"
|
|
HOMEPAGE="https://www.acpica.org/downloads/"
|
|
SRC_URI="
|
|
https://github.com/acpica/acpica/releases/download/${REL_TAG}/${MY_P}.tar.gz
|
|
test? ( https://github.com/acpica/acpica/releases/download/${REL_TAG}/${MY_TESTS_P}.tar.gz )"
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
LICENSE="iASL"
|
|
SLOT="0"
|
|
KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv x86"
|
|
IUSE="examples test"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
BDEPEND="
|
|
app-alternatives/yacc
|
|
app-alternatives/lex"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${P}-Makefile-fixes.patch
|
|
"${FILESDIR}"/${P}-Makefile-verbose.patch
|
|
)
|
|
|
|
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_compile() {
|
|
emake -C generate/unix \
|
|
CC="$(tc-getCC)" \
|
|
'YACC=LC_ALL=C yacc' \
|
|
'YFLAGS=' \
|
|
'LEX=LC_ALL=C lex' \
|
|
NOFORTIFY=TRUE \
|
|
NOWERROR=TRUE
|
|
}
|
|
|
|
aslts_test() {
|
|
export ASL="${S}"/generate/unix/bin/iasl \
|
|
acpibin="${S}"/generate/unix/bin/acpibin \
|
|
acpiexec="${S}"/generate/unix/bin/acpiexec \
|
|
ASLTSDIR="${WORKDIR}/${MY_TESTS_P}"/tests/aslts
|
|
export PATH="${PATH}:${ASLTSDIR}/bin"
|
|
echo "$ASLTSDIR" >"${T}"/asltdir
|
|
cd "${ASLTSDIR}" || die
|
|
edos2unix $(find . -type 'f')
|
|
emake install
|
|
chmod +x $(find bin/ ! -regex 'ERROR_OPCODES|HOW_TO_USE|README' ) || 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')
|
|
chmod +x $(find bin/ | sed -r -e '/\/[A-Z_]+$/d') || die "chmod bin +x failed"
|
|
emake
|
|
emake -C asl
|
|
cd ../bin || die
|
|
./aapitsrun || die "aapitsrun failed"
|
|
}
|
|
|
|
src_test() {
|
|
aslts_test
|
|
#The aapits test currently fails, missing include probably.
|
|
#aapits_test
|
|
}
|
|
|
|
src_install() {
|
|
emake -C generate/unix install DESTDIR="${D}"
|
|
|
|
if ! use examples; then
|
|
rm "${ED}/usr/bin/acpiexamples" || die
|
|
fi
|
|
|
|
dodoc "${S}"/changes.txt
|
|
newdoc "${S}"/source/compiler/readme.txt compiler-readme.txt
|
|
newdoc "${S}"/generate/unix/readme.txt unix-readme.txt
|
|
newdoc "${S}"/generate/lint/readme.txt lint-readme.txt
|
|
newdoc "${S}"/source/compiler/new_table.txt compiler-new_table.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 $?
|
|
insinto /usr/share/${PF}
|
|
doins ${tb}
|
|
fi
|
|
}
|