In case we have a git clone from Linux that is accessed via cygwin git the files executable status will be derived from the file content (shebang) and won't match the git repo, leading to a initially dirty tree. This can be worked around by setting "core.filemode=false", but let's try to match the cygwin permissions with the in-repo permissions so this isn't needed.
61 lines
1.8 KiB
Bash
Executable File
61 lines
1.8 KiB
Bash
Executable File
#!/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}
|