Update x11-drivers/xf86-input-wacom to version 0.34.0_1
[dports.git] / math / scilab / Makefile
1 # Created by: js@jeannot.org
2 # $FreeBSD$
3
4 PORTNAME=       scilab
5 PORTVERSION=    5.5.2
6 PORTREVISION=   5
7 CATEGORIES=     math cad java
8 MASTER_SITES=   http://www.scilab.org/download/${PORTVERSION}/
9 DISTFILES=      ${DISTNAME}-src${EXTRACT_SUFX}
10
11 MAINTAINER=     makc@FreeBSD.org
12 COMMENT=        Scientific software package for numerical computations
13
14 # A partial dependencies list can be found at:
15 # http://wiki.scilab.org/Dependencies_of_Scilab_5.X
16 LIB_DEPENDS=    libxml2.so:textproc/libxml2 \
17                 libpcre.so:devel/pcre \
18                 libcurl.so:ftp/curl \
19                 libhdf5.so:science/hdf5 \
20                 libarpack.so:math/arpack \
21                 libfftw3.so:math/fftw3 \
22                 libmatio.so:math/matio \
23                 libamd.so:math/suitesparse
24 RUN_DEPENDS=    xdg-open:devel/xdg-utils
25
26 USES=           cpe desktop-file-utils fortran gettext gmake iconv \
27                 libtool ncurses pathfix pkgconfig shared-mime-info
28 USE_LOCALE=     en_US.UTF-8
29 GNU_CONFIGURE=  yes
30
31 INSTALLS_ICONS= yes
32
33 CPPFLAGS+=      -I${LOCALBASE}/include
34 LDFLAGS+=       -L${LOCALBASE}/lib
35 CONFIGURE_ARGS= --with-gfortran \
36                 --without-emf \
37                 -disable-static-system-lib
38 CONFIGURE_ENV=  BLAS_LIBS="${BLASLIB}" LAPACK_LIBS="${LAPACKLIB}"
39 INSTALL_TARGET= install-strip
40
41 MAKE_JOBS_UNSAFE=       yes
42
43 PLIST_SUB=      SHLIB_VER=${PORTVERSION}
44
45 OPTIONS_DEFINE= GUI OCAML TK
46 OPTIONS_RADIO=  BLAS
47 OPTIONS_RADIO_BLAS=     ATLAS NETLIB OPENBLAS
48 OPTIONS_DEFAULT=        GUI NETLIB OCAML TK
49 OPTIONS_SUB=    yes
50
51 ATLAS_USES=     blaslapack:atlas
52 NETLIB_USES=    blaslapack:netlib
53 OPENBLAS_USES=  blaslapack:openblas
54
55 GUI_DESC=       Java-based Graphical User Interface
56 OCAML_DESC=     Scicos - dynamical system simulator (requires GUI)
57
58 # Java dependencies:
59 _GUI_DEPENDS+=  ${JAVALIBDIR}/flexdock.jar:devel/flexdock \
60                 ${JAVALIBDIR}/jogl2.jar:graphics/jogamp-jogl \
61                 foprep:math/jeuclid \
62                 ${JAVALIBDIR}/jhall.jar:java/javahelp \
63                 ${JAVALIBDIR}/jrosetta-api.jar:java/jrosetta \
64                 ${JAVALIBDIR}/commons-logging.jar:java/jakarta-commons-logging \
65                 ${JAVALIBDIR}/jgraphx.jar:java/jgraphx \
66                 ${JAVALIBDIR}/jlatexmath.jar:math/jlatexmath \
67                 ${LOCALBASE}/share/java/ecj-4.5.jar:lang/gcc-ecj45
68 # Documentation, graphic export:
69 _GUI_DEPENDS+=  ${LOCALBASE}/share/java/fop/build/fop.jar:textproc/fop \
70                 ${JAVALIBDIR}/jlatexmath-fop.jar:math/jlatexmath \
71                 ${LOCALBASE}/share/java/batik/lib/batik-all.jar:graphics/batik \
72                 ${JAVALIBDIR}/avalon-framework.jar:devel/avalon-framework \
73                 ${JAVALIBDIR}/commons-io.jar:devel/jakarta-commons-io \
74                 ${JAVALIBDIR}/xmlgraphics-commons.jar:graphics/xmlgraphics-commons
75 # Code quality:
76 _GUI_DEPENDS+=  ${JAVALIBDIR}/commons-beanutils.jar:java/jakarta-commons-beanutils \
77                 ${JAVALIBDIR}/antlr.jar:devel/antlr \
78                 ${JAVALIBDIR}/junit4.jar:java/junit \
79                 ${LOCALBASE}/bin/splint:devel/splint
80 # Documentation building:
81 _GUI_DEPENDS+=  ${LOCALBASE}/share/xsl/docbook/javahelp/javahelp.xsl:textproc/docbook-xsl \
82                 ${JAVALIBDIR}/saxon9he.jar:textproc/saxon-he \
83                 ${JAVALIBDIR}/xml-apis-ext.jar:textproc/xml-commons \
84                 xsltproc:textproc/libxslt
85 # Other gui deps:
86 _GUI_DEPENDS+=  ${JAVALIBDIR}/looks.jar:devel/looks \
87                 ${JAVALIBDIR}/skinlf.jar:x11-toolkits/skinlf
88
89 # Can't use USE_ANT because it overrides do-build target
90 GUI_BUILD_DEPENDS=      ${_GUI_DEPENDS} \
91                         ant:devel/apache-ant
92 GUI_RUN_DEPENDS=        ${_GUI_DEPENDS}
93
94 GUI_ALL_TARGET= all doc
95 GUI_USE=        GL=gl JAVA=yes
96 GUI_EXTRA_PATCHES=      ${PATCHDIR}/extra-patch-bin-JAVA_HOME
97 GUI_CONFIGURE_ON=       --with-jdk=${JAVA_HOME} \
98                         --with-docbook=${LOCALBASE}/share/xsl/docbook \
99                         --enable-build-help
100 GUI_CONFIGURE_OFF=      --without-gui \
101                         --without-javasci \
102                         --without-xcos \
103                         --disable-build-help
104
105 OCAML_IMPLIES=          GUI
106 OCAML_CONFIGURE_WITH=   modelica
107 OCAML_BUILD_DEPENDS=    ocaml:lang/ocaml
108 OCAML_RUN_DEPENDS=      ocaml:lang/ocaml
109
110 TK_CONFIGURE_OFF=       --without-tk
111 TK_CONFIGURE_ON=        --with-tk-library=${LOCALBASE}/lib \
112                         --with-tk-include=${TK_INCLUDEDIR} \
113                         --with-tcl-library=${LOCALBASE}/lib \
114                         --with-tcl-include=${TCL_INCLUDEDIR}
115 TK_USES=        tk
116 TK_USE=         XORG=x11
117 TK_RUN_DEPENDS= ${LOCALBASE}/lib/bwidget/init.tcl:x11-toolkits/bwidget
118
119 .if !exists(/usr/include/omp.h)
120 CONFIGURE_ARGS+=        --without-openmp
121 .endif
122
123 .include <bsd.port.pre.mk>
124
125 .if ${PORT_OPTIONS:MGUI} && ${JAVA_PORT_VERSION:M1.8.*}
126 EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-Makefile.in
127 .endif
128
129 post-patch:
130         @# Configure fixes
131         @${REINPLACE_CMD} -e 's|-ldl | |' ${WRKSRC}/configure
132         @${REINPLACE_CMD} -e 's|-lumfpack|-lumfpack -lsuitesparseconfig -lamd -lcholmod -lcolamd $$LAPACK_LIBS $$BLAS_LIBS|g' ${WRKSRC}/configure
133         @${REINPLACE_CMD} -e 's|TCLTK_LIBS=" -ldl"|TCLTK_LIBS=" "|' ${WRKSRC}/configure
134         @${REINPLACE_CMD} -e 's|"x=" ==|"x" =|g' ${WRKSRC}/configure
135         @${REINPLACE_CMD} -e 's|"x" ==|"x" =|g' ${WRKSRC}/configure
136         @${REINPLACE_CMD} -e 's|sparc64-\*-netbsd\*|amd64-\*-freebsd\*|' ${WRKSRC}/configure
137         @# Build fixes
138         @${REINPLACE_CMD} -e 's|$$(CFLAGS:-O%=)|-I${LOCALBASE}/include -L${LOCALBASE}/lib|' ${WRKSRC}/modules/elementary_functions/Makefile.in
139         @${REINPLACE_CMD} -e 's|freebsd|__FreeBSD__|g' ${WRKSRC}/modules/sparse/includes/spConfig.h
140         @# malloc.h -> stdlib.h conversions
141         @${GREP} -lr "<malloc.h>" ${WRKSRC} \
142                 | ${XARGS} ${REINPLACE_CMD} -e \
143                 's/[<"]malloc.h[>"]/<stdlib.h>/'
144         @# Run fixes
145         @${REINPLACE_CMD} -e 's|%%JAVALIBDIR%%|${JAVALIBDIR}|' ${WRKSRC}/etc/librarypath.xml
146         @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/etc/librarypath.xml
147         @${REINPLACE_CMD} -e 's, gfortran, ${FC},' ${WRKSRC}/modules/dynamic_link/src/scripts/configure
148
149 post-patch-GUI-on:
150         @# Configure fixes
151         @${REINPLACE_CMD} -e 's|/usr/lib/java|${JAVALIBDIR}|g' ${WRKSRC}/configure
152         @${REINPLACE_CMD} -e 's|/usr/lib64/jni|${LOCALBASE}/lib/|g' ${WRKSRC}/configure
153         @${REINPLACE_CMD} -e 's|$$jardir/batik-all.jar|${LOCALBASE}/share/java/batik/lib/batik-all.jar|g' ${WRKSRC}/configure
154         @${REINPLACE_CMD} -e 's|$$jardir/fop.jar|${LOCALBASE}/share/java/fop/build/fop.jar|' ${WRKSRC}/configure
155         @${REINPLACE_CMD} -e 's|$$jardir/jeuclid-core*.jar|${LOCALBASE}/share/java/jeuclid/repo/jeuclid-core*.jar|' ${WRKSRC}/configure
156         @${REINPLACE_CMD} -e 's|jrosetta-API.jar|jrosetta-api.jar|' ${WRKSRC}/configure
157         @# Run fixes
158         @${REINPLACE_CMD} -e 's|%%JAVA_HOME%%|${JAVA_HOME}|' ${WRKSRC}/bin/scilab
159         @${REINPLACE_CMD} -e 's|/usr/share/scilab|${DATADIR}|' ${WRKSRC}/desktop/scilab.desktop
160         @${REINPLACE_CMD} -e 's|/usr/share/scilab-cli|${DATADIR}|' \
161                 ${WRKSRC}/desktop/scilab-adv-cli.desktop ${WRKSRC}/desktop/scilab-cli.desktop
162
163 pre-install:
164         ${MKDIR} ${STAGEDIR}${DATADIR}/.atoms
165
166 post-install:
167         @# Remove empty dirs in DATADIR/modules - they will be removed by the
168         @# toolbox uninstaller otherwise if 3rd party toolboxes are used
169         @${FIND} ${STAGEDIR}${DATADIR}/modules -type d -empty -delete
170
171 check test regression-test: build
172         @(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS} \
173                 ${MAKE_ARGS} check)
174
175 .include <bsd.port.post.mk>