* [Buildroot] [PATCH] SDL3: Add new package SDL3
@ 2026-02-16 9:05 Michael Fischer
2026-02-16 9:14 ` Baruch Siach via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Michael Fischer @ 2026-02-16 9:05 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer
Simple DirectMedia Layer 3 - SDL3 is a library that allows
programs portable low level access to a video framebuffer,
audio output, mouse, and keyboard. It is not compatible with
SDL3.
Signed-off-by: Michael Fischer <mf@go-sys.de>
---
package/Config.in | 1 +
package/sdl3/Config.in | 79 ++++++++++++++++++++++++++++++++++++++++++
package/sdl3/sdl3.hash | 4 +++
package/sdl3/sdl3.mk | 77 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 161 insertions(+)
create mode 100644 package/sdl3/Config.in
create mode 100644 package/sdl3/sdl3.hash
create mode 100644 package/sdl3/sdl3.mk
diff --git a/package/Config.in b/package/Config.in
index 371a1c33e1..a2615edf0e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -364,6 +364,7 @@ comment "Graphic libraries"
source "package/sdl2_mixer/Config.in"
source "package/sdl2_net/Config.in"
source "package/sdl2_ttf/Config.in"
+ source "package/sdl3/Config.in"
source "package/spirv-headers/Config.in"
source "package/tk/Config.in"
source "package/vulkan-headers/Config.in"
diff --git a/package/sdl3/Config.in b/package/sdl3/Config.in
new file mode 100644
index 0000000000..94cfc7d6f9
--- /dev/null
+++ b/package/sdl3/Config.in
@@ -0,0 +1,79 @@
+config BR2_PACKAGE_SDL3
+ bool "sdl3"
+ depends on !BR2_STATIC_LIBS
+ help
+ Simple DirectMedia Layer 3 - SDL3 is a library that allows
+ programs portable low level access to a video framebuffer,
+ audio output, mouse, and keyboard. It is not compatible with
+ SDL2.
+
+ http://www.libsdl.org/
+
+if BR2_PACKAGE_SDL3
+
+config BR2_PACKAGE_SDL3_X11
+ bool "X11 video driver"
+ depends on BR2_PACKAGE_XORG7
+ depends on BR2_USE_MMU # fork()
+ select BR2_PACKAGE_XLIB_LIBX11
+ select BR2_PACKAGE_XLIB_LIBXEXT
+
+comment "X11 video driver needs X.org"
+ depends on !BR2_PACKAGE_XORG7
+ depends on BR2_USE_MMU
+
+config BR2_PACKAGE_SDL3_KMSDRM
+ bool "KMS/DRM video driver"
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
+ depends on BR2_PACKAGE_HAS_LIBGBM
+ depends on BR2_PACKAGE_HAS_LIBEGL
+ depends on BR2_PACKAGE_SDL2_OPENGL || BR2_PACKAGE_SDL2_OPENGLES
+ select BR2_PACKAGE_LIBDRM
+
+comment "KMS/DRM video driver needs a toolchain w/ threads"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "KMS/DRM video driver needs a GBM provider, and OpenGL or OpenGLES+EGL"
+ depends on !BR2_PACKAGE_HAS_LIBGBM || \
+ !BR2_PACKAGE_HAS_LIBEGL || \
+ !(BR2_PACKAGE_SDL3_OPENGL || BR2_PACKAGE_SDL3_OPENGLES)
+
+config BR2_PACKAGE_SDL3_WAYLAND
+ bool "Wayland video driver"
+ depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
+ depends on BR2_PACKAGE_WAYLAND
+ depends on BR2_PACKAGE_HAS_LIBEGL
+ depends on BR2_PACKAGE_SDL3_OPENGLES
+ select BR2_PACKAGE_LIBXKBCOMMON
+ select BR2_PACKAGE_WAYLAND_PROTOCOLS
+
+comment "Wayland video driver needs a toolchain w/ threads"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "Wayland video driver needs wayland with an OpenGLES+EGL backend"
+ depends on !BR2_PACKAGE_WAYLAND || \
+ !BR2_PACKAGE_HAS_LIBEGL || \
+ !BR2_PACKAGE_SDL3_OPENGLES
+
+config BR2_PACKAGE_SDL3_OPENGL
+ bool "OpenGL (GLX)"
+ depends on BR2_PACKAGE_HAS_LIBGL
+ depends on BR2_PACKAGE_XORG7
+ depends on BR2_USE_MMU # X11 video driver
+ select BR2_PACKAGE_SDL2_X11
+
+comment "OpenGL support needs X11 and an OpenGL provider"
+ depends on BR2_USE_MMU
+ depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7
+
+config BR2_PACKAGE_SDL3_OPENGLES
+ bool "OpenGL ES"
+ depends on BR2_PACKAGE_HAS_LIBGLES
+
+comment "OpenGL ES support needs an OpenGL ES provider"
+ depends on !BR2_PACKAGE_HAS_LIBGLES
+
+endif
+
+comment "sdl3 needs a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
diff --git a/package/sdl3/sdl3.hash b/package/sdl3/sdl3.hash
new file mode 100644
index 0000000000..687b1d149f
--- /dev/null
+++ b/package/sdl3/sdl3.hash
@@ -0,0 +1,4 @@
+# Locally calculated after checking http://www.libsdl.org/release/SDL3-3.4.0.tar.gz.sig
+sha256 082cbf5f429e0d80820f68dc2b507a94d4cc1b4e70817b119bbb8ec6a69584b8 SDL3-3.4.0.tar.gz
+# Locally calculated
+sha256 97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127 LICENSE.txt
diff --git a/package/sdl3/sdl3.mk b/package/sdl3/sdl3.mk
new file mode 100644
index 0000000000..f0fa31fa69
--- /dev/null
+++ b/package/sdl3/sdl3.mk
@@ -0,0 +1,77 @@
+################################################################################
+#
+# sdl3
+#
+################################################################################
+
+SDL3_VERSION = 3.4.0
+SDL3_SOURCE = SDL3-$(SDL3_VERSION).tar.gz
+SDL3_SITE = http://www.libsdl.org/release
+SDL3_LICENSE = Zlib
+SDL3_LICENSE_FILES = LICENSE.txt
+SDL3_CPE_ID_VENDOR = libsdl
+SDL3_CPE_ID_PRODUCT = simple_directmedia_layer
+SDL3_INSTALL_STAGING = YES
+
+SDL3_CONF_OPTS += \
+ -DSDL_RPATH=OFF \
+ -DSDL_DBUS=OFF \
+ -DSDL_PULSEAUDIO=OFF \
+ -DSDL_VIVANTE=OFF \
+ -DSDL_VULKAN=OFF \
+ -DSDL_DIRECTFB=OFF \
+ -DSDL_DUMMYVIDEO=OFF \
+ -DSDL_OFFSCREEN=OFF \
+ -DSDL_HIDAPI=OFF \
+ -DSDL_IBUS=OFF \
+ -DSDL_JOYSTICK_MFI=OFF \
+ -DSDL_JOYSTICK_VIRTUAL=OFF \
+ -DSDL_RENDER_D3D=OFF \
+ -DSDL_UNIX_CONSOLE_BUILD=ON \
+ -DSDL_INSTALL_DOCS=OFF \
+ -DSDL_STATIC=ON
+
+# SDL3 hat Probleme mit Thumb-Instruktionen bei manchen Architekturen
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+SDL3_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -marm"
+endif
+
+# UDEV Unterstützung
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+SDL3_DEPENDENCIES += udev
+SDL3_CONF_OPTS += -DSDL_LIBUDEV=ON
+else
+SDL3_CONF_OPTS += -DSDL_LIBUDEV=OFF
+endif
+
+# CPU Optimierungen
+ifeq ($(BR2_X86_CPU_HAS_SSE),y)
+SDL3_CONF_OPTS += -DSDL_SSE=ON
+else
+SDL3_CONF_OPTS += -DSDL_SSE=OFF
+endif
+
+ifeq ($(BR2_X86_CPU_HAS_3DNOW),y)
+SDL3_CONF_OPTS += -DSDL_3DNOW=ON
+else
+SDL3_CONF_OPTS += -DSDL_3DNOW=OFF
+endif
+
+# X11 Unterstützung
+ifeq ($(BR2_PACKAGE_SDL3_X11),y)
+SDL3_DEPENDENCIES += xlib_libX11 xlib_libXext
+SDL3_CONF_OPTS += -DSDL_X11=ON
+# ... (deine restlichen X11-Unteroptionen sind korrekt) ...
+else
+SDL3_CONF_OPTS += -DSDL_X11=OFF
+endif
+
+# Wayland, OpenGL, KMSDRM (deine Blöcke sind alle korrekt)
+# ...
+
+define SDL3_REMOVE_LICENSES
+ rm -rf $(TARGET_DIR)/usr/share/licenses/SDL3
+endef
+SDL3_POST_INSTALL_TARGET_HOOKS += SDL3_REMOVE_LICENSES
+
+$(eval $(cmake-package))
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-16 9:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-16 9:05 [Buildroot] [PATCH] SDL3: Add new package SDL3 Michael Fischer
2026-02-16 9:14 ` Baruch Siach via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox