From 4d22c4c0c0f7b52afcbae6d30d0f29373957decc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Fri, 17 Jul 2020 11:44:20 +0200 Subject: [PATCH] Drop 32-bit binaries from Windows package Closes: #1713 --- .gitlab-ci.yml | 6 +- matlab/add_path_to_mex_files.m | 17 +- matlab/dynare.m | 6 - windows/README.txt | 9 +- windows/build.sh | 77 +---- windows/deps/Makefile | 97 +----- windows/deps/mkoctfile32 | 541 --------------------------------- windows/deps/versions.mk | 41 +-- windows/dynare.nsi | 47 +-- windows/install-packages.sh | 3 - 10 files changed, 35 insertions(+), 809 deletions(-) delete mode 100755 windows/deps/mkoctfile32 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad74cf65f6..ebf214c3c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,12 +85,10 @@ pkg_windows: cache: key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - - windows/deps/sources32/ - windows/deps/sources64/ - - windows/deps/lib32/ - windows/deps/lib64/ - # We do not cache lib{32,64}-msys2, mingw{32,64}, octave{32,64} and - # matlab{32,64}, because those are simply extracted from a tarball. It + # We do not cache lib64-msys2, mingw64, octave64 and + # matlab64, because those are simply extracted from a tarball. It # would be a waste of space and of (re-compression) time. artifacts: paths: diff --git a/matlab/add_path_to_mex_files.m b/matlab/add_path_to_mex_files.m index 0f0c4abd87..f91a7b5b9d 100644 --- a/matlab/add_path_to_mex_files.m +++ b/matlab/add_path_to_mex_files.m @@ -25,13 +25,7 @@ if isoctave % 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 + warning('MEX files not available for 32-bit Octave') else tmp = [dynareroot '../mex/octave/win64/']; if exist(tmp, 'dir') @@ -52,15 +46,8 @@ if isoctave addpath([dynareroot '../mex/octave/']); end else - % Add win32 specific paths for Dynare Windows package if strcmp(computer, 'PCWIN') - tmp = [dynareroot '../mex/matlab/win32-8.3-8.6/']; - if exist(tmp, 'dir') - mexpath = tmp; - if modifypath - addpath(mexpath); - end - end + warning('MEX files not available for 32-bit MATLAB') end % Add win64 specific paths for Dynare Windows package if strcmp(computer, 'PCWIN64') diff --git a/matlab/dynare.m b/matlab/dynare.m index 7df45952ae..f246099015 100644 --- a/matlab/dynare.m +++ b/matlab/dynare.m @@ -192,14 +192,8 @@ end if isempty(strfind(arch, '64')) arch_ext = '32'; - if preprocessoroutput - disp('Using 32-bit preprocessor'); - end else arch_ext = '64'; - if preprocessoroutput - disp('Using 64-bit preprocessor'); - end end if preprocessoroutput diff --git a/windows/README.txt b/windows/README.txt index af24e921ba..e403fb6f81 100644 --- a/windows/README.txt +++ b/windows/README.txt @@ -22,7 +22,8 @@ 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. +MATLAB®, it may fail or give unexpected results. 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: @@ -52,14 +53,10 @@ 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 5.2.0 (MinGW, 32-bit and 64-bit), +This version of Dynare is compiled for Octave 5.2.0 (MinGW, 64-bit), and may not work with other versions of Octave. The recommended version of Octave can be downloaded at: - -— For 64-bit systems: https://ftpmirror.gnu.org/gnu/octave/windows/octave-5.2.0_1-w64-installer.exe -— For 32-bit systems: - https://ftpmirror.gnu.org/gnu/octave/windows/octave-5.2.0_1-w32-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 diff --git a/windows/build.sh b/windows/build.sh index a4f39ce002..cc507b1727 100755 --- a/windows/build.sh +++ b/windows/build.sh @@ -2,7 +2,7 @@ # Produces Windows packages of Dynare (executable installer, 7z and zip archives). # -# The binaries are cross compiled for Windows (32/64bits), Octave and MATLAB +# The binaries are cross compiled for Windows (64-bit), Octave and MATLAB # (all supported versions). # Copyright © 2017-2020 Dynare Team @@ -51,9 +51,7 @@ fi BASENAME=dynare-$VERSION # Set directories for dependencies -LIB32="$ROOT_DIRECTORY"/deps/lib32 LIB64="$ROOT_DIRECTORY"/deps/lib64 -LIB32_MSYS2="$ROOT_DIRECTORY"/deps/lib32-msys2 LIB64_MSYS2="$ROOT_DIRECTORY"/deps/lib64-msys2 # Go to source root directory @@ -80,55 +78,12 @@ fi make -j"$NTHREADS" x86_64-w64-mingw32-strip matlab/preprocessor64/dynare_m.exe x86_64-w64-mingw32-strip dynare++/src/dynare++.exe -mkdir -p dynare++/64-bit/ -cp dynare++/src/dynare++.exe dynare++/64-bit/ - -## Compile 32-bit preprocessor and Dynare++ -# We do not want to clean the doc -for d in preprocessor/src dynare++/integ dynare++/kord dynare++/parser/cc dynare++/src dynare++/sylv dynare++/tl dynare++/utils/cc; do - make -C "$d" clean -done -./configure --host=i686-w64-mingw32 \ - --with-boost="$LIB32_MSYS2" \ - --with-blas="$LIB32_MSYS2"/lib/libopenblas.a \ - --with-lapack="$LIB32_MSYS2"/lib/libopenblas.a \ - --with-matio="$LIB32_MSYS2" \ - --disable-octave \ - --disable-matlab \ - PACKAGE_VERSION="$VERSION" \ - PACKAGE_STRING="dynare $VERSION" -make -j"$NTHREADS" -i686-w64-mingw32-strip matlab/preprocessor32/dynare_m.exe -i686-w64-mingw32-strip dynare++/src/dynare++.exe -mkdir -p dynare++/32-bit/ -cp dynare++/src/dynare++.exe dynare++/32-bit/ ## Define functions for building MEX files ## Note that we do out-of-tree compilation, since we want to do these in ## parallel -# Create Windows 32-bit DLL binaries for MATLAB ≥ R2014a -build_windows_matlab_mex_32 () -{ - mkdir -p "$TMP_DIRECTORY"/matlab-win32/ - cd "$TMP_DIRECTORY"/matlab-win32/ - "$ROOT_DIRECTORY"/../mex/build/matlab/configure \ - --host=i686-w64-mingw32 \ - --with-gsl="$LIB32_MSYS2" \ - --with-matio="$LIB32_MSYS2" \ - --with-slicot="$LIB32"/Slicot/without-underscore \ - --with-matlab="$ROOT_DIRECTORY"/deps/matlab32/R2014a \ - MATLAB_VERSION=R2014a \ - MEXEXT=mexw32 \ - PACKAGE_VERSION="$VERSION" \ - PACKAGE_STRING="dynare $VERSION" - make -j"$NTHREADS" all - i686-w64-mingw32-strip -- **/*.mexw32 - mkdir -p "$ROOT_DIRECTORY"/../mex/matlab/win32-8.3-8.6 - mv -- **/*.mexw32 "$ROOT_DIRECTORY"/../mex/matlab/win32-8.3-8.6 -} - # Create Windows 64-bit DLL binaries for MATLAB ≥ R2014a and ≤ R2017b build_windows_matlab_mex_64_a () { @@ -171,25 +126,6 @@ build_windows_matlab_mex_64_b () mv -- **/*.mexw64 "$ROOT_DIRECTORY"/../mex/matlab/win64-9.4-9.8 } -# Create Windows DLL binaries for Octave/MinGW (32bit) -build_windows_octave_mex_32 () -{ - mkdir -p "$TMP_DIRECTORY"/octave-32/ - cd "$TMP_DIRECTORY"/octave-32/ - "$ROOT_DIRECTORY"/../mex/build/octave/configure \ - --host=i686-w64-mingw32 \ - --with-gsl="$LIB32_MSYS2" \ - --with-matio="$LIB32_MSYS2" \ - --with-slicot="$LIB32"/Slicot/with-underscore \ - MKOCTFILE="$ROOT_DIRECTORY"/deps/mkoctfile32 \ - PACKAGE_VERSION="$VERSION" \ - PACKAGE_STRING="dynare $VERSION" - make -j"$NTHREADS" all - i686-w64-mingw32-strip -- **/*.mex - mkdir -p "$ROOT_DIRECTORY"/../mex/octave/win32 - mv -- **/*.mex "$ROOT_DIRECTORY"/../mex/octave/win32 -} - # Create Windows DLL binaries for Octave/MinGW (64bit) build_windows_octave_mex_64 () { @@ -211,15 +147,15 @@ build_windows_octave_mex_64 () ## Actually build the MEX files -TASKS=(build_windows_matlab_mex_32 build_windows_matlab_mex_64_a build_windows_matlab_mex_64_b build_windows_octave_mex_32 build_windows_octave_mex_64) -# Reset the number of threads. The mex files for MATLAB/Octave (32-bit and 64-bit) will be built +TASKS=(build_windows_matlab_mex_64_a build_windows_matlab_mex_64_b build_windows_octave_mex_64) +# Reset the number of threads. The mex files for MATLAB/Octave will be built # in parallel, so we need to account for the number of tasks and lower the value of NTHREADS. NTHREADS=$((NTHREADS/${#TASKS[@]})) [[ $NTHREADS -ge 1 ]] || NTHREADS=1 # Ensure that there is at least 1 thread # Build all the mex files (parallel). # Some variables and functions need to be available in subshells. cd "$ROOT_DIRECTORY" -export TMP_DIRECTORY ROOT_DIRECTORY LIB32 LIB32_MSYS2 LIB64 LIB64_MSYS2 VERSION NTHREADS +export TMP_DIRECTORY ROOT_DIRECTORY LIB64 LIB64_MSYS2 VERSION NTHREADS export -f "${TASKS[@]}" parallel "set -ex;shopt -s globstar;" ::: "${TASKS[@]}" @@ -252,7 +188,6 @@ cp -p NEWS.md "$ZIPDIR" cp -p VERSION "$ZIPDIR" cp -p license.txt "$ZIPDIR" cp -p windows/README.txt "$ZIPDIR" -cp -pr windows/deps/mingw32 "$ZIPDIR" cp -pr windows/deps/mingw64 "$ZIPDIR" mkdir -p "$ZIPDIR"/contrib/ms-sbvar/TZcode cp -pr contrib/ms-sbvar/TZcode/MatlabFiles "$ZIPDIR"/contrib/ms-sbvar/TZcode @@ -262,15 +197,13 @@ mkdir "$ZIPDIR"/mex cp -pr mex/octave/ "$ZIPDIR"/mex cp -pr mex/matlab/ "$ZIPDIR"/mex cp -pr matlab "$ZIPDIR" -mkdir -p "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/32 -cp -p windows/deps/lib32/x13as/x13as.exe "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/32 mkdir -p "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/64 cp -p windows/deps/lib64/x13as/x13as.exe "$ZIPDIR"/matlab/modules/dseries/externals/x13/windows/64 cp -pr examples "$ZIPDIR" mkdir -p "$ZIPDIR"/scripts cp -p scripts/dynare.el "$ZIPDIR"/scripts mkdir "$ZIPDIR"/dynare++ -cp -pr dynare++/32-bit/ dynare++/64-bit/ dynare++/dynare_simul/dynare_simul.m "$ZIPDIR"/dynare++ +cp -pr dynare++/src/dynare++.exe dynare++/dynare_simul/dynare_simul.m "$ZIPDIR"/dynare++ mkdir -p "$ZIPDIR"/doc/dynare++ mkdir -p "$ZIPDIR"/doc/dynare-manual.html cp -pr doc/manual/build/html/* "$ZIPDIR"/doc/dynare-manual.html diff --git a/windows/deps/Makefile b/windows/deps/Makefile index b7b7f1e284..b3c2dd7bf3 100644 --- a/windows/deps/Makefile +++ b/windows/deps/Makefile @@ -48,18 +48,6 @@ tarballs/slicot-$(SLICOT_VERSION).tar.gz: mkdir -p tarballs wget $(WGET_OPTIONS) -O $@ https://deb.debian.org/debian/pool/main/s/slicot/slicot_$(SLICOT_VERSION).orig.tar.gz -sources32/slicot-$(SLICOT_VERSION)-without-underscore: tarballs/slicot-$(SLICOT_VERSION).tar.gz - rm -rf sources32/slicot-*-without-underscore - mkdir -p $@ - tar xf $< --directory $@ --strip-components=1 - touch $@ - -sources32/slicot-$(SLICOT_VERSION)-with-underscore: tarballs/slicot-$(SLICOT_VERSION).tar.gz - rm -rf sources32/slicot-*-with-underscore - mkdir -p $@ - tar xf $< --directory $@ --strip-components=1 - touch $@ - sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer: tarballs/slicot-$(SLICOT_VERSION).tar.gz rm -rf sources64/slicot-*-with-32bit-integer mkdir -p $@ @@ -84,18 +72,6 @@ sources64/slicot-$(SLICOT_VERSION)-with-64bit-integer-and-underscore: tarballs/s tar xf $< --directory $@ --strip-components=1 touch $@ -lib32/Slicot/without-underscore/lib/libslicot_pic.a: sources32/slicot-$(SLICOT_VERSION)-without-underscore - make -C $< lib SLICOTLIB=../libslicot_pic.a OPTS="-O2 -g -fno-underscoring" FORTRAN=i686-w64-mingw32-gfortran LOADER=i686-w64-mingw32-gfortran ARCH=i686-w64-mingw32-ar - i686-w64-mingw32-strip --strip-debug $</libslicot_pic.a - mkdir -p $(dir $@) - cp $</libslicot_pic.a $@ - -lib32/Slicot/with-underscore/lib/libslicot_pic.a: sources32/slicot-$(SLICOT_VERSION)-with-underscore - make -C $< lib SLICOTLIB=../libslicot_pic.a OPTS="-O2 -g" FORTRAN=i686-w64-mingw32-gfortran LOADER=i686-w64-mingw32-gfortran ARCH=i686-w64-mingw32-ar - i686-w64-mingw32-strip --strip-debug $</libslicot_pic.a - mkdir -p $(dir $@) - cp $</libslicot_pic.a $@ - lib64/Slicot/without-underscore/lib/libslicot_pic.a: sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer make -C $< lib SLICOTLIB=../libslicot_pic.a OPTS="-O2 -g -fno-underscoring" FORTRAN=x86_64-w64-mingw32-gfortran LOADER=x86_64-w64-mingw32-gfortran ARCH=x86_64-w64-mingw32-ar x86_64-w64-mingw32-strip --strip-debug $</libslicot_pic.a @@ -120,9 +96,7 @@ lib64/Slicot/with-underscore/lib/libslicot64_pic.a: sources64/slicot-$(SLICOT_VE mkdir -p $(dir $@) cp $</libslicot64_pic.a $@ -build-slicot: lib32/Slicot/without-underscore/lib/libslicot_pic.a \ - lib32/Slicot/with-underscore/lib/libslicot_pic.a \ - lib64/Slicot/without-underscore/lib/libslicot_pic.a \ +build-slicot: lib64/Slicot/without-underscore/lib/libslicot_pic.a \ lib64/Slicot/without-underscore/lib/libslicot64_pic.a \ lib64/Slicot/with-underscore/lib/libslicot_pic.a \ lib64/Slicot/with-underscore/lib/libslicot64_pic.a @@ -131,8 +105,6 @@ clean-slicot-tar: rm -f tarballs/slicot-$(SLICOT_VERSION).tar.gz clean-slicot-src: - rm -rf sources32/slicot-$(SLICOT_VERSION)-with-underscore - rm -rf sources32/slicot-$(SLICOT_VERSION)-without-underscore rm -rf sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer rm -rf sources64/slicot-$(SLICOT_VERSION)-with-64bit-integer rm -rf sources64/slicot-$(SLICOT_VERSION)-with-32bit-integer-and-underscore @@ -140,7 +112,6 @@ clean-slicot-src: clean-libslicot: rm -rf lib64/Slicot - rm -rf lib32/Slicot clean-slicot-all: clean-slicot-src clean-slicot-tar clean-libslicot @@ -148,23 +119,10 @@ clean-slicot-all: clean-slicot-src clean-slicot-tar clean-libslicot # Octave # -tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W32_BUILD}-w32.7z: - mkdir -p tarballs - wget $(WGET_OPTIONS) -O $@ https://ftp.gnu.org/gnu/octave/windows/$(notdir $@) - tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W64_BUILD}-w64.7z: mkdir -p tarballs wget $(WGET_OPTIONS) -O $@ https://ftp.gnu.org/gnu/octave/windows/$(notdir $@) -octave32: tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W32_BUILD}-w32.7z - rm -rf $@ - 7zr x $< > /dev/null - mv octave-${OCTAVE_VERSION}-w32 $@ - # Clean up MinGW stuff that interferes with our cross-compiler - cd $@/mingw32/lib && rm -f libadvapi32.a libkernel32.a libmingw32.a libmingwex.a libmoldname.a libmsvcrt.a libpthread.dll.a libshell32.a libuser32.a - cd $@/mingw32/include && rm -f $$(grep -l "This file is part of the mingw-w64 runtime package" *.h) - touch $@ - octave64: tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W64_BUILD}-w64.7z rm -rf $@ 7zr x $< > /dev/null @@ -174,13 +132,11 @@ octave64: tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W64_BUILD}-w64.7z cd $@/mingw64/include && rm -f $$(grep -l "This file is part of the mingw-w64 runtime package" *.h) touch $@ -octave: octave32 octave64 +octave: octave64 clean-octave: - rm -rf octave32 rm -rf octave64 rm -f tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W64_BUILD}-w64.7z - rm -f tarballs/octave-${OCTAVE_VERSION}${OCTAVE_W32_BUILD}-w32.7z # # MATLAB @@ -192,24 +148,16 @@ tarballs/matlab%.tar.xz: gpg --output $@ --decrypt $@.gpg rm $@.gpg -matlab32: tarballs/matlab32-$(MATLAB32_VERSION).tar.xz - rm -rf $@ - mkdir -p $@ - tar xf $< --directory $@ - touch $@ - matlab64: tarballs/matlab64-$(MATLAB64_VERSION).tar.xz rm -rf $@ mkdir -p $@ tar xf $< --directory $@ touch $@ -matlab: matlab32 matlab64 +matlab: matlab64 clean-matlab: - rm -f tarballs/matlab32.tar.xz rm -f tarballs/matlab64.tar.xz - rm -rf matlab32 rm -rf matlab64 # @@ -218,52 +166,31 @@ clean-matlab: # - the embedded MinGW compiler (for use_dll) # -msys2: lib32-msys2 lib64-msys2 mingw32 mingw64 +msys2: lib64-msys2 mingw64 MSYS2_EXCLUDES := --exclude .MTREE --exclude .BUILDINFO --exclude .PKGINFO -lib32-msys2: tarballs/mingw-w64-i686-boost-$(MINGW32_BOOST_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-gsl-$(MINGW32_GSL_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-openblas-$(MINGW32_OPENBLAS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-matio-$(MINGW32_MATIO_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-zlib-$(MINGW32_ZLIB_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-hdf5-$(MINGW32_HDF5_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-szip-$(MINGW32_SZIP_VERSION)-any.pkg.tar.xz - rm -rf $@ - mkdir $@ - for f in $^; do tar xf $$f --directory $@ --strip-components 1 $(MSYS2_EXCLUDES); done - touch $@ - lib64-msys2: tarballs/mingw-w64-x86_64-boost-$(MINGW64_BOOST_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-gsl-$(MINGW64_GSL_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-openblas-$(MINGW64_OPENBLAS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-matio-$(MINGW64_MATIO_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-zlib-$(MINGW64_ZLIB_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-hdf5-$(MINGW64_HDF5_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-szip-$(MINGW64_SZIP_VERSION)-any.pkg.tar.xz rm -rf $@ mkdir $@ for f in $^; do tar xf $$f --directory $@ --strip-components 1 $(MSYS2_EXCLUDES); done touch $@ -mingw32: tarballs/mingw-w64-i686-gcc-$(MINGW32_GCC_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-gcc-libs-$(MINGW32_GCC_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-gmp-$(MINGW32_GMP_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-binutils-$(MINGW32_BINUTILS_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-i686-headers-git-$(MINGW32_HEADERS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-crt-git-$(MINGW32_CRT_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-winpthreads-git-$(MINGW32_WINPTHREADS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-libwinpthread-git-$(MINGW32_WINPTHREADS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-i686-zlib-$(MINGW32_ZLIB_VERSION)-any.pkg.tar.xz - rm -rf $@ - for f in $^; do tar xf $$f $(MSYS2_EXCLUDES); done - touch $@ - mingw64: tarballs/mingw-w64-x86_64-gcc-$(MINGW64_GCC_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-gcc-libs-$(MINGW64_GCC_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-gmp-$(MINGW64_GMP_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-binutils-$(MINGW64_BINUTILS_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-headers-git-$(MINGW64_HEADERS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-crt-git-$(MINGW64_CRT_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-winpthreads-git-$(MINGW64_WINPTHREADS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-libwinpthread-git-$(MINGW64_WINPTHREADS_VERSION)-any.pkg.tar.xz tarballs/mingw-w64-x86_64-zlib-$(MINGW64_ZLIB_VERSION)-any.pkg.tar.xz rm -rf $@ for f in $^; do tar xf $$f $(MSYS2_EXCLUDES); done touch $@ -tarballs/mingw-w64-i686-%-any.pkg.tar.xz: - wget $(WGET_OPTIONS) -O $@ http://repo.msys2.org/mingw/i686/$(notdir $@) - tarballs/mingw-w64-x86_64-%-any.pkg.tar.xz: wget $(WGET_OPTIONS) -O $@ http://repo.msys2.org/mingw/x86_64/$(notdir $@) -tarballs/mingw-w64-i686-%-any.pkg.tar.zst: - wget $(WGET_OPTIONS) -O $@ http://repo.msys2.org/mingw/i686/$(notdir $@) - tarballs/mingw-w64-x86_64-%-any.pkg.tar.zst: wget $(WGET_OPTIONS) -O $@ http://repo.msys2.org/mingw/x86_64/$(notdir $@) clean-msys2: - rm -rf lib32-msys2 rm -rf lib64-msys2 - rm -rf mingw32 rm -rf mingw64 - rm -f tarballs/mingw-w64-i686-*.tar.xz rm -f tarballs/mingw-w64-x86_64-*.tar.xz - rm -f tarballs/mingw-w64-i686-*.tar.zst rm -f tarballs/mingw-w64-x86_64-*.tar.zst # @@ -274,38 +201,26 @@ tarballs/x13assrc_V$(X13AS_VERSION).tar.gz: mkdir -p tarballs wget $(WGET_OPTIONS) -O $@ https://www.census.gov/ts/x13as/unix/x13assrc_V$(X13AS_VERSION).tar.gz -sources32/x13as-$(X13AS_VERSION): tarballs/x13assrc_V$(X13AS_VERSION).tar.gz - rm -rf sources32/x13as-* - mkdir -p $@ - tar xf $< --directory $@ - sources64/x13as-$(X13AS_VERSION): tarballs/x13assrc_V$(X13AS_VERSION).tar.gz rm -rf sources64/x13as-* mkdir -p $@ tar xf $< --directory $@ -lib32/x13as/x13as.exe: sources32/x13as-$(X13AS_VERSION) - make -C $< -f makefile.gf FC=i686-w64-mingw32-gfortran LINKER=i686-w64-mingw32-gfortran FFLAGS="-O2" PROGRAM=x13as.exe - i686-w64-mingw32-strip $</x13as.exe - mkdir -p $(dir $@) - cp $</x13as.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" PROGRAM=x13as.exe x86_64-w64-mingw32-strip $</x13as.exe mkdir -p $(dir $@) cp $</x13as.exe $@ -build-x13as: lib32/x13as/x13as.exe lib64/x13as/x13as.exe +build-x13as: lib64/x13as/x13as.exe clean-x13as-tar: rm -f tarballs/x13assrc_V$(X13AS_VERSION).tar.gz clean-x13as-src: - rm -rf sources32/x13as-$(X13AS_VERSION) rm -rf sources64/x13as-$(X13AS_VERSION) clean-x13as-bin: - rm -rf lib32/x13as lib64/x13as + rm -rf lib64/x13as clean-x13as-all: clean-x13as-tar clean-x13as-src clean-x13as-bin diff --git a/windows/deps/mkoctfile32 b/windows/deps/mkoctfile32 deleted file mode 100755 index 5174c4664b..0000000000 --- a/windows/deps/mkoctfile32 +++ /dev/null @@ -1,541 +0,0 @@ -#! /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) - -# Exit immediately on any error. -set -e - -: ${SED="/bin/sed"} - -# Get path to the mkoctfile shell script -MKOCTFILE_PATH=$(dirname $(readlink -f "$0")) -OCTAVE_PREFIX="$MKOCTFILE_PATH/octave32/mingw32" - -# Get Octave version -current_octave_version=$(grep "^OCTAVE_VERSION" "$MKOCTFILE_PATH/versions.mk") -eval $(echo "$current_octave_version" | tr -d '[:space:]') - -DEFAULT_BINDIR="$OCTAVE_PREFIX/bin" -DEFAULT_INCLUDEDIR="$OCTAVE_PREFIX/include" -DEFAULT_LIBDIR="$OCTAVE_PREFIX/lib" -DEFAULT_OCTINCLUDEDIR="$OCTAVE_PREFIX/include/octave-${OCTAVE_VERSION}/octave" -DEFAULT_OCTLIBDIR="$OCTAVE_PREFIX/lib/octave/${OCTAVE_VERSION}" - -if [ -n "$OCTAVE_HOME" ]; then - DEFAULT_BINDIR="`echo $DEFAULT_BINDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_INCLUDEDIR="`echo $DEFAULT_INCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_LIBDIR="`echo $DEFAULT_LIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_OCTINCLUDEDIR="`echo $DEFAULT_OCTINCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_OCTLIBDIR="`echo $DEFAULT_OCTLIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" -fi - -: ${BINDIR=$DEFAULT_BINDIR} -: ${INCLUDEDIR=$DEFAULT_INCLUDEDIR} -: ${LIBDIR=$DEFAULT_LIBDIR} -: ${OCTINCLUDEDIR=$DEFAULT_OCTINCLUDEDIR} -: ${OCTLIBDIR=$DEFAULT_OCTLIBDIR} - -DEFAULT_INCFLAGS="-I$OCTINCLUDEDIR/.. -I$OCTINCLUDEDIR" -if [ "$INCLUDEDIR" != /usr/include ]; then - DEFAULT_INCFLAGS="$DEFAULT_INCFLAGS -I$INCLUDEDIR" -fi - -DEFAULT_LFLAGS="-L$OCTLIBDIR -L$BINDIR" -if [ "$LIBDIR" != /usr/lib ]; then - DEFAULT_LFLAGS="$DEFAULT_LFLAGS -L$LIBDIR" -fi - -# Default values for these variables are filled in when Octave is -# compiled. - -: ${EXEEXT=""} - -: ${CPPFLAGS=""} -: ${INCFLAGS=$DEFAULT_INCFLAGS} -: ${F77="i686-w64-mingw32-gfortran"} -: ${FFLAGS="-O"} -: ${FPICFLAG=""} -: ${CC="i686-w64-mingw32-gcc"} -: ${CFLAGS="-g -O2"} -: ${CPICFLAG=""} -: ${CXX="i686-w64-mingw32-g++"} -: ${CXXFLAGS="-g -O2"} -: ${CXXPICFLAG=""} -: ${XTRA_CFLAGS=""} -: ${XTRA_CXXFLAGS=""} - -: ${DEPEND_FLAGS="-M"} -: ${DEPEND_EXTRA_SED_PATTERN=""} - -: ${DL_LD="i686-w64-mingw32-g++"} -: ${DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -static-libgcc -static-libstdc++"} - -: ${RLD_FLAG="-Wl,-rpath -Wl,$OCTAVE_PREFIX/lib/octave/${OCTAVE_VERSION}"} -: ${RDYNAMIC_FLAG="-rdynamic"} -: ${LIBOCTAVE=-loctave} -: ${LIBOCTINTERP=-loctinterp} -: ${READLINE_LIBS=-lreadline} -: ${LAPACK_LIBS="-llapack"} -: ${BLAS_LIBS="-lblas -lxerbla"} -: ${FFTW3_LDFLAGS=""} -: ${FFTW3_LIBS="-lfftw3"} -: ${FFTW3F_LDFLAGS=""} -: ${FFTW3F_LIBS="-lfftw3f"} -: ${LIBS="-lm -lgfortran -llapack -lgdi32 -lws2_32 -luser32 -lkernel32"} -: ${FLIBS="-lm -lgfortran -llapack -lmingw32 -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32"} -: ${LD_CXX="i686-w64-mingw32-g++"} -: ${LDFLAGS="-Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc-v2 -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++"} -: ${LD_STATIC_FLAG=""} -: ${LFLAGS=$DEFAULT_LFLAGS} -: ${F77_INTEGER_8_FLAG=""} - -: ${ALL_FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"} - -: ${ALL_CFLAGS="$INCFLAGS $XTRA_CFLAGS $CFLAGS"} - -: ${ALL_CXXFLAGS="$INCFLAGS $XTRA_CXXFLAGS $CXXFLAGS"} - -: ${ALL_LDFLAGS="$LD_STATIC_FLAG $CPICFLAG $LDFLAGS"} - -: ${OCTAVE_LIBS="$LIBOCTINTERP $LIBOCTAVE $SPECIAL_MATH_LIB"} - -# Local variables. - -FFTW_LIBS="$FFTW3_LDFLAGS $FFTW3_LIBS $FFTW3F_LDFLAGS $FFTW3F_LIBS" - -usage_msg="usage: mkoctfile [options] file ..." - -version_msg="mkoctfile, version $OCTAVE_VERSION" - -cfiles= -ccfiles= -f77files= -objfiles= -libfiles= -octfiles= -octfile= -outputfile= -incflags= -defs= -ldflags= -dbg=: -pass_on_options= -strip=false -no_oct_file_strip_on_this_platform=false -link=true -link_stand_alone=false -output_ext=".oct" -depend=false -compile=true - -if [ $# -eq 0 ]; then - echo $usage_msg 1>&2 - exit 1 -fi - -if [ $# -eq 1 ]; then - case "$1" in - -v | -version | --version) - echo $version_msg 1>&2 - exit 0 - ;; - esac -fi - -while [ $# -gt 0 ]; do - file= - case "$1" in - *.c) - file=$1 - cfiles="$cfiles $file" - ;; - *.cc | *.C | *.cpp) - file=$1 - ccfiles="$ccfiles $file" - ;; - *.f | *.F | *.f90 | *.F90) - file=$1 - f77files="$f77files $file" - ;; - *.o) - file=$1 - objfiles="$objfiles $file" - ;; - *.a) - file=$1 - libfiles="$libfiles $file" - ;; - -d | -debug | --debug | -v | -verbose | --verbose) - dbg=echo - ;; - -h | -\? | -help | --help) - echo $usage_msg 1>&2 - cat << EOF - -Options: - - -h, -?, --help Print this message. - - -IDIR Add -IDIR to compile commands. - - -idirafter DIR Add -idirafter DIR to compile commands. - - -DDEF Add -DDEF to compile commands. - - -lLIB Add -lLIB to link command. - - -LDIR Add -LDIR to link command. - - -RDIR Add -RDIR to link command. - - -g Enable debugging option for all compilers. - - -pthread Add -pthread to link command. - - -W... Pass flags to the compiler such as -Wa,OPTION. - - -Wl,... Pass flags to the linker such as -Wl,-rpath=... - - -M, --depend Generate dependency files (.d) for C and C++ - source files. - - -c, --compile Compile, but do not link. - - --link-stand-alone Link a stand-alone executable file. - - -s, --strip Strip output file. - - --mex Create a MEX file. - Set the default output extension to ".mex". - - -o FILE, --output FILE Output file name. Default extension is .oct - (or .mex if --mex is specified) unless linking - a stand-alone executable. - - -p VAR, --print VAR Print configuration variable VAR. Recognized - variables are: - - ALL_CFLAGS FFTW3F_LDFLAGS - ALL_CXXFLAGS FFTW3F_LIBS - ALL_FFLAGS FLIBS - ALL_LDFLAGS FPICFLAG - BLAS_LIBS INCFLAGS - CC LAPACK_LIBS - CFLAGS LDFLAGS - CPICFLAG LD_CXX - CPPFLAGS LD_STATIC_FLAG - CXX LFLAGS - CXXFLAGS LIBCRUFT - CXXPICFLAG LIBOCTAVE - DEPEND_EXTRA_SED_PATTERN LIBOCTINTERP - DEPEND_FLAGS LIBS - DL_LD OCTAVE_LIBS - DL_LDFLAGS RDYNAMIC_FLAG - EXEEXT READLINE_LIBS - F77 RLD_FLAG - F77_INTEGER_8_FLAG SED - FFLAGS XTRA_CFLAGS - FFTW3_LDFLAGS XTRA_CXXFLAGS - FFTW3_LIBS - - -v, --verbose Echo commands as they are executed. - - FILE Compile or link FILE. Recognized file types are: - - .c C source - .cc C++ source - .C C++ source - .cpp C++ source - .f Fortran source (fixed form) - .F Fortran source (fixed form) - .f90 Fortran source (free form) - .F90 Fortran source (free form) - .o object file - .a library file - -EOF - exit 0 - ;; - -I*) - incflags="$incflags $1" - ;; - -idirafter) - shift - if [ $# -gt 0 ]; then - incflags="$incflags -idirafter $1" - else - echo "mkoctfile: include directory name missing" 1>&2 - fi - ;; - -D*) - defs="$defs $1" - ;; - -[lLR]* | -Wl,*) - ldflags="$ldflags $1" - ;; - -pthread) - ldflags="$ldflags $1" - ;; - -M | -depend | --depend) - depend=true - compile=false - ;; - -o | -ouput | --output) - shift - if [ $# -gt 0 ]; then - outputfile="$1" - else - echo "mkoctfile: output file name missing" 1>&2 - fi - ;; - -p | -print | --print) - shift - if [ $# -gt 0 ]; then - eval echo \${$1} - exit 0 - else - echo "mkoctfile: --print requires argument" 1>&2 - exit 1 - fi - ;; - -s | -strip | --strip) - if $no_oct_file_strip_on_this_platform; then - echo "mkoctfile: stripping disabled on this platform" 1>&2 - else - strip=true - fi - ;; - -c | -compile | --compile) - link=false - ;; - -g) - ALL_CFLAGS="$ALL_CFLAGS -g" - ALL_CXXFLAGS="$ALL_CXXFLAGS -g" - ALL_FFLAGS="$ALL_FFLAGS -g" - ;; - -link-stand-alone | --link-stand-alone) - link_stand_alone=true - ;; - -mex | --mex) - incflags="$incflags -I." - output_ext=".mex" - ;; - -W*) - pass_on_options="$pass_on_options $1" - ;; - *) - echo "mkoctfile: unrecognized argument $1" 1>&2 - exit 1 - ;; - esac - if [ -n "$file" ]; then - if [ -z "$octfile" ]; then - octfile="$file" - fi - fi - shift -done - -if $link_stand_alone; then - if [ -n "$outputfile" ]; then - output_option="-o $outputfile" - fi -else - if [ -n "$outputfile" ]; then - octfile="$outputfile" - case "$octfile" in - *$output_ext) - ;; - *) - octfile="$octfile$output_ext" - ;; - esac - else - octfile=`basename $octfile` - octfile=`echo $octfile | $SED 's,\.[^.]*$,,'`$output_ext - fi -fi - -# Generate dependency files for C and C++ files. - -if $depend; then - if [ -n "$cfiles" ]; then - for f in $cfiles; do - b=`echo $f | $SED 's,\.c$,,'` - d=$b.d - cmd="rm -f $d" - $dbg $cmd - eval $cmd - cmd="$CC $DEPEND_FLAGS $CPPFLAGS $ALL_CFLAGS $incflags $def $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" - $dbg $cmd - eval $cmd - done - fi - - if [ -n "$ccfiles" ]; then - for f in $ccfiles; do - case $f in - *.cc) - b=`echo $f | $SED 's,\.cc$,,'` - ;; - *.C) - b=`echo $f | $SED 's,\.C$,,'` - ;; - *.cpp) - b=`echo $f | $SED 's,\.cpp$,,'` - ;; - esac - d=$b.d - cmd="rm -f $d" - $dbg $cmd - eval $cmd - cmd="$CXX $DEPEND_FLAGS $CPPFLAGS $ALL_CXXFLAGS $incflags $defs $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" - $dbg $cmd - eval $cmd - done - fi - # If generating dependencies, that's all we do. - exit 0 -fi - -# Compile Fortran, C, and C++ files. Add the name of each object file -# that is produced to the overall list of object files. - -if [ -n "$f77files" ]; then - for f in $f77files; do - case $f in - *.f) - b=`echo $f | $SED 's,.*/,,; s,\.f$,,'` - ;; - *.F) - b=`echo $f | $SED 's,.*/,,; s,\.F$,,'` - ;; - *.f90) - b=`echo $f | $SED 's,.*/,,; s,\.f90$,,'` - ;; - *.F90) - b=`echo $f | $SED 's,.*/,,; s,\.F90$,,'` - ;; - esac - if [ -n "$F77" ]; then - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$F77 -c $FPICFLAG $ALL_FFLAGS $incflags $defs $pass_on_options $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile Fortran file $f" 1>&2 - fi - done -fi - -if [ -n "$cfiles" ]; then - for f in $cfiles; do - if [ -n "$CC" ]; then - b=`echo $f | $SED 's,.*/,,; s,\.c$,,'` - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$CC -c $CPPFLAGS $CPICFLAG $ALL_CFLAGS $pass_on_options $incflags $defs $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile C++ file $f" 1>&2 - fi - done -fi - -if [ -n "$ccfiles" ]; then - for f in $ccfiles; do - if [ -n "$CXX" ]; then - case $f in - *.cc) - b=`echo $f | $SED 's,.*/,,; s,\.cc$,,'` - ;; - *.C) - b=`echo $f | $SED 's,.*/,,; s,\.C$,,'` - ;; - *.cpp) - b=`echo $f | $SED 's,.*/,,; s,\.cpp$,,'` - ;; - esac - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $pass_on_options $incflags $defs $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile C++ file $f" 1>&2 - fi - done -fi - -## Uncomment the following group of lines if you get `Text file busy' -## errors from ld. This may happen if the .oct file is currently -## running while you are trying to recompile it. We try moving first, -## since on some systems (HP-UX, maybe others) it is possible to -## rename running programs but not remove them. - -## if [ -f "$octfile" ]; then -## cmd="mv $octfile $octfile.bak" -## $dbg $cmd -## eval $cmd -## cmd="rm -f $octfile.bak" -## $dbg $cmd -## eval $cmd -## fi - -# Link all the object files. - -if $link && [ -n "$objfiles" ]; then - if $link_stand_alone; then - if [ -n "$LD_CXX" ]; then - cmd="$LD_CXX $CPPFLAGS $ALL_CXXFLAGS $RDYNAMIC_FLAG $ALL_LDFLAGS $pass_on_options $output_option $objfiles $libfiles $ldflags $LFLAGS $RLD_FLAG $OCTAVE_LIBS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $READLINE_LIBS $LIBS $FLIBS" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to link stand-alone executable file" 1>&2 - exit 1 - fi - else - LINK_DEPS="$LFLAGS $OCTAVE_LIBS $LDFLAGS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $LIBS $FLIBS" - cmd="$DL_LD $DL_LDFLAGS $pass_on_options -o $octfile $objfiles $libfiles $ldflags $LINK_DEPS" - $dbg $cmd - eval $cmd - fi - -# Maybe strip it. - - if $strip; then - cmd="strip $octfile" - $dbg $cmd - eval $cmd - fi -fi - -exit 0 diff --git a/windows/deps/versions.mk b/windows/deps/versions.mk index 8c6b237644..305e920c99 100644 --- a/windows/deps/versions.mk +++ b/windows/deps/versions.mk @@ -2,10 +2,8 @@ SLICOT_VERSION = 5.0+20101122 X13AS_VERSION = 1.1_B39 OCTAVE_VERSION = 5.2.0 -OCTAVE_W32_BUILD = _1 OCTAVE_W64_BUILD = _1 -MATLAB32_VERSION = 20200407 MATLAB64_VERSION = 20200407 @@ -19,59 +17,46 @@ MATLAB64_VERSION = 20200407 ## Build dependencies -# pacman -Ss .*-boost$ -MINGW32_BOOST_VERSION = 1.73.0-3 +# pacman -Ss mingw-w64-x86_64-boost MINGW64_BOOST_VERSION = 1.73.0-3 -# pacman -Ss .*-gsl$ -MINGW32_GSL_VERSION = 2.6-1 +# pacman -Ss mingw-w64-x86_64-gsl MINGW64_GSL_VERSION = 2.6-1 -# pacman -Ss .*-openblas$ -MINGW32_OPENBLAS_VERSION = 0.3.9-1 +# pacman -Ss mingw-w64-x86_64-openblas MINGW64_OPENBLAS_VERSION = 0.3.9-1 -# pacman -Ss .*-matio$ -MINGW32_MATIO_VERSION = 1.5.17-2 +# pacman -Ss mingw-w64-x86_64-matio MINGW64_MATIO_VERSION = 1.5.17-2 # Dependency of matio (and of the MinGW compiler) -# pacman -Ss .*-zlib$ -MINGW32_ZLIB_VERSION = 1.2.11-7 +# pacman -Ss mingw-w64-x86_64-zlib MINGW64_ZLIB_VERSION = 1.2.11-7 # Dependency of matio -# pacman -Ss .*-hdf5$ -MINGW32_HDF5_VERSION = 1.12.0-2 +# pacman -Ss mingw-w64-x86_64-hdf5 MINGW64_HDF5_VERSION = 1.12.0-2 # Dependency of HDF5 -# pacman -Ss .*-szip$ -MINGW32_SZIP_VERSION = 2.1.1-2 +# pacman -Ss mingw-w64-x86_64-szip MINGW64_SZIP_VERSION = 2.1.1-2 ## MinGW packages for the embedded compiler -# pacman -Ss mingw-w64-.*-gcc$ -MINGW32_GCC_VERSION = 10.1.0-2 +# pacman -Ss mingw-w64-x86_64-gcc$ MINGW64_GCC_VERSION = 10.1.0-2 -# pacman -Ss mingw-w64-.*-gmp$ -MINGW32_GMP_VERSION = 6.2.0-1 +# pacman -Ss mingw-w64-x86_64-gmp MINGW64_GMP_VERSION = 6.2.0-1 -# pacman -Ss mingw-w64-.*-binutils -MINGW32_BINUTILS_VERSION = 2.34-2 +# pacman -Ss mingw-w64-x86_64-binutils MINGW64_BINUTILS_VERSION = 2.34-2 -# pacman -Ss mingw-w64-.*-headers-git -MINGW32_HEADERS_VERSION = 8.0.0.5815.9517d302-1 +# pacman -Ss mingw-w64-x86_64-headers-git MINGW64_HEADERS_VERSION = 8.0.0.5815.9517d302-1 -# pacman -Ss mingw-w64-.*-crt-git -MINGW32_CRT_VERSION = 8.0.0.5815.9517d302-1 +# pacman -Ss mingw-w64-x86_64-crt-git MINGW64_CRT_VERSION = 8.0.0.5815.9517d302-1 -# pacman -Ss mingw-w64-.*-winpthreads-git -MINGW32_WINPTHREADS_VERSION = 8.0.0.5814.9dbf4cc1-1 +# pacman -Ss mingw-w64-x86_64-winpthreads-git MINGW64_WINPTHREADS_VERSION = 8.0.0.5814.9dbf4cc1-1 diff --git a/windows/dynare.nsi b/windows/dynare.nsi index 8e8bea563b..86d1f50942 100644 --- a/windows/dynare.nsi +++ b/windows/dynare.nsi @@ -16,7 +16,6 @@ InstallDir "c:\dynare\${VERSION}" !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Dynare ${VERSION}.$\n$\nDynare is distributed under the GNU General Public License (GPL) version 3.$\n$\nIf you accept the license, click Next button to continue the installation." !insertmacro MUI_PAGE_WELCOME !define MUI_COMPONENTSPAGE_NODESC -!define MUI_COMPONENTSPAGE_TEXT_TOP "Choose the components you want to install.$\nIf you know whether your version of MATLAB or Octave is 64-bit or 32-bit, you can uncheck the component that you don’t need in order to save disk space." !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -55,15 +54,9 @@ Section "Dynare core (preprocessor and M-files)" SetOutPath $INSTDIR\matlab File /r ..\matlab\*.m - SetOutPath $INSTDIR\matlab\preprocessor32 - File ..\matlab\preprocessor32\dynare_m.exe - SetOutPath $INSTDIR\matlab\preprocessor64 File ..\matlab\preprocessor64\dynare_m.exe - SetOutPath $INSTDIR\matlab\modules\dseries\externals\x13\windows\32 - File deps\lib32\x13as\x13as.exe - SetOutPath $INSTDIR\matlab\modules\dseries\externals\x13\windows\64 File deps\lib64\x13as\x13as.exe @@ -89,8 +82,6 @@ Section "Dynare core (preprocessor and M-files)" SectionEnd -SectionGroup "Dynare support for 64-bit MATLAB and Octave" - Section "MEX files for MATLAB 64-bit, version 8.3 to 9.3 (R2014a to R2017b)" SetOutPath $INSTDIR\mex\matlab\win64-8.3-9.3 File ..\mex\matlab\win64-8.3-9.3\*.mexw64 @@ -101,39 +92,16 @@ Section "MEX files for MATLAB 64-bit, version 9.4 to 9.8 (R2018a to R2020a)" File ..\mex\matlab\win64-9.4-9.8\*.mexw64 SectionEnd -Section "MEX files for Octave 5.2.0 (64-bit)" - SetOutPath $INSTDIR\mex\octave\win64 - File ..\mex\octave\win64\* -SectionEnd - Section "MinGW compiler for MATLAB 64-bit" SetOutPath $INSTDIR\mingw64 File /r deps\mingw64\* SectionEnd -SectionGroupEnd - - -SectionGroup "Dynare support for 32-bit MATLAB and Octave" - -Section "MEX files for MATLAB 32-bit, version 8.3 to 8.6 (R2014a to R2015b)" - SetOutPath $INSTDIR\mex\matlab\win32-8.3-8.6 - File ..\mex\matlab\win32-8.3-8.6\*.mexw32 -SectionEnd - -Section "MEX files for Octave 5.2.0 (32-bit)" - SetOutPath $INSTDIR\mex\octave\win32 - File ..\mex\octave\win32\* -SectionEnd - -Section "MinGW compiler for MATLAB 32-bit" - SetOutPath $INSTDIR\mingw32 - File /r deps\mingw32\* +Section "MEX files for Octave 5.2.0 (64-bit)" + SetOutPath $INSTDIR\mex\octave\win64 + File ..\mex\octave\win64\* SectionEnd -SectionGroupEnd - - Section "Documentation and examples" SetOutPath $INSTDIR\doc 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 @@ -152,14 +120,8 @@ SectionEnd Section /o "Dynare++ (standalone executable)" - SetOutPath $INSTDIR\dynare++\32-bit - File ..\dynare++\32-bit\dynare++.exe - - SetOutPath $INSTDIR\dynare++\64-bit - File ..\dynare++\64-bit\dynare++.exe - SetOutPath $INSTDIR\dynare++ - File ..\dynare++\dynare_simul\dynare_simul.m + File ..\dynare++\src\dynare++.exe ..\dynare++\dynare_simul\dynare_simul.m SetOutPath $INSTDIR\doc\dynare++ File ..\dynare++\doc\*.pdf @@ -185,7 +147,6 @@ Section "Uninstall" Rmdir /r $INSTDIR\doc Rmdir /r $INSTDIR\examples Rmdir /r $INSTDIR\scripts - Rmdir /r $INSTDIR\mingw32 Rmdir /r $INSTDIR\mingw64 # We don't force deletion of installation directory (with /r), to avoid deleting important files Rmdir $INSTDIR diff --git a/windows/install-packages.sh b/windows/install-packages.sh index 2252645617..db70175fca 100755 --- a/windows/install-packages.sh +++ b/windows/install-packages.sh @@ -34,6 +34,3 @@ apt install "${PACKAGES[@]}" update-alternatives --set x86_64-w64-mingw32-gfortran /usr/bin/x86_64-w64-mingw32-gfortran-posix update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix -update-alternatives --set i686-w64-mingw32-gfortran /usr/bin/i686-w64-mingw32-gfortran-posix -update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix -update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix -- GitLab