Re: [Pkg-octave-devel] Dynare: git, matlab, testsuite
Rafael Laboissiere <email@example.com> a écrit :
My understanding is that the most basic installation of Matlab, without
any toolbox, is able to compile MEX files. It relies on gcc.
This is precisely my question: does it require more than just gcc, e.g. a
library provided by Matlab? There is mex support in Octave and I am
wondering whether we could generate the binaries entirely in Debian.
I think this is not possible because of linking problems.
In most of our MEX files we use Matlab MEX primitive functions (such
as mxCreateDoubleMatrix...) and BLAS and LAPACK functions.
For the MEX functions, we have no way of linking against the Matlab
library from pure Debian.
Moreover, at execution, Matlab modifies the path for the dynamic
loader (LD_LIBRARY_PATH env var). In particular, it provides its own
version of BLAS and LAPACK dynamic libraries, and of course those
differ from that of Debian.
And those dynamic libraries are not consistent across Matlab versions.
Up to 2007a, BLAS and LAPACK were in the same binary. They have been
separated since. This is the reason why in Dynare Windows package we
provide separate MEX binaries for older and newer versions of Matlab.
So my understanding is that compiling from pure Debian would be
possible if neither MEX functions nor BLAS/LAPACK functions were
called from the MEX file, but not otherwise.