diff --git a/Packaging/OpenDingux/build-retrofw.sh b/Packaging/OpenDingux/build-retrofw.sh index 7c869df64..cc8d9f948 100755 --- a/Packaging/OpenDingux/build-retrofw.sh +++ b/Packaging/OpenDingux/build-retrofw.sh @@ -1,55 +1,2 @@ #!/usr/bin/env bash - -set -euo pipefail - -declare -r DIR="$(dirname "${BASH_SOURCE[0]}")" -cd "$DIR" -declare -r ABSDIR="$(pwd)" - -declare -r BUILDROOT_VER=buildroot-2018.02.9 -BUILDROOT="${BUILDROOT:-$HOME/${BUILDROOT_VER}-retrofw}" - -declare -r BUILDROOT_ARCHIVE="$HOME/${BUILDROOT_VER}.tar.gz" - -set -x - -main() { - set -x - prepare_buildroot - build - package -} - -prepare_buildroot() { - if [[ -d $BUILDROOT ]]; then - return - fi - if [[ ! -f $BUILDROOT_ARCHIVE ]]; then - \curl https://buildroot.org/downloads/${BUILDROOT_VER}.tar.gz -o "$BUILDROOT_ARCHIVE" - fi - - tar xf "$BUILDROOT_ARCHIVE" -C "$(dirname "$BUILDROOT_ARCHIVE")" - mv "${BUILDROOT_ARCHIVE%.tar.gz}" "$BUILDROOT" - cp buildroot_retrofw_defconfig "$BUILDROOT/configs/retrofw_defconfig" - cd "$BUILDROOT" - echo 'LIBSODIUM_CONF_OPTS += --enable-static' >> package/libsodium/libsodium.mk - make retrofw_defconfig - BR2_JLEVEL=0 make toolchain libsodium libzip sdl sdl_mixer sdl_ttf - cd - -} - -build() { - mkdir -p ../../build - cd ../../build - rm -f CMakeCache.txt - cmake .. -DDINGUX=ON -DRETROFW=ON -DUSE_SDL1=ON -DBINARY_RELEASE=ON \ - -DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/share/buildroot/toolchainfile.cmake" - make -j $(nproc) - cd - -} - -package() { - ./package-ipk.sh ../../build/devilutionx-retrofw.ipk -} - -main +./build.sh retrofw diff --git a/Packaging/OpenDingux/build-rg350.sh b/Packaging/OpenDingux/build-rg350.sh index 75233e0e4..bd5cc8eac 100755 --- a/Packaging/OpenDingux/build-rg350.sh +++ b/Packaging/OpenDingux/build-rg350.sh @@ -1,46 +1,2 @@ #!/usr/bin/env bash - -set -euo pipefail - -declare -r DIR="$(dirname "${BASH_SOURCE[0]}")" -cd "$DIR" -declare -r ABSDIR="$(pwd)" - -BUILDROOT="${BUILDROOT:-$HOME/buildroot-rg350-devilutionx}" - -set -x - -main() { - set -x - prepare_buildroot - build - package -} - -prepare_buildroot() { - if [[ -d $BUILDROOT ]]; then - return - fi - git clone --depth=1 https://github.com/tonyjih/RG350_buildroot.git "$BUILDROOT" - cp buildroot_rg350_defconfig "$BUILDROOT/configs/rg350_devilutionx_defconfig" - cd "$BUILDROOT" - make rg350_devilutionx_defconfig - BR2_JLEVEL=0 make - cd - -} - -build() { - mkdir -p ../../build - cd ../../build - rm -f CMakeCache.txt - cmake .. -DDINGUX=ON -DBINARY_RELEASE=ON -DNONET=ON \ - -DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/usr/share/buildroot/toolchainfile.cmake" - make -j $(nproc) - cd - -} - -package() { - ./package-opk.sh ../../build/devilutionx-rg350.opk -} - -main +./build.sh rg350 diff --git a/Packaging/OpenDingux/build-rs90.sh b/Packaging/OpenDingux/build-rs90.sh index b70661562..b288649bd 100755 --- a/Packaging/OpenDingux/build-rs90.sh +++ b/Packaging/OpenDingux/build-rs90.sh @@ -1,47 +1,2 @@ #!/usr/bin/env bash - -set -euo pipefail - -declare -r DIR="$(dirname "${BASH_SOURCE[0]}")" -cd "$DIR" -declare -r ABSDIR="$(pwd)" - -BUILDROOT="${BUILDROOT:-$HOME/buildroot-rs90-devilutionx}" - -set -x - -main() { - set -x - prepare_buildroot - build - package -} - -prepare_buildroot() { - if [[ -d $BUILDROOT ]]; then - return - fi - git clone --depth=1 -b od-rs90 https://github.com/OpenDingux/buildroot.git "$BUILDROOT" - cp buildroot_rs90_defconfig "$BUILDROOT/configs/rs90_devilutionx_defconfig" - cd "$BUILDROOT" - echo 'LIBSODIUM_CONF_OPTS += --enable-static' >> package/libsodium/libsodium.mk - make rs90_devilutionx_defconfig - BR2_JLEVEL=0 make toolchain libsodium libzip sdl sdl_mixer sdl_ttf - cd - -} - -build() { - mkdir -p ../../build - cd ../../build - rm -f CMakeCache.txt - cmake .. -DDINGUX=ON -DUSE_SDL1=ON -DBINARY_RELEASE=ON \ - -DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/share/buildroot/toolchainfile.cmake" - make -j $(nproc) - cd - -} - -package() { - ./package-opk.sh ../../build/devilutionx-rs90.opk -} - -main +./build.sh rs90 diff --git a/Packaging/OpenDingux/build.sh b/Packaging/OpenDingux/build.sh new file mode 100755 index 000000000..0f682b606 --- /dev/null +++ b/Packaging/OpenDingux/build.sh @@ -0,0 +1,103 @@ +#!/usr/bin/env bash + +set -euo pipefail + +usage() { + echo "Usage: build.sh [target]" + echo " target: target architecture. Either rs90, rg350 or retrofw" +} + +if [[ $# -ne 1 ]]; then + echo "Error: target is missing" + usage + exit 1 +fi + +if [[ "$1" != "rs90" ]] && [[ "$1" != "rg350" ]] && [[ "$1" != "retrofw" ]]; then + echo "Error: invalid target" + usage + exit 1 +fi + +declare -r TARGET="${1}" +echo "Building for target: ${TARGET}" + +declare -r DIR="$(dirname "${BASH_SOURCE[0]}")" +cd "$DIR" +declare -r ABSDIR="$(pwd)" + +if [[ "$TARGET" == "retrofw" ]]; then + declare -r BUILDROOT_VER=buildroot-2018.02.9 + declare -r BUILDROOT_ARCHIVE="$HOME/${BUILDROOT_VER}.tar.gz" +fi + +BUILDROOT="${BUILDROOT:-$HOME/buildroot-${TARGET}-devilutionx}" + +set -x + +main() { + set -x + prepare_buildroot + make_buildroot + build + package +} + +prepare_buildroot() { + if [[ -d $BUILDROOT ]]; then + return + fi + if [[ "$TARGET" == "rg350" ]]; then + git clone --depth=1 https://github.com/tonyjih/RG350_buildroot.git "$BUILDROOT" + elif [[ "$TARGET" == "rs90" ]]; then + git clone --depth=1 -b od-rs90 https://github.com/OpenDingux/buildroot.git "$BUILDROOT" + else + if [[ ! -f $BUILDROOT_ARCHIVE ]]; then + \curl https://buildroot.org/downloads/${BUILDROOT_VER}.tar.gz -o "$BUILDROOT_ARCHIVE" + fi + tar xf "$BUILDROOT_ARCHIVE" -C "$(dirname "$BUILDROOT_ARCHIVE")" + mv "${BUILDROOT_ARCHIVE%.tar.gz}" "$BUILDROOT" + fi + cp buildroot_${TARGET}_defconfig "$BUILDROOT/configs/${TARGET}_devilutionx_defconfig" +} + +make_buildroot() { + cd "$BUILDROOT" + if [[ "$TARGET" != "rg350" ]]; then + echo 'LIBSODIUM_CONF_OPTS += --enable-static' >> package/libsodium/libsodium.mk + fi + make ${TARGET}_devilutionx_defconfig + if [[ "$TARGET" == "rg350" ]]; then + BR2_JLEVEL=0 make + else + BR2_JLEVEL=0 make toolchain libsodium libzip sdl sdl_mixer sdl_ttf + fi + cd - +} + +build() { + mkdir -p ../../build + cd ../../build + rm -f CMakeCache.txt + if [[ "$TARGET" == "rg350" ]]; then + TARGET_DEFINES="-DNONET=ON" + elif [[ "$TARGET" == "rs90" ]]; then + TARGET_DEFINES="-DUSE_SDL1=ON" + else + TARGET_DEFINES="-DRETROFW=ON -DUSE_SDL1=ON" + fi + cmake .. -DDINGUX=ON -DBINARY_RELEASE=ON ${TARGET_DEFINES} \ + -DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/usr/share/buildroot/toolchainfile.cmake" + make -j $(nproc) + cd - +} + +package() { + if [[ "$TARGET" == "retrofw" ]]; then + ./package-ipk.sh ../../build/devilutionx-retrofw.ipk + else + ./package-opk.sh ../../build/devilutionx-${TARGET}.opk + fi +} + +main diff --git a/Packaging/OpenDingux/buildroot_rg350_defconfig b/Packaging/OpenDingux/buildroot_rg350_defconfig index 403658289..34c06b8f4 100644 --- a/Packaging/OpenDingux/buildroot_rg350_defconfig +++ b/Packaging/OpenDingux/buildroot_rg350_defconfig @@ -10,6 +10,7 @@ BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-lto" BR2_GCC_VERSION_4_9_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-lto" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_PACKAGE_SDL2=y BR2_PACKAGE_SDL2_IMAGE=y BR2_PACKAGE_SDL2_IMAGE_PNG=y BR2_PACKAGE_SDL2_MIXER=y