mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-16 15:14:38 +00:00
114 lines
2.5 KiB
Bash
114 lines
2.5 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# NOTICE: Only SBCL (dev-lisp/sbcl) is tested for now, but probably
|
|
# more CL implementations can be added as alternative dependencies.
|
|
# With ClozureCL (dev-lisp/clozurecl) ACL2 fails to build,
|
|
# this might need in-depth investigation...
|
|
|
|
EAPI=8
|
|
|
|
inherit elisp-common
|
|
|
|
DESCRIPTION="Industrial strength theorem prover, logic and programming language"
|
|
HOMEPAGE="https://www.cs.utexas.edu/users/moore/acl2/
|
|
https://github.com/acl2/acl2/"
|
|
|
|
if [[ "${PV}" == *9999* ]] ; then
|
|
inherit git-r3
|
|
|
|
EGIT_REPO_URI="https://github.com/${PN}/${PN}"
|
|
else
|
|
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/${PV}.tar.gz
|
|
-> ${P}.gh.tar.gz"
|
|
|
|
KEYWORDS="~amd64 ~x86"
|
|
fi
|
|
|
|
LICENSE="BSD"
|
|
SLOT="0"
|
|
IUSE="doc emacs"
|
|
REQUIRED_USE="emacs? ( doc )"
|
|
|
|
DEPEND="
|
|
dev-lisp/sbcl:=
|
|
"
|
|
RDEPEND="
|
|
${DEPEND}
|
|
emacs? ( >=app-editors/emacs-25:* )
|
|
"
|
|
BDEPEND="
|
|
${RDEPEND}
|
|
doc? ( dev-lang/perl )
|
|
"
|
|
|
|
DOCS=( books/README.md )
|
|
SITEFILE="50${PN}-gentoo.el"
|
|
|
|
src_prepare() {
|
|
find . -type f -name "*.bak" -delete || die
|
|
find . -type f -name "*.orig" -delete || die
|
|
rm books/workshops/2003/schmaltz-al-sammane-et-al/support/acl2link || die
|
|
|
|
sed -e "s|\"git\" '(\"rev-parse\" \"HEAD\")|\"echo\" '(\"${COMMIT}\")|" \
|
|
-i acl2-init.lisp || die
|
|
|
|
default
|
|
}
|
|
|
|
src_compile() {
|
|
emake LISP="sbcl --no-sysinit --no-userinit --disable-debugger"
|
|
|
|
if use emacs ; then
|
|
local elisp_dir=""
|
|
for elisp_dir in books/emacs books/interface/emacs ; do
|
|
BYTECOMPFLAGS="-L ${S}/${elisp_dir}" elisp-compile "${S}/${elisp_dir}"/*.el
|
|
done
|
|
fi
|
|
|
|
if use doc ; then
|
|
emake ACL2="${S}/saved_acl2" basic DOC
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
local saved_name="saved_acl2"
|
|
|
|
sed "s|${S}|/usr/share/acl2|g" -i "${saved_name}" || die
|
|
sed "5iexport ACL2_SYSTEM_BOOKS=/usr/share/acl2/books/" \
|
|
-i "${saved_name}" || die
|
|
|
|
exeinto /usr/share/acl2
|
|
doexe "${saved_name}"
|
|
insinto /usr/share/acl2
|
|
doins "${saved_name}.core"
|
|
dosym -r "/usr/share/acl2/${saved_name}" /usr/bin/acl2
|
|
|
|
if use emacs ; then
|
|
doins TAGS
|
|
elisp-install "${PN}" books/emacs/*.el{,c} books/interface/emacs/*.el{,c}
|
|
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
|
fi
|
|
|
|
if use doc ; then
|
|
doins -r books
|
|
|
|
HTML_DOCS=( doc/HTML/. )
|
|
einstalldocs
|
|
|
|
# Some binaries in "books". Not needed since the sources are there.
|
|
find "${ED}/usr/share/acl2/books" -type f -iname "*.elf64" -delete || die
|
|
fi
|
|
}
|
|
|
|
pkg_postinst() {
|
|
if use emacs ; then
|
|
elisp-site-regen
|
|
fi
|
|
}
|
|
|
|
pkg_postrm() {
|
|
if use emacs ; then
|
|
elisp-site-regen
|
|
fi
|
|
}
|