Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 12012)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 12013)
@@ -23,4 +23,5 @@
 	dnl }}}
 	dnl Extensions{{{
+	ISSMEXT=".exe"
 	AC_SUBST([ISSMEXT])
 	dnl }}}
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 12012)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 12013)
@@ -15,5 +15,7 @@
 #sources
 #Core sources{{{1
-core_sources = ./include/macros.h\
+core_sources = ./issm.h\
+			        ./issm-binding.h\
+			        ./include/macros.h\
 					./include/typedefs.h\
 					./include/types.h\
@@ -749,5 +751,5 @@
 					./matlab/io/MatlabVectorToDoubleVector.cpp\
 				    ./matlab/io/MatlabMatrixToDoubleMatrix.cpp\
-					./matlab/io/Container/Options.cpp\
+					./matlab/Container/Options.cpp\
 					./matlab/objects/Bamg/BamgGeom.h\
 					./matlab/objects/Bamg/BamgGeom.cpp\
Index: /issm/trunk-jpl/src/c/issm-binding.h
===================================================================
--- /issm/trunk-jpl/src/c/issm-binding.h	(revision 12013)
+++ /issm/trunk-jpl/src/c/issm-binding.h	(revision 12013)
@@ -0,0 +1,18 @@
+#ifndef _ISSM_BINDING_H_
+#define _ISSM_BINDING_H_
+
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#ifdef  _HAVE_MATLAB_
+#include "./matlab/matlab-binding.h"
+#endif
+
+#ifdef  _HAVE_PYTHON_
+#include "./python/python-binding.h"
+#endif
+
+#endif
Index: /issm/trunk-jpl/src/c/matlab/Container/Options.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/Container/Options.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/Container/Options.cpp	(revision 12013)
@@ -13,14 +13,13 @@
 #include <vector>
 #include <algorithm>
+#include <mex.h>
 
-#include "./DataSet.h"
-#include "../shared/shared.h"
-#include "../io/io.h"
-#include "../include/include.h"
-#include "../shared/shared.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#if _SERIAL_
-#include "../io/io.h"
-#endif
+#include "../../Container/DataSet.h"
+#include "../../shared/shared.h"
+#include "../../io/io.h"
+#include "../io/matlabio.h"
+#include "../../include/include.h"
+#include "../../shared/shared.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
 /*}}}*/
 
Index: /issm/trunk-jpl/src/c/matlab/include/matlab_macros.h
===================================================================
--- /issm/trunk-jpl/src/c/matlab/include/matlab_macros.h	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/include/matlab_macros.h	(revision 12013)
@@ -6,6 +6,4 @@
 #ifndef _MATLAB_MACROS_H_
 #define _MATLAB_MACROS_H_
-
-#include "./typedefs.h"
 
 #ifdef HAVE_CONFIG_H
Index: /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp	(revision 12013)
@@ -9,6 +9,4 @@
 #endif
 
-
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 
 #include "../../shared/Exceptions/exceptions.h"
@@ -32,4 +30,2 @@
 	return 1;
 }
-
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp	(revision 12013)
@@ -9,43 +9,9 @@
 #endif
 
+#include <mex.h>
 #include "../../shared/shared.h"
 #include "../../include/include.h"
-
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
-#include <mex.h>
-/*FUNCTION FetchData(DataSet** pdataset,const mxArray* dataref){{{1*/
-void FetchData(DataSet** pdataset,const mxArray* dataref){
-
-	/*output*/
-	DataSet* outdataset=NULL;
-	char*    outdataset_buffer=NULL;
-	int      outdataset_size;
-
-	/*First, check that our reference is a double, otherwise, error out: */
-	if (mxIsClass(dataref,"double")){
-			
-		/*We need to copy the data pointed by dataref, so that our dataset is not actually a pointer!:*/
-		if (!mxIsEmpty(dataref)){
-			outdataset_buffer=(char*)mxGetPr(dataref);
-			outdataset_size=mxGetM(dataref)*mxGetN(dataref);
-			if(outdataset_size)outdataset=DataSetDemarshall(outdataset_buffer);
-		}
-	}
-	else{
-		if (mxIsEmpty(dataref)){
-			/*Nothing to pick up. Just initialize pointer to NULL, and warn the server we are not uploading anything: */
-			outdataset_size=0;
-			outdataset=NULL;
-		}
-		else{
-			/*This is an error: we don't have the correct input!: */
-			_error_("Input parameter of class %s not supported yet",mxGetClassName(dataref));
-		}
-	}
-
-	/*Assign output pointers:*/
-	*pdataset=outdataset;
-}
-/*}}}*/
+#include "./matlabio.h"
+
 /*FUNCTION FetchData(double** pmatrix,int* pM,int *pN,const mxArray* dataref){{{1*/
 void FetchData(double** pmatrix,int* pM,int *pN,const mxArray* dataref){
@@ -560,185 +526,2 @@
 }
 /*}}}*/
-/*FUNCTION FetchData(Parameters** pparameters, DataHandle dataref){{{1*/
-void FetchData(Parameters** pparameters, DataHandle dataref){
-
-	int i,j;
-	int count;
-
-	/*output: */
-	Param* param=NULL;
-	Parameters* parameters=NULL;
-
-	/*intermediary: */
-	int M,N;
-	double* tmatrix=NULL;
-	double* matrix=NULL;
-	char**  stringarray=NULL;
-	double** array=NULL;
-	int*     mdims_array=NULL;
-	int*     ndims_array=NULL;
-	int nfields;
-	char* name=NULL;
-	mxArray* pfield=NULL;
-	mxArray* pfield2=NULL;
-	int enum_type;
-
-
-	/*First, create parameters : */
-	parameters=new Parameters();
-
-	/*go through matlab params structure, and create Param object for each field: */
-
-	nfields=mxGetNumberOfFields(dataref);
-
-	for(count=0;count<nfields;count++){
-
-		/*Get i'th field: */
-		name=(char*)mxGetFieldNameByNumber(dataref,count);
-		enum_type=StringToEnumx(name);
-		pfield=mxGetFieldByNumber(dataref,0,count);
-		_assert_(pfield);
-		
-		/*Check type of field: */
-		if (mxIsClass(pfield,"double")){
-			
-			M=mxGetM(pfield);
-			N=mxGetN(pfield);
-
-			if (M==0 | N==0){
-				_error_("array in parameters structure field %s is of size 0",name);
-			}
-			if (M==1 && N==1){
-				/*we have a simple scalar: */
-				param= new DoubleParam(enum_type,*mxGetPr(pfield));
-				parameters->AddObject(param);
-
-			}
-			else{
-				if (N==1){
-					
-					/*vector: */
-					param= new DoubleVecParam(enum_type,mxGetPr(pfield),M);
-					parameters->AddObject(param);
-
-				}
-				else{
-					/*matrix: first, transpose, then plug into Param */
-					matrix=mxGetPr(pfield);
-					tmatrix=(double*)xmalloc(M*N*sizeof(double));
-					for (i=0;i<M;i++){
-						for(j=0;j<N;j++){
-							*(tmatrix+N*i+j)=*(matrix+M*j+i);
-						}
-					}
-
-					param= new DoubleMatParam(enum_type,tmatrix,M,N);
-					parameters->AddObject(param);
-	
-					/*Free ressources:*/
-					xfree((void**)&tmatrix);
-				}
-			}
-
-		}
-		else if (mxIsClass(pfield,"logical")){
-
-			M=mxGetM(pfield);
-			N=mxGetN(pfield);
-
-			if (M==0 | N==0){
-				_error_("array in parameters structure field %s is of size 0",name);
-			}
-			if (M==1 && N==1){
-				/*we have a simple bool: */
-				param= new BoolParam(enum_type,*mxGetLogicals(pfield));
-				parameters->AddObject(param);
-
-			}
-			else{
-				_error_("Matrices of Booleans not supported yet in parameters");
-			}
-		}
-		else if (mxIsClass(pfield,"char")){
-			/* we have a string parameter:*/
-			
-			int stringlen;
-			char* string=NULL;
-			
-			stringlen = mxGetM(pfield)*mxGetN(pfield)+1;
-			string = (char*)xmalloc(sizeof(mxChar)*stringlen);
-			mxGetString(pfield,string,stringlen);
-
-			param= new StringParam(enum_type,string);
-			parameters->AddObject(param);
-
-			xfree((void**)&string);
-		}
-		else if (mxIsClass(pfield,"cell")){
-
-			/*This can be a string array, or a matrix array. Check the first 
-			 *element type to decide: */
-			pfield2=mxGetCell(pfield,0);
-			if (mxIsClass(pfield2,"char")){
-				
-				/*string array: */
-				M=mxGetM(pfield);
-				stringarray=(char**)xmalloc(M*sizeof(char*));
-
-				for(i=0;i<M;i++){
-					char* descriptor=NULL;
-					pfield2=mxGetCell(pfield,i);
-					FetchData(&descriptor,pfield2);
-					stringarray[i]=descriptor;
-				}
-
-				param= new StringArrayParam(enum_type,stringarray,M);
-				parameters->AddObject(param);
-
-				/*Free ressources:*/
-				for(i=0;i<M;i++){
-					char* descriptor=stringarray[i];
-					xfree((void**)&descriptor);
-				}
-				xfree((void**)&stringarray);
-
-			}
-			else{
-				
-				/*matrix array: */
-				M=mxGetM(pfield);
-				array=(double**)xmalloc(M*sizeof(double*));
-				mdims_array=(int*)xmalloc(M*sizeof(int));
-				ndims_array=(int*)xmalloc(M*sizeof(int));
-
-				for(i=0;i<M;i++){
-					double* matrix=NULL;
-					int     m,n;
-					pfield2=mxGetCell(pfield,i);
-					FetchData(&matrix,&m,&n,pfield2);
-					array[i]=matrix;
-					mdims_array[i]=m;
-					ndims_array[i]=n;
-				}
-
-				param= new DoubleMatArrayParam(enum_type,array,M,mdims_array,ndims_array);
-				parameters->AddObject(param);
-
-				/*Free ressources:*/
-				for(i=0;i<M;i++){
-					double* matrix=array[i];
-					xfree((void**)&matrix);
-				}
-				xfree((void**)&array);
-				xfree((void**)&mdims_array);
-				xfree((void**)&ndims_array);
-			}
-		}
-		else _error_("Parameters structure field %s has a format that is not supported: %s",name,mxGetClassName(pfield));
-	}
-
-	/*Assign output pointers:*/
-	*pparameters=parameters;
-}
-/*}}}*/
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToMatrix.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToMatrix.cpp	(revision 12013)
@@ -1,2 +1,25 @@
+/*!\file MatlabMatrixToMatrix.cpp
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <mex.h>
+#include <stdio.h>
+#include <string.h>
+#include "./matlabio.h"
+#include "../../objects/objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+#include "../../toolkits/toolkits.h"
+	
+/*}}}*/
+
 Matrix* MatlabMatrixToMatrix(const mxArray* mxmatrix){
 
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToPetscMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToPetscMatrix.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToPetscMatrix.cpp	(revision 12013)
@@ -11,6 +11,4 @@
 
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
-
 /*Petsc includes: */
 #include "petscmat.h"
@@ -21,5 +19,5 @@
 #include "mex.h"
 
-#include "../../../shared/shared.h"
+#include "../../shared/shared.h"
 
 int MatlabMatrixToPetscMatrix(Mat* pmatrix,int* pmatrix_rows,int* pmatrix_cols,const mxArray* mxmatrix){
@@ -121,3 +119,2 @@
 	return 1;
 }
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToSeqMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToSeqMat.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToSeqMat.cpp	(revision 12013)
@@ -1,2 +1,22 @@
+/*!\file MatlabMatrixToSeqMat.cpp
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <mex.h>
+#include <stdio.h>
+#include <string.h>
+#include "../../toolkits/toolkits.h"
+#include "../../shared/shared.h"
+#include "./matlabio.h"
+
+/*}}}*/
+
 SeqMat* MatlabMatrixToSeqMat(const mxArray* dataref){
 
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabNArrayToNArray.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabNArrayToNArray.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabNArrayToNArray.cpp	(revision 12013)
@@ -13,5 +13,4 @@
 #include "../../include/include.h"
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 #include <mex.h>
 
@@ -272,3 +271,2 @@
 }
 /*}}}*/
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToPetscVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToPetscVector.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToPetscVector.cpp	(revision 12013)
@@ -10,7 +10,4 @@
 #endif
 
-
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
-
 /*Petsc includes: */
 #include "petscmat.h"
@@ -21,5 +18,5 @@
 #include "mex.h"
 
-#include "../../../shared/shared.h"
+#include "../../shared/shared.h"
 
 int MatlabVectorToPetscVector(Vec* pvector,int* pvector_rows,const mxArray* mxvector){
@@ -100,3 +97,2 @@
 	return 1;
 }
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToSeqVec.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToSeqVec.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToSeqVec.cpp	(revision 12013)
@@ -1,2 +1,22 @@
+/*!\file MatlabVectorToSeqVec.cpp
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <mex.h>
+#include <stdio.h>
+#include <string.h>
+#include "../../toolkits/toolkits.h"
+#include "../../shared/shared.h"
+#include "./matlabio.h"
+
+/*}}}*/
+
 SeqVec* MatlabVectorToSeqVec(const mxArray* dataref){
 
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToVector.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToVector.cpp	(revision 12013)
@@ -1,2 +1,24 @@
+/*!\file MatlabVectorToVector.cpp
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <mex.h>
+#include <stdio.h>
+#include <string.h>
+#include "./matlabio.h"
+#include "../../objects/objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+#include "../../toolkits/toolkits.h"
+	
+/*}}}*/
 
 Vector* MatlabVectorToVector(const mxArray* mxvector){
Index: /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 12013)
@@ -13,5 +13,4 @@
 #include "./matlabio.h"
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 #include <mex.h>
 
@@ -191,4 +190,2 @@
 	return(option);
 }/*}}}*/
-
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/PetscMatrixToDoubleMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/PetscMatrixToDoubleMatrix.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/PetscMatrixToDoubleMatrix.cpp	(revision 12013)
@@ -19,5 +19,5 @@
 #include "mex.h"
 
-#include "../../../shared/shared.h"
+#include "../../shared/shared.h"
 #include <string>
 
Index: /issm/trunk-jpl/src/c/matlab/io/PetscVectorToDoubleVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/PetscVectorToDoubleVector.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/PetscVectorToDoubleVector.cpp	(revision 12013)
@@ -18,5 +18,5 @@
 #include "mex.h"
 
-#include "../../../shared/shared.h"
+#include "../../shared/shared.h"
 #include <string>
 
@@ -34,5 +34,5 @@
 	/*Get size of vector: */
 	if(vector){
-		VecGetSize(vector,&rows);
+		VecGetSize(petsc_vector,&rows);
 		if(rows){
 			idxm=(int*)xmalloc(rows*sizeof(int));
@@ -40,5 +40,5 @@
 			for(i=0;i<rows;i++)idxm[i]=i;
 
-			VecGetValues(vector,rows,idxm,vector);
+			VecGetValues(petsc_vector,rows,idxm,vector);
 		}
 	}
Index: /issm/trunk-jpl/src/c/matlab/io/PrintfFunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/PrintfFunction.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/PrintfFunction.cpp	(revision 12013)
@@ -9,7 +9,5 @@
 #include "../../include/include.h"
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 #include "mex.h"
-#endif
 
 int PrintfFunction(char* format,...){
Index: /issm/trunk-jpl/src/c/matlab/io/WriteMatlabData.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/WriteMatlabData.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/WriteMatlabData.cpp	(revision 12013)
@@ -11,37 +11,12 @@
 #include "../../include/include.h"
 #include "../../shared/shared.h"
+#include "./matlabio.h"
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 #include <mex.h>
 
-/*FUNCTION WriteData(mxArray** pdataref,DataSet* dataset){{{1*/
-void WriteData(mxArray** pdataref,DataSet* dataset){
-
-	mxArray* dataref=NULL;
-	char* marshalled_dataset=NULL;
-	int   marshalled_dataset_size;
-
-	/*Write a dataset: */
-	if(dataset){
-			/* marshall the dataset: */
-			marshalled_dataset=dataset->Marshall();
-			marshalled_dataset_size=dataset->MarshallSize();
-			
-			dataref = mxCreateDoubleMatrix(0,0,mxREAL);
-			mxSetM(dataref,(mwSize)(marshalled_dataset_size/sizeof(double)));
-			mxSetN(dataref,(mwSize)1);
-			mxSetPr(dataref,(double*)marshalled_dataset);	
-	}
-	else{
-		/* return empty matrix: */
-		dataref=mxCreateDoubleMatrix(0,0,mxREAL);
-	}
-	*pdataref=dataref;
-	
-}
-/*}}}*/
 /*FUNCTION WriteData(mxArray** pdataref,Matrix* matrix){{{1*/
 void WriteData(mxArray** pdataref,Matrix* matrix){
 		
+	int i,j;
 	mxArray* dataref=NULL;
 	double*  matrix_ptr=NULL;
@@ -52,5 +27,5 @@
 		
 		#ifdef _HAVE_PETSC_
-		PetscMatrixToDoubleMatrix(&tmatrix_ptr,&rows,&cols);
+		PetscMatrixToDoubleMatrix(&tmatrix_ptr,&rows,&cols,matrix->matrix);
 		#else
 		matrix_ptr=matrix->matrix->ToSerial();
@@ -208,42 +183,2 @@
 }
 /*}}}*/
-/*FUNCTION WriteData(mxArray** pdataref,Parameters* parameters){{{1*/
-void WriteData(mxArray** pdataref,Parameters* parameters){
-
-	int i;
-
-	/*output: */
-	mxArray  *dataref     = NULL;
-	mwSize    nfields;
-	char    **fnames      = NULL;
-	mwSize    onebyone[2] = {1,1};
-	mwSize    ndim        = 2;
-
-	/*intermediary: */
-	Param*      param=NULL;
-
-	/*Recover data from the parameters dataset: */
-	nfields=(mwSize)parameters->Size();
-	fnames=(char**)mxMalloc(nfields*sizeof(char*));
-	
-	/*Build structure in matlab workspace with all the parameter fields: */
-	for(i=0;i<nfields;i++){
-		param=(Param*)parameters->GetObjectByOffset(i);
-		param->GetParameterName(&fnames[i]);
-	}
-	/*Initialize structure: */
-	dataref=mxCreateStructArray( ndim,onebyone,nfields,(const char**)fnames);
-
-	/*Fill each field: */
-	for(i=0;i<nfields;i++){
-
-		param=(Param*)parameters->GetObjectByOffset(i);
-		param->SetMatlabField(dataref);
-	}
-		
-	/*Assign output pointers:*/
-	*pdataref=dataref;
-
-}
-/*}}}*/
-#endif
Index: /issm/trunk-jpl/src/c/matlab/io/matlabio.h
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/matlabio.h	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/matlabio.h	(revision 12013)
@@ -16,10 +16,6 @@
 #include "../../include/include.h"
 
-class DataSet;
-class Parameters;
-
 #include <mex.h>
 
-void WriteData(mxArray** pdataref,DataSet* dataset);
 void WriteData(mxArray** pdataref,Matrix* matrix);
 void WriteData(mxArray** pdataref,double* matrix, int M,int N);
@@ -31,7 +27,5 @@
 void WriteData(mxArray** pdataref,double scalar);
 void WriteData(mxArray** pdataref,char* string);
-void WriteData(DataHandle* pdataref,Parameters* parameters);
 
-void FetchData(DataSet** pdataset,const mxArray* dataref);
 void FetchData(double** pmatrix,int* pM,int *pN,const mxArray* dataref);
 void FetchData(double** pmatrix,int* pnumel,int* pndims,int** psize,const mxArray* dataref);
@@ -50,5 +44,4 @@
 void FetchData(int* pinteger,const mxArray* dataref);
 void FetchData(bool* pbool,const mxArray* dataref);
-void FetchData(Parameters** pparameters, DataHandle dataref);
 
 Option* OptionParse(char* name, const mxArray* prhs[]);
Index: /issm/trunk-jpl/src/c/matlab/io/mxGetAssignedField.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/mxGetAssignedField.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/io/mxGetAssignedField.cpp	(revision 12013)
@@ -14,5 +14,4 @@
 #endif
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
 #include "mex.h"
 
@@ -45,3 +44,2 @@
 	return mxfield;
 }
-#endif
Index: /issm/trunk-jpl/src/c/matlab/matlab-binding.h
===================================================================
--- /issm/trunk-jpl/src/c/matlab/matlab-binding.h	(revision 12013)
+++ /issm/trunk-jpl/src/c/matlab/matlab-binding.h	(revision 12013)
@@ -0,0 +1,6 @@
+#ifndef _MATLAB_BINDING_H_
+#define _MATLAB_BINDING_H_
+
+#include "./io/matlabio.h"
+#include "./include/matlab_macros.h"
+#endif
Index: /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgGeom.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgGeom.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgGeom.cpp	(revision 12013)
@@ -1,6 +1,11 @@
+/*!\file BamgGeom.cpp
+ */
+
 #include <stdio.h>
-#include "../objects.h"
-#include "../../io/io.h"
-#include "../../shared/shared.h"
+#include "../../../objects/objects.h"
+#include "../../../io/io.h"
+#include "../../../shared/shared.h"
+#include "../../io/matlabio.h"
+#include <mex.h>
 
 /*Constructors/Destructors*/
Index: /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgMesh.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgMesh.cpp	(revision 12013)
@@ -1,6 +1,10 @@
+/*!\file BamgMesh.cpp
+ */
+
 #include <stdio.h>
-#include "../objects.h"
-#include "../../io/io.h"
-#include "../../shared/shared.h"
+#include "../../../objects/objects.h"
+#include "../../../io/io.h"
+#include "../../../shared/shared.h"
+#include "../../io/matlabio.h"
 
 /*Constructors/Destructors*/
Index: /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgOpts.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgOpts.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/c/matlab/objects/Bamg/BamgOpts.cpp	(revision 12013)
@@ -1,7 +1,11 @@
+/*!\file BamgOpts.cpp
+ */
+
 #include <stdio.h>
-#include "../../shared/shared.h"
-#include "../../include/include.h"
-#include "../objects.h"
-#include "../../io/io.h"
+#include "../../../objects/objects.h"
+#include "../../../io/io.h"
+#include "../../../shared/shared.h"
+#include "../../io/matlabio.h"
+#include "../../../include/include.h"
 
 /*Constructors/Destructors*/
Index: /issm/trunk-jpl/src/c/modules/modules.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/modules.h	(revision 12012)
+++ /issm/trunk-jpl/src/c/modules/modules.h	(revision 12013)
@@ -111,7 +111,5 @@
 #include "./TimeAdaptx/TimeAdaptx.h"
 #include "./TriaSearchx/TriaSearchx.h"
-#ifdef _SERIAL_
 #include "./TriMeshx/TriMeshx.h"
-#endif
 #include "./ThicknessAbsMisfitx/ThicknessAbsMisfitx.h"
 #include "./ThicknessAbsGradientx/ThicknessAbsGradientx.h"
Index: /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h	(revision 12012)
+++ /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h	(revision 12013)
@@ -21,7 +21,4 @@
 #endif
 
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
-#include "mex.h"
-#endif
 class Vector;
 
Index: /issm/trunk-jpl/src/c/shared/Wrapper/wrappershared.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Wrapper/wrappershared.h	(revision 12012)
+++ /issm/trunk-jpl/src/c/shared/Wrapper/wrappershared.h	(revision 12013)
@@ -8,8 +8,6 @@
 #include "../../objects/objects.h"
 
-#ifdef _SERIAL_
 int ModuleBoot(void);
 int ModuleEnd(void);
-#endif
 
 #endif
Index: /issm/trunk-jpl/src/mex/AverageFilter/AverageFilter.h
===================================================================
--- /issm/trunk-jpl/src/mex/AverageFilter/AverageFilter.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/AverageFilter/AverageFilter.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.cpp	(revision 12013)
@@ -64,6 +64,6 @@
 
 	/*Generate output Matlab Structures*/
-	bamggeom->SetMatlabStructureFields(BAMGGEOMOUT);
-	bamgmesh->SetMatlabStructureFields(BAMGMESHOUT);
+	bamggeom->SetStructureFields((void*)BAMGGEOMOUT);
+	bamgmesh->SetStructureFields((void*)BAMGMESHOUT);
 
 	/*Clean up*/
Index: /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.h
===================================================================
--- /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/BamgConvertMesh/BamgConvertMesh.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.cpp
===================================================================
--- /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.cpp	(revision 12012)
+++ /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.cpp	(revision 12013)
@@ -36,6 +36,6 @@
 
 	/*Generate output Matlab Structures*/
-	bamggeom_out->SetMatlabStructureFields(BAMGGEOMOUT);
-	bamgmesh_out->SetMatlabStructureFields(BAMGMESHOUT);
+	bamggeom_out->SetStructureFields((void*)BAMGGEOMOUT);
+	bamgmesh_out->SetStructureFields((void*)BAMGMESHOUT);
 
 	/*Free ressources: */
Index: /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.h
===================================================================
--- /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/BamgMesher/BamgMesher.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/BamgTriangulate/BamgTriangulate.h
===================================================================
--- /issm/trunk-jpl/src/mex/BamgTriangulate/BamgTriangulate.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/BamgTriangulate/BamgTriangulate.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Chaco/Chaco.h
===================================================================
--- /issm/trunk-jpl/src/mex/Chaco/Chaco.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Chaco/Chaco.h	(revision 12013)
@@ -17,4 +17,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
     
 /* serial input macros: */
Index: /issm/trunk-jpl/src/mex/ContourToMesh/ContourToMesh.h
===================================================================
--- /issm/trunk-jpl/src/mex/ContourToMesh/ContourToMesh.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/ContourToMesh/ContourToMesh.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__
Index: /issm/trunk-jpl/src/mex/ContourToNodes/ContourToNodes.h
===================================================================
--- /issm/trunk-jpl/src/mex/ContourToNodes/ContourToNodes.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/ContourToNodes/ContourToNodes.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__
Index: /issm/trunk-jpl/src/mex/ElementConnectivity/ElementConnectivity.h
===================================================================
--- /issm/trunk-jpl/src/mex/ElementConnectivity/ElementConnectivity.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/ElementConnectivity/ElementConnectivity.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/EnumToString/EnumToString.h
===================================================================
--- /issm/trunk-jpl/src/mex/EnumToString/EnumToString.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/EnumToString/EnumToString.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
     
 /* serial input macros: */
Index: /issm/trunk-jpl/src/mex/Exp2Kml/Exp2Kml.h
===================================================================
--- /issm/trunk-jpl/src/mex/Exp2Kml/Exp2Kml.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Exp2Kml/Exp2Kml.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/HoleFiller/HoleFiller.h
===================================================================
--- /issm/trunk-jpl/src/mex/HoleFiller/HoleFiller.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/HoleFiller/HoleFiller.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/InternalFront/InternalFront.h
===================================================================
--- /issm/trunk-jpl/src/mex/InternalFront/InternalFront.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InternalFront/InternalFront.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/include/globals.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 #include "../../c/io/io.h"
 
Index: /issm/trunk-jpl/src/mex/InterpFromGridToMesh/InterpFromGridToMesh.h
===================================================================
--- /issm/trunk-jpl/src/mex/InterpFromGridToMesh/InterpFromGridToMesh.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InterpFromGridToMesh/InterpFromGridToMesh.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/InterpFromMesh2d/InterpFromMesh2d.h
===================================================================
--- /issm/trunk-jpl/src/mex/InterpFromMesh2d/InterpFromMesh2d.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InterpFromMesh2d/InterpFromMesh2d.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/InterpFromMeshToGrid/InterpFromMeshToGrid.h
===================================================================
--- /issm/trunk-jpl/src/mex/InterpFromMeshToGrid/InterpFromMeshToGrid.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InterpFromMeshToGrid/InterpFromMeshToGrid.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h
===================================================================
--- /issm/trunk-jpl/src/mex/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.h
===================================================================
--- /issm/trunk-jpl/src/mex/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/KMLFileRead/KMLFileRead.h
===================================================================
--- /issm/trunk-jpl/src/mex/KMLFileRead/KMLFileRead.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/KMLFileRead/KMLFileRead.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/KMLMeshWrite/KMLMeshWrite.h
===================================================================
--- /issm/trunk-jpl/src/mex/KMLMeshWrite/KMLMeshWrite.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/KMLMeshWrite/KMLMeshWrite.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/KMLOverlay/KMLOverlay.h
===================================================================
--- /issm/trunk-jpl/src/mex/KMLOverlay/KMLOverlay.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/KMLOverlay/KMLOverlay.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Kml2Exp/Kml2Exp.h
===================================================================
--- /issm/trunk-jpl/src/mex/Kml2Exp/Kml2Exp.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Kml2Exp/Kml2Exp.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Ll2xy/Ll2xy.h
===================================================================
--- /issm/trunk-jpl/src/mex/Ll2xy/Ll2xy.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Ll2xy/Ll2xy.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/mex/Makefile.am	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Makefile.am	(revision 12013)
@@ -55,5 +55,5 @@
 if MATLAB
 AM_LDFLAGS  = $(MEXLINK)
-AM_CXXFLAGS +=  -DMATLAB  -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread 
+AM_CXXFLAGS +=  -D_HAVE_MATLAB_ -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread 
 LDADD       += $(MEXLIB) ../c/libISSMMatlab.a
 
@@ -62,5 +62,5 @@
 if PYTHON
 AM_LDFLAGS  = $(PYTHONLINK)
-AM_CXXFLAGS +=  -DNPY_NO_DEPRECATED_API 
+AM_CXXFLAGS +=  -D_HAVE_PYTHON_ -DNPY_NO_DEPRECATED_API 
 LDADD       += $(BOOSTLIB) $(PYTHONLIB) ../c/libISSMPython.a
 endif
Index: /issm/trunk-jpl/src/mex/MeshPartition/MeshPartition.h
===================================================================
--- /issm/trunk-jpl/src/mex/MeshPartition/MeshPartition.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/MeshPartition/MeshPartition.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef CLEANUP
Index: /issm/trunk-jpl/src/mex/MeshProfileIntersection/MeshProfileIntersection.h
===================================================================
--- /issm/trunk-jpl/src/mex/MeshProfileIntersection/MeshProfileIntersection.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/MeshProfileIntersection/MeshProfileIntersection.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__
Index: /issm/trunk-jpl/src/mex/PointCloudFindNeighbors/PointCloudFindNeighbors.h
===================================================================
--- /issm/trunk-jpl/src/mex/PointCloudFindNeighbors/PointCloudFindNeighbors.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/PointCloudFindNeighbors/PointCloudFindNeighbors.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__
Index: /issm/trunk-jpl/src/mex/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.h
===================================================================
--- /issm/trunk-jpl/src/mex/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.h	(revision 12013)
@@ -15,4 +15,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Scotch/Scotch.h
===================================================================
--- /issm/trunk-jpl/src/mex/Scotch/Scotch.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Scotch/Scotch.h	(revision 12013)
@@ -17,4 +17,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
     
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Shp2Kml/Shp2Kml.h
===================================================================
--- /issm/trunk-jpl/src/mex/Shp2Kml/Shp2Kml.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Shp2Kml/Shp2Kml.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/StringToEnum/StringToEnum.h
===================================================================
--- /issm/trunk-jpl/src/mex/StringToEnum/StringToEnum.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/StringToEnum/StringToEnum.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
     
 /* serial input macros: */
Index: /issm/trunk-jpl/src/mex/TriMesh/TriMesh.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriMesh/TriMesh.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriMesh/TriMesh.h	(revision 12013)
@@ -25,4 +25,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 #include "../../c/io/io.h"
 #include "../../c/EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk-jpl/src/mex/TriMeshNoDensity/TriMeshNoDensity.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriMeshNoDensity/TriMeshNoDensity.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriMeshNoDensity/TriMeshNoDensity.h	(revision 12013)
@@ -14,4 +14,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 void TriMeshNoDensityUsage(void);
Index: /issm/trunk-jpl/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.h	(revision 12013)
@@ -14,4 +14,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 #include "../../c/EnumDefinitions/EnumDefinitions.h"
 
Index: /issm/trunk-jpl/src/mex/TriMeshRefine/TriMeshRefine.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriMeshRefine/TriMeshRefine.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriMeshRefine/TriMeshRefine.h	(revision 12013)
@@ -14,4 +14,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 void TriMeshRefineUsage(void);
Index: /issm/trunk-jpl/src/mex/TriMeshRifts/TriMeshRifts.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriMeshRifts/TriMeshRifts.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriMeshRifts/TriMeshRifts.h	(revision 12013)
@@ -14,4 +14,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 void TriMeshRiftsUsage(void);
Index: /issm/trunk-jpl/src/mex/TriaSearch/TriaSearch.h
===================================================================
--- /issm/trunk-jpl/src/mex/TriaSearch/TriaSearch.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/TriaSearch/TriaSearch.h	(revision 12013)
@@ -12,4 +12,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
Index: /issm/trunk-jpl/src/mex/Xy2ll/Xy2ll.h
===================================================================
--- /issm/trunk-jpl/src/mex/Xy2ll/Xy2ll.h	(revision 12012)
+++ /issm/trunk-jpl/src/mex/Xy2ll/Xy2ll.h	(revision 12013)
@@ -13,4 +13,5 @@
 #include "../../c/Container/Container.h"
 #include "../../c/shared/shared.h"
+#include "../../c/issm-binding.h"
 
 #undef __FUNCT__ 
