# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
name maxima
categories math
maintainers {mareimbrium.org:kuba @KubaO} {@catap korins.ky:kirill} openmaintainer
platforms darwin
license GPL-2+
description The Maxima computer algebra system
long_description \
Maxima is a system for the manipulation of symbolic \
and numerical expressions, including differentiation, \
integration, Taylor series, Laplace transforms, ordinary \
differential equations, systems of linear equations, \
polynomials, and sets, lists, vectors, matrices, and \
tensors. Maxima yields high precision numeric results \
by using exact fractions, arbitrary precision integers, \
and variable precision floating point numbers. Maxima \
can plot functions and data in two and three dimensions. \
Maxima includes the following commands: \
* \"rmaxima\" is a front end which provides advanced line-editing \
facilities via rlwrap. \
* \"xmaxima\" is a graphical interface for maxima, written in Tcl/Tk.
homepage https://maxima.sourceforge.io/
depends_build port:texinfo \
port:gsed
depends_run port:rlwrap \
port:recode \
port:gnuplot
subport maxima-devel {
conflicts maxima
# git describe --tags : branch-5_46-base-480-g5b42cccfd
# Date: Sun Jul 30 06:55:16 2023 -0700
# commit 65e393d796fedd34162d2a510af37c2448f07d74
version 5.47-dev-20230730
revision 7
fetch.type git
git.url https://git.code.sf.net/p/maxima/code
git.branch 65e393d796fedd34162d2a510af37c2448f07d74
# sourceforge git uses Let's Encryption which can't be used with old macOS
# see: https://trac.macports.org/ticket/67147
depends_build-append \
port:git
git.cmd ${prefix}/bin/git
use_autoreconf yes
livecheck.type none
}
if {${subport} eq ${name}} {
conflicts maxima-devel
version 5.47.0
revision 7
# get the source tarball from sourceforge.
master_sites sourceforge:project/maxima/Maxima-source/${version}-source
checksums rmd160 2bf1b8fcf0900286e163517dec3ac3cc46a0972d \
sha256 9104021b24fd53e8c03a983509cb42e937a925e8c0c85c335d7709a14fd40f7a \
size 47939891
livecheck.regex {
.*/Maxima-source/(.*)-source/maxima.*}
}
patchfiles src_maxima.in.patch
configure.args --infodir=${prefix}/share/info \
--mandir=${prefix}/share/man
variant abcl conflicts ccl clisp ecl gcl sbcl \
description {Use ABCL as lisp implementation} {
depends_lib-append port:abcl
configure.args-append --enable-abcl \
--with-abcl-jar=${prefix}/share/java/abcl/abcl.jar
}
variant ccl conflicts abcl clisp ecl gcl sbcl \
description {Use CCL as lisp implementation} {
depends_lib-append port:ccl
if { ${configure.build_arch} eq "x86_64" } {
configure.args-append \
--enable-ccl64 \
--enable-ccl64-exec \
--with-ccl64=${prefix}/bin/ccl64
} elseif { ${configure.build_arch} eq "i386" } {
configure.args-append \
--enable-ccl \
--enable-ccl-exec \
--with-ccl=${prefix}/bin/ccl
}
}
variant clisp conflicts abcl ccl ecl gcl sbcl \
description {Use CLISP as lisp implementation} {
depends_lib-append port:clisp
configure.args-append --enable-clisp \
--enable-clisp-exec \
--with-clisp=${prefix}/bin/clisp
}
variant ecl conflicts abcl ccl clisp gcl sbcl \
description {Use ECL as lisp implementation} {
depends_lib-append path:bin/ecl:ecl
configure.args-append --enable-ecl \
--with-ecl=${prefix}/bin/ecl
}
variant gcl conflicts abcl ccl clisp ecl sbcl \
description {Use GCL as lisp implementation} {
# NOTE: may fail on modern macOS
# See: https://sourceforge.net/p/maxima/bugs/4167/
depends_lib-append port:gcl
configure.args-append --enable-gcl \
--with-gcl=${prefix}/bin/gcl
}
variant sbcl conflicts abcl ccl clisp ecl gcl \
description {Use SBCL as lisp implementation} {
depends_lib-append path:bin/sbcl:sbcl
configure.args-append --enable-sbcl \
--enable-sbcl-exec \
--with-sbcl=${prefix}/bin/sbcl
}
if {![variant_isset abcl] && ![variant_isset ccl] && ![variant_isset clisp] && ![variant_isset ecl] && ![variant_isset gcl] && ![variant_isset sbcl]} {
default_variants-append +sbcl
}
variant xmaxima description {build xmaxima} {
depends_run-append port:tk
}
default_variants-append +xmaxima
if {![variant_isset xmaxima]} {
patchfiles-append no-xmaxima.patch
}
test.run yes
test.target check
variant printable_doc description {Build printable documentation} {
depends_build-append port:texinfo \
port:texlive-basic \
port:texlive-latex \
port:texlive-plain-generic \
port:texlive-fonts-recommended
build.target all pdf
pre-destroot {
xinstall -d -m 755 ${destroot}${prefix}/share/${name}/${version}/doc/pdf
xinstall -m 644 ${worksrcpath}/doc/info/maxima.pdf \
${destroot}${prefix}/share/${name}/${version}/doc/pdf
}
}