aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/bsd.octave.mk
blob: 09903a1ad994ebccf031da1f4928d8cbb68460de (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
#-*- mode: makefile; tab-width: 4; -*-
# ex:ts=4
#
# $FreeBSD$
#
# bsd.octave.mk - Octave related macro
# Common code to install octave-forge packages.
# It is, in effect, a wrapper using the package handling already built
# into math/octave.


MASTER_SITES=   SF/octave
DISTNAME=   ${OCTAVE_PKGNAME}-${PORTVERSION}

bsd_octave_mk_MAINTAINER=   stephen@math.missouri.edu

BUILD_DEPENDS+= octave:${PORTSDIR}/math/octave
RUN_DEPENDS+=   octave:${PORTSDIR}/math/octave
RUN_DEPENDS+=   ${LOCALBASE}/share/octave/tarballs:${PORTSDIR}/math/octave-forge-base
LIB_DEPENDS+=   pcre:${PORTSDIR}/devel/pcre
USE_FORTRAN=    yes
# hack to get fortran installed with octave
RUN_DEPENDS+=   ${BUILD_DEPENDS:M*fortran*} ${BUILD_DEPENDS:M*f77*} ${BUILD_DEPENDS:M*g77*}

USE_GMAKE=  yes
GNU_CONFIGURE=  yes

DIST_SUBDIR=    octave-forge
OCTAVE_PKGNAME= ${PORTNAME:S/octave-forge-//}
TARBALLS_DIR=   ${LOCALBASE}/share/octave/tarballs

MAKE_ENV+=  PACKAGE=${WRKDIR}/${DISTNAME}.tar.gz

do-install:
    ${MKDIR} ${TARBALLS_DIR}
    ${INSTALL_DATA} ${WRKDIR}/${DISTNAME}.tar.gz ${TARBALLS_DIR}/.
    ${RM} -f ${TARBALLS_DIR}/${OCTAVE_PKGNAME}.tar.gz
    octave -H -q --no-site-file --eval "pkg('install','${TARBALLS_DIR}/${DISTNAME}.tar.gz')"
    ${LN} -s ${DISTNAME}.tar.gz ${TARBALLS_DIR}/${OCTAVE_PKGNAME}.tar.gz

post-install:
    @${ECHO_CMD} "share/octave/tarballs/${DISTNAME}.tar.gz" >> ${TMPPLIST}
    @${ECHO_CMD} "@exec octave -H -q --no-site-file --eval \"pkg('install','${LOCALBASE}/share/octave/tarballs/${DISTNAME}.tar.gz')\" > /dev/null" >> ${TMPPLIST}
    @${ECHO_CMD} "share/octave/tarballs/${OCTAVE_PKGNAME}.tar.gz" >> ${TMPPLIST}
    @${ECHO_CMD} "@unexec octave -H -q --no-site-file --eval \"pkg('uninstall','${OCTAVE_PKGNAME}')\" > /dev/null" >> ${TMPPLIST}
    @if [ -e ${.CURDIR}/pkg-message ]; then ${CAT} ${.CURDIR}/pkg-message; fi

check-octave-forge-depends: extract
    @listd=`${PERL} -lne '$$_=lc($$_);if (s/^depends://){s/\(.*?\)//g;s/\s*\,\s*/ /g;s/octave//g;print}' < ${WRKSRC}/DESCRIPTION`; \
    listm=`${PERL} -lne 'if (/RUN_DEPENDS\+=\t..TARBALLS_DIR.\/(.*)\.tar\.gz/){print$$1}' < ${.CURDIR}/Makefile`; \
    for i in $$listd; do \
        if !(${ECHO_CMD} $$listm|${GREP} $$i > /dev/null); then \
            ${ECHO_MSG} "octave-forge-${OCTAVE_PKGNAME} is missing dependency octave-forge-$$i"; \
        fi; \
    done; \
    for i in $$listm; do \
        if !(${ECHO_CMD} $$listd|${GREP} $$i > /dev/null); then \
            ${ECHO_MSG} "octave-forge-${OCTAVE_PKGNAME} has unnecessary dependency octave-forge-$$i"; \
        fi; \
    done; \