diff --git a/Packaging/windows/mingw-prep.sh b/Packaging/windows/mingw-prep.sh index dfabbf628..dd668eefa 100755 --- a/Packaging/windows/mingw-prep.sh +++ b/Packaging/windows/mingw-prep.sh @@ -1,27 +1,54 @@ #!/usr/bin/env bash +SDLDEV_VERS=2.0.14 +SDLTTF_VERS=2.0.15 +SODIUM_VERS=1.0.18 + # exit when any command fails set -euo pipefail -MINGW_PREFIX=/usr/i686-w64-mingw32/ +# detect architecture from script name +if echo "$(basename $0)" | grep -q 64; then + MINGW_ARCH=x86_64-w64-mingw32 + SODIUM_ARCH=win64 +else + MINGW_ARCH=i686-w64-mingw32 + SODIUM_ARCH=win32 +fi + +# set MINGW_PREFIX +MINGW_PREFIX=/usr/${MINGW_ARCH} +if [ ! -d "${MINGW_PREFIX}" ]; then + echo "MinGW prefix not found (${MINGW_PREFIX})" + exit 1 +else + echo "Installing to ${MINGW_PREFIX}" +fi + +# only use sudo when necessary +if [ `id -u` -ne 0 ]; then + SUDO=sudo +else + SUDO="" +fi -wget https://www.libsdl.org/release/SDL2-devel-2.0.14-mingw.tar.gz -tar -xzf SDL2-devel-2.0.14-mingw.tar.gz -wget https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-mingw.tar.gz -tar -xzf SDL2_ttf-devel-2.0.15-mingw.tar.gz -sudo cp -r SDL2*/i686-w64-mingw32 /usr +wget -q https://www.libsdl.org/release/SDL2-devel-${SDLDEV_VERS}-mingw.tar.gz -OSDL2-devel-${SDLDEV_VERS}-mingw.tar.gz +tar -xzf SDL2-devel-${SDLDEV_VERS}-mingw.tar.gz +wget -q https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-${SDLTTF_VERS}-mingw.tar.gz -OSDL2_ttf-devel-${SDLTTF_VERS}-mingw.tar.gz +tar -xzf SDL2_ttf-devel-${SDLTTF_VERS}-mingw.tar.gz +$SUDO cp -r SDL2*/${MINGW_ARCH}/* ${MINGW_PREFIX} -wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18-mingw.tar.gz -tar -xzf libsodium-1.0.18-mingw.tar.gz --no-same-owner -sudo cp -r libsodium-win32/* /usr/i686-w64-mingw32 +wget -q https://github.com/jedisct1/libsodium/releases/download/${SODIUM_VERS}-RELEASE/libsodium-${SODIUM_VERS}-mingw.tar.gz -Olibsodium-${SODIUM_VERS}-mingw.tar.gz +tar -xzf libsodium-${SODIUM_VERS}-mingw.tar.gz --no-same-owner +$SUDO cp -r libsodium-${SODIUM_ARCH}/* ${MINGW_PREFIX} # Fixup pkgconfig prefix: find "${MINGW_PREFIX}/lib/pkgconfig/" -name '*.pc' -exec \ - sed -i "s|^prefix=.*|prefix=${MINGW_PREFIX}|" '{}' \; + $SUDO sed -i "s|^prefix=.*|prefix=${MINGW_PREFIX}|" '{}' \; # Fixup CMake prefix: -find "$MINGW_PREFIX" -name '*.cmake' -exec \ - sed -i "s|/opt/local/i686-w64-mingw32|${MINGW_PREFIX}|" '{}' \; +find "${MINGW_PREFIX}" -name '*.cmake' -exec \ + $SUDO sed -i "s|/opt/local/${MINGW_ARCH}|${MINGW_PREFIX}|" '{}' \; # Fixup SDL2's cmake file # See https://github.com/libsdl-org/SDL/issues/3665 @@ -31,4 +58,4 @@ s|@libdir@|\${exec_prefix}/lib|; s|@includedir@|\${prefix}/include|; s|@SDL_RLD_FLAGS@||; s|@SDL_LIBS@||; -" "$(dirname "$0")"/sdl2-config.cmake.in > "${MINGW_PREFIX}/lib/cmake/SDL2/sdl2-config.cmake" +" "$(dirname $0)"/sdl2-config.cmake.in | $SUDO tee "${MINGW_PREFIX}/lib/cmake/SDL2/sdl2-config.cmake" > /dev/null diff --git a/Packaging/windows/mingw-prep64.sh b/Packaging/windows/mingw-prep64.sh deleted file mode 100755 index ca1f167ca..000000000 --- a/Packaging/windows/mingw-prep64.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -# exit when any command fails -set -euo pipefail - -MINGW_PREFIX=/usr/x86_64-w64-mingw32/ - -wget https://www.libsdl.org/release/SDL2-devel-2.0.14-mingw.tar.gz -tar -xzf SDL2-devel-2.0.14-mingw.tar.gz -wget https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-mingw.tar.gz -tar -xzf SDL2_ttf-devel-2.0.15-mingw.tar.gz -sudo cp -r SDL2*/x86_64-w64-mingw32 /usr - -wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18-mingw.tar.gz -tar -xzf libsodium-1.0.18-mingw.tar.gz --no-same-owner -sudo cp -r libsodium-win64/* /usr/x86_64-w64-mingw32 - -# Fixup pkgconfig prefix: -find "${MINGW_PREFIX}/lib/pkgconfig/" -name '*.pc' -exec \ - sed -i "s|^prefix=.*|prefix=${MINGW_PREFIX}|" '{}' \; - -# Fixup CMake prefix: -find "$MINGW_PREFIX" -name '*.cmake' -exec \ - sed -i "s|/opt/local/x86_64-w64-mingw32|${MINGW_PREFIX}|" '{}' \; - -# Fixup SDL2's cmake file -# See https://github.com/libsdl-org/SDL/issues/3665 -sed "s|@prefix@|${MINGW_PREFIX}|; -s|@exec_prefix@|\${prefix}|; -s|@libdir@|\${exec_prefix}/lib|; -s|@includedir@|\${prefix}/include|; -s|@SDL_RLD_FLAGS@||; -s|@SDL_LIBS@||; -" "$(dirname "$0")"/sdl2-config.cmake.in > "${MINGW_PREFIX}/lib/cmake/SDL2/sdl2-config.cmake" diff --git a/Packaging/windows/mingw-prep64.sh b/Packaging/windows/mingw-prep64.sh new file mode 120000 index 000000000..df0543146 --- /dev/null +++ b/Packaging/windows/mingw-prep64.sh @@ -0,0 +1 @@ +mingw-prep.sh \ No newline at end of file