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.
176 lines
5.0 KiB
176 lines
5.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/Macaulay2/Macaulay2-1.6.ebuild,v 1.4 2014/05/03 15:44:12 tomka Exp $
|
|
|
|
EAPI=5
|
|
|
|
inherit autotools elisp-common eutils flag-o-matic python-utils-r1 toolchain-funcs
|
|
|
|
IUSE="debug emacs optimization"
|
|
|
|
# Those packages will be built internally.
|
|
FACTORY="factory-3-1-6"
|
|
LIBFAC="libfac-3-1-6"
|
|
GITHUBTAG="release-1.6-stable-20130514"
|
|
|
|
DESCRIPTION="Research tool for commutative algebra and algebraic geometry"
|
|
HOMEPAGE="http://www.math.uiuc.edu/Macaulay2/"
|
|
SRC_URI="https://github.com/Macaulay2/M2/archive/${GITHUBTAG}.tar.gz -> ${P}.tar.gz
|
|
ftp://www.mathematik.uni-kl.de/pub/Math/Singular/Libfac/${LIBFAC}.tar.gz
|
|
ftp://www.mathematik.uni-kl.de/pub/Math/Singular/Factory/factory-gftables.tar.gz
|
|
http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/trunk/${FACTORY}.tar.gz
|
|
http://www.math.uiuc.edu/Macaulay2/Extra/gtest-1.6.0.tar.gz
|
|
http://www.mathematik.uni-osnabrueck.de/normaliz/Normaliz2.10.1/Normaliz2.10.1.zip"
|
|
# Need normaliz for an up to date normaliz.m2
|
|
|
|
SLOT="0"
|
|
LICENSE="GPL-2"
|
|
KEYWORDS="~amd64 ~x86"
|
|
|
|
DEPEND="
|
|
sys-process/time
|
|
virtual/pkgconfig
|
|
app-arch/unzip
|
|
app-text/dos2unix
|
|
dev-lang/python:2.7"
|
|
# Unzip and dos2unix just for normaliz
|
|
# python2.7 necessary for gtest building
|
|
|
|
RDEPEND="
|
|
sys-libs/gdbm
|
|
dev-libs/ntl
|
|
sci-mathematics/pari[gmp]
|
|
>=sys-libs/readline-6.1
|
|
dev-libs/libxml2:2
|
|
sci-mathematics/frobby
|
|
sci-mathematics/4ti2
|
|
sci-mathematics/nauty
|
|
>=sci-mathematics/normaliz-2.10
|
|
sci-mathematics/gfan
|
|
sci-libs/mpir[cxx]
|
|
dev-libs/mpfr
|
|
sci-libs/cdd+
|
|
sci-libs/cddlib
|
|
sci-libs/lrslib[gmp]
|
|
virtual/blas
|
|
virtual/lapack
|
|
dev-util/ctags
|
|
sys-libs/ncurses
|
|
>=dev-libs/boehm-gc-7.2_alpha6[threads]
|
|
>=dev-libs/libatomic_ops-7.2_alpha6
|
|
emacs? ( virtual/emacs )"
|
|
|
|
SITEFILE=70Macaulay2-gentoo.el
|
|
|
|
S="${WORKDIR}/M2-${GITHUBTAG}/M2"
|
|
|
|
pkg_setup () {
|
|
tc-export CC CPP CXX
|
|
append-cppflags "-I/usr/include/frobby"
|
|
# gtest needs python:2. Setting it with python_export preserves
|
|
# the exported variables in other phases too.
|
|
python_export python2_7 PYTHON EPYTHON
|
|
}
|
|
|
|
src_prepare() {
|
|
tc-export PKG_CONFIG
|
|
# Put updated Normaliz.m2 in place
|
|
cp "${WORKDIR}/Normaliz2.10/Macaulay2/Normaliz.m2" \
|
|
"${S}/Macaulay2/packages" || die
|
|
dos2unix "${S}/Macaulay2/packages/Normaliz.m2" || die
|
|
|
|
# Patching .m2 files to look for external programs in
|
|
# /usr/bin
|
|
epatch "${FILESDIR}"/${PV}-paths-of-external-programs.patch
|
|
|
|
# Shortcircuit lapack tests
|
|
epatch "${FILESDIR}"/${PV}-lapack.patch
|
|
|
|
# NumericalAlgebraicGeometry has some non-working examples (they are
|
|
# non-reduced although that is a precondition for the used
|
|
# algorithms.) We just cut them.
|
|
pushd Macaulay2/packages/NumericalAlgebraicGeometry
|
|
epatch "${FILESDIR}"/${PV}-prune-NumAlgGeo-examples.patch
|
|
popd
|
|
|
|
# Factory, and libfac are statically linked libraries which (in this
|
|
# flavor) are not used by any other program. We build them
|
|
# internally and don't install them
|
|
mkdir "${S}/BUILD/tarfiles" || die "Creation of directory failed"
|
|
cp "${DISTDIR}/${FACTORY}.tar.gz" "${S}/BUILD/tarfiles/" \
|
|
|| die "copy failed"
|
|
cp "${DISTDIR}/factory-gftables.tar.gz" "${S}/BUILD/tarfiles/" \
|
|
|| die "copy failed"
|
|
cp "${DISTDIR}/${LIBFAC}.tar.gz" "${S}/BUILD/tarfiles/" \
|
|
|| die "copy failed"
|
|
# Macaulay2 developers want that gtest is built internally because
|
|
# the documentation says it may fail if build with options not the
|
|
# same as the tested program.
|
|
cp "${DISTDIR}/gtest-1.6.0.tar.gz" "${S}/BUILD/tarfiles/" \
|
|
|| die "copy failed"
|
|
|
|
eautoreconf
|
|
}
|
|
|
|
src_configure (){
|
|
# Recommended in bug #268064 Possibly unecessary
|
|
# but should not hurt anybody.
|
|
if ! use emacs; then
|
|
tags="ctags"
|
|
fi
|
|
|
|
# configure instead of econf to enable install with --prefix
|
|
./configure LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" \
|
|
--prefix="${D}/usr" \
|
|
--disable-encap \
|
|
--disable-strip \
|
|
$(use_enable optimization optimize) \
|
|
$(use_enable debug) \
|
|
--enable-build-libraries="factory libfac" \
|
|
--with-unbuilt-programs="4ti2 gfan normaliz nauty cddplus lrslib" \
|
|
|| die "failed to configure Macaulay"
|
|
}
|
|
|
|
src_compile() {
|
|
# Parallel build not supported yet
|
|
emake -j1
|
|
|
|
if use emacs; then
|
|
cd "${S}/Macaulay2/emacs"
|
|
elisp-compile *.el
|
|
fi
|
|
}
|
|
|
|
src_test() {
|
|
# No parallel tests yet & Need to increase the time
|
|
# limit for long running tests in Schubert2 to pass
|
|
emake TLIMIT=650 -j1 check
|
|
}
|
|
|
|
src_install () {
|
|
# Parallel install not supported yet
|
|
emake -j1 install
|
|
|
|
# Remove emacs files and install them in the
|
|
# correct place if use emacs
|
|
rm -rf "${D}"/usr/share/emacs/site-lisp
|
|
if use emacs; then
|
|
cd "${S}/Macaulay2/emacs"
|
|
elisp-install ${PN} *.elc *.el
|
|
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
|
fi
|
|
}
|
|
|
|
pkg_postinst() {
|
|
if use emacs; then
|
|
elisp-site-regen
|
|
elog "If you want to set a hot key for Macaulay2 in Emacs add a line similar to"
|
|
elog "(global-set-key [ f12 ] 'M2)"
|
|
elog "in order to set it to F12 (or choose a different one)."
|
|
fi
|
|
}
|
|
|
|
pkg_postrm() {
|
|
use emacs && elisp-site-regen
|
|
}
|