| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=3 |
| 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_COM="http://pari.math.u-bordeaux.fr/pub/${PN}" |
| SRC_URI="${SRC_COM}/unix/${P}.tar.gz |
| data? ( ${SRC_COM}/packages/elldata.tgz |
| ${SRC_COM}/packages/galdata.tgz |
| ${SRC_COM}/packages/seadata.tgz |
| ${SRC_COM}/packages/nftables.tgz )" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="alpha amd64 hppa ~mips ppc ppc64 sparc x86 ~x86-fbsd ~x86-solaris" |
| IUSE="doc data fltk gmp static-libs X" |
| |
| RDEPEND="sys-libs/readline |
| fltk? ( x11-libs/fltk:1 ) |
| gmp? ( dev-libs/gmp ) |
| X? ( x11-libs/libX11 ) |
| doc? ( X? ( x11-misc/xdg-utils ) )" |
| DEPEND="${RDEPEND} |
| doc? ( virtual/latex-base )" |
| |
| 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 data; 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 |
| epatch "${FILESDIR}/"${PN}-2.3.5-doc-make.patch |
| |
| # disable default building of docs during install |
| sed -i \ |
| -e "s:install-doc install-examples:install-examples:" \ |
| config/Makefile.SH || die "Failed to fix makefile" |
| # propagate ldflags |
| sed -i \ |
| -e 's/-shared $extra/-shared $extra \\$(LDFLAGS)/' \ |
| config/get_dlld || die "Failed to fix LDFLAGS" |
| # move doc dir to a gentoo doc dir and replace hardcoded xdvi by xdg-open |
| sed -i \ |
| -e "s:\$d = \$0:\$d = '${EPREFIX}/usr/share/doc/${PF}':" \ |
| -e 's:"xdvi":"xdg-open":' \ |
| -e 's:xdvi -paper 29.7x21cm:xdg-open:' \ |
| doc/gphelp.in || die "Failed to fix doc dir" |
| # disable emacs support |
| sed -i -e '/^list=/s/emacs//' Configure \ |
| || die |
| } |
| |
| src_configure() { |
| append-flags -fno-strict-aliasing |
| tc-export CC |
| # 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 |
| # sysdatadir installs a pari.cfg stuff which is informative only |
| ./Configure \ |
| --prefix="${EPREFIX}"/usr \ |
| --datadir="${EPREFIX}"/usr/share/${PN} \ |
| --libdir="${EPREFIX}"/usr/$(get_libdir) \ |
| --sysdatadir="${EPREFIX}"/usr/share/doc/${PF} \ |
| --mandir="${EPREFIX}"/usr/share/man/man1 \ |
| --with-readline \ |
| $(use_with gmp) \ |
| || die "./Configure failed" |
| } |
| |
| src_compile() { |
| local installdir=$(get_compile_dir) |
| cd "${installdir}" || die "Bad directory" |
| |
| emake ${mymake} CFLAGS="${CFLAGS} -DGCC_INLINE -fPIC" lib-dyn \ |
| || die "Building shared library failed!" |
| |
| if use static-libs; then |
| emake ${mymake} CFLAGS="${CFLAGS} -DGCC_INLINE" lib-sta \ |
| || die "Building static library failed!" |
| fi |
| |
| 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 |
| } |
| |
| src_test() { |
| emake test-kernel || die |
| } |
| |
| src_install() { |
| emake DESTDIR="${D}" install || die "Install failed" |
| |
| dodoc AUTHORS Announce.2.1 CHANGES README NEW MACHINES COMPAT |
| if use doc; then |
| emake \ |
| DESTDIR="${D}" \ |
| EXDIR="${ED}/usr/share/doc/${PF}/examples" \ |
| DOCDIR="${ED}/usr/share/doc/${PF}" \ |
| install-doc || die "Failed to install docs" |
| insinto /usr/share/doc/${PF} |
| doins doc/*.pdf || die "Failed to install pdf docs" |
| fi |
| |
| if use data; then |
| emake DESTDIR="${D}" install-data || die "Failed to install data files" |
| fi |
| |
| if use static-libs; then |
| emake \ |
| DESTDIR="${D}" \ |
| install-lib-sta || die "Install of static library failed" |
| fi |
| } |