2022-03-24 17:43:40 +01:00
|
|
|
dnl Copyright © 2009-2022 Dynare Team
|
2009-09-16 18:52:22 +02:00
|
|
|
dnl
|
|
|
|
dnl This file is part of Dynare.
|
|
|
|
dnl
|
|
|
|
dnl Dynare is free software: you can redistribute it and/or modify
|
|
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
|
|
dnl the Free Software Foundation, either version 3 of the License, or
|
|
|
|
dnl (at your option) any later version.
|
|
|
|
dnl
|
|
|
|
dnl Dynare is distributed in the hope that it will be useful,
|
|
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
dnl GNU General Public License for more details.
|
|
|
|
dnl
|
|
|
|
dnl You should have received a copy of the GNU General Public License
|
2021-06-09 17:33:48 +02:00
|
|
|
dnl along with Dynare. If not, see <https://www.gnu.org/licenses/>.
|
2009-09-16 18:52:22 +02:00
|
|
|
|
|
|
|
AC_DEFUN([AX_MATLAB_VERSION],
|
|
|
|
[dnl
|
|
|
|
AC_REQUIRE([AX_MATLAB])
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for MATLAB version])
|
2020-09-30 17:50:24 +02:00
|
|
|
|
|
|
|
if test -n "$MATLAB"; then
|
|
|
|
dnl Try to autodetect MATLAB version
|
|
|
|
if test -f "${MATLAB}/VersionInfo.xml"; then
|
|
|
|
dnl The VersionInfo.xml file is present on all versions since R2017a, on all platforms.
|
|
|
|
dnl Extract the version number as x.y, since it is our preferred form, and is
|
|
|
|
dnl more robust to future versions.
|
|
|
|
dnl NB: brackets in regular expressions are enclosed in other brackets, because this is m4
|
|
|
|
MATLAB_VERSION=$(sed -En '/<version>/s/.*>([[0-9]]+\.[[0-9]]+).*/\1/p' "${MATLAB}/VersionInfo.xml")
|
|
|
|
elif test -f "${MATLAB}/bin/util/mex/version.txt"; then
|
|
|
|
dnl The bin/util/mex/version.txt file is present on Windows and macOS, at least
|
|
|
|
dnl since R2009b. It contains the release number (Rnnnnx).
|
|
|
|
MATLAB_VERSION=$(cat "${MATLAB}/bin/util/mex/version.txt")
|
|
|
|
elif test -f "${MATLAB}/bin/mex" || test -f "${MATLAB}/bin/mexsh"; then
|
|
|
|
dnl Works on Linux and macOS until R2018a included. Returns the release number (Rnnnnx).
|
|
|
|
dnl Older MATLABs have the version in bin/mex, more recent in bin/mexsh
|
|
|
|
dnl NB: brackets in regular expressions are enclosed in other brackets, because this is m4
|
|
|
|
MATLAB_VERSION=$(sed -En "/^.*full_ver=/s/^.*full_ver='(R[[^']]+)'.*/\1/p" "${MATLAB}"/bin/mex*)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2019-03-25 16:14:36 +01:00
|
|
|
if test -n "$MATLAB_VERSION"; then
|
2020-09-30 17:50:24 +02:00
|
|
|
dnl Convert a release number (Rnnnnx) into a version number (x.y)
|
2009-09-16 18:52:22 +02:00
|
|
|
case $MATLAB_VERSION in
|
2022-03-24 17:43:40 +01:00
|
|
|
*2022a | *2022A)
|
|
|
|
MATLAB_VERSION="9.12"
|
|
|
|
;;
|
2021-09-24 15:44:14 +02:00
|
|
|
*2021b | *2021B)
|
|
|
|
MATLAB_VERSION="9.11"
|
|
|
|
;;
|
2021-03-17 17:47:27 +01:00
|
|
|
*2021a | *2021A)
|
|
|
|
MATLAB_VERSION="9.10"
|
|
|
|
;;
|
2020-09-24 15:43:06 +02:00
|
|
|
*2020b | *2020B)
|
|
|
|
MATLAB_VERSION="9.9"
|
|
|
|
;;
|
2020-03-26 11:20:24 +01:00
|
|
|
*2020a | *2020A)
|
|
|
|
MATLAB_VERSION="9.8"
|
|
|
|
;;
|
2019-09-12 12:22:59 +02:00
|
|
|
*2019b | *2019B)
|
|
|
|
MATLAB_VERSION="9.7"
|
|
|
|
;;
|
2019-03-22 15:44:29 +01:00
|
|
|
*2019a | *2019A)
|
|
|
|
MATLAB_VERSION="9.6"
|
|
|
|
;;
|
2018-10-01 18:26:03 +02:00
|
|
|
*2018b | *2018B)
|
|
|
|
MATLAB_VERSION="9.5"
|
|
|
|
;;
|
2018-05-14 14:35:12 +02:00
|
|
|
*2018a | *2018A)
|
|
|
|
MATLAB_VERSION="9.4"
|
|
|
|
;;
|
2017-10-17 17:55:09 +02:00
|
|
|
*2017b | *2017B)
|
|
|
|
MATLAB_VERSION="9.3"
|
|
|
|
;;
|
2017-03-13 17:18:18 +01:00
|
|
|
*2017a | *2017A)
|
|
|
|
MATLAB_VERSION="9.2"
|
|
|
|
;;
|
2016-09-18 16:33:49 +02:00
|
|
|
*2016b | *2016B)
|
|
|
|
MATLAB_VERSION="9.1"
|
|
|
|
;;
|
2016-03-22 22:33:43 +01:00
|
|
|
*2016a | *2016A)
|
|
|
|
MATLAB_VERSION="9.0"
|
|
|
|
;;
|
2016-01-25 15:01:53 +01:00
|
|
|
*2015b | *2015B)
|
|
|
|
MATLAB_VERSION="8.6"
|
|
|
|
;;
|
2015-03-16 14:44:06 +01:00
|
|
|
*2015a | *2015A)
|
|
|
|
MATLAB_VERSION="8.5"
|
|
|
|
;;
|
2014-10-10 10:41:04 +02:00
|
|
|
*2014b | *2014B)
|
|
|
|
MATLAB_VERSION="8.4"
|
|
|
|
;;
|
2014-03-18 14:59:08 +01:00
|
|
|
*2014a | *2014A)
|
|
|
|
MATLAB_VERSION="8.3"
|
|
|
|
;;
|
2013-09-25 15:59:50 +02:00
|
|
|
*2013b | *2013B)
|
|
|
|
MATLAB_VERSION="8.2"
|
|
|
|
;;
|
2013-03-21 18:20:30 +01:00
|
|
|
*2013a | *2013A)
|
|
|
|
MATLAB_VERSION="8.1"
|
|
|
|
;;
|
2012-09-14 11:10:47 +02:00
|
|
|
*2012b | *2012B)
|
|
|
|
MATLAB_VERSION="8.0"
|
|
|
|
;;
|
2012-03-13 17:32:09 +01:00
|
|
|
*2012a | *2012A)
|
|
|
|
MATLAB_VERSION="7.14"
|
|
|
|
;;
|
2011-09-22 18:05:06 +02:00
|
|
|
*2011b | *2011B)
|
|
|
|
MATLAB_VERSION="7.13"
|
|
|
|
;;
|
2011-04-08 11:07:03 +02:00
|
|
|
*2011a | *2011A)
|
|
|
|
MATLAB_VERSION="7.12"
|
|
|
|
;;
|
2010-09-10 13:08:32 +02:00
|
|
|
*2010b | *2010B)
|
|
|
|
MATLAB_VERSION="7.11"
|
|
|
|
;;
|
2010-04-06 14:12:00 +02:00
|
|
|
*2010a | *2010A)
|
|
|
|
MATLAB_VERSION="7.10"
|
|
|
|
;;
|
2009-09-17 17:04:38 +02:00
|
|
|
*2009b | *2009B)
|
|
|
|
MATLAB_VERSION="7.9"
|
|
|
|
;;
|
2009-09-16 18:52:22 +02:00
|
|
|
*2009a | *2009A)
|
|
|
|
MATLAB_VERSION="7.8"
|
|
|
|
;;
|
|
|
|
*2008b | *2008B)
|
|
|
|
MATLAB_VERSION="7.7"
|
|
|
|
;;
|
|
|
|
*2008a | *2008A)
|
|
|
|
MATLAB_VERSION="7.6"
|
|
|
|
;;
|
|
|
|
*2007b | *2007B)
|
|
|
|
MATLAB_VERSION="7.5"
|
|
|
|
;;
|
|
|
|
*2007a | *2007A)
|
|
|
|
MATLAB_VERSION="7.4"
|
|
|
|
;;
|
|
|
|
*2006b | *2006B)
|
|
|
|
MATLAB_VERSION="7.3"
|
|
|
|
;;
|
|
|
|
*2006a | *2006A)
|
|
|
|
MATLAB_VERSION="7.2"
|
|
|
|
;;
|
|
|
|
*14SP3 | *14sp3)
|
|
|
|
MATLAB_VERSION="7.1"
|
|
|
|
;;
|
|
|
|
*14SP2 | *14sp2)
|
|
|
|
MATLAB_VERSION="7.0.4"
|
|
|
|
;;
|
|
|
|
*14SP1 | *14sp1)
|
|
|
|
MATLAB_VERSION="7.0.1"
|
|
|
|
;;
|
|
|
|
R14 | r14)
|
|
|
|
MATLAB_VERSION="7.0.0"
|
|
|
|
;;
|
|
|
|
esac
|
2020-09-30 17:50:24 +02:00
|
|
|
dnl Check that we have an x.y version number
|
2019-03-25 16:14:48 +01:00
|
|
|
if ! echo "${MATLAB_VERSION}" | grep -qE '^[[0-9.]]+$'; then
|
|
|
|
AC_MSG_ERROR([unknown MATLAB version ${MATLAB_VERSION}])
|
|
|
|
fi
|
2009-09-16 18:52:22 +02:00
|
|
|
AC_MSG_RESULT([${MATLAB_VERSION}])
|
|
|
|
ax_matlab_version_ok="yes"
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([unknown])
|
|
|
|
ax_matlab_version_ok="no"
|
|
|
|
fi
|
2020-09-30 17:50:24 +02:00
|
|
|
AC_SUBST([MATLAB_VERSION])
|
2009-09-16 18:52:22 +02:00
|
|
|
])
|