From 980941f1397e85fc8d3562b890b8d73154663526 Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:55:02 +0300 Subject: [PATCH 1/6] Add SDL3 scripts and patches, cmake files for ps3 --- depends/ps3build.cmake | 60 +++++++++++++++++++++++++++++++++++++++ depends/ps3dev.cmake | 59 ++++++++++++++++++++++++++++++++++++++ patches/SDL3_ttf-1.patch | 13 +++++++++ scripts/043-sdl3.sh | 31 ++++++++++++++++++++ scripts/044-sdl3_mixer.sh | 25 ++++++++++++++++ scripts/045-sdl3_ttf.sh | 32 +++++++++++++++++++++ 6 files changed, 220 insertions(+) create mode 100644 depends/ps3build.cmake create mode 100644 depends/ps3dev.cmake create mode 100644 patches/SDL3_ttf-1.patch create mode 100755 scripts/043-sdl3.sh create mode 100755 scripts/044-sdl3_mixer.sh create mode 100755 scripts/045-sdl3_ttf.sh diff --git a/depends/ps3build.cmake b/depends/ps3build.cmake new file mode 100644 index 00000000..a1307ca9 --- /dev/null +++ b/depends/ps3build.cmake @@ -0,0 +1,60 @@ +# +# CMake platform file for PS3 PPC processor +# + +cmake_minimum_required(VERSION 3.0...3.12) + +INCLUDE(CMakeForceCompiler) + +if(DEFINED ENV{PS3DEV}) + SET(PS3DEV $ENV{PS3DEV}) +else() + message(FATAL_ERROR "The environment variable PS3DEV needs to be defined.") +endif() + +SET(CMAKE_SYSTEM_NAME Generic) +SET(CMAKE_SYSTEM_VERSION 1) +SET(CMAKE_SYSTEM_PROCESSOR powerpc64) + +SET(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) +SET(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) + +SET(CMAKE_C_FLAGS "-I$ENV{PS3DEV}/ppu/include -I$ENV{PS3DEV}/ppu/include/simdmath \ + -O2 -Wall -Wno-unused-function \ + -mcpu=cell -mhard-float \ + -ffunction-sections -fdata-sections \ + -DPS3 -D__PS3__" + CACHE STRING "" FORCE) + +SET(PPC_LDFLAGS "-L$ENV{PS3DEV}/ppu/lib -L$ENV{PS3DEV}/ppu/ppu/lib -Wl,-zmax-page-size=128") + +SET(CMAKE_TARGET_INSTALL_PREFIX $ENV{PS3DEV}/portlibs/ppu/) +SET(CMAKE_PREFIX_PATH $ENV{PS3DEV}/portlibs/ppu/) + +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +SET(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) +SET(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) +SET(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) + +SET(C_FLAGS ${CMAKE_C_FLAGS} ${PPC_CFLAGS}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) + +SET(CMAKE_EXE_LINKER_FLAGS + "-L$ENV{PS3DEV}/ppu/lib \ + -Wl,-q \ + -Wl,--gc-sections \ + -Wl,-zmax-page-size=128" + CACHE STRING "" FORCE) + +add_compile_definitions(PS3 __PS3__) + +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostartfiles -Wl,-r -Wl,-d") +SET(PS3 1) +SET(PLATFORM_PS3 1) diff --git a/depends/ps3dev.cmake b/depends/ps3dev.cmake new file mode 100644 index 00000000..8cf5398f --- /dev/null +++ b/depends/ps3dev.cmake @@ -0,0 +1,59 @@ +# +# CMake platform file for PS3 PPC processor +# + +cmake_minimum_required(VERSION 3.0...3.12) + +INCLUDE(CMakeForceCompiler) + +if(DEFINED ENV{PS3DEV}) + SET(PS3DEV $ENV{PS3DEV}) +else() + message(FATAL_ERROR "The environment variable PS3DEV needs to be defined.") +endif() + +SET(CMAKE_SYSTEM_NAME Generic) +SET(CMAKE_SYSTEM_VERSION 1) +SET(CMAKE_SYSTEM_PROCESSOR powerpc64) + +SET(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) +SET(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) + +SET(CMAKE_C_FLAGS "-I$ENV{PS3DEV}/ppu/include -I$ENV{PS3DEV}/ppu/include/simdmath \ + -O2 -Wall -Wno-unused-function \ + -mcpu=cell -mhard-float \ + -ffunction-sections -fdata-sections \ + -DPS3 -D__PS3__" + CACHE STRING "" FORCE) + +SET(PPC_LDFLAGS "-L$ENV{PS3DEV}/ppu/lib -L$ENV{PS3DEV}/ppu/ppu/lib -Wl,-zmax-page-size=128") + +SET(CMAKE_PREFIX_PATH $ENV{PS3DEV}/portlibs/ppu/) + +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +SET(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) +SET(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) +SET(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) + +SET(C_FLAGS ${CMAKE_C_FLAGS} ${PPC_CFLAGS}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) + +SET(CMAKE_EXE_LINKER_FLAGS + "-L$ENV{PS3DEV}/ppu/lib \ + -Wl,-q \ + -Wl,--gc-sections \ + -Wl,-zmax-page-size=128" + CACHE STRING "" FORCE) + +add_compile_definitions(PS3 __PS3__) + +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostartfiles -Wl,-r -Wl,-d") +SET(PS3 1) +SET(PLATFORM_PS3 1) diff --git a/patches/SDL3_ttf-1.patch b/patches/SDL3_ttf-1.patch new file mode 100644 index 00000000..72c66a36 --- /dev/null +++ b/patches/SDL3_ttf-1.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7b27db8..35e1251 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -71,7 +71,7 @@ include(GNUInstallDirs) + include(CheckSymbolExists) + + set(PLATFORM_SUPPORTS_SHARED ON) +-if(EMSCRIPTEN OR VITA OR PSP OR PS2 OR N3DS OR RISCOS) ++if(EMSCRIPTEN OR VITA OR PSP OR PS2 OR PS3 OR N3DS OR RISCOS) + set(PLATFORM_SUPPORTS_SHARED OFF) + endif() + diff --git a/scripts/043-sdl3.sh b/scripts/043-sdl3.sh new file mode 100755 index 00000000..92b83383 --- /dev/null +++ b/scripts/043-sdl3.sh @@ -0,0 +1,31 @@ +#!/bin/sh -e +# sdl3.sh by 16rom.com + +BUILD_NAME="SDL3" +BUILD_DIR="build-ppc" + +# Copy make file. +if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then + mkdir -p "$PS3DEV/share" + cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" +fi + +# Download if it's not there. +if [ ! -d "$BUILD_NAME" ]; then + ## Download the source code. + wget https://github.com/onesixromcom/SDL/tarball/ps3 -O "$BUILD_NAME.tar.gz" + ## Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf "$BUILD_NAME".tar.gz +fi + +## Create the build directory. +cd "$BUILD_NAME" +rm -rf "$BUILD_DIR" +mkdir -p "$BUILD_DIR" +cd "$BUILD_DIR" +echo "Building for PPC..." + +cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DSDL_TESTS=OFF -DSDL_EXAMPLES=OFF -DSDL_TEST_LIBRARY=OFF -DSDL_STATIC=ON \ .. +cmake --build . +cmake --install . diff --git a/scripts/044-sdl3_mixer.sh b/scripts/044-sdl3_mixer.sh new file mode 100755 index 00000000..43793126 --- /dev/null +++ b/scripts/044-sdl3_mixer.sh @@ -0,0 +1,25 @@ +#!/bin/sh -e +# sdl3_mixer.sh by 16rom.com + +BUILD_NAME="SDL3_mixer" +BUILD_DIR="build-ppc" + +# Download if it's not there. +if [ ! -d "$DIRECTORY" ]; then + ## Download the source code. + wget https://github.com/libsdl-org/SDL_mixer/releases/download/release-3.2.0/SDL3_mixer-3.2.0.tar.gz + ## Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_mixer-3.2.0.tar.gz +fi + +## Create the build directory. +cd "$BUILD_NAME" +rm -rf "$BUILD_DIR" +mkdir -p "$BUILD_DIR" +cd "$BUILD_DIR" +echo "Building for PPC..." + +cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLMIXER_TESTS=OFF -DSDLMIXER_EXAMPLES=OFF -DSDL_STATIC=ON -DSDLMIXER_OPUS=OFF -DSDLMIXER_VORBIS_VORBISFILE=OFF -DSDLMIXER_WAVPACK=OFF -DSDLMIXER_OGG=OFF -DSDLMIXER_FLAC=OFF -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_GME=OFF -DSDLMIXER_MOD_XMP=OFF -DSDLMIXER_MIDI_TIMIDITY=OFF .. +cmake --build . +cmake --install . diff --git a/scripts/045-sdl3_ttf.sh b/scripts/045-sdl3_ttf.sh new file mode 100755 index 00000000..5994c9a1 --- /dev/null +++ b/scripts/045-sdl3_ttf.sh @@ -0,0 +1,32 @@ +#!/bin/sh -e +# sdl3_ttf.sh by 16rom.com + +BUILD_NAME="SDL3_ttf" +BUILD_DIR="build-ppc" + +# Download if it's not there. +if [ ! -d "$BUILD_NAME" ]; then + ## Download the source code. + wget https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz + ## Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_ttf-3.2.2.tar.gz + cd "$BUILD_NAME" + ## Patch the source code. + cat ../../patches/SDL3_ttf-1.patch | patch -p1 + + # Download vendored libs + ./external/download.sh +else + cd "$BUILD_NAME" +fi + +# Create the build directory. +rm -rf "$BUILD_DIR" +mkdir -p "$BUILD_DIR" +cd "$BUILD_DIR" +echo "Building for PPC..." + +cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLTTF_VENDORED=ON -DSDLTTF_HARFBUZZ=OFF -DSDLTTF_SAMPLES=OFF .. +cmake --build . +cmake --install . From 49099a20e841948581319f378b244c288c835736 Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Sat, 18 Apr 2026 14:38:27 +0300 Subject: [PATCH 2/6] Update cmake file with func to build PS3 SELF --- depends/ps3dev.cmake | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/depends/ps3dev.cmake b/depends/ps3dev.cmake index 8cf5398f..5977fb6d 100644 --- a/depends/ps3dev.cmake +++ b/depends/ps3dev.cmake @@ -57,3 +57,32 @@ add_compile_definitions(PS3 __PS3__) SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostartfiles -Wl,-r -Wl,-d") SET(PS3 1) SET(PLATFORM_PS3 1) + +# Build PS3 SELF file +function(build_ps3_self target) + set(ELF_FILE $) + set(STRIPPED_ELF ${ELF_FILE}.stripped.elf) + set(SELF_FILE ${ELF_FILE}.self) + set(FSELF_FILE ${ELF_FILE}.fake.self) + + add_custom_command( + TARGET ${target} + POST_BUILD + COMMAND echo "Running PS3 post-build steps..." + + # 1. Fix OPD relocations FIRST, before anything else + COMMAND ${PS3DEV}/bin/sprxlinker ${ELF_FILE} + + # 2. Strip AFTER sprxlinker, preserve OPD with -R flag + COMMAND ${PS3DEV}/ppu/bin/powerpc64-ps3-elf-strip + --strip-debug # only strip debug, keep OPD symbols + ${ELF_FILE} + -o ${STRIPPED_ELF} + + # 3. Package the STRIPPED elf into SELF + COMMAND ${PS3DEV}/bin/make_self ${STRIPPED_ELF} ${SELF_FILE} + COMMAND ${PS3DEV}/bin/fself ${STRIPPED_ELF} ${FSELF_FILE} + + COMMAND echo "Done: ${SELF_FILE}" + ) +endfunction() From eb43af1c9690e5802aa0e83abb8605055bd35c54 Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Thu, 23 Apr 2026 22:53:05 +0300 Subject: [PATCH 3/6] sdl3: update cmake files --- depends/ps3build.cmake | 81 ++++++++++++++---------------------------- depends/ps3dev.cmake | 67 ++++++++++++++-------------------- scripts/043-sdl3.sh | 2 +- 3 files changed, 54 insertions(+), 96 deletions(-) diff --git a/depends/ps3build.cmake b/depends/ps3build.cmake index a1307ca9..02bf8c0e 100644 --- a/depends/ps3build.cmake +++ b/depends/ps3build.cmake @@ -4,57 +4,30 @@ cmake_minimum_required(VERSION 3.0...3.12) -INCLUDE(CMakeForceCompiler) - -if(DEFINED ENV{PS3DEV}) - SET(PS3DEV $ENV{PS3DEV}) -else() - message(FATAL_ERROR "The environment variable PS3DEV needs to be defined.") -endif() - -SET(CMAKE_SYSTEM_NAME Generic) -SET(CMAKE_SYSTEM_VERSION 1) -SET(CMAKE_SYSTEM_PROCESSOR powerpc64) - -SET(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) -SET(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) - -SET(CMAKE_C_FLAGS "-I$ENV{PS3DEV}/ppu/include -I$ENV{PS3DEV}/ppu/include/simdmath \ - -O2 -Wall -Wno-unused-function \ - -mcpu=cell -mhard-float \ - -ffunction-sections -fdata-sections \ - -DPS3 -D__PS3__" - CACHE STRING "" FORCE) - -SET(PPC_LDFLAGS "-L$ENV{PS3DEV}/ppu/lib -L$ENV{PS3DEV}/ppu/ppu/lib -Wl,-zmax-page-size=128") - -SET(CMAKE_TARGET_INSTALL_PREFIX $ENV{PS3DEV}/portlibs/ppu/) -SET(CMAKE_PREFIX_PATH $ENV{PS3DEV}/portlibs/ppu/) - -SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) - -SET(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) -SET(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) -SET(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) - -SET(C_FLAGS ${CMAKE_C_FLAGS} ${PPC_CFLAGS}) - -SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) - -SET(CMAKE_EXE_LINKER_FLAGS - "-L$ENV{PS3DEV}/ppu/lib \ - -Wl,-q \ - -Wl,--gc-sections \ - -Wl,-zmax-page-size=128" - CACHE STRING "" FORCE) - -add_compile_definitions(PS3 __PS3__) - -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostartfiles -Wl,-r -Wl,-d") -SET(PS3 1) -SET(PLATFORM_PS3 1) +include(${CMAKE_CURRENT_LIST_DIR}/ps3dev.cmake) + +set(CMAKE_INSTALL_PREFIX ${PORTLIBS} CACHE PATH "install path") + +add_definitions(-DPS3) +set(PS3 TRUE) + +set(SDL_TESTS FALSE) +set(SDL_EXAMPLES FALSE) +set(SDL_TEST_LIBRARY FALSE) +set(SDL_STATIC ON) + +set(SDL_GPU OFF) +set(SDL_CAMERA OFF) +set(SDL_HAPTIC OFF) +set(SDL_HIDAPI OFF) +set(SDL_POWER OFF) +set(SDL_SENSOR OFF) +set(SDL_DIALOG OFF) +set(SDL_DISKAUDIO OFF) +set(SDL_DUMMYAUDIO OFF) +set(SDL_DUMMYCAMERA OFF) +set(SDL_DUMMYVIDEO OFF) +set(SDL_OFFSCREEN OFF) +set(SDL_RENDER_GPU OFF) +set(SDL_TRAY OFF) +set(SDL_VIRTUAL_JOYSTICK OFF) diff --git a/depends/ps3dev.cmake b/depends/ps3dev.cmake index 5977fb6d..4c76716c 100644 --- a/depends/ps3dev.cmake +++ b/depends/ps3dev.cmake @@ -4,62 +4,47 @@ cmake_minimum_required(VERSION 3.0...3.12) -INCLUDE(CMakeForceCompiler) - if(DEFINED ENV{PS3DEV}) - SET(PS3DEV $ENV{PS3DEV}) + set(PS3DEV $ENV{PS3DEV}) else() message(FATAL_ERROR "The environment variable PS3DEV needs to be defined.") endif() -SET(CMAKE_SYSTEM_NAME Generic) -SET(CMAKE_SYSTEM_VERSION 1) -SET(CMAKE_SYSTEM_PROCESSOR powerpc64) - -SET(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) -SET(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_VERSION 1) +set(CMAKE_SYSTEM_PROCESSOR powerpc64) -SET(CMAKE_C_FLAGS "-I$ENV{PS3DEV}/ppu/include -I$ENV{PS3DEV}/ppu/include/simdmath \ - -O2 -Wall -Wno-unused-function \ - -mcpu=cell -mhard-float \ - -ffunction-sections -fdata-sections \ - -DPS3 -D__PS3__" - CACHE STRING "" FORCE) +set(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) +set(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) -SET(PPC_LDFLAGS "-L$ENV{PS3DEV}/ppu/lib -L$ENV{PS3DEV}/ppu/ppu/lib -Wl,-zmax-page-size=128") +set(LIBPSL1GHT_INC "-I${PS3DEV}/ppu/include -I${PS3DEV}/ppu/include/simdmath") +set(LIBPSL1GHT_LIB "-L${PS3DEV}/ppu/lib -L${PS3DEV}/ppu/ppu/lib") +set(PORTLIBS "${PS3DEV}/portlibs/ppu") -SET(CMAKE_PREFIX_PATH $ENV{PS3DEV}/portlibs/ppu/) - -SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +set(PPC_MACHDEP "-mhard-float -fmodulo-sched -ffunction-sections -fdata-sections") +set(PPC_CFLAGS "-O2 -Wall -mcpu=cell ${PPC_MACHDEP} ${LIBPSL1GHT_INC}" ) +set(PPC_LDFLAGS "${LIBPSL1GHT_INC} -Wl,-zmax-page-size=128 -Wl,--gc-sections") +set(PPC_LIBS "-lgcm_sys -lrsx -lsysutil -lio -lcairo -lm -lfreetype -lz -lpixman-1 -lrt -llv2") -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) +set(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) +set(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) +set(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PPC_LIBS}") -SET(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) -SET(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) -SET(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) +set(CMAKE_PREFIX_PATH ${PORTLIBS}) -SET(C_FLAGS ${CMAKE_C_FLAGS} ${PPC_CFLAGS}) - -SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) -SET(CMAKE_EXE_LINKER_FLAGS - "-L$ENV{PS3DEV}/ppu/lib \ - -Wl,-q \ - -Wl,--gc-sections \ - -Wl,-zmax-page-size=128" - CACHE STRING "" FORCE) +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) add_compile_definitions(PS3 __PS3__) - -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostartfiles -Wl,-r -Wl,-d") -SET(PS3 1) -SET(PLATFORM_PS3 1) +set(PS3 1) # Build PS3 SELF file -function(build_ps3_self target) +function(ps3_build_self target) set(ELF_FILE $) set(STRIPPED_ELF ${ELF_FILE}.stripped.elf) set(SELF_FILE ${ELF_FILE}.self) @@ -75,7 +60,7 @@ function(build_ps3_self target) # 2. Strip AFTER sprxlinker, preserve OPD with -R flag COMMAND ${PS3DEV}/ppu/bin/powerpc64-ps3-elf-strip - --strip-debug # only strip debug, keep OPD symbols + --strip-debug ${ELF_FILE} -o ${STRIPPED_ELF} diff --git a/scripts/043-sdl3.sh b/scripts/043-sdl3.sh index 92b83383..5156d1e5 100755 --- a/scripts/043-sdl3.sh +++ b/scripts/043-sdl3.sh @@ -26,6 +26,6 @@ mkdir -p "$BUILD_DIR" cd "$BUILD_DIR" echo "Building for PPC..." -cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DSDL_TESTS=OFF -DSDL_EXAMPLES=OFF -DSDL_TEST_LIBRARY=OFF -DSDL_STATIC=ON \ .. +cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. cmake --build . cmake --install . From ad5640b2081be7f0e09d238a26ad6f993c2e9edd Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:33:13 +0300 Subject: [PATCH 4/6] Update cmake files for sdl3 builds --- depends/ps3build.cmake | 41 ++++++++++++++++++++++++++++-- depends/ps3dev.cmake | 53 ++++++++++++++++++++++++--------------- scripts/043-sdl3.sh | 16 ++++++------ scripts/044-sdl3_mixer.sh | 17 +++++++------ scripts/045-sdl3_ttf.sh | 24 +++++++++--------- 5 files changed, 101 insertions(+), 50 deletions(-) diff --git a/depends/ps3build.cmake b/depends/ps3build.cmake index 02bf8c0e..71483a2f 100644 --- a/depends/ps3build.cmake +++ b/depends/ps3build.cmake @@ -6,16 +6,35 @@ cmake_minimum_required(VERSION 3.0...3.12) include(${CMAKE_CURRENT_LIST_DIR}/ps3dev.cmake) -set(CMAKE_INSTALL_PREFIX ${PORTLIBS} CACHE PATH "install path") +string(JOIN " " PPC_CFLAGS_STR ${PPC_CFLAGS}) +string(JOIN " " PPC_LDFLAGS_STR ${PPC_LDFLAGS}) +string(JOIN " " PPC_LIBS_STR ${PPC_LIBS}) +list(TRANSFORM PPC_INC PREPEND "-I" OUTPUT_VARIABLE PPC_INC_FLAGS) +string(JOIN " " PPC_INC_STR ${PPC_INC_FLAGS}) +list(TRANSFORM PPC_LIB PREPEND "-I" OUTPUT_VARIABLE PPC_LIB_FLAGS) +string(JOIN " " PPC_LIB_STR ${PPC_LIB_FLAGS}) + +set(CMAKE_C_FLAGS_INIT "${PPC_CFLAGS_STR} ${PPC_INC_STR}") +set(CMAKE_CXX_FLAGS_INIT ${CMAKE_C_FLAGS_INIT}) +set(CMAKE_EXE_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT} "${PPC_LDFLAGS_STR} ${PPC_LIB_STR}") +set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "${PPC_LIBS_STR}") + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +set(CMAKE_INSTALL_PREFIX "$ENV{PS3DEV}/portlibs/ppu" CACHE PATH "" FORCE) +set(CMAKE_PREFIX_PATH "$ENV{PS3DEV}/portlibs/ppu" CACHE PATH "" FORCE) add_definitions(-DPS3) set(PS3 TRUE) +# SDL3 set(SDL_TESTS FALSE) set(SDL_EXAMPLES FALSE) set(SDL_TEST_LIBRARY FALSE) set(SDL_STATIC ON) - set(SDL_GPU OFF) set(SDL_CAMERA OFF) set(SDL_HAPTIC OFF) @@ -31,3 +50,21 @@ set(SDL_OFFSCREEN OFF) set(SDL_RENDER_GPU OFF) set(SDL_TRAY OFF) set(SDL_VIRTUAL_JOYSTICK OFF) + +# SDL3_mixer +set(BUILD_SHARED_LIBS OFF) +set(SDLMIXER_TESTS OFF) +set(SDLMIXER_TESTS_INSTALL OFF) +set(SDLMIXER_EXAMPLES OFF) +set(SDLMIXER_OPUS OFF) +set(SDLMIXER_VORBIS_VORBISFILE OFF) +set(SDLMIXER_WAVPACK OFF) +set(SDLMIXER_FLAC OFF) +set(SDLMIXER_MP3_MPG123 OFF) +set(SDLMIXER_GME OFF) +set(DSDLMIXER_MIDI_TIMIDITY OFF) + +# SDL3_ttf +set(SDLTTF_VENDORED ON) +set(SDLTTF_HARFBUZZ OFF) +set(SDLTTF_SAMPLES OFF) diff --git a/depends/ps3dev.cmake b/depends/ps3dev.cmake index 4c76716c..b9c127d3 100644 --- a/depends/ps3dev.cmake +++ b/depends/ps3dev.cmake @@ -17,32 +17,45 @@ set(CMAKE_SYSTEM_PROCESSOR powerpc64) set(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) set(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) -set(LIBPSL1GHT_INC "-I${PS3DEV}/ppu/include -I${PS3DEV}/ppu/include/simdmath") -set(LIBPSL1GHT_LIB "-L${PS3DEV}/ppu/lib -L${PS3DEV}/ppu/ppu/lib") -set(PORTLIBS "${PS3DEV}/portlibs/ppu") - -set(PPC_MACHDEP "-mhard-float -fmodulo-sched -ffunction-sections -fdata-sections") -set(PPC_CFLAGS "-O2 -Wall -mcpu=cell ${PPC_MACHDEP} ${LIBPSL1GHT_INC}" ) -set(PPC_LDFLAGS "${LIBPSL1GHT_INC} -Wl,-zmax-page-size=128 -Wl,--gc-sections") -set(PPC_LIBS "-lgcm_sys -lrsx -lsysutil -lio -lcairo -lm -lfreetype -lz -lpixman-1 -lrt -llv2") - -set(CMAKE_C_FLAGS_INIT ${PPC_CFLAGS}) -set(CMAKE_CXX_FLAGS_INIT ${PPC_CFLAGS}) -set(CMAKE_EXE_LINKER_FLAGS_INIT ${PPC_LDFLAGS}) -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PPC_LIBS}") - -set(CMAKE_PREFIX_PATH ${PORTLIBS}) - -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +set(PPC_INC + ${PS3DEV}/ppu/include + ${PS3DEV}/ppu/include/simdmath + ${PS3DEV}/portlibs/ppu/include +) +set(PPC_LIB + ${PS3DEV}/ppu/lib + ${PS3DEV}/ppu/ppu/lib + ${PS3DEV}/portlibs/ppu/lib +) + +set(PPC_MACHDEP -mhard-float -fmodulo-sched -ffunction-sections -fdata-sections) +set(PPC_CFLAGS -O2 -Wall -mcpu=cell ${PPC_MACHDEP}) +set(PPC_LDFLAGS -Wl,-zmax-page-size=128) +set(PPC_LIBS -lgcm_sys -lrsx -lsysutil -lio -lm -lz -lrt -llv2 -laudio) set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) add_compile_definitions(PS3 __PS3__) set(PS3 1) +macro(ps3_target_setup target) + target_compile_options(${target} PRIVATE + ${PPC_CFLAGS} + ) + target_link_options(${target} PRIVATE + ${PPC_LDFLAGS} + ) + target_link_directories(${target} PRIVATE + ${PPC_LIB} + ) + target_include_directories(${target} PUBLIC + ${PPC_INC} + ) + target_link_libraries(${target} PUBLIC + ${PPC_LIBS} + ) +endmacro() + # Build PS3 SELF file function(ps3_build_self target) set(ELF_FILE $) diff --git a/scripts/043-sdl3.sh b/scripts/043-sdl3.sh index 5156d1e5..30722a89 100755 --- a/scripts/043-sdl3.sh +++ b/scripts/043-sdl3.sh @@ -6,20 +6,20 @@ BUILD_DIR="build-ppc" # Copy make file. if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then - mkdir -p "$PS3DEV/share" - cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" + mkdir -p "$PS3DEV/share" + cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" fi # Download if it's not there. if [ ! -d "$BUILD_NAME" ]; then - ## Download the source code. - wget https://github.com/onesixromcom/SDL/tarball/ps3 -O "$BUILD_NAME.tar.gz" - ## Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf "$BUILD_NAME".tar.gz + # Download the source code. + wget https://github.com/onesixromcom/SDL/tarball/ps3 -O "$BUILD_NAME.tar.gz" + # Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf "$BUILD_NAME".tar.gz fi -## Create the build directory. +# Create the build directory. cd "$BUILD_NAME" rm -rf "$BUILD_DIR" mkdir -p "$BUILD_DIR" diff --git a/scripts/044-sdl3_mixer.sh b/scripts/044-sdl3_mixer.sh index 43793126..79b9b775 100755 --- a/scripts/044-sdl3_mixer.sh +++ b/scripts/044-sdl3_mixer.sh @@ -5,21 +5,22 @@ BUILD_NAME="SDL3_mixer" BUILD_DIR="build-ppc" # Download if it's not there. -if [ ! -d "$DIRECTORY" ]; then - ## Download the source code. - wget https://github.com/libsdl-org/SDL_mixer/releases/download/release-3.2.0/SDL3_mixer-3.2.0.tar.gz - ## Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_mixer-3.2.0.tar.gz +if [ ! -d "$BUILD_NAME" ]; then + # Download the source code. + wget https://github.com/libsdl-org/SDL_mixer/releases/download/release-3.2.0/SDL3_mixer-3.2.0.tar.gz + # Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_mixer-3.2.0.tar.gz fi -## Create the build directory. +# Create the build directory. cd "$BUILD_NAME" rm -rf "$BUILD_DIR" mkdir -p "$BUILD_DIR" cd "$BUILD_DIR" echo "Building for PPC..." -cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLMIXER_TESTS=OFF -DSDLMIXER_EXAMPLES=OFF -DSDL_STATIC=ON -DSDLMIXER_OPUS=OFF -DSDLMIXER_VORBIS_VORBISFILE=OFF -DSDLMIXER_WAVPACK=OFF -DSDLMIXER_OGG=OFF -DSDLMIXER_FLAC=OFF -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_GME=OFF -DSDLMIXER_MOD_XMP=OFF -DSDLMIXER_MIDI_TIMIDITY=OFF .. +#cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLMIXER_TESTS=OFF -DSDLMIXER_EXAMPLES=OFF -DSDL_STATIC=ON -DSDLMIXER_OPUS=OFF -DSDLMIXER_VORBIS_VORBISFILE=OFF -DSDLMIXER_WAVPACK=OFF -DSDLMIXER_OGG=OFF -DSDLMIXER_FLAC=OFF -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_GME=OFF -DSDLMIXER_MOD_XMP=OFF -DSDLMIXER_MIDI_TIMIDITY=OFF .. +cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. cmake --build . cmake --install . diff --git a/scripts/045-sdl3_ttf.sh b/scripts/045-sdl3_ttf.sh index 5994c9a1..9268f711 100755 --- a/scripts/045-sdl3_ttf.sh +++ b/scripts/045-sdl3_ttf.sh @@ -6,19 +6,19 @@ BUILD_DIR="build-ppc" # Download if it's not there. if [ ! -d "$BUILD_NAME" ]; then - ## Download the source code. - wget https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz - ## Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_ttf-3.2.2.tar.gz - cd "$BUILD_NAME" - ## Patch the source code. - cat ../../patches/SDL3_ttf-1.patch | patch -p1 + # Download the source code. + wget https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz + # Unpack the source code. + rm -Rf "$BUILD_NAME" + mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_ttf-3.2.2.tar.gz + cd "$BUILD_NAME" + # Patch the source code. + cat ../../patches/SDL3_ttf-1.patch | patch -p1 - # Download vendored libs - ./external/download.sh + # Download vendored libs + ./external/download.sh else - cd "$BUILD_NAME" + cd "$BUILD_NAME" fi # Create the build directory. @@ -27,6 +27,6 @@ mkdir -p "$BUILD_DIR" cd "$BUILD_DIR" echo "Building for PPC..." -cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLTTF_VENDORED=ON -DSDLTTF_HARFBUZZ=OFF -DSDLTTF_SAMPLES=OFF .. +cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. cmake --build . cmake --install . From b61fa8119ede44013f8db3a3ef573267c8731ce0 Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Sun, 26 Apr 2026 16:45:09 +0300 Subject: [PATCH 5/6] Fix sdl3_mixer build --- depends/ps3build.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/ps3build.cmake b/depends/ps3build.cmake index 71483a2f..e3067d6b 100644 --- a/depends/ps3build.cmake +++ b/depends/ps3build.cmake @@ -62,7 +62,7 @@ set(SDLMIXER_WAVPACK OFF) set(SDLMIXER_FLAC OFF) set(SDLMIXER_MP3_MPG123 OFF) set(SDLMIXER_GME OFF) -set(DSDLMIXER_MIDI_TIMIDITY OFF) +set(SDLMIXER_MIDI_TIMIDITY OFF) # SDL3_ttf set(SDLTTF_VENDORED ON) From a223e0f2d3c0ed1151a12cd8ab5f78d045bb5aa0 Mon Sep 17 00:00:00 2001 From: onesixromcom <16732145+onesixromcom@users.noreply.github.com> Date: Wed, 19 Aug 2026 12:58:54 +0300 Subject: [PATCH 6/6] sdl3 builds added, cmake check --- archives/archives.txt | 3 +++ depends/check-cmake.sh | 5 +++++ depends/ps3dev.cmake | 1 + scripts/033-sdl3.sh | 29 +++++++++++++++++++++++++++++ scripts/034-sdl3_mixer.sh | 29 +++++++++++++++++++++++++++++ scripts/035-sdl3_ttf.sh | 37 +++++++++++++++++++++++++++++++++++++ scripts/043-sdl3.sh | 31 ------------------------------- scripts/044-sdl3_mixer.sh | 26 -------------------------- scripts/045-sdl3_ttf.sh | 32 -------------------------------- 9 files changed, 104 insertions(+), 89 deletions(-) create mode 100755 depends/check-cmake.sh create mode 100755 scripts/033-sdl3.sh create mode 100755 scripts/034-sdl3_mixer.sh create mode 100755 scripts/035-sdl3_ttf.sh delete mode 100755 scripts/043-sdl3.sh delete mode 100755 scripts/044-sdl3_mixer.sh delete mode 100755 scripts/045-sdl3_ttf.sh diff --git a/archives/archives.txt b/archives/archives.txt index d0f49b9d..14666889 100644 --- a/archives/archives.txt +++ b/archives/archives.txt @@ -31,3 +31,6 @@ b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc 1903175 https: - - https://github.com/sahlberg/libsmb2/tarball/master -> libsmb2.tar.gz - - https://github.com/clienthax/psl1ght/tarball/master -> psl1ght.tar.gz - - https://github.com/bucanero/pthread-emb-ps3/tarball/master -> pthread-emb-ps3.tar.gz +- - https://github.com/onesixromcom/SDL/tarball/ps3-rsx-ps3dev -> sdl3.tar.gz +182a07c745375e113dc740d43964ff21b0be29f29f59876c4dbc4db3d32f6901 5161139 https://github.com/libsdl-org/SDL_mixer/releases/download/release-3.2.4/SDL3_mixer-3.2.4.tar.gz +63547d58d0185c833213885b635a2c0548201cc8f301e6587c0be1a67e1e045d 1545950 https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz diff --git a/depends/check-cmake.sh b/depends/check-cmake.sh new file mode 100755 index 00000000..21be1d1c --- /dev/null +++ b/depends/check-cmake.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# check-cmake.sh + +## Check for cmake. +cmake --version 1> /dev/null || { echo "ERROR: Install cmake before continuing."; exit 1; } diff --git a/depends/ps3dev.cmake b/depends/ps3dev.cmake index b9c127d3..e592964a 100644 --- a/depends/ps3dev.cmake +++ b/depends/ps3dev.cmake @@ -16,6 +16,7 @@ set(CMAKE_SYSTEM_PROCESSOR powerpc64) set(CMAKE_C_COMPILER powerpc64-ps3-elf-gcc) set(CMAKE_CXX_COMPILER powerpc64-ps3-elf-g++) +set(CMAKE_ASM_COMPILER powerpc64-ps3-elf-g++) set(PPC_INC ${PS3DEV}/ppu/include diff --git a/scripts/033-sdl3.sh b/scripts/033-sdl3.sh new file mode 100755 index 00000000..ecce3b4f --- /dev/null +++ b/scripts/033-sdl3.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -eo pipefail +# SDL3 by 16rom.com + +SDL3="SDL3_3.4.14" +## Source util functions +source ../utils/utils.sh + +## Download the source code. +../download.sh sdl3.tar.gz + +## Copy make file. +if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then + mkdir -p "$PS3DEV/share" + cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" +fi + +## Unpack the source code. +rm -Rf ${SDL3} +mkdir ${SDL3} +echo "Unpacking ${SDL3}" +extract ../archives/sdl3.tar.gz --strip-components=1 --directory=${SDL3} +cd ${SDL3} +mkdir -p build-ppc +cd build-ppc + +cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. +cmake --build . +cmake --install . diff --git a/scripts/034-sdl3_mixer.sh b/scripts/034-sdl3_mixer.sh new file mode 100755 index 00000000..983c4d66 --- /dev/null +++ b/scripts/034-sdl3_mixer.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -eo pipefail +# SDL3 by 16rom.com + +SDL3_MIXER="SDL3_mixer_3.2.4" +## Source util functions +source ../utils/utils.sh + +## Download the source code. +../download.sh SDL3_mixer-3.2.4.tar.gz + +## Copy make file. +if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then + mkdir -p "$PS3DEV/share" + cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" +fi + +## Unpack the source code. +rm -Rf ${SDL3_MIXER} +mkdir ${SDL3_MIXER} +echo "Unpacking ${SDL3_MIXER}" +extract ../archives/SDL3_mixer-3.2.4.tar.gz --strip-components=1 --directory=${SDL3_MIXER} +cd ${SDL3_MIXER} +mkdir -p build-ppc +cd build-ppc + +cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. +cmake --build . +cmake --install . diff --git a/scripts/035-sdl3_ttf.sh b/scripts/035-sdl3_ttf.sh new file mode 100755 index 00000000..38c18c6a --- /dev/null +++ b/scripts/035-sdl3_ttf.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -eo pipefail +# SDL3_ttf by 16rom.com + +SDL3_TTF="SDL3_ttf-3.2.2" +## Source util functions +source ../utils/utils.sh + +## Download the source code. +../download.sh ${SDL3_TTF}.tar.gz + +## Copy make file. +if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then + mkdir -p "$PS3DEV/share" + cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" +fi + +## Unpack the source code. +rm -Rf ${SDL3_TTF} +mkdir ${SDL3_TTF} +echo "Unpacking ${SDL3_TTF}" +extract ../archives/${SDL3_TTF}.tar.gz --strip-components=1 --directory=${SDL3_TTF} +cd ${SDL3_TTF} + +## Patch the source code. +echo "Patching ${SDL3_TTF} for compatibility..." +cat ../../patches/SDL3_ttf-1.patch | patch -p1 + +# Download vendored libs +./external/download.sh + +mkdir -p build-ppc +cd build-ppc + +cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. +cmake --build . +cmake --install . diff --git a/scripts/043-sdl3.sh b/scripts/043-sdl3.sh deleted file mode 100755 index 30722a89..00000000 --- a/scripts/043-sdl3.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e -# sdl3.sh by 16rom.com - -BUILD_NAME="SDL3" -BUILD_DIR="build-ppc" - -# Copy make file. -if [ ! -f "$PS3DEV/share/ps3dev.cmake" ]; then - mkdir -p "$PS3DEV/share" - cp ../depends/ps3dev.cmake "$PS3DEV/share/ps3dev.cmake" -fi - -# Download if it's not there. -if [ ! -d "$BUILD_NAME" ]; then - # Download the source code. - wget https://github.com/onesixromcom/SDL/tarball/ps3 -O "$BUILD_NAME.tar.gz" - # Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf "$BUILD_NAME".tar.gz -fi - -# Create the build directory. -cd "$BUILD_NAME" -rm -rf "$BUILD_DIR" -mkdir -p "$BUILD_DIR" -cd "$BUILD_DIR" -echo "Building for PPC..." - -cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. -cmake --build . -cmake --install . diff --git a/scripts/044-sdl3_mixer.sh b/scripts/044-sdl3_mixer.sh deleted file mode 100755 index 79b9b775..00000000 --- a/scripts/044-sdl3_mixer.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# sdl3_mixer.sh by 16rom.com - -BUILD_NAME="SDL3_mixer" -BUILD_DIR="build-ppc" - -# Download if it's not there. -if [ ! -d "$BUILD_NAME" ]; then - # Download the source code. - wget https://github.com/libsdl-org/SDL_mixer/releases/download/release-3.2.0/SDL3_mixer-3.2.0.tar.gz - # Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_mixer-3.2.0.tar.gz -fi - -# Create the build directory. -cd "$BUILD_NAME" -rm -rf "$BUILD_DIR" -mkdir -p "$BUILD_DIR" -cd "$BUILD_DIR" -echo "Building for PPC..." - -#cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_INSTALL_PREFIX="$PS3DEV/portlibs/ppu" -DCMAKE_PREFIX_PATH="$PS3DEV/portlibs/ppu" -DBUILD_SHARED_LIBS=OFF -DSDLMIXER_TESTS=OFF -DSDLMIXER_EXAMPLES=OFF -DSDL_STATIC=ON -DSDLMIXER_OPUS=OFF -DSDLMIXER_VORBIS_VORBISFILE=OFF -DSDLMIXER_WAVPACK=OFF -DSDLMIXER_OGG=OFF -DSDLMIXER_FLAC=OFF -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_GME=OFF -DSDLMIXER_MOD_XMP=OFF -DSDLMIXER_MIDI_TIMIDITY=OFF .. -cmake -Wno-dev -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. -cmake --build . -cmake --install . diff --git a/scripts/045-sdl3_ttf.sh b/scripts/045-sdl3_ttf.sh deleted file mode 100755 index 9268f711..00000000 --- a/scripts/045-sdl3_ttf.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -e -# sdl3_ttf.sh by 16rom.com - -BUILD_NAME="SDL3_ttf" -BUILD_DIR="build-ppc" - -# Download if it's not there. -if [ ! -d "$BUILD_NAME" ]; then - # Download the source code. - wget https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz - # Unpack the source code. - rm -Rf "$BUILD_NAME" - mkdir "$BUILD_NAME" && tar --strip-components=1 --directory="$BUILD_NAME" -xvzf SDL3_ttf-3.2.2.tar.gz - cd "$BUILD_NAME" - # Patch the source code. - cat ../../patches/SDL3_ttf-1.patch | patch -p1 - - # Download vendored libs - ./external/download.sh -else - cd "$BUILD_NAME" -fi - -# Create the build directory. -rm -rf "$BUILD_DIR" -mkdir -p "$BUILD_DIR" -cd "$BUILD_DIR" -echo "Building for PPC..." - -cmake -DCMAKE_TOOLCHAIN_FILE="../../depends/ps3build.cmake" -DCMAKE_BUILD_TYPE=Release .. -cmake --build . -cmake --install .