Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • giovanma/dynare
  • giorgiomas/dynare
  • Vermandel/dynare
  • Dynare/dynare
  • normann/dynare
  • MichelJuillard/dynare
  • wmutschl/dynare
  • FerhatMihoubi/dynare
  • sebastien/dynare
  • lnsongxf/dynare
  • rattoma/dynare
  • CIMERS/dynare
  • FredericKarame/dynare
  • SumuduK/dynare
  • MinjeJeon/dynare
  • camilomrch/dynare
  • DoraK/dynare
  • avtishin/dynare
  • selma/dynare
  • claudio_olguin/dynare
  • jeffjiang07/dynare
  • EthanSystem/dynare
  • stepan-a/dynare
  • wjgatt/dynare
  • JohannesPfeifer/dynare
  • gboehl/dynare
  • ebenetce/dynare
  • chskcau/dynare-doc-fixes
28 results
Select Git revision
Loading items
Show changes
Showing
with 107 additions and 93 deletions
......@@ -44,7 +44,7 @@ rf_ghxx = dr.ghxx(dr.restrict_var_list, :);
rf_ghuu = dr.ghuu(dr.restrict_var_list, :);
rf_ghxu = dr.ghxu(dr.restrict_var_list, :);
tStart1 = tic; for i=1:10000, ynext1 = local_state_space_iteration_2(yhat, epsilon, rf_ghx, rf_ghu, rf_constant, rf_ghxx, rf_ghuu, rf_ghxu, 1); end, tElapsed1 = toc(tStart1);
tStart1 = tic; for i=1:10000, ynext1 = local_state_space_iteration_2(yhat, epsilon, rf_ghx, rf_ghu, rf_constant, rf_ghxx, rf_ghuu, rf_ghxu, options_.threads.local_state_space_iteration_2); end, tElapsed1 = toc(tStart1);
tStart2 = tic; for i=1:10000, ynext2 = local_state_space_iteration_k(yhat, epsilon, dr, M_, options_); end, tElapsed2 = toc(tStart2);
......
% Copyright (C) 2011-2020 Dynare Team
% Copyright (C) 2011-2022 Dynare Team
%
% This file is part of Dynare.
%
......@@ -19,9 +19,13 @@
%
% Before every call to Dynare, the contents of the workspace is saved in
% 'wsMat.mat', and reloaded after Dynare has finished (this is necessary since
% Dynare does a 'clear -all'). Also note that we take care of clearing the
% 'exception' variable in all 'catch' block, because otherwise the next 'load
% wsMat' within a 'catch' block will overwrite the last exception.
% Dynare does a 'clear -all').
% Note that we take care of clearing oo_ before saving the workspace,
% otherwise the newly created oo_ will be scratched upon loading,
% thus making the path comparison bogus.
% We also take care of clearing the 'exception' variable in all 'catch'
% block, because otherwise the next 'load wsMat' within a 'catch' block will
% overwrite the last exception.
top_test_dir = getenv('TOP_TEST_DIR');
addpath([top_test_dir filesep 'utils']);
......@@ -50,7 +54,7 @@ for blockFlag = 0:1
solve_algos = [1:4 6:9];
stack_solve_algos = 0:4;
else
solve_algos = 1:8;
solve_algos = 1:9;
stack_solve_algos = 0:5;
end
if has_optimization_toolbox
......@@ -80,6 +84,7 @@ for blockFlag = 0:1
else
try
old_path = path;
clear oo_ % Ensure that oo_.endo_simul won’t be overwritten when loading wsMat
save wsMat
run_ls2003(blockFlag, storageFlag, solve_algos(i), default_stack_solve_algo)
load wsMat
......@@ -87,9 +92,9 @@ for blockFlag = 0:1
% Test against the reference simulation path
load('test.mat','y_ref');
diff = oo_.endo_simul - y_ref;
if abs(diff) > options_.dynatol.x
if max(max(abs(diff))) > options_.dynatol.x
failedBlock{size(failedBlock,2)+1} = ['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(solve_algos(i)) ',' num2str(default_stack_solve_algo) ')'];
exception = MException('ERROR: simulation path differs from the reference path');
exception = MException('Dynare:simerr', 'ERROR: simulation path differs from the reference path');
printMakeCheckMatlabErrMsg(['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(solve_algos(i)) ',' num2str(default_stack_solve_algo) ')'], exception);
clear exception
end
......@@ -106,6 +111,7 @@ for blockFlag = 0:1
num_block_tests = num_block_tests + 1;
try
old_path = path;
clear oo_ % Ensure that oo_.endo_simul won’t be overwritten when loading wsMat
save wsMat
run_ls2003(blockFlag, storageFlag, default_solve_algo, stack_solve_algos(i))
load wsMat
......@@ -113,9 +119,9 @@ for blockFlag = 0:1
% Test against the reference simulation path
load('test.mat','y_ref');
diff = oo_.endo_simul - y_ref;
if abs(diff) > options_.dynatol.x
if max(max(abs(diff))) > options_.dynatol.x
failedBlock{size(failedBlock,2)+1} = ['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(default_solve_algo) ',' num2str(stack_solve_algos(i)) ')'];
exception = MException('ERROR: simulation path difers from the reference path');
exception = MException('Dynare:simerr', 'ERROR: simulation path difers from the reference path');
printMakeCheckMatlabErrMsg(['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(default_solve_algo) ',' num2str(stack_solve_algos(i)) ')'], exception);
clear exception
end
......
## Copyright (C) 2009-2020 Dynare Team
## Copyright (C) 2009-2022 Dynare Team
##
## This file is part of Dynare.
##
......@@ -20,6 +20,9 @@
## Before every call to Dynare, the contents of the workspace is saved in
## 'wsOct', and reloaded after Dynare has finished (this is necessary since
## Dynare does a 'clear -all').
## Note that we take care of clearing oo_ before saving the workspace,
## otherwise the newly created oo_ will be scratched upon loading,
## thus making the path comparison bogus.
top_test_dir = getenv('TOP_TEST_DIR');
addpath([top_test_dir filesep 'utils']);
......@@ -30,11 +33,6 @@ if !strcmp(dynare_version(), getenv("DYNARE_VERSION"))
error("Incorrect version of Dynare is being tested")
endif
## Ask gnuplot to create graphics in text mode
## Note that setenv() was introduced in Octave 3.0.2, for compatibility
## with MATLAB
putenv("GNUTERM", "dumb")
## Test block_bytecode/ls2003.mod with various combinations of
## block/bytecode/solve_algo/stack_solve_algo
failedBlock = {};
......@@ -52,14 +50,16 @@ for blockFlag = 0:1
solve_algos = [0:4 6:9];
stack_solve_algos = 0:4;
else
solve_algos = 0:8;
solve_algos = 0:9;
stack_solve_algos = 0:5;
endif
# Workaround for strange race condition related to the static/dynamic
# files (especially when we switch to/from use_dll)
rmdir('+ls2003_tmp', 's')
if exist('+ls2003_tmp')
rmdir('+ls2003_tmp', 's');
pause(1)
endif
for i = 1:length(solve_algos)
num_block_tests = num_block_tests + 1;
......@@ -83,6 +83,7 @@ for blockFlag = 0:1
else
try
old_path = path;
clear oo_ # Ensure that oo_.endo_simul won’t be overwritten when loading wsOct
save wsOct
run_ls2003(blockFlag, storageFlag, solve_algos(i), default_stack_solve_algo)
load wsOct
......@@ -90,7 +91,7 @@ for blockFlag = 0:1
## Test against the reference simulation path
load('test.mat','y_ref');
diff = oo_.endo_simul - y_ref;
if abs(diff) > options_.dynatol.x
if max(max(abs(diff))) > options_.dynatol.x
failedBlock{size(failedBlock,2)+1} = ['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(solve_algos(i)) ',' num2str(default_stack_solve_algo) ')'];
differr.message = ["ERROR: simulation path differs from the reference path" ];
printMakeCheckOctaveErrMsg(['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(solve_algos(i)) ',' num2str(default_stack_solve_algo) ')'], differr);
......@@ -107,6 +108,7 @@ for blockFlag = 0:1
num_block_tests = num_block_tests + 1;
try
old_path = path;
clear oo_ # Ensure that oo_.endo_simul won’t be overwritten when loading wsOct
save wsOct
run_ls2003(blockFlag, storageFlag, default_solve_algo, stack_solve_algos(i))
load wsOct
......@@ -114,7 +116,7 @@ for blockFlag = 0:1
## Test against the reference simulation path
load('test.mat','y_ref');
diff = oo_.endo_simul - y_ref;
if abs(diff) > options_.dynatol.x
if max(max(abs(diff))) > options_.dynatol.x
failedBlock{size(failedBlock,2)+1} = ['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(default_solve_algo) ',' num2str(stack_solve_algos(i)) ')'];
differr.message = ["ERROR: simulation path differs from the reference path" ];
printMakeCheckOctaveErrMsg(['block_bytecode' filesep 'run_ls2003.m(' num2str(blockFlag) ',' num2str(storageFlag) ',' num2str(default_solve_algo) ',' num2str(stack_solve_algos(i)) ')'], differr);
......
## Copyright (C) 2013-2019 Dynare Team
## Copyright (C) 2013-2022 Dynare Team
##
## This file is part of Dynare.
##
......@@ -25,11 +25,6 @@ if !strcmp(dynare_version(), getenv("DYNARE_VERSION"))
error("Incorrect version of Dynare is being tested")
endif
## Ask gnuplot to create graphics in text mode
## Note that setenv() was introduced in Octave 3.0.2, for compatibility
## with MATLAB
putenv("GNUTERM", "dumb")
## To add default directories, empty dseries objects
dynare_config();
......
## Copyright (C) 2009-2017 Dynare Team
## Copyright (C) 2009-2022 Dynare Team
##
## This file is part of Dynare.
##
......@@ -32,10 +32,6 @@ if !strcmp(dynare_version(), getenv("DYNARE_VERSION"))
error("Incorrect version of Dynare is being tested")
endif
## Ask gnuplot to create graphics in text mode
graphics_toolkit gnuplot;
setenv("GNUTERM", "dumb");
## Test MOD files listed in Makefile.am
name = getenv("FILESTEM");
[directory, testfile, ext] = fileparts([top_test_dir '/' name]);
......
......@@ -82,10 +82,11 @@ varobs gp_obs gy_obs;
options_.solve_tolf = 1e-12;
estimation(order=1,datafile=fsdat_simul,nobs=192,mh_replic=1500,mh_nblocks=1,mh_jscale=0.8,smoother,consider_all_endogenous);
estimation(order=1,loglinear,datafile=fsdat_simul,nobs=192,mh_replic=2,mh_nblocks=1,mh_jscale=0.8,smoother,consider_all_endogenous_and_auxiliary);
steady;
smoother2histval(period = 5);
options_.loglinear=0;
stoch_simul(nomoments);
forecast;
......@@ -19,8 +19,15 @@ end;
steady;
check;
% Skip test under Octave 5.1
% ordeig() is buggy in that version (but is fixed in later ones; and in older
% ones it is absent, so we use our replacement)
if ~isoctave || octave_ver_less_than('5.1') || ~octave_ver_less_than('5.2')
stoch_simul(periods=0, irf=30, order=1);
stoch_simul(periods=2000, irf=30, order=1);
stoch_simul(periods=0, irf=30, order=1,hp_filter=1600);
stoch_simul(periods=2000, irf=30, order=1,hp_filter=1600);
end
......@@ -20,8 +20,15 @@ end;
steady;
check;
% Skip test under Octave 5.1
% ordeig() is buggy in that version (but is fixed in later ones; and in older
% ones it is absent, so we use our replacement)
if ~isoctave || octave_ver_less_than('5.1') || ~octave_ver_less_than('5.2')
stoch_simul(periods=0, irf=30, order=1);
stoch_simul(periods=2000, irf=30, order=1);
stoch_simul(periods=0, irf=30, order=1,hp_filter=1600);
stoch_simul(periods=2000, irf=30, order=1,hp_filter=1600);
end
......@@ -15,24 +15,23 @@ You can also get more information on the Dynare homepage:
https://www.dynare.org
Note: Dynare comes with an automated uninstaller, which you can run from the
“Add/Remove Programs” menu of the Control Panel.
“Add or remove programs” menu of the Control Panel.
Using Dynare with MATLAB®
─────────────────────────
Dynare requires MATLAB® version 8.3 (R2014a) or above. With older versions of
MATLAB®, it may fail or give unexpected results. Only 64-bit versions are
supported.
Dynare works on top of MATLAB®, any version ranging from 8.3 (R2014a) to 23.2
(R2023b). 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:
— Use the addpath command, by typing the following (assuming that you have
installed Dynare at the standard location, and replacing ‘4.x.y’ by the correct
installed Dynare at the standard location, and replacing ‘x.y’ by the correct
version number):
addpath c:\dynare\4.x.y\matlab
addpath c:\dynare\x.y\matlab
MATLAB® will not remember this setting next time you run it, and you will
have to do it again.
......@@ -53,16 +52,16 @@ Using Dynare with Octave
Dynare also works on top of GNU Octave, a free clone of MATLAB® (see
<https://www.octave.org>).
This version of Dynare is compiled for Octave 6.3.0 (MinGW, 64-bit),
This version of Dynare is compiled for Octave 8.3.0 (MinGW, 64-bit),
and may not work with other versions of Octave. The recommended version of
Octave can be downloaded at:
https://ftpmirror.gnu.org/gnu/octave/windows/octave-6.3.0-w64-installer.exe
https://ftpmirror.gnu.org/gnu/octave/windows/octave-8.3.0-w64-installer.exe
Every time you run Octave, you should type the following command (assuming that
you have installed Dynare at the standard location, and replacing ‘4.x.y’ by
you have installed Dynare at the standard location, and replacing ‘x.y’ by
the correct version number):
addpath c:\dynare\4.x.y\matlab
addpath c:\dynare\x.y\matlab
Note: if you don't want to type this command every time you run Octave, you can
put it in a file called ‘.octaverc’ in your home directory
......
......@@ -5,7 +5,7 @@
# The binaries are cross compiled for Windows (64-bit), Octave and MATLAB
# (all supported versions).
# Copyright © 2017-2021 Dynare Team
# Copyright © 2017-2022 Dynare Team
#
# This file is part of Dynare.
#
......@@ -121,8 +121,8 @@ build_windows_matlab_mex_64_b ()
PACKAGE_STRING="dynare $VERSION"
make -j"$NTHREADS" all
x86_64-w64-mingw32-strip -- **/*.mexw64
mkdir -p "$ROOT_DIRECTORY"/../mex/matlab/win64-9.4-9.10
mv -- **/*.mexw64 "$ROOT_DIRECTORY"/../mex/matlab/win64-9.4-9.10
mkdir -p "$ROOT_DIRECTORY"/../mex/matlab/win64-9.4-23.2
mv -- **/*.mexw64 "$ROOT_DIRECTORY"/../mex/matlab/win64-9.4-23.2
}
# Create Windows DLL binaries for Octave/MinGW (64bit)
......
......@@ -28,9 +28,9 @@ WGET_OPTIONS := --no-verbose --no-use-server-timestamps --retry-connrefused --re
clean-tar clean-slicot-tar clean-x13as-tar \
clean-all clean-lib clean-src clean-tar
all: build octave matlab msys2
all: build octave matlab msys2 x13as
build: build-slicot build-x13as
build: build-slicot
clean-lib: clean-libslicot clean-matlab clean-octave clean-msys2 clean-x13as-bin
......@@ -129,7 +129,7 @@ octave64: tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W64_BUILD}-w64.7z
mv octave-${OCTAVE_VERSION}-w64 $@
# Clean up MinGW stuff that interferes with our cross-compiler
cd $@/mingw64/lib && rm -f libadvapi32.a libkernel32.a libmingw32.a libmingwex.a libmoldname.a libmsvcrt.a libpthread.dll.a libshell32.a libuser32.a
cd $@/mingw64/include && rm -f $$(grep -l "This file is part of the mingw-w64 runtime package" *.h)
cd $@/mingw64/include && rm -f $$(grep -l "This file is part of the mingw-w64 runtime package" *.h) omp.h
touch $@
octave: octave64
......@@ -182,7 +182,7 @@ mingw64: tarballs/mingw-w64-x86_64-gcc-$(MINGW64_GCC_VERSION)-any.pkg.tar.zst ta
touch $@
tarballs/mingw-w64-x86_64-%-any.pkg.tar.zst:
wget $(WGET_OPTIONS) -O $@ http://repo.msys2.org/mingw/x86_64/$(notdir $@)
wget $(WGET_OPTIONS) -O $@ https://www.dynare.org/windows-pkg-build/msys2/5.x/$(notdir $@)
clean-msys2:
rm -rf lib64-msys2
......@@ -193,30 +193,20 @@ clean-msys2:
# X13AS
#
tarballs/x13assrc_V$(X13AS_VERSION).tar.gz:
tarballs/x13as_ascii-v$(X13AS_VERSION).zip:
mkdir -p tarballs
wget $(WGET_OPTIONS) -O $@ https://www.census.gov/ts/x13as/unix/x13assrc_V$(X13AS_VERSION).tar.gz
wget $(WGET_OPTIONS) -O $@ https://www2.census.gov/software/x-13arima-seats/x13as/windows/program-archives/$(notdir $@)
sources64/x13as-$(X13AS_VERSION): tarballs/x13assrc_V$(X13AS_VERSION).tar.gz
rm -rf sources64/x13as-*
mkdir -p $@
tar xf $< --directory $@
lib64/x13as/x13as.exe: tarballs/x13as_ascii-v$(X13AS_VERSION).zip
unzip -o -d lib64 $<
mv lib64/x13as/x13as_ascii.exe $@
lib64/x13as/x13as.exe: sources64/x13as-$(X13AS_VERSION)
make -C $< -f makefile.gf FC=x86_64-w64-mingw32-gfortran LINKER=x86_64-w64-mingw32-gfortran FFLAGS="-O2 -std=legacy" PROGRAM=x13as.exe
x86_64-w64-mingw32-strip $</x13as.exe
mkdir -p $(dir $@)
cp $</x13as.exe $@
build-x13as: lib64/x13as/x13as.exe
x13as: lib64/x13as/x13as.exe
clean-x13as-tar:
rm -f tarballs/x13assrc_V$(X13AS_VERSION).tar.gz
clean-x13as-src:
rm -rf sources64/x13as-$(X13AS_VERSION)
rm -f tarballs/x13as_ascii-v$(X13AS_VERSION).zip
clean-x13as-bin:
rm -rf lib64/x13as
clean-x13as-all: clean-x13as-tar clean-x13as-src clean-x13as-bin
clean-x13as-all: clean-x13as-tar clean-x13as-bin
#! /bin/sh
## Attention à garder -static-libgcc et -static-libstdc++ dans LDFLAGS et
## DL_LDFLAGS lors des mises à jour de ce fichier
## Garder aussi BINDIR dans DEFAULT_LFLAGS (pour UMFPACK)
## Make sure to keep -static-libgcc, -static-libstdc++ and -static-libgfortran
## in DL_LDFLAGS when updating this file.
## Do not add -shared in LDFLAGS (i.e. this file should mimick “mkoctfile
## --link-stand-alone”, see the top of mex/build/configure.ac).
## Also keep BINDIR in DEFAULT_LDFLAGS (for UMFPACK).
# Exit immediately on any error.
set -e
......@@ -42,9 +44,9 @@ if [ "$INCLUDEDIR" != /usr/include ]; then
DEFAULT_INCFLAGS="$DEFAULT_INCFLAGS -I$INCLUDEDIR"
fi
DEFAULT_LFLAGS="-L$OCTLIBDIR -L$BINDIR"
DEFAULT_LDFLAGS="-L$OCTLIBDIR -L$BINDIR"
if [ "$LIBDIR" != /usr/lib ]; then
DEFAULT_LFLAGS="$DEFAULT_LFLAGS -L$LIBDIR"
DEFAULT_LDFLAGS="$DEFAULT_LDFLAGS -L$LIBDIR"
fi
# Default values for these variables are filled in when Octave is
......@@ -72,7 +74,7 @@ fi
: ${DEPEND_EXTRA_SED_PATTERN=""}
: ${DL_LD="x86_64-w64-mingw32-g++"}
: ${DL_LDFLAGS="-shared -static-libgcc -static-libstdc++"}
: ${DL_LDFLAGS="-shared -static-libgcc -static-libstdc++ -static-libgfortran"}
: ${RLD_FLAG=""}
: ${RDYNAMIC_FLAG=""}
......@@ -88,9 +90,9 @@ fi
: ${LIBS="-lpsapi -lgdi32 -lm"}
: ${FLIBS="-lm -lgfortran -lmingw32 -lmoldname -lmingwex -lmsvcrt -lquadmath -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32"}
: ${LD_CXX="x86_64-w64-mingw32-g++"}
: ${LDFLAGS="-static-libgcc -static-libstdc++"}
: ${LDFLAGS=$DEFAULT_LDFLAGS}
: ${LD_STATIC_FLAG=""}
: ${LFLAGS=$DEFAULT_LFLAGS}
: ${LFLAGS=$DEFAULT_LDFLAGS}
: ${F77_INTEGER_8_FLAG=""}
: ${ALL_FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"}
......
SLICOT_VERSION = 5.0+20101122
X13AS_VERSION = 1.1_B39
X13AS_VERSION = 1-1-b60
OCTAVE_VERSION = 6.3.0
OCTAVE_VERSION = 8.3.0
OCTAVE_W64_BUILD =
MATLAB64_VERSION = 20200930
......@@ -18,13 +18,13 @@ MATLAB64_VERSION = 20200930
## Build dependencies
# pacman -Ss mingw-w64-x86_64-boost
MINGW64_BOOST_VERSION = 1.75.0-6
MINGW64_BOOST_VERSION = 1.77.0-3
# pacman -Ss mingw-w64-x86_64-gsl
MINGW64_GSL_VERSION = 2.7-1
# pacman -Ss mingw-w64-x86_64-openblas
MINGW64_OPENBLAS_VERSION = 0.3.13-2
MINGW64_OPENBLAS_VERSION = 0.3.20-4
# pacman -Ss mingw-w64-x86_64-matio
MINGW64_MATIO_VERSION = 1.5.21-1
......@@ -35,7 +35,7 @@ MINGW64_ZLIB_VERSION = 1.2.11-9
# Dependency of matio
# pacman -Ss mingw-w64-x86_64-hdf5
MINGW64_HDF5_VERSION = 1.12.0-4
MINGW64_HDF5_VERSION = 1.12.2-1
# Dependency of HDF5 (provides szip library)
# pacman -Ss mingw-w64-x86_64-libaec
......@@ -44,22 +44,22 @@ MINGW64_LIBAEC_VERSION = 1.0.5-2
## MinGW packages for the embedded compiler
# pacman -Ss mingw-w64-x86_64-gcc$
MINGW64_GCC_VERSION = 10.3.0-5
MINGW64_GCC_VERSION = 10.3.0-8
# pacman -Ss mingw-w64-x86_64-gmp
MINGW64_GMP_VERSION = 6.2.1-2
# pacman -Ss mingw-w64-x86_64-binutils
MINGW64_BINUTILS_VERSION = 2.36.1-3
MINGW64_BINUTILS_VERSION = 2.37-4
# pacman -Ss mingw-w64-x86_64-headers-git
MINGW64_HEADERS_VERSION = 9.0.0.6246.ae63cde27-1
MINGW64_HEADERS_VERSION = 9.0.0.6357.eac8c38c1-1
# pacman -Ss mingw-w64-x86_64-crt-git
MINGW64_CRT_VERSION = 9.0.0.6246.ae63cde27-1
MINGW64_CRT_VERSION = 9.0.0.6357.eac8c38c1-3
# pacman -Ss mingw-w64-x86_64-winpthreads-git
MINGW64_WINPTHREADS_VERSION = 9.0.0.6246.ae63cde27-1
MINGW64_WINPTHREADS_VERSION = 9.0.0.6357.eac8c38c1-1
# pacman -Ss mingw-w64-x86_64-zstd
MINGW64_ZSTD_VERSION = 1.5.0-1
......@@ -82,6 +82,15 @@ Section "Dynare core (preprocessor and M-files)"
WriteRegStr SHELL_CONTEXT "${REGLOC}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegDWORD SHELL_CONTEXT "${REGLOC}" "NoModify" 1
WriteRegDWORD SHELL_CONTEXT "${REGLOC}" "NoRepair" 1
# Remove "Modify" permission to "Authenticated Users".
# This permission is inherited by default, since we're writing to "c:\dynare\";
# it implies that anybody on the system can modify Dynare installation files,
# which is a security issue.
# Intigriti reference: DYNARE-7TULYVR8
# On icacls, see e.g.: https://4sysops.com/archives/icacls-list-set-grant-remove-and-deny-permissions/#inheriting-permissions
nsExec::Exec 'icacls "$INSTDIR" /inheritance:d'
nsExec::Exec 'icacls "$INSTDIR" /remove:g "NT AUTHORITY\Authenticated Users"'
SectionEnd
......@@ -90,9 +99,9 @@ Section "MEX files for MATLAB 64-bit, version 8.3 to 9.3 (R2014a to R2017b)"
File ..\mex\matlab\win64-8.3-9.3\*.mexw64
SectionEnd
Section "MEX files for MATLAB 64-bit, version 9.4 to 9.10 (R2018a to R2021a)"
SetOutPath $INSTDIR\mex\matlab\win64-9.4-9.10
File ..\mex\matlab\win64-9.4-9.10\*.mexw64
Section "MEX files for MATLAB 64-bit, version 9.4 to 23.2 (R2018a to R2023b)"
SetOutPath $INSTDIR\mex\matlab\win64-9.4-23.2
File ..\mex\matlab\win64-9.4-23.2\*.mexw64
SectionEnd
Section "MinGW compiler for MATLAB 64-bit"
......@@ -100,7 +109,7 @@ Section "MinGW compiler for MATLAB 64-bit"
File /r deps\mingw64\*
SectionEnd
Section "MEX files for Octave 6.3.0 (64-bit)"
Section "MEX files for Octave 8.3.0 (64-bit)"
SetOutPath $INSTDIR\mex\octave\win64
File ..\mex\octave\win64\*
SectionEnd
......
......@@ -3,7 +3,7 @@
# On a Debian system, install the packages needed for Windows
# cross-compilation, and also setup the cross-compiler alternatives.
# Copyright © 2017-2020 Dynare Team
# Copyright © 2017-2022 Dynare Team
#
# This file is part of Dynare.
#
......@@ -23,7 +23,7 @@
[[ $(id -u) == 0 ]] || { echo "You must be root" >&2; exit 1; }
PACKAGES=(make xz-utils p7zip bzip2 zip zstd patch wget autoconf automake
libtool mingw-w64 gfortran-mingw-w64 parallel flex bison texlive
libtool mingw-w64 gfortran-mingw-w64 parallel flex libfl-dev bison texlive
texlive-publishers texlive-latex-extra texlive-science
texlive-fonts-extra lmodern python3-sphinx latexmk nsis)
......