parent
1dbbef9f2e
commit
4d22c4c0c0
|
@ -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:
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
Section "MEX files for Octave 5.2.0 (64-bit)"
|
||||
SetOutPath $INSTDIR\mex\octave\win64
|
||||
File ..\mex\octave\win64\*
|
||||
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\*
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue