59 lines
2.4 KiB
Bash
59 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Blog post for setting up arm multiarch docker images:
|
|
# Cross Building and Running Multi-Arch Docker Images
|
|
# https://www.ecliptik.com/Cross-Building-and-Running-Multi-Arch-Docker-Images/
|
|
#
|
|
# this link might be more relevant for modern docker: https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux
|
|
# TL;DR:
|
|
# apt-get install qemu-user-static
|
|
# docker run --rm --privileged multiarch/qemu-user-static:register
|
|
#
|
|
# To test docker images, run something like this:
|
|
# docker run -v /epic:/epic -it --platform linux/arm64 rockylinux/rockylinux:8.4 /bin/bash
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "$BASH_SOURCE")" ; pwd)
|
|
SDL_DIR=${SCRIPT_DIR}/../SDL-gui-backend
|
|
|
|
DISTRO=${1:-Rocky8}
|
|
|
|
BuildSDL3WithDocker()
|
|
{
|
|
local Arch=$1
|
|
local Platform=$2
|
|
local Image=$3
|
|
local ImageName=temp_build_linux_sdl3
|
|
local LibDir=${SDL_DIR}/lib/Unix/${Arch}
|
|
|
|
echo Building ${Arch}...
|
|
echo docker run -t --name ${ImageName} --platform ${Platform} -v ${SCRIPT_DIR}/../../Vulkan:/Vulkan -v ${SDL_DIR}:/SDL-gui-backend -v ${SCRIPT_DIR}:/src ${Image} /src/docker-build-sdl3.sh
|
|
#docker run -it --name ${ImageName} --platform ${Platform} -v ${SCRIPT_DIR}/../../Vulkan:/Vulkan -v ${SDL_DIR}:/SDL-gui-backend -v ${SCRIPT_DIR}:/src ${Image} bash -c "/src/docker-build-sdl3.sh ${DISTRO} ; bash"
|
|
docker run -it --name ${ImageName} --platform ${Platform} -v ${SCRIPT_DIR}/../../Vulkan:/Vulkan -v ${SDL_DIR}:/SDL-gui-backend -v ${SCRIPT_DIR}:/src ${Image} bash -c "/src/docker-build-sdl3.sh ${DISTRO}"
|
|
|
|
echo Copying files...
|
|
mkdir -p ${LibDir}
|
|
rm -rf ${LibDir}/libSDL3*.a
|
|
|
|
docker cp ${ImageName}:/build/libSDL3_fPIC_Debug.a ${LibDir}/
|
|
docker cp ${ImageName}:/build/libSDL3.a ${LibDir}/
|
|
docker cp ${ImageName}:/build/libSDL3_fPIC.a ${LibDir}/
|
|
|
|
echo Cleaning up...
|
|
docker rm ${ImageName}
|
|
}
|
|
|
|
sudo docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3
|
|
|
|
if [ ${DISTRO} == "CentOS7" ]; then
|
|
echo Building SDL on CentOS 7
|
|
BuildSDL3WithDocker x86_64-unknown-linux-gnu linux/amd64 centos:7
|
|
BuildSDL3WithDocker aarch64-unknown-linux-gnueabi linux/arm64 centos:7
|
|
elif [ ${DISTRO} == "Rocky8" ]; then
|
|
echo Building SDL on Rocky 8.4
|
|
BuildSDL3WithDocker x86_64-unknown-linux-gnu linux/amd64 rockylinux/rockylinux:8.4
|
|
BuildSDL3WithDocker aarch64-unknown-linux-gnueabi linux/arm64 rockylinux/rockylinux:8.4
|
|
else
|
|
echo Unsupported distro: ${DISTRO}
|
|
exit 1
|
|
fi
|