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.
167 lines
4.4 KiB
167 lines
4.4 KiB
# Copyright 1999-2011 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/pari/pari-2.3.5.ebuild,v 1.6 2011/04/24 15:49:42 grobian Exp $
|
|
|
|
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 emacs fltk gmp static-libs X"
|
|
|
|
RDEPEND="sys-libs/readline
|
|
emacs? ( virtual/emacs )
|
|
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 )"
|
|
|
|
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 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"
|
|
|
|
if ! use emacs; then
|
|
# disable emacs support
|
|
sed -i -e '/^list=/s/emacs//' Configure \
|
|
|| die "Failed to edit Configure"
|
|
fi
|
|
}
|
|
|
|
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() {
|
|
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"
|
|
|
|
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
|
|
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}" 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 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
|
|
}
|
|
|
|
pkg_postinst() {
|
|
use emacs && elisp-site-regen
|
|
}
|
|
|
|
pkg_postrm() {
|
|
use emacs && elisp-site-regen
|
|
}
|