1 # Created by: chuckr@FreeBSD.org
8 MASTER_SITES= ${MASTER_SITE_GNU}
9 MASTER_SITE_SUBDIR= octave
11 MAINTAINER= maho@FreeBSD.org
12 COMMENT= High-level interactive language for numerical computations
16 BUILD_DEPENDS= gnuplot:${PORTSDIR}/math/gnuplot \
17 ${LOCALBASE}/bin/gperf:${PORTSDIR}/devel/gperf \
18 gsed:${PORTSDIR}/textproc/gsed \
19 ${LOCALBASE}/bin/makeinfo:${PORTSDIR}/print/texinfo
20 RUN_DEPENDS= gnuplot:${PORTSDIR}/math/gnuplot \
21 gsed:${PORTSDIR}/textproc/gsed \
22 ${LOCALBASE}/bin/makeinfo:${PORTSDIR}/print/texinfo
23 LIB_DEPENDS= libGraphicsMagick.so.14:${PORTSDIR}/graphics/GraphicsMagick \
24 libarpack.so:${PORTSDIR}/math/arpack \
25 libcurl.so:${PORTSDIR}/ftp/curl \
26 libfftw3.so:${PORTSDIR}/math/fftw3 \
27 libfftw3f.so:${PORTSDIR}/math/fftw3-float \
28 libfltk.so:${PORTSDIR}/x11-toolkits/fltk \
29 libftgl.so:${PORTSDIR}/graphics/ftgl \
30 libhdf5.so:${PORTSDIR}/science/hdf5 \
31 libpcre.so:${PORTSDIR}/devel/pcre \
32 libqhull.so.5:${PORTSDIR}/math/qhull5 \
33 libqrupdate.so:${PORTSDIR}/math/qrupdate \
34 libumfpack.so:${PORTSDIR}/math/suitesparse \
35 libglpk.so:${PORTSDIR}/math/glpk \
36 libgl2ps.so:${PORTSDIR}/print/gl2ps \
37 libqscintilla2.so:${PORTSDIR}/devel/qscintilla2
39 USES= charsetfix fortran gmake libtool perl5 pkgconfig tar:bzip2
45 USE_QT4= gui network uic_build moc_build rcc_build linguist_build
47 OCTAVE_VERSION= ${PORTVERSION}
48 GNU_HOST= ${CONFIGURE_TARGET}
49 PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} GNU_HOST=${GNU_HOST}
50 CPPFLAGS+= -I${LOCALBASE}/include
51 LDFLAGS+= -L${LOCALBASE}/lib
52 CONFIGURE_ENV= GPERF="${LOCALBASE}/bin/gperf" \
53 JAVA_HOME=${JAVA_HOME} \
54 MAKEINFO=${LOCALBASE}/bin/makeinfo
55 CONFIGURE_ARGS= --host=${GNU_HOST} \
56 --with-blas="-L${LOCALBASE}/lib ${BLAS}" \
57 --with-lapack="${LAPACK}" \
63 INFO= octave liboctave
65 .include <bsd.port.pre.mk>
67 .if exists(${LOCALBASE}/lib/libopenblas.so)
69 .elif exists(${LOCALBASE}/lib/libgoto2.so)
71 .elif exists(${LOCALBASE}/lib/libatlas.so)
77 . if ${WITH_BLAS} == reference
78 LIB_DEPENDS+= libblas.so.2:${PORTSDIR}/math/blas \
79 liblapack.so.4:${PORTSDIR}/math/lapack
82 .elif ${WITH_BLAS} == openblas
83 LIB_DEPENDS+= libopenblas.so:${PORTSDIR}/math/openblas
86 .elif ${WITH_BLAS} == gotoblas
87 LIB_DEPENDS+= libgoto2.so:${PORTSDIR}/math/gotoblas
90 .elif ${WITH_BLAS} == atlas
91 LIB_DEPENDS+= libatlas.so:${PORTSDIR}/math/atlas
93 LAPACK= -lalapack -lptcblas
97 ${REINPLACE_CMD} 's+"makeinfo"+"${LOCALBASE}/bin/makeinfo"+' ${WRKSRC}/libinterp/corefcn/help.cc
98 ${REINPLACE_CMD} 's+-lumfpack+-lumfpack -lsuitesparseconfig -lamd -lcholmod -lcolamd ${LAPACK}+' ${WRKSRC}/configure
99 ${REINPLACE_CMD} 's+-lcholmod+-lumfpack -lsuitesparseconfig -lamd -lcholmod -lcolamd ${LAPACK}+' ${WRKSRC}/configure
102 ${INSTALL_DATA} ${WRKSRC}/doc/icons/octave.desktop \
103 ${STAGEDIR}${DESKTOPDIR}/www.octave.org-octave.desktop
104 @${MKDIR} ${STAGEDIR}${DOCSDIR}
105 .for file in liboctave/liboctave.ps \
106 refcard/refcard-a4.ps refcard/refcard-legal.ps \
107 refcard/refcard-letter.ps interpreter/octave.ps
108 ${INSTALL_DATA} ${WRKSRC}/doc/${file} ${STAGEDIR}${DOCSDIR}
110 ${RM} -f ${WRKDIR}/PLIST
111 .for d in ${PREFIX}/include/octave-${OCTAVE_VERSION} ${PREFIX}/share/octave/${OCTAVE_VERSION} ${PREFIX}/share/octave/site ${PREFIX}/lib/octave/${OCTAVE_VERSION} ${PREFIX}/libexec/octave/${OCTAVE_VERSION}
112 @${FIND} -s ${STAGEDIR}$d -not -type d -not -name '*.la' | \
113 ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${WRKDIR}/PLIST
114 @${FIND} -s ${STAGEDIR}$d -type d -empty | \
115 ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@exec ${MKDIR} %D/,' \
116 -e 's,$$, 2>/dev/null || true,' >> ${WRKDIR}/PLIST
117 @${FIND} -s ${STAGEDIR}$d -type d -depth | \
118 ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${WRKDIR}/PLIST
120 .for d in ${PREFIX}/libexec/octave/api-v49+ ${PREFIX}/libexec/octave/site ${PREFIX}/lib/octave/site
121 @${FIND} -s ${STAGEDIR}$d -type d -empty | \
122 ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@exec ${MKDIR} %D/,' \
123 -e 's,$$, 2>/dev/null || true,' >> ${WRKDIR}/PLIST
124 @${FIND} -s ${STAGEDIR}$d -type d -depth | \
125 ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${WRKDIR}/PLIST
127 ${ECHO_CMD} @dirrm libexec/octave >> ${WRKDIR}/PLIST
128 ${ECHO_CMD} @dirrm share/octave >> ${WRKDIR}/PLIST
129 cd ${WRKDIR} ; ${SED} -i.bak -e "/PLIST/ r PLIST" ${TMPPLIST}
131 check regression-test: build
132 @(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} check)
134 .include <bsd.port.post.mk>