Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 15256)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 15257)
@@ -55,19 +55,21 @@
 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_"
 		elif  test $VENDOR = intel-win7-32; then
-			export CC=cccl
-			export CXX=cccl
-			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
-			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
-			export AR=lib
-			export RANLIB=true
-			OSLIBS="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"
-		elif  test $VENDOR = intel-win7-64; then
-			export CC=cccl
+			export CC=cl
 			export CXX=cccl
 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
 			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
 			export AR="ar-lib lib"
+         export OS_LDFLAG="-Wl,"
 			export RANLIB=true
-			OSLIBS="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"
+			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+		elif  test $VENDOR = intel-win7-64; then
+			export CC=cl
+			export CXX=cccl
+			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+			export AR="ar-lib lib"
+         export OS_LDFLAG="-Wl,"
+			export RANLIB=true
+			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
 		elif test $VENDOR = intel-linux; then
 			export CC=icc
@@ -86,5 +88,5 @@
 			export CFLAGS=" -O3 -D_INTEL_LINUX_ "
         else
-		AC_MSG_ERROR([unknow compiler vendor!])
+		AC_MSG_ERROR([unknown compiler vendor!])
 		fi
 	fi
@@ -115,10 +117,26 @@
 
 		AC_MSG_CHECKING(for matlab headers and libraries in $MATLAB_ROOT)
-		MATLABINCL=-I"$MATLAB_ROOT/extern/include";
+  		MATLABINCL="-I$MATLAB_ROOT/extern/include/"
 		
 		dnl 4. get MEXLIB MEXLINK and MEXEXT (experimental)
-		MEXLINK=$(mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
-		MEXLIB=$( mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
-		MEXEXT=$( mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
+      dnl OS-dependent variables and checks
+  		case "${host_os}" in
+  			*linux*)
+         ;&
+  			*darwin*)
+		      MEXLINK=$(mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
+	         MEXLIB=$( mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
+		      MEXEXT=$( mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
+  			;;
+  			*cygwin*) 
+  				if  test $VENDOR = intel-win7-32; then
+  					MEXLIB="/link /DLL -export:mexFunction -Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib -Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+  				elif  test $VENDOR = intel-win7-64; then
+  					MEXLIB="/DLL -export:mexFunction -L$MATLAB_ROOT\extern\lib\win64\microsoft\ -Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib -Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib  -NOLOGO -INCREMENTAL:NO -manifest" 
+  				fi
+  				MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+  				MEXEXT=".$MEXEXT"
+  			;;
+      esac
 	   AC_MSG_RESULT(done)
 
@@ -581,4 +599,5 @@
 	if test -d "$PETSC_ROOT"; then
 
+   echo "LISTEN LISTEN LISTEN"
 	 PETSCINCL=" -I$PETSC_ROOT/include"
 	 dnl Add other location (maybe not needed anymore)
@@ -593,5 +612,5 @@
 			*cygwin*)
 			if test $PETSC_MAJOR -lt 3 ; then
-				PETSCLIB="-L$PETSC_ROOT/lib libpetscksp.lib libpetscdm.lib libpetscmat.lib libpetscvec.lib libpetscsnes.lib libpetscts.lib libmpiuni.lib libpetsc.lib"
+				PETSCLIB=-Wl,/LIBPATH:`cygpath -w $PETSC_ROOT/lib` libpetscksp.lib libpetscdm.lib libpetscmat.lib libpetscvec.lib libpetscsnes.lib libpetscts.lib libmpiuni.lib libpetsc.lib
 			else
 				PETSCLIB="-L$PETSC_ROOT/lib libpetsc.lib"
@@ -601,7 +620,7 @@
 			*linux*)
 			if test $PETSC_MAJOR -lt 3 ; then
-				PETSCLIB="-L$PETSC_ROOT/lib -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc  -lpetscsnes -lpetscts"
+				PETSCLIB="-L$PETSC_ROOT/lib libpetscksp.lib libpetscdm.lib libpetscmat.lib libpetscvec.lib libpetscsnes.lib libpetscts.lib libmpiuni.lib libpetsc.lib"
 			else
-				PETSCLIB="-L$PETSC_ROOT/lib -lpetsc -ldl"
+				PETSCLIB="-L$PETSC_ROOT/lib libpetsc.lib"
 				if test $PETSC_MAJOR -gt 3 || test $PETSC_MINOR -ge 3; then PETSCLIB+=" -lmetis"; fi
 			fi
Index: /issm/trunk-jpl/src/wrappers/matlab/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 15256)
+++ /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 15257)
@@ -102,11 +102,6 @@
 endif 
 #}}}
-#Flags and libraries {{{
-#if SHAREDLIBS
-#deps = ../../c/libISSMCore.la ../../c/libISSMModules.la
-#else
-#deps = ../../c/libISSMCore.a ../../c/libISSMModules.a
-#endif
-#deps +=  $(MATHLIB)
+
+# Dependencies {{{
 deps =  $(MATHLIB)
 
@@ -115,5 +110,5 @@
 
 #Matlab part
-AM_LDFLAGS = -module $(MEXLINK) -shrext ${EXEEXT}  -L/usr/lib
+AM_LDFLAGS = -no-undefined -module $(MEXLINK) -shrext ${EXEEXT}  -L/usr/lib -Wl,/export:mexFunction 
 if VERSION
 AM_LDFLAGS +=
@@ -122,17 +117,14 @@
 endif
 
-if SHAREDLIBS
-deps += ./libISSMMatlab.la 
-else
-deps += ./libISSMMatlab.a
-AM_LDFLAGS += --no-warnings 
-endif
-
 AM_CXXFLAGS +=  -D_HAVE_MATLAB_MODULES_  -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread 
 
 if SHAREDLIBS
-deps +=
-else
-deps += ../../c/libISSMModules.a ../../c/libISSMCore.a  
+deps += ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la ./libISSMMatlab.a
+else
+#if WINDOWS
+#AM_LDFLAGS += -Wl,../../c/libISSMCore.a -Wl,./libISSMApi.a -Wl,../../c/libISSMModules.a -Wl,./libISSMMatlab.a
+#else
+deps += ${OS_LDFLAG}../../c/libISSMModules.a ${OS_LDFLAG}../../c/libISSMCore.a ${OS_LDFLAG}./libISSMApi.a ${OS_LDFLAG}./libISSMMatlab.a
+#endif
 if ADOLC
 deps += $(ADOLCLIB)
@@ -140,12 +132,4 @@
 endif
 
-if SHAREDLIBS
-deps += ./libISSMApi.la 
-else
-deps += ./libISSMApi.a
-endif
-
-
-
 #MEXLIB needs to be the last (undefined references on larsen)
 deps += ${MEXLIB}
@@ -154,5 +138,11 @@
 AM_CXXFLAGS += $(CXXOPTFLAGS) 
 #}}}
-#Bin sources {{{
+# Module sources and dependencies {{{
+libISSMMatlab_la_LIBADD = $(MPILIB) $(PETSCLIB) $(GSLLIB) $(MATHLIB) $(MEXLIB) ./../../c/libISSMCore.la
+libISSMMatlab_la_LDFLAGS = -no-undefined -module
+
+libISSMApi_la_LIBADD = $(MPILIB) $(PETSCLIB) $(GSLLIB) $(MATHLIB) $(MEXLIB)
+libISSMApi_la_LDFLAGS = -no-undefined -module
+
 AverageFilter_la_SOURCES = ../AverageFilter/AverageFilter.cpp\
 									../AverageFilter/AverageFilter.h
