From 992c0417365697edea69df159a1c893f823e05dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Thu, 12 Sep 2024 14:47:03 +0200
Subject: [PATCH] Provisions for MATLAB R2024b

---
 doc/manual/source/installation-and-configuration.rst |  2 +-
 macOS/build.sh                                       | 10 +++++-----
 matlab/get_path_to_mex_files.m                       |  6 +++---
 scripts/get-matlab-version                           |  3 +++
 scripts/matlab-online/packageDynare.sh               |  2 +-
 windows/README.txt                                   |  4 ++--
 windows/build.sh                                     |  4 ++--
 windows/dynare.nsi                                   |  4 ++--
 8 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/doc/manual/source/installation-and-configuration.rst b/doc/manual/source/installation-and-configuration.rst
index 000f2014e1..225d705828 100644
--- a/doc/manual/source/installation-and-configuration.rst
+++ b/doc/manual/source/installation-and-configuration.rst
@@ -14,7 +14,7 @@ compilation steps are necessary in that case.
 
 In order to run Dynare, you need one of the following:
 
-* MATLAB, any version ranging from 9.5 (R2018b) to 24.1 (R2024a);
+* MATLAB, any version ranging from 9.5 (R2018b) to 24.2 (R2024b);
 * GNU Octave, any version ranging from 7.1.0 to 9.2.0, with the ``statistics`` package
   from `Octave-Forge`_. Note however that the Dynare installer for Windows
   requires a more specific version of Octave, as indicated on the download
diff --git a/macOS/build.sh b/macOS/build.sh
index df4a9a21a8..a6a74cfed0 100755
--- a/macOS/build.sh
+++ b/macOS/build.sh
@@ -38,7 +38,7 @@ else
     path_remove PATH /opt/homebrew/bin
     MATLAB_ARCH=maci64
 fi
-MATLAB_PATH=/Applications/"$PKG_ARCH"/MATLAB_R2024a.app
+MATLAB_PATH=/Applications/"$PKG_ARCH"/MATLAB_R2024b.app
 
 # Workaround for bug in Xcode 15.3 which does not include m4
 # See https://github.com/Homebrew/homebrew-core/issues/165388
@@ -122,9 +122,9 @@ mkdir -p \
       "$PKGFILES"/scripts \
       "$PKGFILES"/contrib/ms-sbvar/TZcode
 if [[ "$PKG_ARCH" == x86_64 ]]; then
-    mkdir -p "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-9.5-24.1
+    mkdir -p "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-9.5-24.2
 else
-    mkdir -p "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-23.2-24.1
+    mkdir -p "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-23.2-24.2
 fi      
 
 cp -p  "$ROOTDIR"/NEWS.md                                            "$PKGFILES"
@@ -143,9 +143,9 @@ mkdir -p                                                             "$PKGFILES"
 ln -sf ../../preprocessor/dynare-preprocessor                        "$PKGFILES"/matlab/preprocessor64/dynare_m
 
 if [[ "$PKG_ARCH" == x86_64 ]]; then
-    cp -L  "$ROOTDIR"/build-macOS-matlab/*.mex"$MATLAB_ARCH"         "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-9.5-24.1
+    cp -L  "$ROOTDIR"/build-macOS-matlab/*.mex"$MATLAB_ARCH"         "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-9.5-24.2
 else
-    cp -L  "$ROOTDIR"/build-macOS-matlab/*.mex"$MATLAB_ARCH"         "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-23.2-24.1
+    cp -L  "$ROOTDIR"/build-macOS-matlab/*.mex"$MATLAB_ARCH"         "$PKGFILES"/mex/matlab/"$MATLAB_ARCH"-23.2-24.2
 fi
 
 cp -p  "$ROOTDIR"/scripts/dynare.el                                  "$PKGFILES"/scripts
diff --git a/matlab/get_path_to_mex_files.m b/matlab/get_path_to_mex_files.m
index 0745dedef0..4823b37a11 100644
--- a/matlab/get_path_to_mex_files.m
+++ b/matlab/get_path_to_mex_files.m
@@ -47,20 +47,20 @@ else
     end
     % Add win64 specific paths for Dynare Windows package
     if strcmp(computer, 'PCWIN64')
-        tmp = [dynareroot '../mex/matlab/win64-9.5-24.1/'];
+        tmp = [dynareroot '../mex/matlab/win64-9.5-24.2/'];
         if exist(tmp, 'dir')
             mexpath = tmp;
         end
     end
     % Add macOS paths for Dynare Mac package
     if strcmp(computer, 'MACI64')
-        tmp = [dynareroot '../mex/matlab/maci64-9.5-24.1/'];
+        tmp = [dynareroot '../mex/matlab/maci64-9.5-24.2/'];
         if exist(tmp, 'dir')
             mexpath = tmp;
         end
     end
     if strcmp(computer, 'MACA64')
-        tmp = [dynareroot '../mex/matlab/maca64-23.2-24.1/'];
+        tmp = [dynareroot '../mex/matlab/maca64-23.2-24.2/'];
         if exist(tmp, 'dir')
             mexpath = tmp;
         end
diff --git a/scripts/get-matlab-version b/scripts/get-matlab-version
index e965268c04..eddc454a22 100755
--- a/scripts/get-matlab-version
+++ b/scripts/get-matlab-version
@@ -58,6 +58,9 @@ fi
 
 # If needed, convert a release number (Rnnnnx) into a version number (x.y)
 case ${MATLAB_VERSION} in
+    *2024[bB])
+        MATLAB_VERSION="24.2"
+        ;;
     *2024[aA])
         MATLAB_VERSION="24.1"
         ;;
diff --git a/scripts/matlab-online/packageDynare.sh b/scripts/matlab-online/packageDynare.sh
index be02339209..1ae921dd2f 100755
--- a/scripts/matlab-online/packageDynare.sh
+++ b/scripts/matlab-online/packageDynare.sh
@@ -5,7 +5,7 @@ set -exo pipefail
 # Needs to be run from Ubuntu 22.04 LTS, with the needed packages installed.
 
 X13ASVER=1-1-b60
-MATLABPATH=/opt/MATLAB/R2024a
+MATLABPATH=/opt/MATLAB/R2024b
 # TODO: change size and put white background for better rendering in MATLAB Add-Ons browser
 DYNARE_PNG_LOGO=../../preprocessor/doc/logos/dlogo.png
 
diff --git a/windows/README.txt b/windows/README.txt
index 4de1fd1b36..8c384ceb3d 100644
--- a/windows/README.txt
+++ b/windows/README.txt
@@ -21,8 +21,8 @@ Note: Dynare comes with an automated uninstaller, which you can run from the
 Using Dynare with MATLAB®
 ─────────────────────────
 
-Dynare works on top of MATLAB®, any version ranging from 9.5 (R2018b) to 24.1
-(R2024a). Only 64-bit versions are supported.
+Dynare works on top of MATLAB®, any version ranging from 9.5 (R2018b) to 24.2
+(R2024b). Only 64-bit versions are supported.
 
 To use Dynare, you just have to add the ‘matlab’ subdirectory of your Dynare
 installation to MATLAB® path. You have two options for doing that:
diff --git a/windows/build.sh b/windows/build.sh
index 8c78ab93c4..6381219cd1 100755
--- a/windows/build.sh
+++ b/windows/build.sh
@@ -119,8 +119,8 @@ cp -p windows/README.txt "$ZIPDIR"
 cp -pr windows/deps/mingw64 "$ZIPDIR"
 mkdir -p "$ZIPDIR"/contrib/ms-sbvar/TZcode
 cp -pr contrib/ms-sbvar/TZcode/MatlabFiles "$ZIPDIR"/contrib/ms-sbvar/TZcode
-mkdir -p "$ZIPDIR"/mex/matlab/win64-9.5-24.1
-cp -p build-win-matlab/*.mexw64 "$ZIPDIR"/mex/matlab/win64-9.5-24.1
+mkdir -p "$ZIPDIR"/mex/matlab/win64-9.5-24.2
+cp -p build-win-matlab/*.mexw64 "$ZIPDIR"/mex/matlab/win64-9.5-24.2
 mkdir -p "$ZIPDIR"/mex/octave/win64
 cp -p build-win-octave/*.mex "$ZIPDIR"/mex/octave/win64
 mkdir "$ZIPDIR"/preprocessor
diff --git a/windows/dynare.nsi b/windows/dynare.nsi
index 29c40f803d..94d724322d 100644
--- a/windows/dynare.nsi
+++ b/windows/dynare.nsi
@@ -90,8 +90,8 @@ Section "Dynare core (preprocessor and M-files)"
 SectionEnd
 
 
-Section "MEX files for MATLAB 64-bit, version 9.5 to 23.2 (R2018b to R2024a)"
- SetOutPath $INSTDIR\mex\matlab\win64-9.5-24.1
+Section "MEX files for MATLAB 64-bit, version 9.5 to 24.2 (R2018b to R2024b)"
+ SetOutPath $INSTDIR\mex\matlab\win64-9.5-24.2
  File ..\build-win-matlab\*.mexw64
 SectionEnd
 
-- 
GitLab