summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/pari/pari-2.3.4.ebuild')
-rw-r--r--sci-mathematics/pari/pari-2.3.4.ebuild152
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
+}