Difference between revisions of "How to MEX MSlice"

From Mslice
Jump to navigationJump to search
 
(One intermediate revision by the same user not shown)
Line 9: Line 9:
 
* Matlab 7.1 or above
 
* Matlab 7.1 or above
  
* The latest stable version of Mslice is available from the repository at [https://svn.isis.rl.ac.uk/mslice/trunk (Mslice trunk)]
+
* Current development version of Mslice is available from the svn repository at [https://svn.isis.rl.ac.uk/mslice/trunk (Mslice trunk)]. You need to ask the development team if you want to access this. The stable version of the source code is provided at the [[Download_and_setup_MSlice | download page.]]
  
  
Line 24: Line 24:
 
== Note to users of recent 64-bit versions of Matlab under Ubuntu64 and 64-bit Mac (September 2011)==
 
== Note to users of recent 64-bit versions of Matlab under Ubuntu64 and 64-bit Mac (September 2011)==
  
The default compiler under Unix-type OS 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/R201Xx folder) and force Fortran preprocessor to use 8-bit pointers. For gfortran4.4 it would be adding option -D__x86_64__ to  
+
The default compiler under Unix-type OS is gfortran, but the default configuration options for Matlab 64-bit instructs 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/R201Xx folder) and force Fortran preprocessor to use 8-bit pointers. For gfortran4.4 it would mean adding option -D__x86_64__ to  
 
   $FFLAG='-fexceptions -fbackslash -D__x86_64__'
 
   $FFLAG='-fexceptions -fbackslash -D__x86_64__'
 
line in Fortran configuration chapter.
 
line in Fortran configuration chapter.

Latest revision as of 11:54, 6 October 2014

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
  • Current development version of Mslice is available from the svn repository at (Mslice trunk). You need to ask the development team if you want to access this. The stable version of the source code is provided at the download page.


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 have to select Fortran or C compiler under Windows, which will build Fortran or C part of the Mslice accordingly. You may ignore this if your Fortran and C compilers are already configured under Unix.
  • 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. If fail , you can try to build code with different mslice_mex options, which you can get from mslice_mex description. Or contact Mslice support team who will probably be able to help you.

Note to users of recent 64-bit versions of Matlab under Ubuntu64 and 64-bit Mac (September 2011)

The default compiler under Unix-type OS is gfortran, but the default configuration options for Matlab 64-bit instructs 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/R201Xx folder) and force Fortran preprocessor to use 8-bit pointers. For gfortran4.4 it would mean adding option -D__x86_64__ to

  $FFLAG='-fexceptions -fbackslash -D__x86_64__'

line in Fortran configuration chapter.