Stéphane Adjemian committed Sep 01, 2015 1   Houtan Bastani committed Jul 21, 2015 2   Houtan Bastani committed Jun 19, 2013 8 9 # Dynare  Sébastien Villemot committed Apr 16, 2019 10 Described on the homepage:  Houtan Bastani committed Jun 19, 2013 11   Sébastien Villemot committed May 22, 2019 12 Most users should use the precompiled package available for their OS, also  Sébastien Villemot committed Apr 16, 2019 13 available via the Dynare homepage: .  Houtan Bastani committed Jun 19, 2013 14   Houtan Bastani committed Dec 08, 2015 15 16 # Contributions  Sébastien Villemot committed Sep 10, 2018 17 To contribute to Dynare and participate in the Dynare community, please see: [CONTRIBUTING.md](https://git.dynare.org/Dynare/dynare/blob/master/CONTRIBUTING.md)  Houtan Bastani committed Dec 08, 2015 18   Houtan Bastani committed Jun 19, 2013 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # License Most of the source files are covered by the GNU General Public Licence version 3 or later (there are some exceptions to this, see [license.txt](license.txt) in Dynare distribution for specifics). # Building Dynare From Source Here, we explain how to build from source: - Dynare, including preprocessor and MEX files for MATLAB and Octave - Dynare++ - all the associated documentation (PDF and HTML) This source can be retrieved in three forms:  Sébastien Villemot committed Sep 10, 2018 33 - via git, at  Sébastien Villemot committed Apr 16, 2019 34 35 - using the stable source archive of the latest Dynare version from - using a source snapshot of the unstable version, also from  Houtan Bastani committed Jun 19, 2013 36 37 38 39 40  Note that if you obtain the source code via git, you will need to install more tools (see below). The first section of this page gives general instructions, which apply to all platforms. Then some specific platforms are discussed.  Sébastien Villemot committed May 22, 2019 41 42 43 44 45 **Note:** Here, when we refer to 32-bit or 64-bit, we refer to the type of MATLAB or Octave installation, not the type of operating system installation. For example, it is perfectly possible to run a 32-bit MATLAB on a 64-bit Windows: in that case, instructions for Windows 32-bit should be followed. To determine the type of your MATLAB/Octave installation, type:  Houtan Bastani committed Jun 19, 2013 46 47 48 matlab >> computer   Sébastien Villemot committed May 22, 2019 49 50 51 52 53 at the MATLAB/Octave prompt. Under MATLAB, if it returns PCWIN64, GLNX64 or MACI64, then it is a 64-bit MATLAB; if it returns PCWIN, MACI or GLNX, then it is a 32-bit MATLAB. Under Octave, if it returns a string that begins with x86_64, it is a 64-bit Octave; if the strings begins with i686, it is a 32-bit Octave.  Houtan Bastani committed Jun 19, 2013 54 55 56 57 58  **Contents** 1. [**General Instructions**](#general-instructions) 1. [**Debian or Ubuntu**](#debian-or-ubuntu)  Willi Mutschler committed Nov 10, 2020 59 1. [**Fedora, CentOS or RHEL**](#fedora-centos-or-rhel)  Houtan Bastani committed Jun 19, 2013 60 1. [**Windows**](#windows)  Houtan Bastani committed Feb 13, 2018 61 1. [**macOS**](#macos)  Houtan Bastani committed Jun 19, 2013 62 63 64 65 66 67 68 69  ## General Instructions ### Prerequisites A number of tools and libraries are needed in order to recompile everything. You don't necessarily need to install everything, depending on what you want to compile. - A POSIX compliant shell and an implementation of Make (mandatory)  Sébastien Villemot committed Sep 11, 2019 70 - The [GNU Compiler Collection](http://gcc.gnu.org/), version 8 or later, with  Sébastien Villemot committed Feb 01, 2019 71  gcc, g++ and gfortran (mandatory)  Willi Mutschler committed Nov 06, 2020 72 73 74 75 76 77 - [MATLAB](https://mathworks.com) (if you want to compile the MEX for MATLAB) - [GNU Octave](http://www.octave.org) with - the development headers (if you want to compile the MEX for Octave) - the development libraries corresponding to the [UMFPACK](https://people.engr.tamu.edu/davis/suitesparse.html) packaged with Octave - Optionally, the [Control](https://wiki.octave.org/Control_package), [IO](https://wiki.octave.org/IO_package), [Optimization](https://wiki.octave.org/Optimization_package) and [Statistics](https://wiki.octave.org/Statistics_package) package either installed via your package manager or through [Octave Forge](https://wiki.octave.org/Category:Octave_Forge).  Sébastien Villemot committed Sep 11, 2019 78 - [Boost libraries](http://www.boost.org), version 1.36 or later  Sébastien Villemot committed Aug 14, 2019 79 - [Bison](http://www.gnu.org/software/bison/), version 3.2 or later (only if you get the source through Git)  Houtan Bastani committed Jun 19, 2013 80 - [Flex](http://flex.sourceforge.net/), version 2.5.4 or later (only if you get the source through Git)  Sébastien Villemot committed Apr 16, 2019 81 82 - [Autoconf](http://www.gnu.org/software/autoconf/), version 2.62 or later (only if you get the source through Git) - [Automake](http://www.gnu.org/software/automake/), version 1.11.2 or later (only if you get the source through Git)  Houtan Bastani committed Jun 19, 2013 83 - An implementation of BLAS and LAPACK: either [ATLAS](http://math-atlas.sourceforge.net/), [OpenBLAS](http://xianyi.github.com/OpenBLAS/), Netlib ([BLAS](http://www.netlib.org/blas/), [LAPACK](http://www.netlib.org/lapack/)) or [MKL](http://software.intel.com/en-us/intel-mkl/) (only if you want to build Dynare++)  Sébastien Villemot committed Feb 12, 2019 84 - [MAT File I/O library](http://sourceforge.net/projects/matio/), version 1.5 or later (if you want to compile Markov-Switching code, the estimation DLL, k-order DLL and Dynare++)  Houtan Bastani committed Jun 19, 2013 85 86 - [SLICOT](http://www.slicot.org) (if you want to compile the Kalman steady state DLL) - [GSL library](http://www.gnu.org/software/gsl/) (if you want to compile Markov-Switching code)  Sébastien Villemot committed Jan 08, 2019 87 88 - A decent LaTeX distribution (if you want to compile PDF documentation), ideally with Beamer  Houtan Bastani committed Jun 19, 2013 89 - For building the reference manual:  Sébastien Villemot committed Feb 21, 2019 90 91 92  - [Sphinx](http://www.sphinx-doc.org/) - [MathJax](https://www.mathjax.org/) - [Doxygen](http://www.stack.nl/%7Edimitri/doxygen/) (if you want to build Dynare preprocessor source documentation)  Willi Mutschler committed Nov 06, 2020 93 - [X-13ARIMA-SEATS Seasonal Adjustment Program](https://www.census.gov/srd/www/x13as/)  Houtan Bastani committed Jun 19, 2013 94 95 96 97 98 99  ### Preparing the sources If you have downloaded the sources from an official source archive or the source snapshot, just unpack it. If you want to use Git, do the following from a terminal:  Willi Mutschler committed Nov 06, 2020 100 101 102 103 104 105 sh git clone --recurse-submodules https://git.dynare.org/Dynare/dynare.git cd dynare autoreconf -si  The last line runs Autoconf and Automake in order to prepare the build environment (this is not necessary if you got the sources from an official source archive or the source snapshot). If you want a certain version (e.g. 4.6) , then add --single-branch --branch 4.6 to the git clone command.  Houtan Bastani committed Jun 19, 2013 106 107 108 109  ### Configuring the build tree Simply launch the configure script from a terminal:  Willi Mutschler committed Nov 06, 2020 110 sh  Sébastien Villemot committed Dec 18, 2020 111 ./configure --with-matlab=<…>  Houtan Bastani committed Jun 19, 2013 112   Sébastien Villemot committed Dec 18, 2020 113 114 where the path to MATLAB is specified.  Willi Mutschler committed Nov 06, 2020 115 Some important options:  Houtan Bastani committed Jun 19, 2013 116   Willi Mutschler committed Nov 06, 2020 117 118 119 - --disable-matlab: skip the compilation of MEX files for MATLAB - --disable-octave: skip the compilation of MEX files for Octave - --disable-doc: skip the compilation of the documentation (PDF and HTML)  Houtan Bastani committed Jan 25, 2016 120   Willi Mutschler committed Nov 06, 2020 121 You may need to specify additional options to the configure script, see the output of the --help option, and also the platform specific instructions below. If the configuration goes well, the script will tell you which components are correctly configured and will be built.  Houtan Bastani committed Jun 19, 2013 122   Sébastien Villemot committed May 22, 2019 123 124 125 126 127 128 129 130 131 132 133 134 Note that it is possible that some MEX files cannot be compiled, due to missing build dependencies. If you find no way of installing the missing dependencies, a workaround can be to give up on compiling these MEX files and rather use slower implementations (in the MATLAB/Octave language) that are available under the matlab/missing/mex/ subdirectories. For example, if you fail to compile the gensylv MEX, you can type the following at the MATLAB/Octave prompt before running Dynare: matlab addpath /matlab/missing/mex/gensylv  (where you need to replace  with the full path to your Dynare copy).  Johannes Pfeifer committed Jan 27, 2017 135 ### Building  Houtan Bastani committed Jun 19, 2013 136   Willi Mutschler committed Nov 06, 2020 137 138 Binaries are built with: sh  Houtan Bastani committed Jun 19, 2013 139 140 141 make  PDF and HTML documentation are respectively built with:  Willi Mutschler committed Nov 06, 2020 142 sh  Houtan Bastani committed Jun 19, 2013 143 144 145 make pdf make html   Johannes Pfeifer committed Sep 13, 2016 146   Stéphane Adjemian (Charybdis) committed Jan 25, 2017 147 148 ### Check  Sébastien Villemot committed Nov 08, 2018 149 The Git source comes with unit tests (in the MATLAB functions) and integration tests (under the tests subfolder). All the tests can be run with:  Sébastien Villemot committed Dec 18, 2020 150 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 151 152 make check   Willi Mutschler committed Nov 06, 2020 153 in the tests subfolder. If Dynare has been compiled against MATLAB and Octave, the tests will be run with both MATLAB and Octave. Depending on the performance of your machine, this can take several hours. It is possible to run the tests only with MATLAB:  Sébastien Villemot committed Dec 18, 2020 154 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 155 156 157 make check-matlab  or only with Octave:  Sébastien Villemot committed Dec 18, 2020 158 sh  Johannes Pfeifer committed Jan 27, 2017 159 make check-octave  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 160   Willi Mutschler committed Nov 06, 2020 161 162 163 Note that running the testsuite with Octave requires the additional packages pstoedit, epstool, xfig, and gnuplot. A summary of the results is available in tests/run_test_matlab_output.txt or tests/run_test_octave_output.txt. Often, it does not make sense to run the complete testsuite. For instance, if you modify codes only related to the perfect foresight model solver, you can decide to run only a subset of the integration tests, with:  Sébastien Villemot committed Dec 18, 2020 164 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 165 166 make deterministic_simulations   Sébastien Villemot committed Nov 08, 2018 167 This will run all the integration tests in tests/deterministic_simulations with MATLAB and Octave. Again, it is possible to do this only with MATLAB:  Sébastien Villemot committed Dec 18, 2020 168 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 169 170 171 make m/deterministic_simulations  or with Octave:  Sébastien Villemot committed Dec 18, 2020 172 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 173 174 make o/deterministic_simulations   Sébastien Villemot committed Nov 08, 2018 175 Finally if you want to run a single integration test, e.g. deterministic_simulations/lbj/rbc.mod with MATLAB:  Sébastien Villemot committed Dec 18, 2020 176 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 177 178 179 make deterministic_simulations/lbj/rbc.m.trs  or with Octave:  Sébastien Villemot committed Dec 18, 2020 180 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 181 182 183 make deterministic_simulations/lbj/rbc.o.trs  The result of the test (PASSED or FAILED) will be printed in the terminal, the produced log can be displayed with:  Sébastien Villemot committed Dec 18, 2020 184 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 185 186 187 make deterministic_simulations/lbj/rbc.m.drs  or  Sébastien Villemot committed Dec 18, 2020 188 sh  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 189 190 make deterministic_simulations/lbj/rbc.o.drs   Johannes Pfeifer committed Jan 27, 2017 191 Note that only tests will be executed where the m.trs/o.trs does not yet exist. You can run  Sébastien Villemot committed Dec 18, 2020 192 sh  Johannes Pfeifer committed Jan 27, 2017 193 194 195 make clean  in the tests folder to delete files that were created by the run of the testsuite. You can also manually delete the desired m.trs/o.trs file(s).  Stéphane Adjemian (Charybdis) committed Jan 25, 2017 196   Houtan Bastani committed Jun 19, 2013 197 198 ## Debian or Ubuntu  Sébastien Villemot committed Nov 06, 2018 199 All the prerequisites are packaged:  Houtan Bastani committed Jun 19, 2013 200 201  - build-essential (for gcc, g++ and make)  Houtan Bastani committed Jan 21, 2015 202 - gfortran  Sébastien Villemot committed Nov 06, 2018 203 - liboctave-dev  Sébastien Villemot committed Sep 11, 2019 204 - libboost-graph-dev  Sébastien Villemot committed Nov 06, 2018 205 - libgsl-dev  Houtan Bastani committed Jun 19, 2013 206 207 - libmatio-dev - libslicot-dev and libslicot-pic  Sébastien Villemot committed Dec 16, 2013 208 - libsuitesparse-dev  Houtan Bastani committed Jun 19, 2013 209 210 211 212 213 214 215 - flex - bison - autoconf - automake - texlive - texlive-publishers (for Econometrica bibliographic style) - texlive-latex-extra (for fullpage.sty)  Stéphane Adjemian (Hermes) committed Aug 23, 2016 216 - texlive-fonts-extra (for ccicons)  Sébastien Villemot committed Nov 06, 2018 217 218 - texlive-latex-recommended - texlive-science (for amstex)  219 - texlive-plain-generic  Sébastien Villemot committed Jun 29, 2017 220 - lmodern (for macroprocessor PDF)  Sébastien Villemot committed Feb 21, 2019 221 - python3-sphinx  Sébastien Villemot committed Oct 01, 2019 222 - latexmk  Sébastien Villemot committed Feb 21, 2019 223 - libjs-mathjax  Houtan Bastani committed Jun 19, 2013 224 - doxygen  Willi Mutschler committed Nov 06, 2020 225 - x13as  Houtan Bastani committed Jun 19, 2013 226   Sébastien Villemot committed Nov 06, 2018 227 You can install them all at once with:  Sébastien Villemot committed Dec 18, 2020 228 sh  Willi Mutschler committed Nov 06, 2020 229 apt install build-essential gfortran liboctave-dev libboost-graph-dev libgsl-dev libmatio-dev libslicot-dev libslicot-pic libsuitesparse-dev flex bison autoconf automake texlive texlive-publishers texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-plain-generic lmodern python3-sphinx latexmk libjs-mathjax doxygen x13as  Michel Juillard committed Jul 18, 2018 230   Willi Mutschler committed Nov 06, 2020 231 232 233 234 235 236 If you use MATLAB, we strongly advise to also apt install matlab-support and confirm to rename the GCC libraries shipped with MATLAB to avoid possible conflicts with GCC libraries shipped by your distribution. Tested on - Debian 10 - Ubuntu 20.04 - Ubuntu 20.10  Michel Juillard committed Jul 18, 2018 237   Willi Mutschler committed Nov 10, 2020 238 ## Fedora, CentOS or RHEL  Willi Mutschler committed Nov 06, 2020 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270  Almost all prerequisites are packaged: - gcc, gcc-c++, make - gcc-gfortran - lapack and lapack-devel - openblas and openblas-devel - boost-devel - gsl-devel - matio-devel - suitesparse-devel - flex - bison - autoconf - automake - redhat-rpm-config - octave, octave-devel, octave-statistics, octave-io, octave-optim, octave-control - texlive-scheme-minimal, texlive-collection-publishers, texlive-collection-latexextra, texlive-collection-fontsextra, texlive-collection-latexrecommended, texlive-collection-science, texlive-collection-plaingeneric, texlive-lm - python3-sphinx - latexmk - mathjax - doxygen You can install them all at once with: sh # Minimal packages (use --disable-doc and --disable-octave flags) dnf install -y gcc gcc-c++ make gcc-gfortran lapack lapack-devel openblas openblas-devel boost-devel gsl-devel matio-devel suitesparse-devel flex bison autoconf automake redhat-rpm-config # Octave packages (use --disable-doc flag) dnf install octave octave-devel octave-statistics octave-io octave-optim octave-control # Documentation packages dnf install texlive-scheme-minimal texlive-collection-publishers texlive-collection-latexextra texlive-collection-fontsextra texlive-collection-latexrecommended texlive-collection-science texlive-collection-plaingeneric texlive-lm python3-sphinx latexmk mathjax doxygen   Willi Mutschler committed Nov 10, 2020 271 272 273 274 275 276 277 278 279 280 In Fedora these are available from the default repositories; whereas for CentOS and RHEL you need to enable the [Extra Packages for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL) repository and either the PowerTools repository for CentOS or the CodeReady Linux Builder repository for RHEL: sh yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # CentOS 8 dnf config-manager --set-enabled PowerTools # RHEL 8 ARCH=$( /bin/arch ) subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"  The documentation packages have slightly different names in CentOS and RHEL, you can also choose to pass the --disable-doc flag to your configure script to skip these dependencies.  Willi Mutschler committed Nov 06, 2020 281   Willi Mutschler committed Nov 09, 2020 282 Slicot and x13as need to be compiled from source:  Willi Mutschler committed Nov 06, 2020 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317  sh # compile slicot from source and put it into /home/$USER/dynare/slicot/lib/ mkdir -p /home/$USER/dynare/slicot cd /home/$USER/dynare/slicot wget https://deb.debian.org/debian/pool/main/s/slicot/slicot_5.0+20101122.orig.tar.gz tar xf slicot_5.0+20101122.orig.tar.gz cd slicot-5.0+20101122 make FORTRAN=gfortran OPTS="-O2 -fPIC -fdefault-integer-8" LOADER=gfortran lib mkdir -p /home/$USER/dynare/slicot/lib cp slicot.a /home/$USER/dynare/slicot/lib/libslicot64_pic.a #for matlab cp slicot.a /home/$USER/dynare/slicot/lib/libslicot_pic.a #for octave # compile x13as from source and put it into /usr/bin/ mkdir -p /home/$USER/dynare/x13as cd /home/$USER/dynare/x13as wget https://www.census.gov/ts/x13as/unix/x13assrc_V1.1_B39.tar.gz tar xf x13assrc_V1.1_B39.tar.gz sed -i "s|-static| |" makefile.gf # this removes '-static' in the makefile.gf make -f makefile.gf FFLAGS="-O2 -std=legacy" PROGRAM=x13as sudo cp x13as /usr/bin/  If you use MATLAB, we strongly advise to also rename or exclude the GCC libraries shipped with MATLAB to avoid possible conflicts with GCC libraries shipped by Fedora, see e.g. [Matlab on Fedora 33](https://mutschler.eu/linux/install-guides/fedora-post-install/#matlab) or [MATLAB-ArchWiki](https://wiki.archlinux.org/index.php/MATLAB) for instructions. Keep in mind to use the --with-slicot option to the configure command, e.g.: sh cd /home/$USER/dynare git clone --recurse-submodules https://git.dynare.org/dynare/dynare.git unstable cd unstable autoreconf -si ./configure --with-slicot=/home/$USER/dynare/slicot --with-matlab=/usr/local/MATLAB/R2020b make -j$(($(nproc)+1)) #rule of thumb: one more than CPUs as shown by e.g. lscpu   Willi Mutschler committed Nov 09, 2020 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 If your distribution ships an older version of bison, compile it from source and append it *temporarily* to your path before calling the configure script: sh bison --version # bison (GNU Bison) 3.0.4 mkdir -p /home/$USER/dynare/bison cd /home/$USER/dynare/bison wget http://ftp.gnu.org/gnu/bison/bison-3.6.4.tar.gz #change the version number accordingly tar xf bison-3.6.4.tar.gz cd bison-3.6.4 ./configure --prefix=/home/$USER/dynare/bison make make install export PATH=/home/$USER/dynare/bison/bin:$PATH bison --version # bison (GNU Bison) 3.6.4  Now configure dynare as above.  Willi Mutschler committed Nov 06, 2020 334 Tested on  Willi Mutschler committed Nov 10, 2020 335 - CentOS 8  Willi Mutschler committed Nov 06, 2020 336 337 - Fedora Workstation 32 - Fedora Workstation 33  Willi Mutschler committed Nov 09, 2020 338 - Red Hat Enterprise Linux 8  Willi Mutschler committed Nov 06, 2020 339   Houtan Bastani committed Jun 19, 2013 340 341 ## Windows  Sébastien Villemot committed May 22, 2019 342 343 - Install [MSYS2](http://www.msys2.org) (pick the 64-bit version, unless you have a 32-bit Windows, in which case see below)  Sébastien Villemot committed Nov 06, 2018 344 - Run a MSYS MinGW 64-bit shell  Sébastien Villemot committed Nov 06, 2018 345 - Update the system:  Sébastien Villemot committed Dec 18, 2020 346 sh  Sébastien Villemot committed Nov 06, 2018 347 348 349 350 351 pacman -Syu  You may be asked to close the window at the end of the first upgrade batch, in which case you should rerun the upgrade in a new window to complete the upgrade.  Sébastien Villemot committed Nov 06, 2018 352 - Install all needed dependencies:  Sébastien Villemot committed Dec 18, 2020 353 sh  Sébastien Villemot committed Nov 06, 2018 354 355 pacman -S git autoconf automake-wrapper bison flex make tar texinfo mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-boost mingw-w64-x86_64-gsl mingw-w64-x86_64-matio mingw-w64-x86_64-openblas   Sébastien Villemot committed Feb 20, 2020 356 - Compile and install SLICOT, needed for the kalman_steady_state MEX file  Sébastien Villemot committed Dec 18, 2020 357 sh  Sébastien Villemot committed Nov 06, 2018 358 359 360 wget https://deb.debian.org/debian/pool/main/s/slicot/slicot_5.0+20101122.orig.tar.gz tar xf slicot_5.0+20101122.orig.tar.gz cd slicot-5.0+20101122  Sébastien Villemot committed Feb 20, 2020 361 make FORTRAN=gfortran OPTS="-O2 -fno-underscoring -fdefault-integer-8" LOADER=gfortran lib  Sébastien Villemot committed Nov 06, 2018 362 363 364 365 mkdir -p /usr/local/lib cp slicot.a /usr/local/lib/libslicot64_pic.a cd ..   Sébastien Villemot committed Feb 20, 2020 366 - Prepare the Dynare sources, either by unpacking the source tarball, or with:  Sébastien Villemot committed Dec 18, 2020 367 sh  368 git clone --recurse-submodules https://git.dynare.org/Dynare/dynare.git  Sébastien Villemot committed Nov 06, 2018 369 370 371 cd dynare autoreconf -si   Sébastien Villemot committed Feb 20, 2020 372 - Configure Dynare from the source directory:  Sébastien Villemot committed Dec 18, 2020 373 sh  Sébastien Villemot committed Sep 30, 2020 374 ./configure --with-slicot=/usr/local --with-matlab=<…> --disable-octave --disable-doc  Sébastien Villemot committed Nov 06, 2018 375   Sébastien Villemot committed Sep 30, 2020 376 where the path of MATLAB is specified. Note that you should use  Sébastien Villemot committed Nov 08, 2018 377 the MSYS2 notation and not put spaces in the MATLAB path, so you probably want  378 379 380 381 to use something like /c/Progra~1/MATLAB/…. Alternatively, if your filesystem does not have short filenames (8dot3), then you can run mkdir -p /usr/local/MATLAB && mount c:/Program\ Files/MATLAB /usr/local/MATLAB, and then pass /usr/local/MATLAB/… as MATLAB path to the configure script.  Sébastien Villemot committed Nov 06, 2018 382 - Compile:  Sébastien Villemot committed Dec 18, 2020 383 sh  Sébastien Villemot committed Nov 06, 2018 384 385 make   Sébastien Villemot committed Nov 21, 2018 386 - Run the testsuite:  Sébastien Villemot committed Dec 18, 2020 387 sh  Sébastien Villemot committed Nov 21, 2018 388 389 make -C tests check-matlab   Sébastien Villemot committed Nov 06, 2018 390   Sébastien Villemot committed Nov 08, 2018 391 **Note:** The above assumes that you have a 64-bit version of MATLAB. It can be  Sébastien Villemot committed Nov 06, 2018 392 393 394 adapted to a 32-bit MATLAB with the following modifications: - run the MSYS MinGW 32-bit shell  Sébastien Villemot committed Nov 08, 2018 395 - replace x86_64 by i686 in packages names on the pacman command-line  Sébastien Villemot committed Nov 06, 2018 396 397 398 - for SLICOT, remove the -fdefault-integer-8 option, and instead copy the library into /usr/local/lib/libslicot_pic.a  Sébastien Villemot committed Nov 08, 2018 399 **Note:** Compiling the MEX files for Octave and the documentation under MSYS2 is  Sébastien Villemot committed Nov 06, 2018 400 currently not supported.  Houtan Bastani committed Jun 19, 2013 401   Houtan Bastani committed Feb 13, 2018 402 403 ## macOS  Houtan Bastani committed Feb 13, 2018 404 Preparatory work:  Houtan Bastani committed Jun 19, 2013 405   Sébastien Villemot committed Dec 18, 2020 406 407 408 409 - Install the Xcode Command Line Tools. Open Terminal.app and type: sh xcode-select --install   Houtan Bastani committed Feb 13, 2018 410 - Install [Homebrew](https://brew.sh/) by following the instructions on their website  Sébastien Villemot committed Dec 18, 2020 411 412 413 - Install [MacTeX](http://www.tug.org/mactex/index.html). Alternatively, if you don’t want to install MacTeX, you should pass the --disable-doc flag to the configure command below.  Sébastien Villemot committed Dec 18, 2020 414 415 416 - Install required Homebrew packages. Open Terminal.app and type: sh brew install automake bison flex boost gcc gsl libmatio veclibfort octave sphinx-doc wget  Sébastien Villemot committed Dec 18, 2020 417   Sébastien Villemot committed Dec 18, 2020 418 419 420 - Compile and install SLICOT, needed for the kalman_steady_state MEX file. Still from Terminal.app: sh  Sébastien Villemot committed Dec 18, 2020 421 422 423 424 425 426 427 428 429 430 wget https://deb.debian.org/debian/pool/main/s/slicot/slicot_5.0+20101122.orig.tar.gz tar xf slicot_5.0+20101122.orig.tar.gz cd slicot-5.0+20101122 make -j$(nproc) FORTRAN=gfortran OPTS="-O2" LOADER=gfortran lib cp slicot.a /usr/local/lib/libslicot_pic.a make clean make -j$(nproc) FORTRAN=gfortran OPTS="-O2 -fdefault-integer-8" LOADER=gfortran lib cp slicot.a /usr/local/lib/libslicot64_pic.a cd ..   Houtan Bastani committed Feb 13, 2018 431 432 433 434 435  The following commands will download the Dynare source code and compile it. They should be entered at the command prompt in Terminal.app from the folder where you want Dynare installed.  Sébastien Villemot committed Dec 18, 2020 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - Prepare the Dynare sources: sh git clone --recurse-submodules https://git.dynare.org/Dynare/dynare.git cd dynare autoreconf -si  - Configure Dynare from the source directory: sh ./configure --with-matlab=<…> CC=gcc-10 CXX=g++-10 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib  where the path to MATLAB is specified, typically of the form /Applications/MATLAB_R2020b.app. If you don’t have MATLAB, simply replace --with-matlab=<…> in the above command by --disable-matlab. - Compile: sh make -j$(nproc)