The detection of the slicot library failed because xerbla has been moved out of
the BLAS implementation shipped with Octave (probably since 5.1.0). This commit
fixes our fake implementation of mkoctfile so that it returns -lxerbla after
-lblas (as is done in the official Windows package for Octave).
Since 533a4ff7db, several MEX files were missing
in the Windows package (gensylv, k-order, dynare_simul, MS-SBVAR). The problem
was that the environment variable containing the directory containing MSYS2
libraries (incl. matio and gsl) was not correctly passed to parallelized
subshells.
Those archives contain 3 hidden files, which always have the same name. This
can make the parallel build fail when several packages are unpacked at the same
time. Hence, we just skip these files when unpacking.
— Reorganize the components: there is now a 64-bit group (with the MEX and
MinGW), and similarly a 32-bit group. That makes it easy to cut down
installation size when the user knows which one to choose. Add a description
text that explains that.
— Dynare++ is no longer installed by default and is listed in the last position
— Remove the “Description” box in the components page, so that the components
names are more visible
– before executing the rule for unpacking the source, delete previously
unpacked sources to avoid file overwrite (delete all versions so that the
Gitlab cache does not grow too big)
— ensure that those rules are executed when a patch is modified
The MEX files are built out-of-tree (because we want to do them in parallel).
This would create a potential race condition if several builds want to create
the symlinks under mex/matlab/ or mex/octave/.
The solution is to disable those symlinks for out-of-tree builds.
The scripts are based the former “dynare-build” project. They have been
overhauled and simplified.
Building a Windows package (both installer and zip archive) is as easy as
running “make -C windows” (provided the right Debian packages are installed,
use the “windows/install-packages.sh” script for that purpose).
The layout of MEX files for Octave in the package has been
changed (mex/octave/win32/ and mex/octave/win64/ instead of mex/octave32/ and
mex/octave/), for consistency with MATLAB MEX.