# Template file for 'octave' pkgname=octave version=8.2.0 revision=1 build_style=gnu-configure configure_args="--disable-docs" hostmakedepends="perl gcc-fortran pkg-config" makedepends="pcre2-devel readline-devel libSM-devel libltdl-devel lcms2-devel glpk-devel SuiteSparse-devel rapidjson" depends="$(vopt_if gui qt5-plugin-sqlite)" checkdepends="zip unzip ghostscript gnuplot tar texinfo" short_desc="High-level language, primarily intended for numerical computations" maintainer="Orphaned " license="GPL-3.0-or-later" homepage="https://octave.org/" changelog="http://hg.savannah.gnu.org/hgweb/octave/raw-file/default/etc/NEWS.${version%%.*}.md" distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz" checksum=57d17f918a940d38ca3348211e110b34d735a322a87db71c177c4692a49a9c84 # avoid warnings due to egrep deprecation export EGREP="grep -E" # Use OpenBLAS on platforms where it is available and fallback to regular BLAS # on all others. case "$XBPS_TARGET_MACHINE" in # List of supported architectures copied from openblas. armv[67]*|aarch64*|i686*|x86_64*|ppc64*) makedepends+=" openblas-devel" configure_args+=" --with-blas=openblas --with-lapack=openblas" ;; *) makedepends+=" blas-devel lapack-devel" ;; esac case $XBPS_TARGET_MACHINE in i686*) # spqr is broken on i686; running `qr(sparse(1,1))` yields a segfault: # # octave:1> qr(sparse(1,1)); # fatal: caught signal Segmentation fault -- stopping myself... # Segmentation fault # configure_args+=" --without-spqr" ;; esac # Package build options # TODO: some options are still missing, such as java, qrupdate build_options=" arpack audio curl fftw3 graphicsmagick gui hdf5 imagemagick opengl openmp qhull zlib" vopt_conflict graphicsmagick imagemagick desc_option_arpack="Provides 'eigs' and 'svds' functions." desc_option_audio="Provides audiofile related functionality." desc_option_curl="Provides 'urlread' and 'urlwrite' functions and the 'ftp' class." desc_option_fftw3="Improves performance on discrete Fourier transforms." desc_option_gui="Graphical User Interface." desc_option_graphicsmagick="Provides 'imread' and 'imwrite' functions." desc_option_hdf5="Support for HDF data files." desc_option_imagemagick="Provides 'imread' and 'imwrite' functions." desc_option_qhull="Provides 'convhull{,n}', 'delaunay{,n}' and 'voronoi{,n}' functions." desc_option_openmp="Enable support for OpenMP SMP multi-threading" desc_option_zlib="Support for compressed data." build_options_default=" arpack audio curl fftw3 graphicsmagick gui opengl openmp qhull zlib" if [ -z "$CROSS_BUILD" ]; then # hdf5 is nocross build_options_default+=" hdf5" fi if [ -n "$CROSS_BUILD" ];then # cross build cannot determine integer size for BLAS # our BLAS (lapack and openblas) are built with 32 bit ints # even in 64 bit architectures configure_args+=" ax_blas_integer_size=4" fi makedepends+=" $(vopt_if arpack arpack-ng-devel) $(vopt_if audio 'libsndfile-devel portaudio-devel') $(vopt_if curl libcurl-devel) $(vopt_if fftw3 fftw-devel) $(vopt_if graphicsmagick libgraphicsmagick-devel) $(vopt_if gui 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel') $(vopt_if hdf5 hdf5-devel) $(vopt_if imagemagick libmagick-devel) $(vopt_if opengl "glu-devel fltk-devel fontconfig-devel freetype-devel gl2ps-devel") $(vopt_if openmp libgomp-devel) $(vopt_if qhull libqhull-devel) $(vopt_if zlib zlib-devel)" case "$XBPS_TARGET_MACHINE" in ppc64*) ;; ppc*) broken="fails to configure";; esac pre_build() { chmod +x build-aux/mk-opts.pl } post_install() { # add helper to launch octave from dmenu etc. printf "#!/bin/sh\noctave --gui" > octave-gui vbin octave-gui # install man pages for f in doc/*/*.1; do vman $f done # install info files vmkdir usr/share/info touch ${DESTDIR}/usr/share/info/dir vcopy "doc/*/*.info*" usr/share/info }