blob: 6bf0e5baa0985f7993d0200507cbe95c6cb9cdec [file] [log] [blame]
#!/bin/bash
set -e
# Extract & adapt parts from MS-MPI SDK & runtime
# MS-MPI 10.1.1
source=(
'https://download.microsoft.com/download/2/9/e/29efe9b1-16d7-4912-a229-6734b0c4e235/msmpisdk.msi'
'https://download.microsoft.com/download/2/9/e/29efe9b1-16d7-4912-a229-6734b0c4e235/msmpisetup.exe'
)
sha256sums=(
'6df47378c0acbb2b76989092165d7279ee096605fcaf7e455de733b2ffdf4bcc'
'7308fd15e437d6829fd9c6ec5d801380faa3bff6e66e1dee3e8e005106fb6a68'
)
if [[ $MSYSTEM_CARCH != "x86_64" ]]; then
echo "ERROR: this scripts requires 64-bit MSYS2 environment"
exit 1
fi
# x64
msmpi=`cygpath -m "$WINDIR/system32/msmpi.dll"`
if [[ ! -f "$msmpi" ]]; then
echo "ERROR: 64-bit msmpi.dll is missing. Is MS-MPI runtime installed?"
exit 1
fi
/mingw64/bin/gendef "$msmpi" 2> /dev/null
cat msmpi.def | tr -d '\015' > msmpi.def.x86_64
rm msmpi.def
# x32
msmpi=`cygpath -m "$WINDIR/syswow64/msmpi.dll"`
if [[ ! -f "$msmpi" ]]; then
echo "ERROR: 32-bit msmpi.dll is missing. Is MS-MPI runtime installed?"
exit 1
fi
/mingw32/bin/gendef "$msmpi" 2> /dev/null
cp msmpi.def msmpi.def~
ruby -n -e '$_.strip!; puts "#{$1}@0=#{$1}\n" if ($_ != $_.upcase) && ($_ != $_.downcase) && /^([a-zA-Z0-9_]*)$/.match($_)' msmpi.def >> msmpi.def~
cat msmpi.def~ | tr -d '\015' > msmpi.def.i686
rm msmpi.def msmpi.def~
rootdir=`pwd`
(
cd "`cygpath -m "${MSMPI_INC}"`"
if [[ ! -f mpi.h ]]; then
echo "ERROR: \$MSMPI_INC directory does not exist or contains no mpi.h file. Is MS-MPI SDK installed?"
exit 1
fi
for f in mpi.h mpif.h mpi.f90; do
cat $f | tr -d '\015' > "$rootdir/$f"
done
cat x64/mpifptr.h | tr -d '\015' > "$rootdir/mpifptr.h.x86_64"
cat x86/mpifptr.h | tr -d '\015' > "$rootdir/mpifptr.h.i686"
)
# Export file signatures to be embed into PKGBUILD in order to ensure build integrity
# ruby export.rb mpi.c mpi.h mpif.h mpi.f90 mpifptr.h.{x86_64,i686} msmpi.def.{x86_64,i686}