diff options
Diffstat (limited to 'sci-mathematics/maxima/maxima-5.11.0-r1.ebuild')
-rw-r--r-- | sci-mathematics/maxima/maxima-5.11.0-r1.ebuild | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/sci-mathematics/maxima/maxima-5.11.0-r1.ebuild b/sci-mathematics/maxima/maxima-5.11.0-r1.ebuild new file mode 100644 index 000000000000..c782667cf0e1 --- /dev/null +++ b/sci-mathematics/maxima/maxima-5.11.0-r1.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/maxima/maxima-5.11.0-r1.ebuild,v 1.1 2007/04/16 08:51:11 opfer Exp $ + +inherit eutils elisp-common autotools + +DESCRIPTION="Free computer algebra environment based on Macsyma" +HOMEPAGE="http://maxima.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2 AECA" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="cmucl clisp sbcl gcl tetex emacs auctex tk nls unicode" + +# rlwrap is recommended for cmucl and sbcl +RDEPEND=">=sci-visualization/gnuplot-4.0 + app-text/gv + tetex? ( virtual/tetex ) + emacs? ( virtual/emacs ) + auctex? ( app-emacs/auctex ) + clisp? ( >=dev-lisp/clisp-2.33.2-r1 ) + gcl? ( >=dev-lisp/gcl-2.6.7 ) + sbcl? ( >=dev-lisp/sbcl-0.9.4 app-misc/rlwrap ) + cmucl? ( >=dev-lisp/cmucl-19a app-misc/rlwrap ) + !clisp? ( !sbcl? ( !cmucl? ( >=dev-lisp/gcl-2.6.7 ) ) ) + tk? ( >=dev-lang/tk-8.3.3 )" + +DEPEND="${RDEPEND} >=sys-apps/texinfo-4.3" + +for lang in es pt; do + IUSE="${IUSE} linguas_${lang}" +done + +pkg_setup() { +# Don't install in the main tree, as this may cause file collisions + if use tetex; then + local TEXMFPATH="$(kpsewhich -var-value=TEXMFSITE)" + local TEXMFCONFIGFILE="$(kpsewhich texmf.cnf)" + + if [ -z "${TEXMFPATH}" ]; then + eerror "You haven't defined the TEXMFSITE variable in your TeX config." + eerror "Please do so in the file ${TEXMFCONFIGFILE:-/var/lib/texmf/web2c/texmf.cnf}" + die "Define TEXMFSITE in TeX configuration!" + else + # go through the colon separated list of directories (maybe only one) provided in the variable + # TEXMFPATH (generated from TEXMFSITE from TeX's config) and choose only the first entry. + # All entries are separated by colons, even when defined with semi-colons, kpsewhich changes + # the output to a generic format, so IFS has to be redefined. + local IFS="${IFS}:" + + for strippedpath in ${TEXMFPATH} + do + if [ -d ${strippedpath} ]; then + MAXIMA_TEXMFDIR="${strippedpath}" + break + fi + done + + # verify if an existing path was chosen to prevent from installing into the wrong directory + if [ -z ${MAXIMA_TEXMFDIR} ]; then + eerror "TEXMFSITE does not contain any existing directory." + eerror "Please define an existing directory in your TeX config file" + eerror "${TEXMFCONFIGFILE:-/var/lib/texmf/web2c/texmf.cnf} or create at least one of the there specified directories" + die "TEXMFSITE variable did not contain an existing directory" + fi + fi + fi +} + +# chosen apps are hardcoded in maxima source: +# - ghostview for postscript (changed to gv) +# - acroread for pdf +# - xdvi for dvi. this could change, with pain. + +src_unpack() { + unpack ${A} + # replace obsolete netscape with firefox, add opera as choices + epatch "${FILESDIR}"/${P}-default-browser.patch + # replace ugly ghostview with gv + epatch "${FILESDIR}"/${P}-default-psviewer.patch + # no debug during compile + epatch "${FILESDIR}"/${P}-sbcl-disable-debugger.patch + # diff_form autoloading + epatch "${FILESDIR}/${P}-diff_form.patch" +} + +src_compile() { + # automake version mismatch otherwise (sbcl only) + use sbcl && eautoreconf + + # remove rmaxima if neither cmucl nor sbcl + if ! use sbcl && ! use cmucl ; then + sed -i -e '/^@WIN32_FALSE@bin_SCRIPTS/s/rmaxima//' src/Makefile.in + fi + + # remove xmaxima if no tk + local myconf="" + if use tk; then + myconf="${myconf} --with-wish=wish" + else + myconf="${myconf} --with-wish=none" + sed -i -e '/^SUBDIRS/s/xmaxima//' interfaces/Makefile.in + fi + + # enable gcl if no other lisp selected + if use gcl || (! use cmucl && ! use clisp && ! use sbcl ); then + if ! built_with_use dev-lisp/gcl ansi; then + eerror "GCL must be installed with ANSI." + eerror "Try USE=\"ansi\" emerge gcl" + die "This package needs gcl with USE=ansi" + fi + myconf="${myconf} --enable-gcl" + fi + + # enable existing translated doc + if use nls; then + for lang in es pt; do + if use linguas_${lang}; then + myconf="${myconf} --enable-lang-${lang}" + use unicode && myconf="${myconf} --enable-lang-${lang}-utf8" + fi + done + fi + + econf \ + $(use_enable cmucl) \ + $(use_enable clisp) \ + $(use_enable sbcl) \ + ${myconf} \ + || die "econf failed" + emake || die "emake failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" + + use tk && make_desktop_entry xmaxima xmaxima \ + /usr/share/${PN}/${PV}/xmaxima/maxima-new.png + + if use emacs; then + sed -e "s/PV/${PV}/" "${FILESDIR}"/50maxima-gentoo.el > 50maxima-gentoo.el + elisp-site-file-install 50maxima-gentoo.el + fi + + if use tetex; then + insinto "${MAXIMA_TEXMFDIR}/tex/latex/emaxima" + doins interfaces/emacs/emaxima/emaxima.sty + fi + + insinto /usr/share/${PN}/${PV}/doc + doins AUTHORS ChangeLog COPYING NEWS README* + dodir /usr/share/doc + dosym /usr/share/${PN}/${PV}/doc /usr/share/doc/${PF} +} + +pkg_preinst() { + # some lisp do not gunzip info files on the fly + if use cmucl || use clisp || use sbcl; then + for infofile in $(ls ${D}/usr/share/info/*.gz); do + gunzip ${infofile} + done + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen + use tetex && mktexlsr +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |