Cog/Frameworks/OpenMPT/OpenMPT/build/download_externals.sh
Christopher Snowhill e03d857f86 Updated libOpenMPT to version 0.7.9
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2024-08-17 03:33:43 -07:00

110 lines
4.5 KiB
Bash

#!/usr/bin/env bash
# stop on error
set -e
# normalize current directory to project root
cd build 2>&1 > /dev/null || true
cd ..
function download () {
set -e
MPT_GET_FILE_NAME="$1"
MPT_GET_FILE_SIZE="$2"
MPT_GET_FILE_CHECKSUM="$3"
MPT_GET_URLS="$4"
echo "Checking '$MPT_GET_FILE_NAME' ..."
if [ -f "$MPT_GET_FILE_NAME" ]; then
FILE_SIZE=$(find "$MPT_GET_FILE_NAME" -printf '%s')
if [ ! "x$FILE_SIZE" = "x$MPT_GET_FILE_SIZE" ]; then
echo "$FILE_SIZE does not match expected file size $MPT_GET_FILE_SIZE. Redownloading."
rm -f "$MPT_GET_FILE_NAME"
fi
fi
if [ -f "$MPT_GET_FILE_NAME" ]; then
FILE_CHECKSUM=$(sha512sum "$MPT_GET_FILE_NAME" | awk '{print $1;}')
if [ ! "x$FILE_CHECKSUM" = "x$MPT_GET_FILE_CHECKSUM" ]; then
echo "$FILE_CHECKSUM does not match expected file checksum $MPT_GET_FILE_CHECKSUM. Redownloading."
rm -f "$MPT_GET_FILE_NAME"
fi
fi
for URL in $MPT_GET_URLS; do
if [ ! -f "$MPT_GET_FILE_NAME" ]; then
echo "Downloading '$MPT_GET_FILE_NAME' from '$URL' ..."
curl -o "$MPT_GET_FILE_NAME" "$URL"
echo "Verifying '$URL' ..."
if [ -f "$MPT_GET_FILE_NAME" ]; then
FILE_SIZE=$(find "$MPT_GET_FILE_NAME" -printf '%s')
if [ ! "x$FILE_SIZE" = "x$MPT_GET_FILE_SIZE" ]; then
echo "$FILE_SIZE does not match expected file size $MPT_GET_FILE_SIZE."
rm -f "$MPT_GET_FILE_NAME"
fi
fi
if [ -f "$MPT_GET_FILE_NAME" ]; then
FILE_CHECKSUM=$(sha512sum "$MPT_GET_FILE_NAME" | awk '{print $1;}')
if [ ! "x$FILE_CHECKSUM" = "x$MPT_GET_FILE_CHECKSUM" ]; then
echo "$FILE_CHECKSUM does not match expected file checksum $MPT_GET_FILE_CHECKSUM."
rm -f "$MPT_GET_FILE_NAME"
fi
fi
fi
done
if [ ! -f "$MPT_GET_FILE_NAME" ]; then
echo "Failed to download '$MPT_GET_FILE_NAME'."
return 1
fi
return 0
}
function unpack () {
set -e
MPT_GET_DESTDIR="$1"
MPT_GET_FILE="$2"
MPT_GET_SUBDIR="$3"
echo "Extracting '$MPT_GET_DESTDIR' from '$MPT_GET_FILE:$MPT_GET_SUBDIR' ..."
EXTENSION="${MPT_GET_FILE##*.}"
if [ -d "$MPT_GET_DESTDIR" ]; then
rm -rf "$MPT_GET_DESTDIR"
fi
mkdir "$MPT_GET_DESTDIR"
case "$EXTENSION" in
tar)
tar -xvaf "$MPT_GET_FILE" -C "$MPT_GET_DESTDIR"
;;
zip)
unzip -d "$MPT_GET_DESTDIR" "$MPT_GET_FILE"
;;
7z)
7z x -o"$MPT_GET_DESTDIR" "$MPT_GET_FILE"
;;
exe)
7z x -o"$MPT_GET_DESTDIR" "$MPT_GET_FILE"
;;
esac
if [ ! "$MPT_GET_SUBDIR" = "." ]; then
mv "$MPT_GET_DESTDIR" "$MPT_GET_DESTDIR.tmp"
mv "$MPT_GET_DESTDIR.tmp/$MPT_GET_SUBDIR" "$MPT_GET_DESTDIR"
fi
return 0
}
if [ ! -d "build/externals" ]; then
mkdir build/externals
fi
if [ ! -d "build/tools" ]; then
mkdir build/tools
fi
download "build/externals/allegro-4.2.3.1-hg.8+r8500.zip" 3872466 46cd8d4d7138b795dbc66994e953d0abc578c6d3c00615e3580237458529d33d7ad9d269a9778918d4b3719d75750d5cca74ff6bf38ad357a766472799ee9e7b "https://lib.openmpt.org/files/libopenmpt/contrib/allegro/allegro-4.2.3.1-hg.8+r8500.zip"
download "build/externals/csdpmi7b.zip" 71339 58c24691d27cead1cec92d334af551f37a3ba31de25a687d99399c28d822ec9f6ffccc9332bfce35e65dae4dd1210b54e54b223a4de17f5adcb11e2da004b834 "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/cwsdpmi/csdpmi7b.zip https://djgpp.mirror.garr.it/current/v2misc/csdpmi7b.zip"
download "build/externals/csdpmi7s.zip" 89872 ea5652d31850d8eb0d15a919de0b51849f58efea0d16ad2aa4687fac4abd223d0ca34a2d1b616b02fafe84651dbef3e506df9262cfb399eb6d9909bffc89bfd3 "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/cwsdpmi/csdpmi7s.zip https://djgpp.mirror.garr.it/current/v2misc/csdpmi7s.zip"
download "build/externals/WA5.55_SDK.exe" 336166 394375db8a16bf155b5de9376f6290488ab339e503dbdfdc4e2f5bede967799e625c559cca363bc988324f1a8e86e5fd28a9f697422abd7bb3dcde4a766607b5 "http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe https://web.archive.org/web/20131217072017id_/http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe"
download "build/externals/xmp-sdk.zip" 322744 62c442d656d4bb380360368a0f5f01da11b4ed54333d7f54f875a9a5ec390b08921e00bd08e62cd7a0a5fe642e3377023f20a950cc2a42898ff4cda9ab88fc91 "https://www.un4seen.com/files/xmp-sdk.zip"
unpack "include/allegro42" "build/externals/allegro-4.2.3.1-hg.8+r8500.zip" "."
unpack "include/cwsdpmi" "build/externals/csdpmi7b.zip" "."
unpack "include/winamp" "build/externals/WA5.55_SDK.exe" "."
unpack "include/xmplay" "build/externals/xmp-sdk.zip" "."
ln -s OUT.H include/winamp/Winamp/out.h