aboutsummaryrefslogtreecommitdiffstats
path: root/math/maxima/Makefile
blob: bc8cfd37633e133f147cc4766f0e8529fc9eb5af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Created by: Scott Flatman <sf@dsinw.com>
# $FreeBSD$

PORTNAME=   maxima
PORTVERSION=    5.42.1
CATEGORIES= math lisp tk
MASTER_SITES=   SF/maxima/Maxima-source/${PORTVERSION}-source

MAINTAINER= phascolarctos@protonmail.ch
COMMENT=    Symbolic mathematics program

LICENSE=                GPLv2 MAXIMAEXTRACLAUSE
LICENSE_COMB=               multi
LICENSE_NAME_MAXIMAEXTRACLAUSE=     Maxima extra clause
LICENSE_FILE_MAXIMAEXTRACLAUSE=     ${FILESDIR}/license-extra-clause.txt
LICENSE_PERMS_MAXIMAEXTRACLAUSE=    dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

RUN_DEPENDS=    gnuplot:math/gnuplot \
        rlwrap:devel/rlwrap
PLIST_SUB+= PORTVERSION=${PORTVERSION}

USES=       autoreconf gmake shared-mime-info tk:85+

GNU_CONFIGURE=  yes
CONFIGURE_ARGS= PYTHON=dummy

INFO=       imaxima maxima xmaxima abs_integrate drawutils kovacicODE logic

OPTIONS_DEFINE=     EXAMPLES DOCS MANPAGES TEST
OPTIONS_SINGLE=     LISP
OPTIONS_SINGLE_LISP=    CCL CMUCL SBCL

OPTIONS_DEFAULT=    MANPAGES SBCL
OPTIONS_SUB=        yes

CCL_DESC=       Build with Clozure Common Lisp
CCL_BUILD_DEPENDS=  ccl:lang/ccl
CCL_RUN_DEPENDS=    ccl:lang/ccl
CCL_CONFIGURE_ON=   --with-ccl=ccl
CCL_PLIST_SUB=      BINDIR=binary-openmcl BINNAME=maxima.image

CMUCL_DESC=     Build with CMU Common Lisp
CMUCL_BUILD_DEPENDS=    lisp:lang/cmucl
CMUCL_RUN_DEPENDS=  lisp:lang/cmucl
CMUCL_CONFIGURE_ON= --enable-cmucl
CMUCL_PLIST_SUB=    BINDIR=binary-cmucl BINNAME=maxima_core

SBCL_DESC=      Build with Steel Bank Common Lisp
SBCL_BUILD_DEPENDS= sbcl:lang/sbcl
SBCL_RUN_DEPENDS=   sbcl:lang/sbcl
SBCL_CONFIGURE_ON=  --enable-sbcl
SBCL_PLIST_SUB=     BINDIR=binary-sbcl BINNAME=maxima_core

NO_ARCH=    yes
TEST_TARGET=    check
TEST_BUILD_DEPENDS= gnuplot:math/gnuplot \
            rlwrap:devel/rlwrap
post-patch:
    ${GREP} -Fe '.core' -l -r ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} 's;\.core;_core;g'
    ${FIND} -X ${WRKSRC}/interfaces/xmaxima -name 'Makefile.in' | ${XARGS} ${REINPLACE_CMD} "s;tclsh;${TCLSH};g"
    ${REINPLACE_CMD} "s;/usr;${LOCALBASE};g" ${WRKSRC}/src/intl.lisp
    ${REINPLACE_CMD} 's;demo;;' ${WRKSRC}/Makefile.am

post-patch-TEST-off:
    ${REINPLACE_CMD} 's;tests;;' ${WRKSRC}/Makefile.am

pre-build-CCL-on:
    cd ${WRKSRC}/src/ && ${MKDIR} binary-ccl && ${LN} -s binary-ccl binary-openmcl

post-build-MANPAGES-on:
    ${GZIP_CMD} ${WRKSRC}/doc/man/maxima.1

post-build-TEST-on: do-test

post-install:
    for x in "" "-1" "-2" "-3"; do ${INSTALL_MAN} ${WRKSRC}/doc/info/maxima.info$x ${STAGEDIR}${PREFIX}/${INFO_PATH}; done
    @${MKDIR} ${STAGEDIR}${PREFIX}/info
    ${INSTALL_MAN} ${WRKSRC}/doc/info/maxima-index.lisp ${STAGEDIR}${PREFIX}/info

post-install-DOCS-on:
    ${MKDIR} ${STAGEDIR}${DOCSDIR}
    cd ${WRKSRC}/doc/info && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} '-name maxima*\.html'

post-install-EXAMPLES-on:
    ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
    cd ${WRKSRC}/demo && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} '-name *\.dem'

post-install-MANPAGES-on:
    ${INSTALL_MAN} ${WRKSRC}/doc/man/maxima.1.gz ${STAGEDIR}${PREFIX}/man/man1

.include <bsd.port.mk>