Changeset 12942


Ignore:
Timestamp:
08/07/12 16:32:17 (13 years ago)
Author:
Mathieu Morlighem
Message:

CHG: get mex compilation and linking flag from mex -v instead (might need to add -ldl to PETSC_LIB)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/m4/issm_options.m4

    r12920 r12942  
    173173                MATLABINCL=-I"$MATLAB_ROOT/extern/include";
    174174               
    175                 dnl OS-dependent variables and checks
    176                 case "${host_os}" in
    177                         *linux*)
    178                                 if test "${host_cpu}" = "x86_64";
    179                                 then
    180                                         MEXLIB=-L"$MATLAB_ROOT/bin/glnxa64/ -lmex"
    181                                         MEXLINK="-pthread -shared -W2,--version-script,${MATLAB_ROOT}/extern/lib/glnxa64/mexFunction.map";
    182                                 else
    183                                         MEXLIB=-L"$MATLAB_ROOT/bin/glnx86/ -lmex"
    184                                         MEXLINK="-pthread -shared -W2,--version-script,${MATLAB_ROOT}/extern/lib/glnx86/mexFunction.map";
    185                                 fi
    186                                 MEXEXT=`$MATLAB_ROOT/bin/mexext`
    187                                 MEXEXT=".$MEXEXT"
    188                         ;;
    189                         *darwin*)
    190                                 dnl mex -v gives all the flags for compilation of mex files
    191                                 dnl if matlab version is 7.9 or more, we must use mexmaci64 (64 bits)
    192                                 MEXLINK="-O -Wl,-flat_namespace -undefined suppress -arch i386 -bundle -Wl,-exported_symbols_list,$MATLAB_ROOT/extern/lib/maci/mexFunction.map"
    193                                 MEXLIB=" -L$MATLAB_ROOT/bin/maci/ -lmx -lmex -lmat -lstdc++ -largeArrayDims"
    194                                 if test $MATLAB_MAJOR -ge 7; then
    195                                          if test $MATLAB_MINOR -ge 9; then
    196                                                   MEXLINK="-O -Wl,-flat_namespace -undefined suppress -bundle -Wl,-exported_symbols_list,$MATLAB_ROOT/extern/lib/maci64/mexFunction.map"
    197                                                          MEXLIB=" -L$MATLAB_ROOT/bin/maci64/ -lmx -lmex -lmat -lstdc++"
    198                                          fi
    199                                 fi
    200                                 MEXEXT=`$MATLAB_ROOT/bin/mexext`
    201                                 MEXEXT=".$MEXEXT"
    202                         ;;
    203                         *cygwin*)
    204                                 if  test $VENDOR = intel-win7-32; then
    205                                         MEXLIB="-dll -export:mexFunction -LIBPATH:\"$MATLAB_ROOT\extern\lib\win32\microsoft\" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  -NOLOGO -INCREMENTAL:NO -manifest"
    206                                 elif  test $VENDOR = intel-win7-64; then
    207                                         MEXLIB="-dll -export:mexFunction -LIBPATH:\"$MATLAB_ROOT\extern\lib\win64\microsoft\" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  -NOLOGO -INCREMENTAL:NO -manifest"
    208                                 fi
    209                                 MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
    210                                 MEXEXT=".$MEXEXT"
    211                         ;;
    212                 esac
     175                dnl 4. get MEXLIB MEXLINK and MEXEXT (experimental)
     176                MEXLINK=$(mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
     177                MEXLIB=$( mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
     178                MEXEXT=$( mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
     179                dnl dnl OS-dependent variables and checks (old stuff)
     180                dnl case "${host_os}" in
     181                dnl     *linux*)
     182                dnl             if test "${host_cpu}" = "x86_64";
     183                dnl             then
     184                dnl                     MEXLIB="-Wl,-rpath-link,$MATLAB_ROOT/bin/glnxa64 -L$MATLAB_ROOT/bin/glnxa64/ -lmx -lmex -lmat -lm"
     185                dnl                     MEXLINK="-pthread -shared -W2,--version-script,${MATLAB_ROOT}/extern/lib/glnxa64/mexFunction.map";
     186                dnl             else
     187                dnl                     MEXLIB=-L"$MATLAB_ROOT/bin/glnx86/ -lmex"
     188                dnl                     MEXLINK="-pthread -shared -W2,--version-script,${MATLAB_ROOT}/extern/lib/glnx86/mexFunction.map";
     189                dnl             fi
     190                dnl             MEXEXT=`$MATLAB_ROOT/bin/mexext`
     191                dnl             MEXEXT=".$MEXEXT"
     192                dnl     ;;
     193                dnl     *darwin*)
     194                dnl             dnl mex -v gives all the flags for compilation of mex files
     195                dnl             dnl if matlab version is 7.9 or more, we must use mexmaci64 (64 bits)
     196                dnl             MEXLINK="-O -Wl,-flat_namespace -undefined suppress -arch i386 -bundle -Wl,-exported_symbols_list,$MATLAB_ROOT/extern/lib/maci/mexFunction.map"
     197                dnl             MEXLIB=" -L$MATLAB_ROOT/bin/maci/ -lmx -lmex -lmat -lstdc++ -largeArrayDims"
     198                dnl             if test $MATLAB_MAJOR -ge 7; then
     199                dnl                      if test $MATLAB_MINOR -ge 9; then
     200                dnl                               MEXLINK="-O -Wl,-flat_namespace -undefined suppress -bundle -Wl,-exported_symbols_list,$MATLAB_ROOT/extern/lib/maci64/mexFunction.map"
     201                dnl                                      MEXLIB=" -L$MATLAB_ROOT/bin/maci64/ -lmx -lmex -lmat -lstdc++"
     202                dnl                      fi
     203                dnl             fi
     204                dnl             MEXEXT=`$MATLAB_ROOT/bin/mexext`
     205                dnl             MEXEXT=".$MEXEXT"
     206                dnl     ;;
     207                dnl     *cygwin*)
     208                dnl             if  test $VENDOR = intel-win7-32; then
     209                dnl                     MEXLIB="-dll -export:mexFunction -LIBPATH:\"$MATLAB_ROOT\extern\lib\win32\microsoft\" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  -NOLOGO -INCREMENTAL:NO -manifest"
     210                dnl             elif  test $VENDOR = intel-win7-64; then
     211                dnl                     MEXLIB="-dll -export:mexFunction -LIBPATH:\"$MATLAB_ROOT\extern\lib\win64\microsoft\" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  -NOLOGO -INCREMENTAL:NO -manifest"
     212                dnl             fi
     213                dnl             MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
     214                dnl             MEXEXT=".$MEXEXT"
     215                dnl     ;;
     216                dnl esac
    213217           AC_MSG_RESULT(done)
    214218
     
    671675                        PETSCLIB="-L$PETSC_ROOT/$PETSC_ARCH/lib -L$PETSC_ROOT/lib -L$PETSC_ROOT/lib/$PETSC_ARCH -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc  -lpetscsnes -lpetscts"
    672676                        else
    673                         PETSCLIB="-L$PETSC_ROOT/$PETSC_ARCH/lib -L$PETSC_ROOT/lib -L$PETSC_ROOT/lib/$PETSC_ARCH -lpetsc"
     677                        PETSCLIB="-L$PETSC_ROOT/$PETSC_ARCH/lib -L$PETSC_ROOT/lib -L$PETSC_ROOT/lib/$PETSC_ARCH -lpetsc -ldl"
    674678                        fi
    675679                        ;;
Note: See TracChangeset for help on using the changeset viewer.