From d5c5ca93f1385898a8f151a12044908d622982d8 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 25 Dec 2024 20:14:21 +0100 Subject: [PATCH 1/5] feat(build): add multithread make and BR2_PER_PACKAGE_DIRECTORIES option to speed up build --- Dockerfile | 2 +- configs/recalbox-odroidgo2_defconfig | 1 + configs/recalbox-rg353x_defconfig | 1 + configs/recalbox-rpi3_defconfig | 1 + configs/recalbox-rpi4_64_defconfig | 1 + configs/recalbox-rpi5_64_defconfig | 1 + configs/recalbox-rpizero2_defconfig | 1 + configs/recalbox-x86_64_defconfig | 3 ++- 8 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0c21406d5f..9363a49aad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,4 +34,4 @@ CMD echo ">>> Setting recalbox version to ${RECALBOX_VERSION}" && echo "${RECALB echo ">>> Making recalbox-${ARCH}_defconfig" && make recalbox-${ARCH}_defconfig && \ export RECALBOX_CCACHE=${RECALBOX_CCACHE_ENABLED:+"BR2_CCACHE=y BR2_CCACHE_DIR=/share/ccache BR2_CCACHE_INITIAL_SETUP=--max-size=500G BR2_CCACHE_USE_BASEDIR=y"} && \ echo ">>> Make with command : BR2_DL_DIR="/share/dl" $RECALBOX_CCACHE $PACKAGE" && \ - make BR2_DL_DIR="/share/dl" $RECALBOX_CCACHE $PACKAGE + make -j `nproc` BR2_DL_DIR="/share/dl" $RECALBOX_CCACHE $PACKAGE diff --git a/configs/recalbox-odroidgo2_defconfig b/configs/recalbox-odroidgo2_defconfig index 368bdbe749..5c8975eb48 100644 --- a/configs/recalbox-odroidgo2_defconfig +++ b/configs/recalbox-odroidgo2_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_aarch64=y BR2_cortex_a35=y BR2_OPTIMIZE_3=y diff --git a/configs/recalbox-rg353x_defconfig b/configs/recalbox-rg353x_defconfig index 61a02b1991..a874ae205a 100644 --- a/configs/recalbox-rg353x_defconfig +++ b/configs/recalbox-rg353x_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_aarch64=y BR2_cortex_a55=y BR2_OPTIMIZE_3=y diff --git a/configs/recalbox-rpi3_defconfig b/configs/recalbox-rpi3_defconfig index 0ce1f0e02f..ac9cf1c124 100644 --- a/configs/recalbox-rpi3_defconfig +++ b/configs/recalbox-rpi3_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_arm=y BR2_cortex_a53=y BR2_ARM_FPU_NEON_VFPV4=y diff --git a/configs/recalbox-rpi4_64_defconfig b/configs/recalbox-rpi4_64_defconfig index 6a64c0108e..433bbc662f 100644 --- a/configs/recalbox-rpi4_64_defconfig +++ b/configs/recalbox-rpi4_64_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_aarch64=y BR2_cortex_a72=y BR2_OPTIMIZE_3=y diff --git a/configs/recalbox-rpi5_64_defconfig b/configs/recalbox-rpi5_64_defconfig index d71761c904..c77a339068 100644 --- a/configs/recalbox-rpi5_64_defconfig +++ b/configs/recalbox-rpi5_64_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_aarch64=y BR2_cortex_a76=y BR2_ARM64_PAGE_SIZE_16K=y diff --git a/configs/recalbox-rpizero2_defconfig b/configs/recalbox-rpizero2_defconfig index 6ec80760ec..8fad630ac2 100644 --- a/configs/recalbox-rpizero2_defconfig +++ b/configs/recalbox-rpizero2_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_arm=y BR2_cortex_a53=y BR2_ARM_FPU_NEON_VFPV4=y diff --git a/configs/recalbox-x86_64_defconfig b/configs/recalbox-x86_64_defconfig index a90241681a..ecbfb04668 100644 --- a/configs/recalbox-x86_64_defconfig +++ b/configs/recalbox-x86_64_defconfig @@ -1,3 +1,4 @@ +BR2_PER_PACKAGE_DIRECTORIES=y BR2_x86_64=y BR2_OPTIMIZE_3=y BR2_SHARED_STATIC_LIBS=y @@ -402,4 +403,4 @@ BR2_PACKAGE_XONE=y BR2_PACKAGE_XPAD_NOONE=y BR2_PACKAGE_WII_U_GC_ADAPTER=y BR2_PACKAGE_VVVVVV=y -BR2_PACKAGE_LIBRETRO_TAMALIBRETRO=y +BR2_PACKAGE_LIBRETRO_TAMALIBRETRO=y \ No newline at end of file -- GitLab From e1e4e9d23a0231ff53198aaddbec39484afb2b76 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 25 Dec 2024 22:57:38 +0100 Subject: [PATCH 2/5] feat(build): externalize sdk (host directory) --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 08b062d0c6..90373478a7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -220,7 +220,7 @@ appimage-amd64: echo "Create a configs/recalbox-rpizero2_defconfig" cp "configs/recalbox-rpi3_defconfig" "configs/recalbox-rpizero2_defconfig" sed -i "s/BR2_PACKAGE_RECALBOX_TARGET_RPI3=y/BR2_PACKAGE_RECALBOX_TARGET_RPIZERO2=y/g" configs/recalbox-rpizero2_defconfig - docker run --rm --tmpfs /tmp:exec --security-opt seccomp=unconfined -v "${WORKDIR}:/work" -v "${OUTPUTDIR}:/work/output" -v "/recalbox-builds/dl:/share/dl" -v "/recalbox-builds/ccaches/ccache-${ARCH}:/share/ccache" -e "ARCH=rpizero2" -e "GITLAB_TOKEN_RB5000=${GITLAB_TOKEN_RB5000}" -e "GITLAB_TOKEN_THEMES=${GITLAB_TOKEN_THEMES}" -e "RECALBOX_VERSION=${RECALBOX_VERSION}" -e "RECALBOX_CCACHE_ENABLED=${CCACHE}" -e "FORCE_UNSAFE_CONFIGURE=1" "recalbox-${ARCH}" 2>&1 | tee build.log | grep '>>>' || tac build.log | grep '>>>' -m 1 -B 9999 | tac + docker run --rm --tmpfs /tmp:exec --security-opt seccomp=unconfined -v "${WORKDIR}:/work" -v "${OUTPUTDIR}:/work/output" -v "/recalbox-builds/dl:/share/dl" -v "/recalbox-builds/hosts/${ARCH}:/work/output/host" -v "/recalbox-builds/ccaches/ccache-${ARCH}:/share/ccache" -e "ARCH=rpizero2" -e "GITLAB_TOKEN_RB5000=${GITLAB_TOKEN_RB5000}" -e "GITLAB_TOKEN_THEMES=${GITLAB_TOKEN_THEMES}" -e "RECALBOX_VERSION=${RECALBOX_VERSION}" -e "RECALBOX_CCACHE_ENABLED=${CCACHE}" -e "FORCE_UNSAFE_CONFIGURE=1" "recalbox-${ARCH}" 2>&1 | tee build.log | grep '>>>' || tac build.log | grep '>>>' -m 1 -B 9999 | tac export DIST_DIR="dist/rpizero2" mkdir -p "${DIST_DIR}" cp ${OUTPUTDIR}/images/recalbox/* "${DIST_DIR}" @@ -230,7 +230,7 @@ appimage-amd64: cp ${WORKDIR}/RELEASE-NOTES-FULL.md "${DIST_DIR}/RELEASE-NOTES-FULL.md" uploadFolderToBucket "${AWS_ACCESS_KEY_ID}" "${AWS_SECRET_ACCESS_TOKEN}" "recalbox-builds-artifacts" "dist" "${CI_PIPELINE_ID}" fi - - docker run --rm --tmpfs /tmp:exec --security-opt seccomp=unconfined -v "${WORKDIR}:/work" -v "${OUTPUTDIR}:/work/output" -v "/recalbox-builds/dl:/share/dl" -v "/recalbox-builds/ccaches/ccache-${ARCH}:/share/ccache" -e "ARCH=${ARCH}" -e "GITLAB_TOKEN_RB5000=${GITLAB_TOKEN_RB5000}" -e "GITLAB_TOKEN_THEMES=${GITLAB_TOKEN_THEMES}" -e "RECALBOX_VERSION=${RECALBOX_VERSION}" -e "RECALBOX_CCACHE_ENABLED=${CCACHE}" -e "FORCE_UNSAFE_CONFIGURE=1" "recalbox-${ARCH}" 2>&1 | tee build.log | grep '>>>' || tac build.log | grep '>>>' -m 1 -B 9999 | tac + - docker run --rm --tmpfs /tmp:exec --security-opt seccomp=unconfined -v "${WORKDIR}:/work" -v "${OUTPUTDIR}:/work/output" -v "/recalbox-builds/dl:/share/dl" -v "/recalbox-builds/hosts/${ARCH}:/work/output/host" -v "/recalbox-builds/ccaches/ccache-${ARCH}:/share/ccache" -e "ARCH=${ARCH}" -e "GITLAB_TOKEN_RB5000=${GITLAB_TOKEN_RB5000}" -e "GITLAB_TOKEN_THEMES=${GITLAB_TOKEN_THEMES}" -e "RECALBOX_VERSION=${RECALBOX_VERSION}" -e "RECALBOX_CCACHE_ENABLED=${CCACHE}" -e "FORCE_UNSAFE_CONFIGURE=1" "recalbox-${ARCH}" 2>&1 | tee build.log | grep '>>>' || tac build.log | grep '>>>' -m 1 -B 9999 | tac - echo $? # Dist - export DIST_DIR="dist/${ARCH}" -- GitLab From 0f8c111e96da1ed939c4208b1cff97077026810e Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 25 Dec 2024 23:01:12 +0100 Subject: [PATCH 3/5] fix(build): fix romfsv2 dependencies --- package/recalbox-romfs2/recalbox-romfs2.mk | 2 +- package/wildmidi/Config.in | 1 + package/wildmidi/wildmidi.mk | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package/recalbox-romfs2/recalbox-romfs2.mk b/package/recalbox-romfs2/recalbox-romfs2.mk index 8627067bef..c7227af28f 100644 --- a/package/recalbox-romfs2/recalbox-romfs2.mk +++ b/package/recalbox-romfs2/recalbox-romfs2.mk @@ -5,7 +5,7 @@ ################################################################################ RECALBOX_ROMFS2_LICENSE = MIT -RECALBOX_ROMFS2_DEPENDECIES = host-python3 recalbox-romfs +RECALBOX_ROMFS2_DEPENDENCIES = host-python3 define RECALBOX_ROMFS2_BUILD_CMDS $(HOST_DIR)/bin/python3 $(RECALBOX_ROMFS2_PKGDIR)/scripts/romfs.py \ diff --git a/package/wildmidi/Config.in b/package/wildmidi/Config.in index 1a1987cc3e..467da42e55 100644 --- a/package/wildmidi/Config.in +++ b/package/wildmidi/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_WILDMIDI bool "wildmidi" + depends on BR2_PACKAGE_ALSA_LIB help WildMIDI is a simple software midi player which has a core softsynth diff --git a/package/wildmidi/wildmidi.mk b/package/wildmidi/wildmidi.mk index 53ce54ca73..2d58c7c2ff 100644 --- a/package/wildmidi/wildmidi.mk +++ b/package/wildmidi/wildmidi.mk @@ -9,6 +9,7 @@ WILDMIDI_SITE = https://github.com/Mindwerks/wildmidi.git WILDMIDI_SITE_METHOD = git WILDMIDI_LICENSE = LGPLv3 WILDMIDI_LICENSE_FILE = COPYING +WILDMIDI_DEPENDENCIES = alsa-lib WILDMIDI_CONF_OPTS += -WANT_PLAYER=OFF -DWANT_ALSA=ON -- GitLab From cb846bb6a25fef3785c0a143ee7d8774e5ba0827 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Thu, 26 Dec 2024 00:09:02 +0100 Subject: [PATCH 4/5] feat(build): remove megatools --- configs/recalbox-odroidgo2_defconfig | 1 - configs/recalbox-rg353x_defconfig | 1 - configs/recalbox-rpi3_defconfig | 1 - configs/recalbox-rpi4_64_defconfig | 1 - configs/recalbox-rpi5_64_defconfig | 1 - configs/recalbox-rpizero2_defconfig | 1 - configs/recalbox-x86_64_defconfig | 1 - 7 files changed, 7 deletions(-) diff --git a/configs/recalbox-odroidgo2_defconfig b/configs/recalbox-odroidgo2_defconfig index 5c8975eb48..d09ecb375c 100644 --- a/configs/recalbox-odroidgo2_defconfig +++ b/configs/recalbox-odroidgo2_defconfig @@ -298,7 +298,6 @@ BR2_PACKAGE_FBV_RECALBOX=y BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_FLUIDSYNTH_PULSEAUDIO=y BR2_PACKAGE_PAMIX=y BR2_PACKAGE_RTL8189FS=y diff --git a/configs/recalbox-rg353x_defconfig b/configs/recalbox-rg353x_defconfig index a874ae205a..bf257cbd32 100644 --- a/configs/recalbox-rg353x_defconfig +++ b/configs/recalbox-rg353x_defconfig @@ -283,7 +283,6 @@ BR2_PACKAGE_WSD=y BR2_PACKAGE_RTL88X2BU=y BR2_PACKAGE_RTL8821CU=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_PAMIX=y BR2_PACKAGE_KMSGRAB=y BR2_PACKAGE_RECALBOX_ROCKCHIP_MALI_BIFROST_G52=y diff --git a/configs/recalbox-rpi3_defconfig b/configs/recalbox-rpi3_defconfig index ac9cf1c124..c96cdc2da0 100644 --- a/configs/recalbox-rpi3_defconfig +++ b/configs/recalbox-rpi3_defconfig @@ -341,7 +341,6 @@ BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_KERNELFIRMWARES=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_UTIL_LINUX_RFKILL=y BR2_PACKAGE_TCL=y BR2_PACKAGE_EXPECT=y diff --git a/configs/recalbox-rpi4_64_defconfig b/configs/recalbox-rpi4_64_defconfig index 433bbc662f..d6d3d2f4a9 100644 --- a/configs/recalbox-rpi4_64_defconfig +++ b/configs/recalbox-rpi4_64_defconfig @@ -334,7 +334,6 @@ BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_KERNELFIRMWARES=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_UTIL_LINUX_RFKILL=y BR2_PACKAGE_TCL=y BR2_PACKAGE_EXPECT=y diff --git a/configs/recalbox-rpi5_64_defconfig b/configs/recalbox-rpi5_64_defconfig index c77a339068..7678e3ea37 100644 --- a/configs/recalbox-rpi5_64_defconfig +++ b/configs/recalbox-rpi5_64_defconfig @@ -334,7 +334,6 @@ BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_KERNELFIRMWARES=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_UTIL_LINUX_RFKILL=y BR2_PACKAGE_TCL=y BR2_PACKAGE_EXPECT=y diff --git a/configs/recalbox-rpizero2_defconfig b/configs/recalbox-rpizero2_defconfig index 8fad630ac2..1d16ebc813 100644 --- a/configs/recalbox-rpizero2_defconfig +++ b/configs/recalbox-rpizero2_defconfig @@ -341,7 +341,6 @@ BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_KERNELFIRMWARES=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_UTIL_LINUX_RFKILL=y BR2_PACKAGE_TCL=y BR2_PACKAGE_EXPECT=y diff --git a/configs/recalbox-x86_64_defconfig b/configs/recalbox-x86_64_defconfig index ecbfb04668..d2fd21eb87 100644 --- a/configs/recalbox-x86_64_defconfig +++ b/configs/recalbox-x86_64_defconfig @@ -381,7 +381,6 @@ BR2_PACKAGE_HHPC=y BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y BR2_PACKAGE_LIBRETRO_CHEATS=y -BR2_PACKAGE_MEGATOOLS=y BR2_PACKAGE_UTIL_LINUX_RFKILL=y BR2_TARGET_ROOTFS_SQUASHFS=y BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y -- GitLab From c2f571a5d6d983bc28575afbe97e33da4af21bc9 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Thu, 26 Dec 2024 09:56:40 +0100 Subject: [PATCH 5/5] fix(build): fix tic80 dependencies --- package/libretro-tic80/Config.in | 1 + package/libretro-tic80/libretro-tic80.mk | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package/libretro-tic80/Config.in b/package/libretro-tic80/Config.in index 126a8c555a..851132d2db 100644 --- a/package/libretro-tic80/Config.in +++ b/package/libretro-tic80/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_TIC80 bool "libretro-tic80" depends on BR2_PACKAGE_RETROARCH depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_LIBCURL help A libretro TIC-80 emulator core. diff --git a/package/libretro-tic80/libretro-tic80.mk b/package/libretro-tic80/libretro-tic80.mk index 1a3acf650d..a827c33611 100644 --- a/package/libretro-tic80/libretro-tic80.mk +++ b/package/libretro-tic80/libretro-tic80.mk @@ -8,8 +8,9 @@ LIBRETRO_TIC80_VERSION = 0937023babce9dd55eba5ada4b46c2f98b740324 LIBRETRO_TIC80_SITE = https://github.com/nesbox/TIC-80.git LIBRETRO_TIC80_LICENSE = MIT -LIBRETRO_TIC80_SITE_METHOD=git -LIBRETRO_TIC80_GIT_SUBMODULES=y +LIBRETRO_TIC80_SITE_METHOD = git +LIBRETRO_TIC80_GIT_SUBMODULES = y +LIBRETRO_TIC80_DEPENDENCIES = libcurl LIBRETRO_TIC80_CONF_OPTS=-DBUILD_SDL=OFF \ -DBUILD_SOKOL=OFF \ -- GitLab