# Template file for 'maxima' pkgname=maxima version=5.45.1 revision=2 build_style=gnu-configure configure_args="$(vopt_enable clisp) $(vopt_enable sbcl sbcl-exec) $(vopt_enable ecl)" hostmakedepends="python3 perl emacs texinfo patchelf" makedepends="$(vopt_if clisp clisp) $(vopt_if sbcl sbcl) $(vopt_if ecl ecl)" depends="$(vopt_if clisp clisp) rlwrap" checkdepends="gnuplot" short_desc="Computer Algebra System" maintainer="Bosco Garcia " license="GPL-2.0-only" homepage="http://maxima.sourceforge.net" distfiles="${SOURCEFORGE_SITE}/maxima/maxima-${version}.tar.gz" checksum=fe9016276970bef214a1a244348558644514d7fdfaa4fc8b9d0e87afcbb4e7dc nostrip=yes nopie=yes build_options="clisp sbcl ecl" desc_option_clisp="Build with CLISP" desc_option_sbcl="Build with SBCL" desc_option_ecl="Build with ECL" build_options_default="sbcl ecl" vopt_conflict clisp sbcl post_build() { if [ "$build_option_ecl" ]; then # everything will go in the same directory, use rpath=$ORIGIN patchelf --remove-rpath src/binary-ecl/libmaxima-ecl.so patchelf --set-rpath \$ORIGIN \ src/binary-ecl/{maxima,maxima.fas} patchelf \ --replace-needed binary-ecl/libmaxima-ecl.so libmaxima-ecl.so \ src/binary-ecl/{maxima,maxima.fas} fi } do_check() { if [ "$build_option_ecl" ]; then echo "Check that maxima.fas works" ecl --eval "(require 'maxima \"src/binary-ecl/maxima.fas\")" \ --eval "(quit)" fi # now run the testsuite make ${makejobs} check } post_install() { vmkdir usr/share/doc ln -sf ../maxima/${version}/doc ${DESTDIR}/usr/share/doc/maxima # symlink man pages for rmaxima and xmaxima ln -s maxima.1 ${DESTDIR}/usr/share/man/man1/rmaxima.1 ln -s maxima.1 ${DESTDIR}/usr/share/man/man1/xmaxima.1 # info files are used for maxima help, and need to be uncompressed # removing this file prevents compression of info files rm ${DESTDIR}/usr/share/info/dir } maxima-src_package() { depends="${sourcepkg}-${version}_${revision}" short_desc+=" - source files" pkg_install() { vmove usr/share/maxima/${version}/src } } maxima-emacs_package() { short_desc+=" - Emacs interface" depends="${sourcepkg}-${version}_${revision} virtual?emacs" pkg_install() { vmove usr/share/emacs } } xmaxima_package() { short_desc+=" - Tk interface" depends="${sourcepkg}-${version}_${revision} tk" pkg_install() { vmove usr/bin/xmaxima vmove usr/share/man/man1/xmaxima.1 vmove usr/share/maxima/${version}/xmaxima vmove usr/share/info/xmaxima.info vinstall ${FILESDIR}/maxima.desktop 644 usr/share/applications vmkdir usr/share/pixmaps ln -sf /usr/share/maxima/${version}/xmaxima/maxima-new.png \ ${PKGDESTDIR}/usr/share/pixmaps/maxima } } maxima-ecl_package() { short_desc+=" - compiled with ECL" depends="${sourcepkg}-${version}_${revision}" pkg_install() { BINARY_ECL=/usr/lib/maxima/${version}/binary-ecl vmove ${BINARY_ECL} vinstall src/binary-ecl/libmaxima-ecl.so 755 ${BINARY_ECL} vinstall src/binary-ecl/maxima.fas 755 ${BINARY_ECL} # symlink maxima.fas in ECLDIR ECLDIR=$(ecl -eval "(princ (SI:GET-LIBRARY-PATHNAME))" -eval "(quit)") vmkdir ${ECLDIR} ln -sr ${PKGDESTDIR}/${BINARY_ECL}/maxima.fas ${PKGDESTDIR}/${ECLDIR} } } subpackages="maxima-src maxima-emacs xmaxima $(vopt_if ecl maxima-ecl)"