[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Pkg-octave-devel] Dynare: git, matlab, testsuite

Rafael Laboissiere <rafael@debian.org> 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.

Sébastien Villemot

Reply to: