Difference between revisions of "How to MEX MSlice"

From Mslice
Jump to navigationJump to search
Line 17: Line 17:
 
* [[Download and setup MSlice#Matlab Version|Follow the setup instructions]].
 
* [[Download and setup MSlice#Matlab Version|Follow the setup instructions]].
 
* Open Matlab
 
* Open Matlab
* Type >> mslice_mex('bit') where bit is either original_32, 32 for a 32 bit system or 64 for a 64 bit system (must be a string).
+
* Type >> mslice_mex.
* You will be asked once for your fortran compiler - when asked to show installed compilers, select 'y' and then select either the Intel Fortran compiler or G95 compiler. If neither of these is on the list then you can not MEX the files yourself. Consult your computing services about aquiring one of these compilers.  
+
* You will be asked to configure your Fortran or C compiler. You may ignore this if your Fortran compiler is already configured.  
 
* You will then be asked for your C compiler. Choose an appropriate compiler in the same way.
 
* You will then be asked for your C compiler. Choose an appropriate compiler in the same way.
 
* A success or fail message will be displayed.
 
* A success or fail message will be displayed.
 +
 +
 +
 +
== Note to users of recent version of Matlab under Ubuntu64 (September 2011)==
 +
The default compiler under Ubuntu is gfortran, but the default configuration options for Matlab 64-bit make the compiler to generate 4-bit pointers. This lead to normal compilation of the mex files but crash after you try to do anything. To avoid this you have to modify your mexopt.sh file (usually located in your ~/.matlab/R20XXx folder) and force Fortran preprocessor to use 8-bit pointers. For gfortran4.4 it would be adding option -D__x86_64__ to
 +
  $FFLAG='-fexceptions -fbackslash -D__x86_64__'
 +
line in Fortran configuration.

Revision as of 09:23, 20 September 2011

To create the mex files from the Fortran and C code, you need to MEX the Fortran and C source code files included with the mslice distribution. Each distribution will have the files MEXed in the correct format for that distribution. However, if you're a developer or if you want to use a system not currently supported, you can MEX the files yourself. These Fortran and C files are included with every distribution.


How To MEX

If using an operating system that does not currently have a release of mslice, then you can MEX mslice yourself (if possible). You need to have:

  • A Fortran compiler compiler that is compatible with your version of Matlab.
  • Matlab 7.1 or above
  • The latest stable version of Mslice is available from the repository at (Mslice trunk)


To MEX the files yourself:

  • Download any Windows distribution of mslice and unzip to a folder of your choice.
  • Follow the setup instructions.
  • Open Matlab
  • Type >> mslice_mex.
  • You will be asked to configure your Fortran or C compiler. You may ignore this if your Fortran compiler is already configured.
  • You will then be asked for your C compiler. Choose an appropriate compiler in the same way.
  • A success or fail message will be displayed.


Note to users of recent version of Matlab under Ubuntu64 (September 2011)

The default compiler under Ubuntu is gfortran, but the default configuration options for Matlab 64-bit make the compiler to generate 4-bit pointers. This lead to normal compilation of the mex files but crash after you try to do anything. To avoid this you have to modify your mexopt.sh file (usually located in your ~/.matlab/R20XXx folder) and force Fortran preprocessor to use 8-bit pointers. For gfortran4.4 it would be adding option -D__x86_64__ to

  $FFLAG='-fexceptions -fbackslash -D__x86_64__'

line in Fortran configuration.