Add scripts and CI job for building Windows package

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.
parent 33f19d35
......@@ -124,6 +124,8 @@ doc/internals/ltxpng
# Windows
/windows/dynare-version.nsi
!/windows/Makefile
!/windows/deps/Makefile
# MacOS stuff
.DS_Store
......
......@@ -2,6 +2,11 @@ variables:
GIT_SUBMODULE_STRATEGY: normal
TERM: linux
stages:
- build
- test_and_pkg
- deploy
build_binaries:
stage: build
script:
......@@ -36,10 +41,34 @@ build_doc:
artifacts:
paths:
- doc/manual/build/
- doc/*.pdf
- doc/*/*.pdf
- dynare++/doc/*.pdf
- preprocessor/doc/*/*.pdf
expire_in: 1 week
pkg_windows:
stage: test_and_pkg
script:
- ln -s ~/tarballs windows/deps/
- make -C windows
cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- windows/deps/sources32/
- windows/deps/sources64/
- windows/deps/lib32/
- windows/deps/lib64/
artifacts:
paths:
- windows/exe/*
- windows/zip/*
expire_in: 1 week
dependencies:
- build_doc
.test_matlab_template:
stage: test
stage: test_and_pkg
artifacts:
paths:
- tests/*.m.log
......@@ -73,7 +102,7 @@ test_old_matlab:
when: manual
test_octave:
stage: test
stage: test_and_pkg
variables:
OPENBLAS_NUM_THREADS: 1
script:
......@@ -97,7 +126,7 @@ test_octave:
when: manual
test_dynare++:
stage: test
stage: test_and_pkg
script:
- autoreconf -si
- ./configure --disable-matlab --disable-octave
......
......@@ -33,16 +33,16 @@ EXTRA_DIST = \
scripts \
.dir-locals.el
all-local: preprocessor/src/dynare_m
if file preprocessor/src/dynare_m | grep -q x86.64; then \
all-local: preprocessor/src/dynare_m$(EXEEXT)
if file preprocessor/src/dynare_m$(EXEEXT) | grep -q x86.64; then \
ARCH="64"; \
else \
ARCH="32"; \
fi; \
mkdir -p $(abs_srcdir)/matlab/preprocessor$$ARCH && \
$(LN_S) -f $(abs_srcdir)/preprocessor/src/dynare_m $(abs_srcdir)/matlab/preprocessor$$ARCH && \
$(LN_S) -f $(abs_builddir)/preprocessor/src/dynare_m$(EXEEXT) $(abs_srcdir)/matlab/preprocessor$$ARCH && \
mkdir -p $(abs_srcdir)/julia/preprocessor$$ARCH && \
$(LN_S) -f $(abs_srcdir)/preprocessor/src/dynare_m $(abs_srcdir)/julia/preprocessor$$ARCH
$(LN_S) -f $(abs_builddir)/preprocessor/src/dynare_m$(EXEEXT) $(abs_srcdir)/julia/preprocessor$$ARCH
dist-hook:
rm -rf `find $(distdir)/matlab $(distdir)/examples -name *~`
......
......@@ -119,7 +119,6 @@ AC_CONFIG_FILES([Makefile
doc/dseries-and-reporting/Makefile
tests/Makefile
matlab/dynare_version.m
windows/dynare-version.nsi
dynare++/Makefile
dynare++/parser/cc/Makefile
dynare++/sylv/Makefile
......
......@@ -57,7 +57,7 @@ case ${MATLAB_ARCH} in
# against libwinpthread DLL (which is pulled in by libstdc++, even without
# using threads, since we are using the POSIX threads version of MinGW)
MATLAB_LDFLAGS_NOMAP="-static-libgcc -static-libstdc++ -shared -L$MATLAB/bin/${MATLAB_ARCH} -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,-Bdynamic,--no-whole-archive"
MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP $(pwd)/$srcdir/mex.def"
MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP \$(abs_top_srcdir)/mex.def"
MATLAB_LIBS="-lmex -lmx -lmat -lmwlapack -lmwblas"
ax_mexopts_ok="yes"
;;
......@@ -68,7 +68,7 @@ case ${MATLAB_ARCH} in
MATLAB_CXXFLAGS="$MATLAB_CFLAGS"
MATLAB_FFLAGS="-fexceptions -fbackslash -arch x86_64"
MATLAB_LDFLAGS_NOMAP="-Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle"
MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP -Wl,-exported_symbols_list,$(pwd)/$srcdir/mexFunction-MacOSX.map"
MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP -Wl,-exported_symbols_list,\$(abs_top_srcdir)/mexFunction-MacOSX.map"
MATLAB_LIBS="-L$MATLAB/bin/maci64 -lmx -lmex -lmat -lmwlapack -lmwblas"
ax_mexopts_ok="yes"
;;
......
function mexpath = add_path_to_mex_files(dynareroot, modifypath)
% Copyright (C) 2015-2017 Dynare Team
% Copyright (C) 2015-2019 Dynare Team
%
% This file is part of Dynare.
%
......@@ -22,13 +22,34 @@ if nargin<2
end
if isoctave
if ispc() && strcmpi(computer(), 'i686-w64-mingw32')
mexpath = {[dynareroot '../mex/octave32/']};
% Add specific paths for Dynare Windows package
if ispc
if strcmpi(computer(), 'i686-w64-mingw32')
tmp = [dynareroot '../mex/octave/win32/'];
if exist(tmp, 'dir')
mexpath = tmp;
if modifypath
addpath(mexpath);
end
end
else
tmp = [dynareroot '../mex/octave/win64/'];
if exist(tmp, 'dir')
mexpath = tmp;
if modifypath
addpath(mexpath);
end
end
end
end
% Add generic MATLAB path (with higher priority than the previous ones)
if exist('mexpath')
mexpath = { mexpath; [dynareroot '../mex/octave/'] };
else
mexpath = {[dynareroot '../mex/octave/']};
mexpath = { [dynareroot '../mex/octave/'] };
end
if modifypath
addpath(mexpath{1});
addpath([dynareroot '../mex/octave/']);
end
else
% Add win32 specific paths for Dynare Windows package
......
......@@ -16,7 +16,7 @@ all-local: $(PROGRAMS)
$(MKDIR_P) $(top_srcdir)/../../matlab
cd $(top_srcdir)/../../matlab && \
for p in $(PROGRAMS); do \
$(LN_S) -f $(abs_srcdir)/$$p $$p; \
$(LN_S) -f $(abs_builddir)/$$p $$p; \
done
clean-local:
......
......@@ -23,7 +23,7 @@ all-local: $(PROGRAMS)
$(MKDIR_P) $(top_srcdir)/../../octave
cd $(top_srcdir)/../../octave && \
for p in $(PROGRAMS); do \
$(LN_S) -f $(abs_srcdir)/$$p $$p; \
$(LN_S) -f $(abs_builddir)/$$p $$p; \
done
clean-local:
......
# Copyright © 2017-2019 Dynare Team
#
# This file is part of Dynare.
#
# Dynare is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Dynare is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Dynare. If not, see <http://www.gnu.org/licenses/>.
.PHONY: all deps clean-deps clean clean-all install build
NTHREADS=$(shell nproc)
all: build
deps:
make -C deps -j$(NTHREADS)
clean-deps:
make -C deps clean-all
clean:
rm -rf exe/ zip/
clean-all: clean-deps clean
install:
./install-packages.sh
build: deps
./build.sh
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
--- OpenBLAS-0.3.6/Makefile.rule 2019-04-29 19:22:19.000000000 +0200
+++ OpenBLAS-0.3.6-w32/Makefile.rule 2019-06-13 11:02:50.665872965 +0200
@@ -15,7 +15,7 @@
# TARGET = PENRYN
# If you want to support multiple architecture in one binary
-# DYNAMIC_ARCH = 1
+DYNAMIC_ARCH = 1
# If you want the full list of x86_64 architectures supported in DYNAMIC_ARCH
# mode (including individual optimizied codes for PENRYN, DUNNINGTON, OPTERON,
@@ -24,10 +24,10 @@
# C compiler including binary type(32bit / 64bit). Default is gcc.
# Don't use Intel Compiler or PGI, it won't generate right codes as I expect.
-# CC = gcc
+CC = i686-w64-mingw32-gcc
# Fortran compiler. Default is g77.
-# FC = gfortran
+FC = i686-w64-mingw32-gfortran
# Even you can specify cross compiler. Meanwhile, please set HOSTCC.
@@ -45,7 +45,7 @@
# If you use the cross compiler, please set this host compiler.
-# HOSTCC = gcc
+HOSTCC = gcc
# If you need 32bit binary, define BINARY=32, otherwise define BINARY=64
# Please note that AVX is not available on 32-bit.
@@ -56,7 +56,7 @@
# specify it.
# For force setting for single threaded, specify USE_THREAD = 0
# For force setting for multi threaded, specify USE_THREAD = 1
-# USE_THREAD = 0
+USE_THREAD = 1
# If you're going to use this library with OpenMP, please comment it in.
# This flag is always set for POWER8. Don't set USE_OPENMP = 0 if you're targeting POWER8.
@@ -82,7 +82,7 @@
# value (eg. 32-256) if you expect your users to use that many threads. Due to the way
# some internal structures are allocated, using a large NUM_THREADS value has a RAM
# footprint penalty, even if users reduce the actual number of threads at runtime.
-# NUM_THREADS = 24
+NUM_THREADS = 2
# If you have enabled USE_OPENMP and your application would call
# OpenBLAS's calculation API from multiple threads, please comment this in.
@@ -95,7 +95,7 @@
# NO_STATIC = 1
# If you don't need to generate the shared library, please comment this in.
-# NO_SHARED = 1
+NO_SHARED = 1
# If you don't need the CBLAS interface, please comment this in.
# NO_CBLAS = 1
@@ -109,7 +109,7 @@
# NO_LAPACK = 1
# If you don't need LAPACKE (C Interface to LAPACK), please comment this in.
-# NO_LAPACKE = 1
+NO_LAPACKE = 1
# Build LAPACK Deprecated functions since LAPACK 3.6.0
BUILD_LAPACK_DEPRECATED = 1
--- OpenBLAS-0.3.6/Makefile.rule 2019-04-29 19:22:19.000000000 +0200
+++ OpenBLAS-0.3.6-w64/Makefile.rule 2019-06-13 11:04:44.433315864 +0200
@@ -15,7 +15,7 @@
# TARGET = PENRYN
# If you want to support multiple architecture in one binary
-# DYNAMIC_ARCH = 1
+DYNAMIC_ARCH = 1
# If you want the full list of x86_64 architectures supported in DYNAMIC_ARCH
# mode (including individual optimizied codes for PENRYN, DUNNINGTON, OPTERON,
@@ -24,10 +24,10 @@
# C compiler including binary type(32bit / 64bit). Default is gcc.
# Don't use Intel Compiler or PGI, it won't generate right codes as I expect.
-# CC = gcc
+CC = x86_64-w64-mingw32-gcc
# Fortran compiler. Default is g77.
-# FC = gfortran
+FC = x86_64-w64-mingw32-gfortran
# Even you can specify cross compiler. Meanwhile, please set HOSTCC.
@@ -45,7 +45,7 @@
# If you use the cross compiler, please set this host compiler.
-# HOSTCC = gcc
+HOSTCC = gcc
# If you need 32bit binary, define BINARY=32, otherwise define BINARY=64
# Please note that AVX is not available on 32-bit.
@@ -56,7 +56,7 @@
# specify it.
# For force setting for single threaded, specify USE_THREAD = 0
# For force setting for multi threaded, specify USE_THREAD = 1
-# USE_THREAD = 0
+USE_THREAD = 1
# If you're going to use this library with OpenMP, please comment it in.
# This flag is always set for POWER8. Don't set USE_OPENMP = 0 if you're targeting POWER8.
@@ -82,7 +82,7 @@
# value (eg. 32-256) if you expect your users to use that many threads. Due to the way
# some internal structures are allocated, using a large NUM_THREADS value has a RAM
# footprint penalty, even if users reduce the actual number of threads at runtime.
-# NUM_THREADS = 24
+NUM_THREADS = 2
# If you have enabled USE_OPENMP and your application would call
# OpenBLAS's calculation API from multiple threads, please comment this in.
@@ -95,7 +95,7 @@
# NO_STATIC = 1
# If you don't need to generate the shared library, please comment this in.
-# NO_SHARED = 1
+NO_SHARED = 1
# If you don't need the CBLAS interface, please comment this in.
# NO_CBLAS = 1
@@ -109,7 +109,7 @@
# NO_LAPACK = 1
# If you don't need LAPACKE (C Interface to LAPACK), please comment this in.
-# NO_LAPACKE = 1
+NO_LAPACKE = 1
# Build LAPACK Deprecated functions since LAPACK 3.6.0
BUILD_LAPACK_DEPRECATED = 1
@@ -242,3 +242,7 @@
#
# End of user configuration
#
+
+# Workaround for apparent MinGW bug with -march=skylake-avx512
+# See https://sourceforge.net/p/mingw-w64/bugs/681/
+NO_AVX512 = 1
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-32-with-underscore.inc 2016-09-18 15:39:53.403237169 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = i686-w64-mingw32-gfortran
+OPTS = -O2 -g
NOOPT = -u
-LOADER = f77
+LOADER = i686-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = i686-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot_pic.a
LPKAUXLIB = ../lpkaux.a
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-32-without-underscore.inc 2016-09-18 15:32:26.784187836 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = i686-w64-mingw32-gfortran
+OPTS = -O2 -g -fno-underscoring
NOOPT = -u
-LOADER = f77
+LOADER = i686-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = i686-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot_pic.a
LPKAUXLIB = ../lpkaux.a
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-64-with-32bit-integer.inc 2016-09-18 15:39:22.022804314 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = x86_64-w64-mingw32-gfortran
+OPTS = -O2 -g
NOOPT = -u
-LOADER = f77
+LOADER = x86_64-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = x86_64-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot_pic.a
LPKAUXLIB = ../lpkaux.a
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-64-with-32bit-integer.inc 2016-09-18 15:39:22.022804314 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = x86_64-w64-mingw32-gfortran
+OPTS = -O2 -g -fno-underscoring
NOOPT = -u
-LOADER = f77
+LOADER = x86_64-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = x86_64-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot_pic.a
LPKAUXLIB = ../lpkaux.a
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-64-with-64bit-integer.inc 2016-09-18 15:39:09.142623934 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = x86_64-w64-mingw32-gfortran
+OPTS = -O2 -g -fdefault-integer-8
NOOPT = -u
-LOADER = f77
+LOADER = x86_64-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = x86_64-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot64_pic.a
LPKAUXLIB = ../lpkaux.a
--- make.inc 2012-01-19 20:51:25.000000000 +0100
+++ slicot-64-with-64bit-integer.inc 2016-09-18 15:39:09.142623934 +0200
@@ -16,16 +16,16 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -native -u
+FORTRAN = x86_64-w64-mingw32-gfortran
+OPTS = -O2 -g -fno-underscoring -fdefault-integer-8
NOOPT = -u
-LOADER = f77
+LOADER = x86_64-w64-mingw32-gfortran
LOADOPTS = $(SLICOTLIB) $(LPKAUXLIB) $(LAPACKLIB)
#
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
-ARCH = ar
+ARCH = x86_64-w64-mingw32-ar
ARCHFLAGS= r
# ARCHFLAGS= cr
# RANLIB = ranlib
@@ -36,5 +36,5 @@
#
#BLASLIB = -L/software/lib
LAPACKLIB = -L/software/lib -llapack -lblas
-SLICOTLIB = ../slicot.a
+SLICOTLIB = ../libslicot64_pic.a
LPKAUXLIB = ../lpkaux.a
BOOST_VERSION = 1_70_0
GSL_VERSION = 2.5
MATIO_VERSION = 1.5.15
OPENBLAS_VERSION = 0.3.6
SLICOT_VERSION = 5.0+20101122
ZLIB_VERSION = 1.2.11
OCTAVE_VERSION = 5.1.0
OCTAVE_W32_BUILD =
OCTAVE_W64_BUILD =
MATLAB32_VERSION = 20181204
MATLAB64_VERSION = 20181204
## MinGW packages
# Determine the versions by:
# - first running: pacman -Sy
# - and then with appropriate queries using: pacman -Ss <regex>
# pacman -Ss mingw-w64-.*-gcc$
MINGW32_GCC_VERSION = 9.1.0-2
MINGW64_GCC_VERSION = 9.1.0-2
# pacman -Ss mingw-w64-.*-gmp$
MINGW32_GMP_VERSION = 6.1.2-1
MINGW64_GMP_VERSION = 6.1.2-1
# pacman -Ss mingw-w64-.*-binutils
MINGW32_BINUTILS_VERSION = 2.30-6
MINGW64_BINUTILS_VERSION = 2.30-6
# pacman -Ss mingw-w64-.*-headers-git
MINGW32_HEADERS_VERSION = 7.0.0.5449.a0647123-1
MINGW64_HEADERS_VERSION = 7.0.0.5449.a0647123-1
# pacman -Ss mingw-w64-.*-crt-git
MINGW32_CRT_VERSION = 7.0.0.5449.a0647123-1
MINGW64_CRT_VERSION = 7.0.0.5449.a0647123-1
# pacman -Ss mingw-w64-.*-winpthreads-git
MINGW32_WINPTHREADS_VERSION = 7.0.0.5447.a2d94c81-1
MINGW64_WINPTHREADS_VERSION = 7.0.0.5447.a2d94c81-1
# pacman -Ss mingw-w64-.*-libwinpthread-git
# NB: "thread" is singular here
MINGW32_LIBWINPTHREAD_VERSION = 7.0.0.5447.a2d94c81-1
MINGW64_LIBWINPTHREAD_VERSION = 7.0.0.5447.a2d94c81-1
# This file is processed by the configure script to create dynare-version.nsi
!define VERSION "@PACKAGE_VERSION@"
......@@ -2,13 +2,6 @@
# Uses "NullSoft Scriptable Installer System", aka NSIS (see http://nsis.sourceforge.net)
# NSIS can be run from both Windows and Linux (see "nsis" package in Debian)
# How to build the installer:
# - build: the preprocessor, the MEX binaries (for MATLAB and for Octave), and the documentation (PDF files + HTML manual)
# - run "makensis dynare.nsi" to create the installer
# - if there is no failure, this will create a file "dynare-VERSION-win.exe" in the current directory
!include dynare-version.nsi
SetCompressor /SOLID lzma
Name "Dynare ${VERSION}"
......@@ -25,7 +18,7 @@ InstallDir "c:\dynare\${VERSION}"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_LINK_LOCATION http://www.dynare.org
!define MUI_FINISHPAGE_LINK_LOCATION https://www.dynare.org
!define MUI_FINISHPAGE_LINK "Go to Dynare homepage"
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt
!insertmacro MUI_PAGE_FINISH
......@@ -108,13 +101,13 @@ SectionGroupEnd
SectionGroup "MEX files for Octave"
Section "MEX files for Octave 5.1.0 (MinGW, 64bit)"
SetOutPath $INSTDIR\mex\octave
File ..\mex\octave\*
SetOutPath $INSTDIR\mex\octave\win64
File ..\mex\octave\win64\*
SectionEnd
Section "MEX files for Octave 5.1.0 (MinGW, 32bit)"
SetOutPath $INSTDIR\mex\octave32
File ..\mex\octave32\*
SetOutPath $INSTDIR\mex\octave\win32
File ..\mex\octave\win32\*
SectionEnd
SectionGroupEnd
......@@ -123,12 +116,12 @@ SectionGroup "MinGW compiler (needed for use_dll option under MATLAB)"
Section "MinGW for 32-bit MATLAB"
SetOutPath $INSTDIR\mingw32
File /r mingw32\*
File /r deps\mingw32\*
SectionEnd
Section "MinGW for 64-bit MATLAB"
SetOutPath $INSTDIR\mingw64
File /r mingw64\*
File /r deps\mingw64\*
SectionEnd
SectionGroupEnd
......@@ -140,7 +133,7 @@ SectionEnd
Section "Documentation and examples (Dynare and Dynare++)"
SetOutPath $INSTDIR\doc
File ..\doc\manual\build\latex\dynare-manual.pdf ..\doc\guide.pdf ..\doc\bvar-a-la-sims.pdf ..\doc\dr.pdf ..\doc\macroprocessor\macroprocessor.pdf ..\doc\preprocessor\preprocessor.pdf ..\doc\parallel\parallel.pdf ..\doc\gsa\gsa.pdf ..\doc\dseries-and-reporting\dseriesReporting.pdf
File ..\doc\manual\build\latex\dynare-manual.pdf ..\doc\guide.pdf ..\doc\bvar-a-la-sims.pdf ..\doc\dr.pdf ..\preprocessor\doc\macroprocessor\macroprocessor.pdf ..\preprocessor\doc\preprocessor\preprocessor.pdf ..\doc\parallel\parallel.pdf ..\doc\gsa\gsa.pdf ..\doc\dseries-and-reporting\dseriesReporting.pdf
SetOutPath $INSTDIR\doc\dynare-manual.html
File /r ..\doc\manual\build\html\*
......
#!/bin/bash
# On a Debian system, install the packages needed for Windows
# cross-compilation, and also setup the cross-compiler alternatives.
# Copyright © 2017-2019 Dynare Team
#
# This file is part of Dynare.
#
# Dynare is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Dynare is distributed in the hope that it will be useful,