From 847feb17fa5d6a6db202a737f800da00e7270b90 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 20 Oct 2016 14:03:35 +0200 Subject: [PATCH] fix mex compilation commands for Matlab R2016b on macOS. Closes #1288 --- matlab/utilities/general/dyn_mex.m | 49 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/matlab/utilities/general/dyn_mex.m b/matlab/utilities/general/dyn_mex.m index 1a007cb4a..7892ee9be 100644 --- a/matlab/utilities/general/dyn_mex.m +++ b/matlab/utilities/general/dyn_mex.m @@ -67,7 +67,7 @@ if ~exist('OCTAVE_VERSION') error(['When using the USE_DLL option, you must give either ' ... '''cygwin'', ''mingw'' or ''msvc'' option to the ''dynare'' command']) end - elseif isunix + elseif isunix && ~ismac % MATLAB/Linux if matlab_ver_less_than('8.3') eval(['mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' ' ... @@ -83,31 +83,30 @@ if ~exist('OCTAVE_VERSION') end elseif ismac % MATLAB/MacOS - if matlab_ver_less_than('8.3') - if matlab_ver_less_than('8.1') - eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... - 'error -arch $ARCHS -Wl,-syslibroot,$SDKROOT ' ... - '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... - basename '_dynamic.c ' basename '_dynamic_mex.c']) - eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... - 'error -arch $ARCHS -Wl,-syslibroot,$SDKROOT ' ... - '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... - basename '_static.c ' basename '_static_mex.c']) - else - eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... - 'error -arch $ARCHS -Wl,-syslibroot,$MW_SDKROOT ' ... - '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... - basename '_dynamic.c ' basename '_dynamic_mex.c']) - eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... - 'error -arch $ARCHS -Wl,-syslibroot,$MW_SDKROOT ' ... - '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... - basename '_static.c ' basename '_static_mex.c']) - end + if matlab_ver_less_than('8.1') + eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... + 'error -arch $ARCHS -Wl,-syslibroot,$SDKROOT ' ... + '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... + basename '_dynamic.c ' basename '_dynamic_mex.c']) + eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... + 'error -arch $ARCHS -Wl,-syslibroot,$SDKROOT ' ... + '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... + basename '_static.c ' basename '_static_mex.c']) + elseif matlab_ver_less_than('8.3') + eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... + 'error -arch $ARCHS -Wl,-syslibroot,$MW_SDKROOT ' ... + '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... + basename '_dynamic.c ' basename '_dynamic_mex.c']) + eval(['mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined ' ... + 'error -arch $ARCHS -Wl,-syslibroot,$MW_SDKROOT ' ... + '-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle'' ' ... + basename '_static.c ' basename '_static_mex.c']) + elseif matlab_ver_less_than('9.1') + eval(['mex -O LINKEXPORT='''' ' basename '_dynamic.c ' basename '_dynamic_mex.c']) + eval(['mex -O LINKEXPORT='''' ' basename '_static.c ' basename '_static_mex.c']) else - eval(['mex -O LINKEXPORT='''' ' basename '_dynamic.c ' ... - basename '_dynamic_mex.c']) - eval(['mex -O LINKEXPORT='''' ' basename '_static.c ' basename ... - '_static_mex.c']) + eval(['mex -O LINKEXPORT='''' LINKEXPORTVER='''' ' basename '_dynamic.c ' basename '_dynamic_mex.c']) + eval(['mex -O LINKEXPORT='''' LINKEXPORTVER='''' ' basename '_static.c ' basename '_static_mex.c']) end end else