From 56b77eb6337ae8ab5d2fcb379691cf9a33957e29 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Mon, 14 Oct 2019 23:52:35 +0100 Subject: [PATCH] Packages for RG350 and GCW0 --- CMakeLists.txt | 3 ++ Packaging/OpenDingux/build-retrofw.sh | 5 +- Packaging/OpenDingux/build-rg350.sh | 46 +++++++++++++++++++ ...build-opendingux-sdl1.sh => build-rs90.sh} | 19 +++----- .../OpenDingux/buildroot_rg350_defconfig | 20 ++++++++ ...usl_defconfig => buildroot_rs90_defconfig} | 5 ++ Packaging/OpenDingux/control | 2 +- ...nx.man.txt => devilutionx-retrofw.man.txt} | 0 .../OpenDingux/{package.sh => package-ipk.sh} | 3 +- Packaging/OpenDingux/package-opk.sh | 33 +++++++++++++ Packaging/OpenDingux/readme.gcw0.txt | 9 ++++ README.md | 24 +++++++--- 12 files changed, 146 insertions(+), 23 deletions(-) create mode 100755 Packaging/OpenDingux/build-rg350.sh rename Packaging/OpenDingux/{build-opendingux-sdl1.sh => build-rs90.sh} (52%) create mode 100644 Packaging/OpenDingux/buildroot_rg350_defconfig rename Packaging/OpenDingux/{buildroot_opendingux_musl_defconfig => buildroot_rs90_defconfig} (65%) rename Packaging/OpenDingux/{devilutionx.man.txt => devilutionx-retrofw.man.txt} (100%) rename Packaging/OpenDingux/{package.sh => package-ipk.sh} (90%) create mode 100755 Packaging/OpenDingux/package-opk.sh create mode 100644 Packaging/OpenDingux/readme.gcw0.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cea71c1b..5640c47fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,6 +316,9 @@ foreach(target devilution devilutionx) if(DINGUX) target_compile_definitions(${target} PRIVATE DINGUX) endif() + if(RETROFW) + target_compile_definitions(${target} PRIVATE RETROFW) + endif() endforeach(target devilution devilutionx) if(DIST AND CMAKE_CXX_COMPILER_ID MATCHES "GCC") diff --git a/Packaging/OpenDingux/build-retrofw.sh b/Packaging/OpenDingux/build-retrofw.sh index 2b4c19eb9..7c869df64 100755 --- a/Packaging/OpenDingux/build-retrofw.sh +++ b/Packaging/OpenDingux/build-retrofw.sh @@ -42,13 +42,14 @@ build() { mkdir -p ../../build cd ../../build rm -f CMakeCache.txt - cmake .. -DDINGUX=ON -DUSE_SDL1=ON -DBINARY_RELEASE=ON \ + 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.sh ../../build/devilutionx-retrofw-uclibc-sdl1.ipk + ./package-ipk.sh ../../build/devilutionx-retrofw.ipk } main diff --git a/Packaging/OpenDingux/build-rg350.sh b/Packaging/OpenDingux/build-rg350.sh new file mode 100755 index 000000000..75233e0e4 --- /dev/null +++ b/Packaging/OpenDingux/build-rg350.sh @@ -0,0 +1,46 @@ +#!/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 diff --git a/Packaging/OpenDingux/build-opendingux-sdl1.sh b/Packaging/OpenDingux/build-rs90.sh similarity index 52% rename from Packaging/OpenDingux/build-opendingux-sdl1.sh rename to Packaging/OpenDingux/build-rs90.sh index b2febf0b0..b70661562 100755 --- a/Packaging/OpenDingux/build-opendingux-sdl1.sh +++ b/Packaging/OpenDingux/build-rs90.sh @@ -6,10 +6,7 @@ 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}-opendingux-musl}" - -declare -r BUILDROOT_ARCHIVE="$HOME/${BUILDROOT_VER}.tar.gz" +BUILDROOT="${BUILDROOT:-$HOME/buildroot-rs90-devilutionx}" set -x @@ -24,16 +21,11 @@ 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_opendingux_musl_defconfig "$BUILDROOT/configs/opendingux_musl_defconfig" + 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 opendingux_musl_defconfig + make rs90_devilutionx_defconfig BR2_JLEVEL=0 make toolchain libsodium libzip sdl sdl_mixer sdl_ttf cd - } @@ -44,11 +36,12 @@ 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.sh ../../build/devilutionx-opendingux-musl-sdl1.ipk + ./package-opk.sh ../../build/devilutionx-rs90.opk } main diff --git a/Packaging/OpenDingux/buildroot_rg350_defconfig b/Packaging/OpenDingux/buildroot_rg350_defconfig new file mode 100644 index 000000000..403658289 --- /dev/null +++ b/Packaging/OpenDingux/buildroot_rg350_defconfig @@ -0,0 +1,20 @@ +BR2_mipsel=y +BR2_mips_32r2=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_OPTIMIZE_2=y +BR2_KERNEL_HEADERS_3_12=y +BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y +BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +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_IMAGE=y +BR2_PACKAGE_SDL2_IMAGE_PNG=y +BR2_PACKAGE_SDL2_MIXER=y +BR2_PACKAGE_SDL2_TTF=y +BR2_PACKAGE_ETNA_VIV=y +BR2_PACKAGE_ETNA_VIV_ABIV4=y +BR2_PACKAGE_MESA3D_ETNA_VIV=y +BR2_PACKAGE_LIBZIP=y diff --git a/Packaging/OpenDingux/buildroot_opendingux_musl_defconfig b/Packaging/OpenDingux/buildroot_rs90_defconfig similarity index 65% rename from Packaging/OpenDingux/buildroot_opendingux_musl_defconfig rename to Packaging/OpenDingux/buildroot_rs90_defconfig index 361c67c16..b978eccfb 100644 --- a/Packaging/OpenDingux/buildroot_opendingux_musl_defconfig +++ b/Packaging/OpenDingux/buildroot_rs90_defconfig @@ -1,7 +1,12 @@ BR2_mipsel=y # BR2_MIPS_SOFT_FLOAT is not set +BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_BUILDROOT_MUSL=y +BR2_KERNEL_HEADERS_4_20=y +BR2_BINUTILS_VERSION_2_31_X=y +BR2_GCC_VERSION_8_X=y BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_GCC_ENABLE_LTO=y BR2_PACKAGE_SDL=y BR2_PACKAGE_SDL_MIXER=y BR2_PACKAGE_SDL_TTF=y diff --git a/Packaging/OpenDingux/control b/Packaging/OpenDingux/control index 365371a8e..4b50d521b 100644 --- a/Packaging/OpenDingux/control +++ b/Packaging/OpenDingux/control @@ -3,7 +3,7 @@ Version: 0.0.1 Architecture: mipsel Section: games Maintainer: glex.spb@gmail.com -Description: A port of DevilutionX for OpenDingux / RetroFW. +Description: A port of DevilutionX for RetroFW. Priority: optional Homepage: https://github.com/diasurgical/devilutionX Depends: diff --git a/Packaging/OpenDingux/devilutionx.man.txt b/Packaging/OpenDingux/devilutionx-retrofw.man.txt similarity index 100% rename from Packaging/OpenDingux/devilutionx.man.txt rename to Packaging/OpenDingux/devilutionx-retrofw.man.txt diff --git a/Packaging/OpenDingux/package.sh b/Packaging/OpenDingux/package-ipk.sh similarity index 90% rename from Packaging/OpenDingux/package.sh rename to Packaging/OpenDingux/package-ipk.sh index b0b9e7500..5b6799c7b 100755 --- a/Packaging/OpenDingux/package.sh +++ b/Packaging/OpenDingux/package-ipk.sh @@ -29,7 +29,8 @@ mkdir -p "${TMP}" mkdir -p "${TMP}/root/${PKG_INSTALL_DIR}" "${TMP}/root/${PKG_LOCAL_DIR}" cp "$IN" "${TMP}/root/${PKG_INSTALL_DIR}/${PKG_TARGET}.dge" cp ../resources/Diablo_32.png "${TMP}/root/${PKG_INSTALL_DIR}/devilutionx.png" -cp devilutionx.man.txt ../resources/CharisSILB.ttf ../resources/LICENSE.CharisSILB.txt "${TMP}/root/${PKG_INSTALL_DIR}" +cp ../resources/CharisSILB.ttf ../resources/LICENSE.CharisSILB.txt "${TMP}/root/${PKG_INSTALL_DIR}" +cp devilutionx-retrofw.man.txt "${TMP}/root/${PKG_INSTALL_DIR}/devilutionx.man.txt" cp diablo.ini "${TMP}/root/${PKG_LOCAL_DIR}/diablo.ini" mkdir -p "${TMP}/root/$(dirname "$PKG_MENU_LNK_OUT")" printf "%s\n" \ diff --git a/Packaging/OpenDingux/package-opk.sh b/Packaging/OpenDingux/package-opk.sh new file mode 100755 index 000000000..cd391837f --- /dev/null +++ b/Packaging/OpenDingux/package-opk.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +cd "$(dirname "${BASH_SOURCE[0]}")" + +readonly OUT="${1:-../../build/devilutionx.opk}" +readonly IN="${2:-../../build/devilutionx.dge}" + +readonly TMP="tmp/opk" + +echo 1>&2 Packaging ${OUT}... + +set -x +rm -rf "${TMP}" +mkdir -p "${TMP}" +cat > "${TMP}/default.gcw0.desktop" < ## CMake arguments