Skip to content

Merge branch 'schismtracker:master' into master #3

Merge branch 'schismtracker:master' into master

Merge branch 'schismtracker:master' into master #3

Workflow file for this run

name: OS X (powerpc/x86_64/arm64)
on:
push:
pull_request:
workflow_dispatch:
# The configure prefix for any given
# architecture is
# $HOME/{architecture}prefix
# while any specific files/binaries
# needed for that architecture, not
# necessarily related to autotools,
# should be stored in
# $HOME/{architecture}
# This is so that we don't screw
# up the global directories with
# files for many different
# architectures.
jobs:
osx:
runs-on: macos-14
env:
SDL_VERSION: 2.30.9
SDL_SHA256: 24b574f71c87a763f50704bbb630cbe38298d544a1f890f099a4696b1d6beba4
PANTHER_SDL2_VERSION: 20210624
PANTHER_SDL2_SHA256: 2d7fcbebedd3502f8454bb21f20c8d9cb332c4d0bba124f8be5cb5787beeaa54
FLAC_VERSION: 1.4.3
FLAC_SHA256: 6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70
LIBOGG_VERSION: 1.3.5
LIBOGG_SHA256: c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705
UTF8PROC_VERSION: 2.9.0
UTF8PROC_SHA256: bd215d04313b5bc42c1abedbcb0a6574667e31acee1085543a232204e36384c4
steps:
- name: 'Install dependencies'
run: |
brew install autoconf automake libtool zip cmake wget
- name: 'Cache x86_64 dependencies'
id: cache-x86_64-dependencies
uses: actions/cache@v4
with:
path: '/Users/runner/x86_64prefix'
key: mac-x86_64-dependencies-SDL_${{ env.SDL_VERSION }}-FLAC_${{ env.FLAC_VERSION }}-LIBOGG_${{ env.LIBOGG_VERSION }}-UTF8PROC_${{ env.UTF8PROC_VERSION }}
- name: 'Cache x86_64 files'
id: cache-x86_64-files
uses: actions/cache@v4
with:
path: '/Users/runner/x86_64'
key: mac-x86_64-files
- name: 'Cache arm64 dependencies'
id: cache-arm64-dependencies
uses: actions/cache@v4
with:
path: '/Users/runner/arm64prefix'
key: mac-arm64-dependencies-SDL_${{ env.SDL_VERSION }}-FLAC_${{ env.FLAC_VERSION }}-LIBOGG_${{ env.LIBOGG_VERSION }}-UTF8PROC_${{ env.UTF8PROC_VERSION }}
- name: 'Cache arm64 files'
id: cache-arm64-files
uses: actions/cache@v4
with:
path: '/Users/runner/arm64'
key: mac-arm64-files
- name: 'Cache powerpc dependencies'
id: cache-powerpc-dependencies
uses: actions/cache@v4
with:
path: '/Users/runner/ppcprefix'
key: mac-powerpc-dependencies-FLAC_${{ env.FLAC_VERSION }}-LIBOGG_${{ env.LIBOGG_VERSION }}-UTF8PROC_${{ env.UTF8PROC_VERSION }}
- name: 'Cache powerpc files'
id: cache-powerpc-files
uses: actions/cache@v4
with:
path: '/Users/runner/ppc'
key: mac-powerpc-files
- name: 'Download 10.9 SDK for x86_64'
if: steps.cache-x86_64-files.outputs.cache-hit != 'true'
run: |
mkdir -p "$HOME/x86_64"
pushd "$HOME/x86_64"
mkdir SDKs
cd SDKs
curl -L "https://github.com/joseluisq/macosx-sdks/releases/download/10.9/MacOSX10.9.sdk.tar.xz" | tar -xvf -
popd
- name: 'Download 11.0 SDK for arm64'
if: steps.cache-arm64-files.outputs.cache-hit != 'true'
run: |
mkdir -p "$HOME/arm64"
pushd "$HOME/arm64"
mkdir SDKs
cd SDKs
curl -L "https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.0.sdk.tar.xz" | tar -xvf -
popd
- name: 'Grab PowerPC cross compile binaries'
if: steps.cache-powerpc-files.outputs.cache-hit != 'true'
run: |
wget -O schism-macppc-bins.zip "https://www.dropbox.com/scl/fi/trq99fq51p13nh8tajpwa/schism-macppc-bins.zip?rlkey=xemvhpmm1ci0dnseawmanr749&st=c7jlwru4&dl=1"
unzip schism-macppc-bins.zip -d "schism-macppc-bins"
rm schism-macppc-bins.zip
pushd schism-macppc-bins
mkdir -p "$HOME/ppc/SDKs"
tar -xvf "Xcode3as.tar.gz" -C "$HOME/ppc" &
tar -xvf "Xcode3gcc40.tar.gz" -C "$HOME/ppc" &
tar -xvf "Xcode3gcc42.tar.gz" -C "$HOME/ppc" &
tar -xvf "Xcode3ld.tar.gz" -C "$HOME/ppc" &
tar -xvf "OSX108INT.tar.gz" -C "$HOME/ppc" &
wait
curl -L "https://github.com/alexey-lysiuk/macos-sdk/releases/download/10.3.9/MacOSX10.3.9.tar.bz2" | tar -xvf - -C "$HOME/ppc/SDKs"
curl -L "https://github.com/alexey-lysiuk/macos-sdk/releases/download/10.5/MacOSX10.5.tar.bz2" | tar -xvf - -C "$HOME/ppc/SDKs"
popd
- name: 'Install PowerPC cross compile binaries into Xcode'
run: |
mkdir "$(xcrun xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/usr/libexec/as/ppc"
cp "$HOME/ppc/usr/libexec/gcc/darwin/ppc/as" "$(xcrun xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/usr/libexec/as/ppc/as"
- name: 'Checkout'
uses: actions/checkout@v4
- name: 'Get date of latest commit'
id: date
run: echo "date=$(git log -n 1 --date=short --format=format:%cd | sed 's/\(....\)-\(..\)-\(..\).*/\1\2\3/')" >> $GITHUB_OUTPUT
- name: 'Download SDL2 sources (powerpc)'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true'
run: |
wget -O "panther_sdl2-$PANTHER_SDL2_VERSION.tar.gz" "https://leopard.sh/dist/panther_sdl2-$PANTHER_SDL2_VERSION.tar.gz"
echo "$PANTHER_SDL2_SHA256 panther_sdl2-$PANTHER_SDL2_VERSION.tar.gz" | shasum -a 256 -c -
tar xvf "panther_sdl2-$PANTHER_SDL2_VERSION.tar.gz"
- name: 'Download SDL2 sources (x86_64/arm64)'
if: steps.cache-x86_64-dependencies.outputs.cache-hit != 'true' || steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
wget -O "SDL2-$SDL_VERSION.tar.gz" https://www.libsdl.org/release/SDL2-$SDL_VERSION.tar.gz || wget -O "SDL2-$SDL_VERSION.tar.gz" https://github.com/libsdl-org/SDL/releases/download/release-$SDL_VERSION/SDL2-$SDL_VERSION.tar.gz
echo "$SDL_SHA256 SDL2-$SDL_VERSION.tar.gz" | shasum -a 256 -c -
tar xvf "SDL2-$SDL_VERSION.tar.gz"
# we don't actually build SDL2 on powerpc anymore, since it's locked to an old version
- name: 'Prepare SDL2 (powerpc)'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true'
run: |
export PATH="$PATH:$HOME/ppc/usr/bin"
pushd panther_sdl2-20210624
mkdir -p "$HOME/ppcprefix/include/SDL2"
mkdir -p "$HOME/ppcprefix/share/aclocal"
cp -r include/* "$HOME/ppcprefix/include/SDL2"
cp sdl2.m4 "$HOME/ppcprefix/share/aclocal"
wget -O sdl2.zip "https://www.dropbox.com/scl/fi/wesknb35a6ctha73t4vgg/sdl2.zip?rlkey=73l6n8682w63e09n8ods33z14&st=s4ipamr0&dl=1"
unzip sdl2.zip
rm sdl2.zip
mkdir -p "$HOME/ppcprefix/lib"
cp "libSDL2-2.0.0.dylib" "$HOME/ppcprefix/lib"
ln -sf "$HOME/ppcprefix/lib/libSDL2-2.0.0.dylib" "$HOME/ppcprefix/lib/libSDL2.dylib"
popd
- name: 'Build SDL2 (x86_64)'
if: steps.cache-x86_64-dependencies.outputs.cache-hit != 'true'
run: |
pushd SDL2-$SDL_VERSION
mkdir build_x86_64
cd build_x86_64
../configure CPPFLAGS="-arch x86_64 -mmacosx-version-min=10.7 -DMAC_OS_X_VERSION_MIN_REQUIRED=1070 -isysroot $HOME/x86_64/SDKs/MacOSX10.9.sdk" CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64 -F$HOME/x86_64/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/x86_64/SDKs/MacOSX10.9.sdk" --host=x86_64-apple-darwin13 --prefix="$HOME/x86_64prefix"
make
make install
popd
- name: 'Build SDL2 (arm64)'
if: steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
pushd SDL2-$SDL_VERSION
mkdir build_arm64
cd build_arm64
../configure CPPFLAGS="-arch arm64 -mmacosx-version-min=11.0 -isysroot $HOME/arm64/SDKs/MacOSX11.0.sdk" CXXFLAGS="-arch arm64" CFLAGS="-arch arm64" LDFLAGS="-arch arm64" --host=aarch64-apple-darwin20 --prefix="$HOME/arm64prefix"
make
make install
popd
- name: 'Download and prepare libogg sources'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true' || steps.cache-x86_64-dependencies.outputs.cache-hit != 'true' || steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
wget -O libogg-$LIBOGG_VERSION.tar.xz "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-$LIBOGG_VERSION.tar.xz" || wget -O libogg-$LIBOGG_VERSION.tar.xz "https://github.com/xiph/ogg/releases/download/v$LIBOGG_VERSION/libogg-$LIBOGG_VERSION.tar.xz"
echo "$LIBOGG_SHA256 libogg-$LIBOGG_VERSION.tar.xz" | shasum -a 256 -c -
tar xvf "libogg-$LIBOGG_VERSION.tar.xz"
pushd "libogg-$LIBOGG_VERSION"
# libogg's configure is too old
autoreconf -I"$HOME/x86_64prefix/share/aclocal" -i
popd
- name: 'Build libogg (powerpc)'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true'
run: |
pushd libogg-$LIBOGG_VERSION
export PATH="$PATH:$HOME/ppc/usr/bin"
mkdir build_powerpc
cd build_powerpc
../configure CC=powerpc-apple-darwin10-gcc-4.2.1 CPP=powerpc-apple-darwin10-cpp-4.2.1 OBJC=powerpc-apple-darwin10-gcc-4.2.1 CXX=powerpc-apple-darwin10-g++-4.2.1 CPPFLAGS="-I$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/include/gcc/darwin/3.3 -isysroot $HOME/ppc/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3" LDFLAGS="-F$HOME/ppc/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib/system -Wl,-syslibroot,$HOME/ppc/SDKs/MacOSX10.3.9.sdk" --host=powerpc-apple-darwin10 --prefix="$HOME/ppcprefix"
make
make install
popd
- name: 'Build libogg (x86_64)'
if: steps.cache-x86_64-dependencies.outputs.cache-hit != 'true'
run: |
pushd libogg-$LIBOGG_VERSION
mkdir build_x86_64
cd build_x86_64
../configure CPPFLAGS="-arch x86_64 -mmacosx-version-min=10.7 -DMAC_OS_X_VERSION_MIN_REQUIRED=1070 -isysroot $HOME/x86_64/SDKs/MacOSX10.9.sdk" CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64 -F$HOME/x86_64/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/x86_64/SDKs/MacOSX10.9.sdk" --host=x86_64-apple-darwin13 --prefix="$HOME/x86_64prefix"
make
make install
popd
- name: 'Build libogg (arm64)'
if: steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
pushd libogg-$LIBOGG_VERSION
mkdir build_arm64
cd build_arm64
../configure CPPFLAGS="-arch arm64 -mmacosx-version-min=11.0 -isysroot $HOME/arm64/SDKs/MacOSX11.0.sdk" CFLAGS="-arch arm64" CXXFLAGS="-arch arm64" LDFLAGS="-arch arm64" --host=aarch64-apple-darwin20 --prefix="$HOME/arm64prefix"
make
make install
popd
- name: 'Download and prepare FLAC sources'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true' || steps.cache-x86_64-dependencies.outputs.cache-hit != 'true' || steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
wget -O flac-$FLAC_VERSION.tar.xz "https://ftp.osuosl.org/pub/xiph/releases/flac/flac-$FLAC_VERSION.tar.xz" || wget -O flac-$FLAC_VERSION.tar.xz "https://github.com/xiph/flac/releases/download/$FLAC_VERSION/flac-$FLAC_VERSION.tar.xz"
echo "$FLAC_SHA256 flac-$FLAC_VERSION.tar.xz" | shasum -a 256 -c -
tar xvf "flac-$FLAC_VERSION.tar.xz"
pushd "flac-$FLAC_VERSION"
autoreconf -I"$HOME/x86_64prefix/share/aclocal" -i
popd
- name: 'Build FLAC (powerpc)'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true'
run: |
pushd flac-$FLAC_VERSION
export PATH="$PATH:$HOME/ppc/usr/bin"
mkdir build_powerpc
cd build_powerpc
../configure CC=powerpc-apple-darwin10-gcc-4.2.1 CPP=powerpc-apple-darwin10-cpp-4.2.1 OBJC=powerpc-apple-darwin10-gcc-4.2.1 CXX=powerpc-apple-darwin10-g++-4.2.1 CPPFLAGS="-I$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/include/gcc/darwin/3.3 -isysroot $HOME/ppc/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3" LDFLAGS="-F$HOME/ppc/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib/system -Wl,-syslibroot,$HOME/ppc/SDKs/MacOSX10.3.9.sdk" --host=powerpc-apple-darwin10 --prefix="$HOME/ppcprefix" --disable-cpplibs --disable-programs --disable-examples
make
make install
popd
- name: 'Build FLAC (x86_64)'
if: steps.cache-x86_64-dependencies.outputs.cache-hit != 'true'
run: |
pushd flac-$FLAC_VERSION
(export MACOSX_DEPLOYMENT_TARGET="10.9" && mkdir build_x86_64 && cd build_x86_64 && ../configure CPPFLAGS="-arch x86_64 -mmacosx-version-min=10.7 -DMAC_OS_X_VERSION_MIN_REQUIRED=1070 -isysroot $HOME/x86_64/SDKs/MacOSX10.9.sdk" CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64 -F$HOME/x86_64/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/x86_64/SDKs/MacOSX10.9.sdk" --host=x86_64-apple-darwin13 --prefix="$HOME/x86_64prefix" --disable-cpplibs --disable-programs --disable-examples && make && make install)
popd
- name: 'Build FLAC (arm64)'
if: steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
pushd flac-$FLAC_VERSION
(export MACOSX_DEPLOYMENT_TARGET="11.0" && mkdir build_arm64 && cd build_arm64 && ../configure CPPFLAGS="-arch arm64 -mmacosx-version-min=11.0 -isysroot $HOME/arm64/SDKs/MacOSX11.0.sdk" CFLAGS="-arch arm64" CXXFLAGS="-arch arm64" LDFLAGS="-arch arm64" --host=aarch64-apple-darwin20 --prefix="$HOME/arm64prefix" --disable-cpplibs --disable-programs --disable-examples && make && make install)
popd
- name: 'Download utf8proc'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true' || steps.cache-x86_64-dependencies.outputs.cache-hit != 'true' || steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
wget -O "utf8proc-$UTF8PROC_VERSION.tar.gz" "https://github.com/JuliaStrings/utf8proc/releases/download/v$UTF8PROC_VERSION/utf8proc-$UTF8PROC_VERSION.tar.gz"
echo "$UTF8PROC_SHA256 utf8proc-$UTF8PROC_VERSION.tar.gz" | shasum -a 256 -c -
tar xvf "utf8proc-$UTF8PROC_VERSION.tar.gz"
- name: 'Build utf8proc (powerpc)'
if: steps.cache-powerpc-dependencies.outputs.cache-hit != 'true'
run: |
pushd utf8proc-$UTF8PROC_VERSION
patch -p1 < ../.github/patches/utf8proc/2-fix-prefix.patch
export PATH="$PATH:$HOME/ppc/usr/bin"
make CC=powerpc-apple-darwin10-gcc-4.2.1 CFLAGS="-I$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/include/gcc/darwin/3.3 -isysroot $HOME/ppc/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3" LDFLAGS="-F$HOME/ppc/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib/system -Wl,-syslibroot,$HOME/ppc/SDKs/MacOSX10.3.9.sdk"
make install
patch -p1 -R < ../.github/patches/utf8proc/2-fix-prefix.patch
popd
- name: 'Build utf8proc (x86_64)'
if: steps.cache-x86_64-dependencies.outputs.cache-hit != 'true'
run: |
pushd utf8proc-$UTF8PROC_VERSION
mkdir build_x86_64
cd build_x86_64
LDFLAGS="-F$HOME/x86_64/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/x86_64/SDKs/MacOSX10.9.sdk" cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$HOME/x86_64prefix" -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET="10.7" -DCMAKE_OSX_SYSROOT="$HOME/x86_64/SDKs/MacOSX10.9.sdk" -DBUILD_SHARED_LIBS=1
make
make install
popd
- name: 'Build utf8proc (arm64)'
if: steps.cache-arm64-dependencies.outputs.cache-hit != 'true'
run: |
pushd utf8proc-$UTF8PROC_VERSION
mkdir build_arm64
cd build_arm64
cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$HOME/arm64prefix" -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET="11.0" -DCMAKE_OSX_SYSROOT="$HOME/arm64/SDKs/MacOSX11.0.sdk" -DBUILD_SHARED_LIBS=1
make
make install
popd
- name: 'Build Schism'
run: |
autoreconf -I"$HOME/x86_64prefix/share/aclocal" -i
(export PATH="$PATH:$HOME/ppc/usr/bin" && export PKG_CONFIG_PATH="$HOME/ppcprefix/lib/pkgconfig" && mkdir build_powerpc && cd build_powerpc && ../configure CC=powerpc-apple-darwin10-gcc-4.2.1 CPP=powerpc-apple-darwin10-cpp-4.2.1 OBJC=powerpc-apple-darwin10-gcc-4.2.1 CXX=powerpc-apple-darwin10-g++-4.2.1 CPPFLAGS="-I$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/include/gcc/darwin/3.3 -isysroot $HOME/ppc/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3" LDFLAGS="-L$HOME/ppcprefix/lib -lSDL2 -F$HOME/ppc/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks -L$HOME/ppc/SDKs/MacOSX10.3.9.sdk/usr/lib/gcc/powerpc-apple-darwin9/4.0.1 -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/ppc/SDKs/MacOSX10.3.9.sdk -L$HOME/ppc/SDKs/MacOSX10.5.sdk/usr/lib $HOME/ppc/SDKs/MacOSX10.5.sdk/usr/lib/libgcc_s.1.dylib" SDL2_CFLAGS="-I$HOME/ppcprefix/include/SDL2" SDL2_LIBS="-L$HOME/ppcprefix/lib -lSDL2" --host=powerpc-apple-darwin10 --prefix="$HOME/ppcprefix" --with-sdl-prefix="$HOME/ppcprefix" --with-flac --without-sdl12 --enable-flac-linking --enable-sdl2-linking && make) &
(export MACOSX_DEPLOYMENT_TARGET="10.9" && export PKG_CONFIG_PATH="$HOME/x86_64prefix/lib/pkgconfig" && mkdir build_x86_64 && cd build_x86_64 && ../configure CPPFLAGS="-arch x86_64 -mmacosx-version-min=10.7 -DMAC_OS_X_VERSION_MIN_REQUIRED=1070 -isysroot $HOME/x86_64/SDKs/MacOSX10.9.sdk" CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64 -F$HOME/x86_64/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -L/usr/lib -L/usr/lib/system -Wl,-syslibroot,$HOME/x86_64/SDKs/MacOSX10.9.sdk" --host=x86_64-apple-darwin13 --prefix="$HOME/x86_64prefix" --with-sdl-prefix="$HOME/x86_64prefix" --with-flac --without-sdl12 --enable-flac-linking --enable-sdl2-linking && make && strip -S schismtracker) &
(export MACOSX_DEPLOYMENT_TARGET="11.0" && export PKG_CONFIG_PATH="$HOME/arm64prefix/lib/pkgconfig" && mkdir build_arm64 && cd build_arm64 && ../configure CPPFLAGS="-arch arm64 -mmacosx-version-min=11.0 -isysroot $HOME/arm64/SDKs/MacOSX11.0.sdk" OBJCFLAGS="-arch arm64" CFLAGS="-arch arm64" CXXFLAGS="-arch arm64" LDFLAGS="-arch arm64" --host=aarch64-apple-darwin20 --prefix="$HOME/arm64prefix" --with-sdl-prefix="$HOME/arm64prefix" --with-flac --without-sdl12 --enable-flac-linking --enable-sdl2-linking && make && make install) &
wait
cd ../..
- name: 'Package Schism'
run: |
for i in FLAC.12 ogg.0; do
"$HOME/ppc/usr/bin/install_name_tool" -change "$HOME/ppcprefix/lib/lib${i}.dylib" @executable_path/../Resources/lib${i}.dylib build_powerpc/schismtracker
install_name_tool -change "$HOME/x86_64prefix/lib/lib${i}.dylib" @executable_path/../Resources/lib${i}.dylib build_x86_64/schismtracker
install_name_tool -change "$HOME/arm64prefix/lib/lib${i}.dylib" @executable_path/../Resources/lib${i}.dylib build_arm64/schismtracker
done
# I wonder where I stole this SDL2 binary from :)
"$HOME/ppc/usr/bin/install_name_tool" -change "/Applications/PPCMC.app/lib/libSDL2-2.0.0.dylib" @executable_path/../Resources/libSDL2-2.0.0.dylib build_powerpc/schismtracker
install_name_tool -change "$HOME/x86_64prefix/lib/libSDL2-2.0.0.dylib" @executable_path/../Resources/libSDL2-2.0.0.dylib build_x86_64/schismtracker
install_name_tool -change "$HOME/arm64prefix/lib/libSDL2-2.0.0.dylib" @executable_path/../Resources/libSDL2-2.0.0.dylib build_arm64/schismtracker
"$HOME/ppc/usr/bin/install_name_tool" -change "$HOME/ppcprefix/lib/libutf8proc.3.dylib" @executable_path/../Resources/libutf8proc.3.dylib build_powerpc/schismtracker
install_name_tool -change "@rpath/libutf8proc.3.dylib" @executable_path/../Resources/libutf8proc.3.dylib build_x86_64/schismtracker
install_name_tool -change "@rpath/libutf8proc.3.dylib" @executable_path/../Resources/libutf8proc.3.dylib build_arm64/schismtracker
"$HOME/ppc/usr/bin/install_name_tool" -change "$HOME/ppcprefix/lib/libogg.0.dylib" @executable_path/../Resources/libogg.0.dylib "$HOME/ppcprefix/lib/libFLAC.12.dylib"
install_name_tool -change "$HOME/x86_64prefix/lib/libogg.0.dylib" @executable_path/../Resources/libogg.0.dylib "$HOME/x86_64prefix/lib/libFLAC.12.dylib"
install_name_tool -change "$HOME/arm64prefix/lib/libogg.0.dylib" @executable_path/../Resources/libogg.0.dylib "$HOME/arm64prefix/lib/libFLAC.12.dylib"
# powerpc specific crap
"$HOME/ppc/usr/bin/install_name_tool" -change "$HOME/ppc/SDKs/MacOSX10.5.sdk/usr/lib/libgcc_s.1.dylib" @executable_path/../Resources/libgcc_s.1.dylib build_powerpc/schismtracker
lipo -create -o schismtracker build_powerpc/schismtracker build_x86_64/schismtracker build_arm64/schismtracker
cd sys/macosx/Schism_Tracker.app/Contents/
sed -i .bak "s;<string>CFBundle.*Version.*</string>;<string>$(date +%Y%m%d)</string>;" Info.plist
rm Info.plist.bak
mkdir MacOS
cp ../../../../schismtracker MacOS
for i in SDL2-2.0.0 FLAC.12 ogg.0 utf8proc.3; do
lipo -create -o "Resources/lib${i}.dylib" "$HOME/x86_64prefix/lib/lib${i}.dylib" "$HOME/ppcprefix/lib/lib${i}.dylib" "$HOME/arm64prefix/lib/lib${i}.dylib"
done
cp "$HOME/ppc/SDKs/MacOSX10.5.sdk/usr/lib/libgcc_s.1.dylib" "Resources/libgcc_s.1.dylib"
cd ../../../..
cp -r sys/macosx/Schism_Tracker.app Schism\ Tracker.app
cp docs/configuration.md .
wget https://raw.githubusercontent.com/xiph/flac/master/COPYING.Xiph
zip -r schismtracker.zip configuration.md COPYING COPYING.Xiph README.md Schism\ Tracker.app
- name: 'Upload artifact'
uses: actions/upload-artifact@v4
with:
name: schismtracker-${{ steps.date.outputs.date }}-macos
path: schismtracker.zip