diff options
Diffstat (limited to 'sci-mathematics/pari/pari-2.3.4.ebuild')
-rw-r--r-- | sci-mathematics/pari/pari-2.3.4.ebuild | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/sci-mathematics/pari/pari-2.3.4.ebuild b/sci-mathematics/pari/pari-2.3.4.ebuild new file mode 100644 index 000000000000..e86aa0397d0a --- /dev/null +++ b/sci-mathematics/pari/pari-2.3.4.ebuild @@ -0,0 +1,152 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/pari/pari-2.3.4.ebuild,v 1.1 2009/01/15 17:19:08 bicatali Exp $ + +EAPI=2 +inherit elisp-common eutils flag-o-matic toolchain-funcs + +DESCRIPTION="A software package for computer-aided number theory" +HOMEPAGE="http://pari.math.u-bordeaux.fr/" +SRC_URI="http://pari.math.u-bordeaux.fr/pub/${PN}/unix/${P}.tar.gz + elliptic? ( http://pari.math.u-bordeaux.fr/pub/${PN}/packages/elldata.tgz ) + galois? ( http://pari.math.u-bordeaux.fr/pub/${PN}/packages/galdata.tgz )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="doc emacs X elliptic galois gmp static" + +RDEPEND="sys-libs/readline + X? ( x11-libs/libX11 ) + emacs? ( virtual/emacs ) + gmp? ( dev-libs/gmp )" +DEPEND="${RDEPEND} + doc? ( virtual/latex-base )" + +SITEFILE=50${PN}-gentoo.el + +get_compile_dir() { + pushd "${S}/config" >& /dev/null + local fastread=yes + source ./get_archos + popd >& /dev/null + echo "O${osname}-${arch}" +} + +src_prepare() { + # move data into place + if ( use galois || use elliptic ); then + mv "${WORKDIR}"/data "${S}" \ + || die "failed to move data" + fi + + epatch "${FILESDIR}/"${PN}-2.3.2-strip.patch + epatch "${FILESDIR}/"${PN}-2.3.2-ppc-powerpc-arch-fix.patch + + # disable default building of docs during install + sed -e "s:install-doc install-examples:install-examples:" \ + -i config/Makefile.SH || die "Failed to fix makefile" + # propagate ldflags + sed -i \ + -e 's/-shared $extra/-shared $extra \\$(LDFLAGS)/' \ + config/get_dlld || die +} + +src_configure() { + #need to force optimization here, as it breaks without + if is-flag -O0; then + replace-flags -O0 -O2 + elif ! is-flag -O?; then + append-flags -O2 + fi + + local myconf="--with-readline" + use gmp && myconf="${myconf} --kernel=gmp" + + ./Configure \ + --prefix=/usr \ + --datadir=/usr/share/${P} \ + --libdir=/usr/$(get_libdir) \ + --mandir=/usr/share/man/man1 \ + ${myconf} \ + || die "./Configure failed" +} + +src_compile() { + if use hppa; then + mymake=DLLD\=/usr/bin/gcc\ DLLDFLAGS\=-shared\ -Wl,-soname=\$\(LIBPARI_SONAME\)\ -lm + fi + local installdir=$(get_compile_dir) + cd "${installdir}" || die "Bad directory. File a BUG!" + + einfo "Building shared library..." + emake ${mymake} CFLAGS="${CFLAGS} -DGCC_INLINE -fPIC" lib-dyn \ + || die "Building shared library failed!" + + if use static; then + einfo "Building static library..." + emake ${mymake} CFLAGS="${CFLAGS} -DGCC_INLINE" lib-sta \ + || die "Building static library failed!" + fi + + einfo "Building executables..." + emake ${mymake} CFLAGS="${CFLAGS} -DGCC_INLINE" gp ../gp \ + || die "Building executables failed!" + + if use doc; then + cd "${S}" + # To prevent sandbox violations by metafont + VARTEXFONTS="${T}"/fonts emake docpdf \ + || die "Failed to generate docs" + fi + + if use emacs; then + cd "${S}/emacs" + elisp-compile *.el || die "elisp-compile failed" + fi +} + +src_test() { + emake test-kernel || die +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="${D}"/usr/$(get_libdir) install \ + || die "Install failed" + + if use emacs; then + elisp-install ${PN} emacs/*.el emacs/*.elc \ + || die "elisp-install failed" + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi + + dodoc AUTHORS Announce.2.1 CHANGES README NEW + if use doc; then + emake DESTDIR="${D}" LIBDIR="${D}/usr/$(get_libdir)" install-doc \ + || die "Failed to install docs" + insinto /usr/share/doc/${PF} + doins doc/*.pdf || die "Failed to install pdf docs" + fi + + if (use galois || use elliptic); then + emake DESTDIR="${D}" LIBDIR="${D}"/usr/$(get_libdir) install-data \ + || die "Failed to install data files" + fi + + if use static; then + emake DESTDIR="${D}" LIBDIR="${D}"/usr/$(get_libdir) install-lib-sta || \ + die "Install of static library failed" + fi + + #remove superfluous doc directory + rm -fr "${D}/usr/share/${P}/doc" || \ + die "Failed to clean up doc directory" +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |