pkgsrc/math/octave/Makefile
adam 4dc1ef96bf octave: updated to 6.4.0
Summary of bugs fixed for version 6.4.0 (2021-10-30)
----------------------------------------------------

Improvements and fixes

- Reduce memory usage in BISTs for `copyobj`, `hgsave`.
- `hgsave.m`, `copyobj.m`: Use `'qt'` graphics toolkit in BISTs.
- `main.cc`: Use `getopt` to parse command line arguments.
- `main.cc`: Remove invalid case.
- Disable `getopt` error reporting in wrapper program.
- `interp1.m`: Don't interpret later numeric input as `xi`.
- `pkg`: Improve similar package name suggestion.
- Store parent name in function object when caching parents in scope.
- Avoid internal error and segfault with `eval` and scripts.
- `rmpath`: Prevent removing the current directory from the load path.

GUI

- Fix missing interpreter event in `octave-scintilla`.
- Fix opening a file in a custom editor.

Documentation

- Improve docstring for `disable_diagonal_matrix`, `disable_diagonal_matrix`,
  and `disable_range`.
- `cbrt`: Clarify that function errors for non-real input.
- `dsearchn.m`: Added optional distance output description.
- Add Hungarian translation for project description files.
- Document fsolve output "info" -2.

Build system

- Correct error message for incompatible CXSparse.


Summary of bugs fixed for version 6.3.0 (2021-07-11)
----------------------------------------------------

Important notice

- This bug fix release breaks ABI compatiblity with Octave 6.2.0. Re-build
  binaries (like .oct or .mex files) when updating to this version.

Improvements and fixes

- `ls-hdf5.cc`: Avoid throwing inside HDF5 function.
- `ls-hdf5.cc`: Handle non-zero terminated type strings.
- Fix occasional segfault in `symbfact`.
- `fsolve.m`: Fix undefined output error when using `Output` function.
- Fix compilation error with `iconv_t` on Solaris.
- build: Check for `stropts.h`.
- Avoid ambiguous call to `pow`.
- Fix context link when creating handle to nested function.
- `print.m`: Warn when figure is too large to be printed to output page.
- Defer clearing function vars until stack frame is deleted.
- Avoid memory leaks when returning handles to nested functions.
- Hold references to closure frames in anon functions if needed.
- `eigs`: Prevent possible segmentation fault at exit.
- Issue warning when gnuplot graphics toolkit is initialized.
- mpoles.m: Fix detection of pole multiplicity.
- Perform shutdown actions in interpreter destructor.
- build: Make relocation of dependencies with Octave optional.
- `qz.cc`: Return correct number of eigenvalues.
- `qz.cc`: Let test pass with LAPACK 3.9.1 and earlier versions.
- `pkg.m`: Use default prefixes unless otherwise set previously.
- `betaincinv.m`: Correctly handle small inputs.
- `betaincinv.m`: Correctly handle inputs very close to 1.0.
- `unistd-wrappers.c`: Allocate sufficient memory for `new_argv`.
- Mark system functions correctly if `OCTAVE_HOME` is non-canonical.
- Mark compiled system functions correctly if `OCTAVE_HOME` is non-canonical.
- Fix error if test suite is run before Octave is installed.
- `lo-array-errwarn.cc`: Include `<limits>`.
- Use `std::size_t` and `std::ptrdiff_t` in C++ code.
- Use `std::size_t` in more instances.
- Return proper number of stack frames for `dbstack (N)` call.
- Avoid ambiguous match of overloaded function.
- `lscov.m`: Relax BIST tolerance to pass with OpenBLAS.
- `print`: Fix error when `"px"` word is present in a figure.
- `logm.m`: Fix check for real negative values in complex vector.
- build: Set necessary flags to allow execution on Windows Vista.
- Declare base_parser destructor virtual.
- `hist.m`: Improve handling and docstring for third parameter "norm".
- `logm.m`: Allow tolerance in check for real negative values in complex vector.
- `expm.m`, `logm.m`: Use function `isdiag` to detect if input is a diagonal matrix.
- tests: Relax tolerance for some tests on macOS.
- `logspace.m`: Mark tests as known to fail on macOS.
- `hist.m`: Use deterministic test.
- `rgb2ind.m`: Reduce memory usage and eliminate randomness in test.
- `logm.m`: Allow larger tolerance for test on macOS.
- build: Use correct path to `octave` binary in build tree on macOS.
- build: Fix typo in folder to libraries when building `.oct` or `.mex` files.
- build: Set DL_LDFLAGS in the build rules for .oct or .mex files.
- `rgb2ind.m`: Suppress output in test.
- Improve documentation for `log2` function.
- `ind2sub`: Fix typo in "see also" section of docstring.
- `mrdivide`, `mldivide`: Document that functions might return minimum norm solutions.
- Fix scoping issue for handles to sibling nested functions.
- `ls-mat5.cc`: Avoid integer overflow in calculation of buffer size for zlib.
- Move top-level REPL from interpreter to evaluator.
- Avoid crash with `dbquit` when executing command in terminal from GUI.

GUI

- Fix calling external editor.
- Fix missing file suffix .m when saving a new script.
- Do not run files that are not saved as Octave files.
- Fix confirm overwrite for native editor file "save as" dialogs.
- Fix crash when GUI tries to restore missing previous Octave dir.
- Fix restoring the horizontal position of docked GUI widgets.
- Prevent floating widgets from re-opening after restart.
- Avoid crash in GUI for `rmdir("")`.
- Fix EOL mode when saving files under new names.
- Fix auto indentation of switch-structure in GUI editor.
- Avoid crash when closing GUI with open editor tabs.
- `octave-qscintilla.cc` (`contextmenu_run`): Fix keyboard command handling.

Documentation

- Improve Differential Equations chapter and example for lsode.
- Clarify usage of "Depends" keyword in package `DESCRIPTION` file.
- Add note that wildcard patterns for `save` are glob patterns.
- Change example for Delaunay triangulation to match the generating code.
- Document single precision issues with OpenGL graphics toolkits.
- Minor changes to documentation of single precision issues with OpenGL.
- Expand on documentation for command syntax.
- `isprop.m`: Document that function only works on graphics objects in Octave 6.X.
- Explain how to write dual-purpose executable scripts and Octave functions.
- Update keyword docstrings.
- Use Texinfo commands to improve `transpose()` docstring rendering.
- `betainc.m`, `betaincinv.m`: Correct non-TeX definition of beta incomplete integral.
- Grammarcheck documentation ahead of 6.3 release.
- Spellcheck documentation ahead of 6.3 release.
2021-12-15 17:20:57 +00:00

133 lines
4.7 KiB
Makefile

# $NetBSD: Makefile,v 1.226 2021/12/15 17:20:57 adam Exp $
DISTNAME= octave-6.4.0
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_GNU:=octave/}
EXTRACT_SUFX= .tar.xz
MAINTAINER= adam@NetBSD.org
HOMEPAGE= https://www.gnu.org/software/octave/
COMMENT= High-level language, intended for numerical computations
LICENSE= gnu-gpl-v3
# These BUILD_DEPENDS are only needed if we need to rebuild the documentation
#BUILD_DEPENDS+= tex-latex-fonts-[0-9]*:../../fonts/tex-latex-fonts
#BUILD_DEPENDS+= dvipsk-[0-9]*:../../print/dvipsk
#BUILD_DEPENDS+= tex-epsf-[0-9]*:../../print/tex-epsf
#BUILD_DEPENDS+= tex-tex-[0-9]*:../../print/tex-tex
#BUILD_DEPENDS+= tex-pdftex-[0-9]*:../../print/tex-pdftex
#TOOL_DEPENDS+= gtexinfo>=5.1:../../devel/gtexinfo
DEPENDS+= gnuplot>=3.7:../../graphics/gnuplot
USE_LANGUAGES= c c++ fortran77
USE_LIBTOOL= yes
USE_TOOLS+= autoconf gsed gmake:run perl pkg-config bison bsdtar:run
USE_TOOLS+= makeinfo:test
GNU_CONFIGURE= yes
# needed for loading of shared objects such as those in the
# octave-forge package or user written ones compiled with mkoctfile
CONFIGURE_ARGS+= --enable-static
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --disable-java
CONFIGURE_ARGS+= --disable-docs
CONFIGURE_ARGS+= --with-blas=${BLAS_LIBS:Q}
CONFIGURE_ARGS+= --with-lapack=${LAPACK_LIBS:Q}
TEST_TARGET= check
# Provide a full path gfortran in MKOCTFILE for octave-forge
CONFIGURE_ENV+= MKOCTFILE_F77=${FCPATH}
.include "../../mk/bsd.prefs.mk"
# When __APPLE__ is defined, fltk headers typedef an alternate version of Window
# which conflicts with the one in the X11 headers, so avoid pulling in X11.
CONFIGURE_ARGS.Darwin+= --without-x
# This is needed on Darwin or we get link failures on modules.
CONFIGURE_ARGS.Darwin+= --enable-link-all-dependencies
# We use this to install .oct files so it doesn't strip them.
CONFIGURE_ENV+= INSTALL_LIB=${INSTALL_LIB:Q}
.include "options.mk"
INFO_FILES= yes
OCTAVE_DOC= doc/interpreter/octave.pdf doc/liboctave/liboctave.pdf \
doc/refcard/refcard-a4.pdf doc/refcard/refcard-legal.pdf \
doc/refcard/refcard-letter.pdf
OCTAVE_INFO= doc/interpreter/octave.info doc/liboctave/liboctave.info
OCTAVE_MAN= doc/interpreter/mkoctfile.1 doc/interpreter/octave.1 \
doc/interpreter/octave-cli.1 doc/interpreter/octave-config.1
INSTALLATION_DIRS+= share/octave/${PKGVERSION_NOREV}/doc
INSTALLATION_DIRS+= ${PKGMANDIR}/man1
INSTALLATION_DIRS+= ${PKGINFODIR}
PRINT_PLIST_AWK+= { gsub(/${MACHINE_GNU_PLATFORM}/, "$${MACHINE_GNU_PLATFORM}"); }
CHECK_WRKREF_SKIP+= lib/octave/${PKGVERSION_NOREV}/liboctinterp*.${SHLIB_TYPE}* \
lib/octave/${PKGVERSION_NOREV}/liboctinterp.a
SUBST_CLASSES+= fix-make
SUBST_STAGE.fix-make= pre-configure
SUBST_MESSAGE.fix-make= Fixing path to gmake.
SUBST_FILES.fix-make= scripts/pkg/private/configure_make.m
SUBST_VARS.fix-make= GMAKE
SUBST_CLASSES+= qtchooser
SUBST_STAGE.qtchooser= pre-configure
SUBST_MESSAGE.qtchooser= Avoiding qtchooser assumption (-qt=x argument)
SUBST_FILES.qtchooser= configure
SUBST_SED.qtchooser= -e 's,-qt=\$$qt_version,,'
# Matches reduce-relocations logic in x11/qt5-qtbase
.if ${OPSYS} != "Darwin" && ${OPSYS} != "SunOS" && \
${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == x86_64
CFLAGS+= -fPIC
.endif
PREPEND_PATH+= ${QTDIR}/bin
CHECK_WRKREF_SKIP+= lib/octave/${PKGVERSION_NOREV}/liboctinterp.so*
pre-configure:
cd ${WRKSRC} && autoconf
post-install:
.for f in ${OCTAVE_DOC}
${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${PREFIX}/share/octave/${PKGVERSION_NOREV}/doc
.endfor
.for f in ${OCTAVE_MAN}
${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
.endfor
.for f in ${OCTAVE_INFO}
${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${PREFIX}/${PKGINFODIR}
.endfor
${RM} -f ${DESTDIR}/${PREFIX}/lib/charset.alias
.if ${OPSYS} != "Darwin"
# Also can use osmesa for plotting.
.include "../../graphics/MesaLib/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.endif
.include "../../audio/libsndfile/buildlink3.mk"
.include "../../devel/gperf/buildlink3.mk"
.include "../../devel/ncurses/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
.include "../../graphics/gl2ps/buildlink3.mk"
.include "../../math/arpack-ng/buildlink3.mk"
.include "../../math/fftw/buildlink3.mk"
.include "../../math/qrupdate/buildlink3.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../x11/fltk13/buildlink3.mk"
.include "../../x11/qt5-qtbase/buildlink3.mk"
.include "../../x11/qt5-qttools/buildlink3.mk"
.include "../../x11/qt5-qscintilla/buildlink3.mk"
.include "../../mk/blas.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"