MWrap is an interface generation system in the spirit of SWIG or matwrap.
From a set of augmented MATLAB script files, MWrap will generate a MEX gateway to desired C/C++/Fortran function calls and MATLAB function files to access that gateway.
It makes wrapping C/C++/Fortran from MATLAB almost pleasant!
The details of converting to and from MATLAB's data structures, and of
allocating and freeing temporary storage, are hidden from the user. It is also compatible with modern Octave via mkoctfile --mex
.
To compile, edit make.inc
and then run make
. The output will be a standalone executable (mwrap
) in the main directory.
It was created by David Bindel, who hosts his old version at https://www.cs.cornell.edu/~bindel/sw/mwrap
David Bindel's user's guide (mwrap.pdf
) describes MWrap in detail; you can also look at the example subdirectories and the testing subdirectory to get some idea of how MWrap is used.
Alex Barnett also maintains a set of minimally complete tutorial examples of calling C/Fortran libraries (including OpenMP) from MATLAB/Octave, using MWrap, at https://github.com/ahbarnett/mwrapdemo
MWrap was originally written by David Bindel, c. 2009. It was moved to github in c. 2015 in order to add new features, and is now maintained by Zydrunas Gimbutas, Alex Barnett, Libin Lu, Manas Rachh, and Rafael Laboissière.
Version 0.33 (c. 2009) Author: David Bindel bindel@cs.cornell.edu Initial revision, clone David's repository (c. 2015)
Version 1.0 (c. 2020) Contributors: Zydrunas Gimbutas, Alex Barnett, Libin Lu. Add support for 64-bit Matlab and gcc-4.6 Add support for gcc 7.3+ Add support for Matlab R2018a complex interleaved API Add support for C99 int32_t, int64_t, uint32_t, uint64_t Allow single precision Matlab inputs and outputs
Version 1.1 (2022) Contributors: Manas Rachh, Zydrunas Gimbutas. Add support for gfortran -fno-underscoring flag