From 51e8a70bf48bbb5696e918141c9d58b1a10db76c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 24 Mar 2014 16:31:26 +0100
Subject: [PATCH] Fix call to "mex" helper under MATLAB 8.3 (R2014a) and
 GNU/Linux.

There is a new LINKOPTS variable which governs the list of symbols to be
exported, so we set it to an empty value to have all symbols exported.
Previously we were overloading the LDFLAGS which was containing the list of
exported symbols.
---
 ModFile.cc | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/ModFile.cc b/ModFile.cc
index 98ee8d7d..0a5df469 100644
--- a/ModFile.cc
+++ b/ModFile.cc
@@ -687,8 +687,13 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
 #else
 # ifdef __linux__
       // MATLAB/Linux
-      mOutputFile << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
-                  << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl;
+      mOutputFile << "    if matlab_ver_less_than('8.3')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    else" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    end" << endl;
 # else // MacOS
       // MATLAB/MacOS
       mOutputFile << "    if matlab_ver_less_than('8.1')" << endl;
-- 
GitLab