# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit elisp-common toolchain-funcs DESCRIPTION="Functional programming language with dependent types" HOMEPAGE="https://www.cs.bu.edu/~hwxi/atslangweb/ https://sourceforge.net/projects/ats2-lang/" SRC_URI=" http://downloads.sourceforge.net/sourceforge/ats2-lang/ATS2-Postiats-gmp-${PV}.tgz https://sources.debian.org/data/main/a/ats2-lang/${PV}-2/debian/patches/deprecated-cl-package -> ${PN}-${PV}-2-deprecated-cl-package.patch https://sources.debian.org/data/main/a/ats2-lang/${PV}-2/debian/patches/prelude-function-prototypes -> ${PN}-${PV}-2-prelude-function-prototypes.patch " S="${WORKDIR}/ATS2-Postiats-gmp-${PV}" LICENSE="GPL-3+" SLOT="0/${PV}" KEYWORDS="~amd64 ~x86" IUSE="emacs" RDEPEND=" dev-libs/gmp:= emacs? ( >=app-editors/emacs-25.3:* ) " DEPEND=" ${RDEPEND} " PATCHES=( "${FILESDIR}/${PN}-0.4.2-makefile_dist.patch" "${DISTDIR}/${PN}-0.4.2-2-deprecated-cl-package.patch" "${DISTDIR}/${PN}-0.4.2-2-prelude-function-prototypes.patch" ) SITEFILE="50${PN}-gentoo.el" src_prepare() { default sed -i Makefile \ -e "/^CFLAGS/s|=| = ${CFLAGS}|" \ -e "/^LDFLAGS/s|=| = ${LDFLAGS}|" \ || die sed -i ccomp/atslib/Makefile \ -i src/CBOOT/Makefile \ -i utils/atscc/Makefile_build \ -i utils/myatscc/Makefile_build \ -e "s|ld |$(tc-getLD) |g" \ -e "s|-O2|${CFLAGS} ${LDFLAGS}|g" \ || die sed -i ccomp/atslib/Makefile \ -i src/Makefile \ -e "s|ar -r|$(tc-getAR) ${ARFLAGS} -r|g" \ || die sed -i contrib/CATS-atscc2js/Makefile \ -i src/CBOOT/Makefile \ -e "/^AR=/s|ar|$(tc-getAR) ${ARFLAGS}|" \ || die rm utils/emacs/flycheck-ats2.el || die } src_compile() { emake -j1 CC="$(tc-getCC)" GCC="$(tc-getCC)" CCOMP="$(tc-getCC)" all if use emacs ; then cd utils/emacs || die elisp-compile ./*.el fi } src_install() { emake -j1 DESTDIR="${D}" install if use emacs ; then cd utils/emacs || die elisp-install "${PN}" ./*.el{,c} elisp-site-file-install "${FILESDIR}/${SITEFILE}" fi local ats2_dir="/usr/lib/${PN}-postiats-${PV}" local contrib_dir="${ats2_dir}/contrib" # Randomly generated. local libatslib="${ED}${ats2_dir}/ccomp/atslib/lib/libatslib.a" if [[ -f "${libatslib}" ]] ; then rm "${libatslib}" || die fi # Broken symlinks. rm "${ED}${contrib_dir}"/*/*/SATS/DOCUGEN/Makefile.gen || die } pkg_postinst() { use emacs && elisp-site-regen } pkg_postrm() { use emacs && elisp-site-regen }