mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-04-07 20:41:50 +02:00
Also added efornara's crossbuild - build containers - I'm planning to work them into the current build container stack, likely with lots of modifications. (https://github.com/efornara/crossbuild)
This commit is contained in:
parent
cb739deb8e
commit
a197623126
4
misc/build-containers-frt/.gitignore
vendored
Normal file
4
misc/build-containers-frt/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.o
|
||||||
|
*.bin
|
||||||
|
build/
|
||||||
|
.clang-format
|
24
misc/build-containers-frt/LICENSE
Normal file
24
misc/build-containers-frt/LICENSE
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more information, please refer to <http://unlicense.org/>
|
7
misc/build-containers-frt/README
Normal file
7
misc/build-containers-frt/README
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
https://github.com/efornara/crossbuild - 0e6be47aa48d4f1dbd47410d64027b67ac091f38
|
||||||
|
|
||||||
|
patreon: efornaralabs
|
||||||
|
|
||||||
|
Docker files to cross-compile SDL2-based projects for single board computers.
|
||||||
|
|
||||||
|
Very permissive license (http://unlicense.org/).
|
5
misc/build-containers-frt/docker/Dockerfile.arm32v7
Normal file
5
misc/build-containers-frt/docker/Dockerfile.arm32v7
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM crossbuild:base
|
||||||
|
RUN dpkg --add-architecture armhf && apt-get update && apt-get install -y -q \
|
||||||
|
crossbuild-essential-armhf
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
libstdc++-8-dev:armhf libsdl2-dev:armhf libgbm-dev:armhf libsamplerate0-dev:armhf
|
5
misc/build-containers-frt/docker/Dockerfile.arm64v8
Normal file
5
misc/build-containers-frt/docker/Dockerfile.arm64v8
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM crossbuild:base
|
||||||
|
RUN dpkg --add-architecture arm64 && apt-get update && apt-get install -y -q \
|
||||||
|
crossbuild-essential-arm64
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
libstdc++-8-dev:arm64 libsdl2-dev:arm64 libgbm-dev:arm64 libsamplerate0-dev:arm64
|
10
misc/build-containers-frt/docker/Dockerfile.base
Normal file
10
misc/build-containers-frt/docker/Dockerfile.base
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
FROM debian:buster-backports
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
RUN apt-get update && apt-get upgrade -y && \
|
||||||
|
apt-get install --no-install-recommends -y -q \
|
||||||
|
git-core vim-nox wget less nvi tmux lynx
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
build-essential clang llvm lld python3-pip
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
-t buster-backports cmake ninja-build
|
||||||
|
RUN python3 -m pip install scons meson
|
11
misc/build-containers-frt/docker/Dockerfile.droid
Normal file
11
misc/build-containers-frt/docker/Dockerfile.droid
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM debian:bullseye
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
RUN apt-get update && apt-get upgrade -y && \
|
||||||
|
apt-get install --no-install-recommends -y -q \
|
||||||
|
git-core vim-nox wget less nvi tmux lynx
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
scons cmake ninja-build
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
unzip curl openjdk-11-jdk-headless
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
python3-protobuf
|
3
misc/build-containers-frt/docker/Dockerfile.x86_64
Normal file
3
misc/build-containers-frt/docker/Dockerfile.x86_64
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM crossbuild:base
|
||||||
|
RUN apt-get install -y -q \
|
||||||
|
libstdc++-8-dev libsdl2-dev libgbm-dev libsamplerate0-dev
|
6
misc/build-containers-frt/docker/build.sh
Executable file
6
misc/build-containers-frt/docker/build.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
[ -f Dockerfile.$1 ]
|
||||||
|
|
||||||
|
exec docker build -t crossbuild:$1 -f Dockerfile.$1 .
|
15
misc/build-containers-frt/docker/docker.sh
Executable file
15
misc/build-containers-frt/docker/docker.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ $# -ne 1 ] ; then
|
||||||
|
echo 'usage: docker.sh arch'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec docker run -it --rm \
|
||||||
|
-v /etc/passwd:/etc/passwd:ro \
|
||||||
|
-v /etc/shadow:/etc/shadow:ro \
|
||||||
|
-v /etc/group:/etc/group:ro \
|
||||||
|
-v /opt:/opt \
|
||||||
|
-v $HOME:$HOME \
|
||||||
|
crossbuild:$1
|
31
misc/build-containers-frt/scripts/build_sdl2
Executable file
31
misc/build-containers-frt/scripts/build_sdl2
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
script=$(readlink -f "$0")
|
||||||
|
script_path=$(dirname "$script")
|
||||||
|
. $script_path/detect
|
||||||
|
|
||||||
|
if [ -z "$SDL2_SRC" ] ; then
|
||||||
|
echo "SDL2_SRC not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
toplevel=`git rev-parse --show-toplevel`
|
||||||
|
obj="$toplevel/build/obj/$tag-sdl2"
|
||||||
|
|
||||||
|
mkdir -p $obj
|
||||||
|
cd $obj
|
||||||
|
|
||||||
|
if [ ! -f $obj/Makefile -o "x$1" = "xconfig" ] ; then
|
||||||
|
export CFLAGS="$archflags"
|
||||||
|
export CXXFLAGS="$archflags"
|
||||||
|
"$SDL2_SRC/configure" \
|
||||||
|
--prefix="$toplevel/build/bin/$tag-sdl2" \
|
||||||
|
--host=$host \
|
||||||
|
--disable-render \
|
||||||
|
--enable-video-kmsdrm \
|
||||||
|
--disable-video-vulkan \
|
||||||
|
#
|
||||||
|
fi
|
||||||
|
|
||||||
|
nice make -j 2
|
||||||
|
make install
|
48
misc/build-containers-frt/scripts/detect
Normal file
48
misc/build-containers-frt/scripts/detect
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Detect Build Environment
|
||||||
|
|
||||||
|
#
|
||||||
|
# Example of platform override:
|
||||||
|
#
|
||||||
|
# platform=arm8 ./build_hello
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -z "$platform" ] ; then
|
||||||
|
if [ -x /usr/bin/arm-linux-gnueabihf-gcc ] ; then
|
||||||
|
if [ -x /usr/bin/x86_64-linux-gnu-gcc ] ; then
|
||||||
|
platform=arm7
|
||||||
|
else
|
||||||
|
# if not cross-compiling on x86_64, assume raspbian
|
||||||
|
platform=arm6
|
||||||
|
fi
|
||||||
|
elif [ -x /usr/bin/aarch64-linux-gnu-gcc ] ; then
|
||||||
|
platform=arm8
|
||||||
|
else
|
||||||
|
platform=pc
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$platform" = arm6 ] ; then
|
||||||
|
host=arm-linux-gnueabihf
|
||||||
|
tag=linux-arm32v6
|
||||||
|
archflags="-march=armv6 -mfpu=vfp -mfloat-abi=hard"
|
||||||
|
elif [ "$platform" = arm7 ] ; then
|
||||||
|
host=arm-linux-gnueabihf
|
||||||
|
tag=linux-arm32v7
|
||||||
|
archflags="-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard"
|
||||||
|
elif [ "$platform" = arm8 ] ; then
|
||||||
|
host=aarch64-linux-gnu
|
||||||
|
tag=linux-arm64v8
|
||||||
|
archflags="-march=armv8-a"
|
||||||
|
elif [ "$platform" = pc ] ; then
|
||||||
|
host=x86_64-linux-gnu
|
||||||
|
tag=linux-x86_64
|
||||||
|
archflags=""
|
||||||
|
else
|
||||||
|
echo "detect: unknown platform: '$platform'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "detect:"
|
||||||
|
echo " host: $host"
|
||||||
|
echo " tag: $tag"
|
||||||
|
echo " archflags: $archflags"
|
10
misc/build-containers-frt/toolchains/linux-arm32v6-gcc.cmake
Normal file
10
misc/build-containers-frt/toolchains/linux-arm32v6-gcc.cmake
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR ARM)
|
||||||
|
|
||||||
|
set(archOpts "-march=armv6 -mfpu=vfp -mfloat-abi=hard")
|
||||||
|
set(ccOpts "")
|
||||||
|
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
|
||||||
|
set(CMAKE_C_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR ARM)
|
||||||
|
|
||||||
|
set(archOpts "-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard")
|
||||||
|
set(ccOpts "-target arm-linux-gnueabihf")
|
||||||
|
set(CMAKE_C_COMPILER clang)
|
||||||
|
set(CMAKE_CXX_COMPILER clang++)
|
||||||
|
set(CMAKE_C_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
|
10
misc/build-containers-frt/toolchains/linux-arm32v7-gcc.cmake
Normal file
10
misc/build-containers-frt/toolchains/linux-arm32v7-gcc.cmake
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR ARM)
|
||||||
|
|
||||||
|
set(archOpts "-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard")
|
||||||
|
set(ccOpts "")
|
||||||
|
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
|
||||||
|
set(CMAKE_C_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR ARM)
|
||||||
|
|
||||||
|
set(archOpts "-march=armv8-a")
|
||||||
|
set(ccOpts "-target aarch64-linux-gnu")
|
||||||
|
set(CMAKE_C_COMPILER clang)
|
||||||
|
set(CMAKE_CXX_COMPILER clang++)
|
||||||
|
set(CMAKE_C_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR ARM)
|
||||||
|
|
||||||
|
set(archOpts "-march=armv8-a")
|
||||||
|
set(ccOpts "")
|
||||||
|
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
|
||||||
|
set(CMAKE_C_FLAGS "${archOpts} ${ccOpts}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${archOpts} ${ccOpts}")
|
Loading…
Reference in New Issue
Block a user