You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-mathematics/agda/agda-2.3.2.2-r1.ebuild

117 lines
4.0 KiB

# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/agda/agda-2.3.2.2-r1.ebuild,v 1.2 2014/02/25 15:40:58 slyfox Exp $
EAPI=5
# ebuild generated by hackport 0.3.4.9999
CABAL_FEATURES="lib profile"
inherit haskell-cabal elisp-common
MY_PN="Agda"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="A dependently typed functional programming language and proof assistant"
HOMEPAGE="http://wiki.portal.chalmers.se/agda/"
SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz"
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
IUSE="epic +stdlib"
RDEPEND=">=dev-haskell/binary-0.4.4:=[profile?] <dev-haskell/binary-0.8:=[profile?]
>=dev-haskell/deepseq-1.3:=[profile?] <dev-haskell/deepseq-1.4:=[profile?]
>=dev-haskell/geniplate-0.6.0.3:=[profile?] <dev-haskell/geniplate-0.7:=[profile?]
>=dev-haskell/hashtables-1.0:=[profile?] <dev-haskell/hashtables-1.2:=[profile?]
>=dev-haskell/haskeline-0.6.3.2:=[profile?] <dev-haskell/haskeline-0.8:=[profile?]
>=dev-haskell/haskell-src-exts-1.9.6:=[profile?] <dev-haskell/haskell-src-exts-1.15:=[profile?]
<dev-haskell/parallel-3.3:=[profile?]
>=dev-haskell/quickcheck-2.3:=[profile?] <dev-haskell/quickcheck-2.7:=[profile?]
>=dev-haskell/text-0.11:=[profile?]
>=dev-haskell/unordered-containers-0.2:=[profile?] <dev-haskell/unordered-containers-0.3:=[profile?]
>=dev-haskell/xhtml-3000.2:=[profile?] <dev-haskell/xhtml-3000.3:=[profile?]
>=dev-haskell/zlib-0.4.0.1:=[profile?] <dev-haskell/zlib-0.6:=[profile?]
>=dev-lang/ghc-6.12.1:=
epic? ( >=dev-lang/epic-0.1.13:=[profile?] <dev-lang/epic-0.10:=[profile?] )
|| ( ( >=dev-haskell/mtl-2.0:=[profile?] <dev-haskell/mtl-2.1:=[profile?] )
( >=dev-haskell/mtl-2.1.1:=[profile?] <dev-haskell/mtl-2.2:=[profile?] ) )
|| ( ( >=dev-haskell/hashable-1.1.2.3:=[profile?] <dev-haskell/hashable-1.2:=[profile?] )
( >=dev-haskell/hashable-1.2.1.0:=[profile?] <dev-haskell/hashable-1.3:=[profile?] ) )
virtual/emacs
"
PDEPEND="stdlib? ( sci-mathematics/agda-stdlib )"
DEPEND="${RDEPEND}
dev-haskell/alex
>=dev-haskell/cabal-1.8.0.2
dev-haskell/happy
"
SITEFILE="50${PN}2-gentoo.el"
S="${WORKDIR}/${MY_P}"
src_prepare() {
CABAL_FILE=${MY_PN}.cabal cabal_chdeps \
'binary >= 0.4.4 && < 0.6' 'binary >= 0.4.4 && < 0.8' \
'text == 0.11.*' 'text >= 0.11' \
'base >= 4.2 && < 4.7' 'base >= 4.2 && < 4.8' \
'array >= 0.1 && < 0.5' 'array >= 0.1 && < 0.6' \
'process >= 1.0.1.0 && < 1.2' 'process >= 1.0.1.0 && < 1.3'
sed -e '/.*emacs-mode.*$/d' \
-e '/^executable agda/,$d' \
-i "${S}/${MY_PN}.cabal" \
|| die "Could not remove agda and agda-mode from ${MY_PN}.cabal"
cabal-mksetup
if use epic && use stdlib; then
ewarn "Note that the agda-stdlib README:"
ewarn "http://www.cse.chalmers.se/~nad/listings/lib/README.html"
ewarn 'says: "Currently the library does not support the Epic or JavaScript compiler'
ewarn 'backends." Hence you may wish to remove the epic use flag if you wish to use'
ewarn "the Agda standard library."
fi
sed -e 's@-Werror@@g' \
-i "${S}/${MY_PN}.cabal" \
-i "${S}/mk/config.mk.in" \
-i "${S}/src/prototyping/eval/Makefile" \
-i "${S}/src/prototyping/nameless/Makefile" \
-i "${S}/src/rts/${PN}-rts.cabal" \
|| die "sed to remove -Werror failed"
sed -e '/, "-Werror"/d' \
-i "${S}/src/full/Agda/Compiler/MAlonzo/Compiler.hs" \
|| die "sed to remove -Werror from Compiler.hs failed"
}
src_configure() {
haskell-cabal_src_configure \
$(cabal_flag epic epic)
}
src_compile() {
BYTECOMPFLAGS="-L ./src/data/emacs-mode"
elisp-compile src/data/emacs-mode/*.el \
|| die "Failed to compile emacs mode"
haskell-cabal_src_compile
}
src_install() {
haskell-cabal_src_install
elisp-install ${PN} src/data/emacs-mode/*.el \
|| die "Failed to install emacs mode"
elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
|| die "Failed to install elisp site file"
}
pkg_postinst() {
ghc-package_pkg_postinst
elisp-site-regen
}
pkg_postrm() {
ghc-package_pkg_prerm
elisp-site-regen
}