# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sci-mathematics/maxima/maxima-5.13.0-r1.ebuild,v 1.11 2008/02/07 13:22:45 bicatali Exp $ inherit eutils elisp-common 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 latex emacs tk nls unicode" # rlwrap is recommended for cmucl and sbcl # tetex>=3, so no use of virtual/latex-base (bug #203558) RDEPEND=">=sci-visualization/gnuplot-4.0 x11-misc/xdg-utils latex? ( || ( dev-texlive/texlive-latexrecommended >=app-text/tetex-3 app-text/ptex ) ) emacs? ( virtual/emacs latex? ( || ( app-emacs/auctex app-xemacs/auctex ) ) ) sbcl? ( dev-lisp/sbcl app-misc/rlwrap ) !sbcl? ( clisp? ( dev-lisp/clisp ) !clisp? ( cmucl? ( >=dev-lisp/cmucl-19a app-misc/rlwrap ) !cmucl? ( gcl? ( dev-lisp/gcl ) !gcl? ( dev-lisp/sbcl app-misc/rlwrap ) ) ) ) tk? ( dev-lang/tk )" DEPEND="${RDEPEND} sys-apps/texinfo" LANGS="es pt pt_BR" for lang in ${LANGS}; do IUSE="${IUSE} linguas_${lang}" done RESTRICT="clisp? ( strip )" pkg_setup() { # Don't install in the main tree, as this may cause file collisions if use latex; 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 if ! built_with_use sci-visualization/gnuplot gd; then elog "To benefit full plotting capability of maxima," elog "enable the gd USE flag enabled for sci-visualization/gnuplot" elog "Then re-emerge maxima" epause 5 fi # lisp priorities if use sbcl; then MAXIMA_LISP=sbcl elif use clisp; then MAXIMA_LISP=clisp elif use cmucl; then MAXIMA_LISP=cmucl elif use gcl; then MAXIMA_LISP=gcl else MAXIMA_LISP=sbcl fi einfo "Selected lisp: ${MAXIMA_LISP}" if [[ ${MAXIMA_LISP} == gcl ]]; then ewarn "Using gcl: if it breaks, recompile with another lisp or use default (sbcl)." 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 fi } src_unpack() { unpack ${A} cd "${S}" # use xdg-open to view ps, pdf epatch "${FILESDIR}"/${PN}-xdg-utils.patch # avoid bugs and warning at init (see bug #203748) epatch "${FILESDIR}"/${PN}-no-init-files.patch # remove rmaxima if neither cmucl nor sbcl if [[ ${MAXIMA_LISP} != cmucl ]] || [[ ${MAXIMA_LISP} != sbcl ]]; then sed -i \ -e '/^@WIN32_FALSE@bin_SCRIPTS/s/rmaxima//' \ src/Makefile.in \ || die "sed for rmaxima failed" fi } src_compile() { local myconf="--enable-${MAXIMA_LISP}" # remove xmaxima if no tk if use tk; then myconf="${myconf} --with-wish=wish" else myconf="${myconf} --with-wish=none" sed -i \ -e '/^SUBDIRS/s/xmaxima//' \ interfaces/Makefile.in || die "sed for tk failed" fi # enable existing translated doc if use nls; then for lang in ${LANGS}; do if use "linguas_${lang}"; then myconf="${myconf} --enable-lang-${lang}" use unicode && myconf="${myconf} --enable-lang-${lang}-utf8" fi done fi econf ${myconf} || die "econf failed" emake || die "emake failed" } src_install() { einstall emacsdir="${D}${SITELISP}/${PN}" || die "einstall failed" use tk && make_desktop_entry xmaxima xmaxima \ /usr/share/${PN}/${PV}/xmaxima/maxima-new.png \ "Science;Math;Education" use emacs && \ elisp-site-file-install "${FILESDIR}"/50maxima-gentoo.el if use latex; then insinto "${MAXIMA_TEXMFDIR}"/tex/latex/emaxima doins interfaces/emacs/emaxima/emaxima.sty fi # do not use dodoc because interfaces can't read compressed files # read COPYING before attempt to remove it insinto /usr/share/${PN}/${PV}/doc doins AUTHORS COPYING ChangeLog-${PV} README README.lisps dodir /usr/share/doc dosym /usr/share/${PN}/${PV}/doc /usr/share/doc/${PF} } pkg_preinst() { # some lisps do not read compress info files (bug #176411) for infofile in "${D}"/usr/share/info/*.bz2 ; do bunzip2 "${infofile}" done for infofile in "${D}"/usr/share/info/*.gz ; do gunzip "${infofile}" done } pkg_postinst() { use emacs && elisp-site-regen use latex && mktexlsr } pkg_postrm() { use emacs && elisp-site-regen }