From 313fad9dbf6b27d424ffdebf111335cbc72a7438 Mon Sep 17 00:00:00 2001 From: tiopex <67048640+tiopex@users.noreply.github.com> Date: Sat, 9 Nov 2024 19:59:04 +0100 Subject: [PATCH] PACKAGE: Add DirectFB2 & SDL2 (#134) * Add SDL2 + DirectFB2 --------- Co-authored-by: Apaczer <94932128+Apaczer@users.noreply.github.com> --- board/miyoo/rootfs/etc/directfbrc | 1 + configs/miyoo_musl_defconfig | 11 ++++++++ configs/miyoo_uclibc_defconfig | 12 +++++++++ package/Config.in | 2 ++ package/directfb2/Config.in | 23 +++++++++++++++++ package/directfb2/directfb2.hash | 2 ++ package/directfb2/directfb2.mk | 43 +++++++++++++++++++++++++++++++ package/flux/Config.in | 4 +++ package/flux/flux.hash | 2 ++ package/flux/flux.mk | 15 +++++++++++ package/sdl/Config.in | 4 +++ package/sdl/sdl.mk | 10 ++++--- package/sdl2/Config.in | 7 +++++ package/sdl2/sdl2.mk | 8 ++++-- 14 files changed, 138 insertions(+), 6 deletions(-) create mode 100644 board/miyoo/rootfs/etc/directfbrc create mode 100644 package/directfb2/Config.in create mode 100644 package/directfb2/directfb2.hash create mode 100644 package/directfb2/directfb2.mk create mode 100644 package/flux/Config.in create mode 100644 package/flux/flux.hash create mode 100644 package/flux/flux.mk diff --git a/board/miyoo/rootfs/etc/directfbrc b/board/miyoo/rootfs/etc/directfbrc new file mode 100644 index 00000000..b76dc772 --- /dev/null +++ b/board/miyoo/rootfs/etc/directfbrc @@ -0,0 +1 @@ +no-cursor \ No newline at end of file diff --git a/configs/miyoo_musl_defconfig b/configs/miyoo_musl_defconfig index 405118a0..13f657cf 100644 --- a/configs/miyoo_musl_defconfig +++ b/configs/miyoo_musl_defconfig @@ -75,8 +75,12 @@ BR2_PACKAGE_FATRESIZE=y BR2_PACKAGE_DEJAVU=y BR2_PACKAGE_LIBERATION=y BR2_PACKAGE_DJVU=y +BR2_PACKAGE_DIRECTFB2=y +BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL=y +BR2_PACKAGE_DIRECTFB2_FBDEV=y BR2_PACKAGE_FBCAT=y BR2_PACKAGE_FBGRAB=y +BR2_PACKAGE_LINUX_FUSION=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_OPENGL_GLX=y @@ -95,6 +99,13 @@ BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY=y BR2_PACKAGE_SDL_NET=y BR2_PACKAGE_SDL_SOUND=y BR2_PACKAGE_SDL_SOUND_PLAYSOUND=y +BR2_PACKAGE_SDL2=y +BR2_PACKAGE_SDL2_DIRECTFB2=y +BR2_PACKAGE_SDL2_GFX=y +BR2_PACKAGE_SDL2_IMAGE=y +BR2_PACKAGE_SDL2_MIXER=y +BR2_PACKAGE_SDL2_NET=y +BR2_PACKAGE_SDL2_TTF=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_MUPDF=y BR2_PACKAGE_DBUS=y diff --git a/configs/miyoo_uclibc_defconfig b/configs/miyoo_uclibc_defconfig index 24e5695d..33a3848c 100644 --- a/configs/miyoo_uclibc_defconfig +++ b/configs/miyoo_uclibc_defconfig @@ -74,11 +74,16 @@ BR2_PACKAGE_FATRESIZE=y BR2_PACKAGE_DEJAVU=y BR2_PACKAGE_LIBERATION=y BR2_PACKAGE_DJVU=y +BR2_PACKAGE_DIRECTFB2=y +BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL=y +BR2_PACKAGE_DIRECTFB2_FBDEV=y BR2_PACKAGE_FBCAT=y BR2_PACKAGE_FBGRAB=y +BR2_PACKAGE_LINUX_FUSION=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_OPENGL_GLX=y +BR2_PACKAGE_SDL_DIRECTFB2=y BR2_PACKAGE_SDL_GFX=y BR2_PACKAGE_SDL_IMAGE_GIF=y BR2_PACKAGE_SDL_IMAGE_LBM=y @@ -94,6 +99,13 @@ BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY=y BR2_PACKAGE_SDL_NET=y BR2_PACKAGE_SDL_SOUND=y BR2_PACKAGE_SDL_SOUND_PLAYSOUND=y +BR2_PACKAGE_SDL2=y +BR2_PACKAGE_SDL2_DIRECTFB2=y +BR2_PACKAGE_SDL2_GFX=y +BR2_PACKAGE_SDL2_IMAGE=y +BR2_PACKAGE_SDL2_MIXER=y +BR2_PACKAGE_SDL2_NET=y +BR2_PACKAGE_SDL2_TTF=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_MUPDF=y BR2_PACKAGE_DBUS=y diff --git a/package/Config.in b/package/Config.in index 5ab7cf41..27743ee2 100644 --- a/package/Config.in +++ b/package/Config.in @@ -328,6 +328,7 @@ comment "Graphic libraries" source "package/cegui/Config.in" source "package/directfb/Config.in" source "package/directfb-examples/Config.in" + source "package/directfb2/Config.in" source "package/efl/Config.in" source "package/fb-test-app/Config.in" source "package/fbcat/Config.in" @@ -336,6 +337,7 @@ comment "Graphic libraries" source "package/fbset/Config.in" source "package/fbterm/Config.in" source "package/fbv/Config.in" + source "package/flux/Config.in" source "package/freerdp/Config.in" source "package/graphicsmagick/Config.in" source "package/imagemagick/Config.in" diff --git a/package/directfb2/Config.in b/package/directfb2/Config.in new file mode 100644 index 00000000..5f7d6bd4 --- /dev/null +++ b/package/directfb2/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_DIRECTFB2 + bool "directfb2" + depends on !BR2_PACKAGE_DIRECTFB + select BR2_PACKAGE_FLUX + help + DirectFB2 is a fork of DirectFB. + +config BR2_PACKAGE_DIRECTFB2_MULTI + bool "enable multiple application support" + depends on BR2_PACKAGE_DIRECTFB2 + +config BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL + bool "Enable Linux fusion device support for multi application" + select BR2_PACKAGE_DIRECTFB2_MULTI + +config BR2_PACKAGE_DIRECTFB2_DRMKMS + bool "DRM/KMS backend" + depends on BR2_PACKAGE_DIRECTFB2 + select BR2_PACKAGE_LIBDRM + +config BR2_PACKAGE_DIRECTFB2_FBDEV + bool "fbdev backend" + depends on BR2_PACKAGE_DIRECTFB2 diff --git a/package/directfb2/directfb2.hash b/package/directfb2/directfb2.hash new file mode 100644 index 00000000..1a407a51 --- /dev/null +++ b/package/directfb2/directfb2.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1cb65fa5207543970787a06dd71a250ac87f50bc8576c9bb166a09883e69da5c directfb2-4d6b7ddd8477b4b52aa78ec82a3add28ade0c965.tar.gz diff --git a/package/directfb2/directfb2.mk b/package/directfb2/directfb2.mk new file mode 100644 index 00000000..7ca993ec --- /dev/null +++ b/package/directfb2/directfb2.mk @@ -0,0 +1,43 @@ +################################################################################ +# +# directfb2 +# +################################################################################ + +DIRECTFB2_VERSION = 4d6b7ddd8477b4b52aa78ec82a3add28ade0c965 +DIRECTFB2_SITE = $(call github,directfb2,DirectFB2,$(DIRECTFB2_VERSION)) +DIRECTFB2_DEPENDENCIES = host-flux +DIRECTFB2_LICENSE = LGPL-2.1 +DIRECTFB2_INSTALL_STAGING = YES + +DIRECTFB2_CFLAGS = $(TARGET_CFLAGS) -O3 +DIRECTFB2_CXXFLAGS = $(TARGET_CFLAGS) -O3 +DIRECTFB2_CONF_OPTS += -Dneon=false + +ifeq ($(BR2_GCC_ENABLE_LTO),y) +DIRECTFB2_CFLAGS += -flto +DIRECTFB2_CXXFLAGS += -flto +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB2_MULTI),y) +DIRECTFB2_CONF_OPTS += -Dmulti=true +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL),y) +DIRECTFB2_CONF_OPTS += -Dmulti-kernel=true +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB2_DRMKMS),y) +DIRECTFB2_CONF_OPTS += -Ddrmkms=true +DIRECTFB2_DEPENDENCIES += libdrm +else +DIRECTFB2_CONF_OPTS += -Ddrmkms=false +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB2_FBDEV),y) +DIRECTFB2_CONF_OPTS += -Dfbdev=true +else +DIRECTFB2_CONF_OPTS += -Dfbdev=false +endif + +$(eval $(meson-package)) diff --git a/package/flux/Config.in b/package/flux/Config.in new file mode 100644 index 00000000..2f7f3029 --- /dev/null +++ b/package/flux/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_FLUX + bool "flux" + help + flux diff --git a/package/flux/flux.hash b/package/flux/flux.hash new file mode 100644 index 00000000..56358abc --- /dev/null +++ b/package/flux/flux.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b770c27124d43c73d1767455879d3595ae4ac19eb78d79c3372812fe1506c5b3 flux-e45758aa9384b9740ff021ea952399fd113eb0e9-br1.tar.gz diff --git a/package/flux/flux.mk b/package/flux/flux.mk new file mode 100644 index 00000000..7953b62a --- /dev/null +++ b/package/flux/flux.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# flux +# +################################################################################ + +FLUX_VERSION = e45758aa9384b9740ff021ea952399fd113eb0e9 +FLUX_SITE = https://github.com/deniskropp/flux.git +FLUX_SITE_METHOD = git +FLUX_LICENSE = GPL-3 +FLUX_AUTORECONF = YES +HOST_FLUX_DEPENDENCIES = host-pkgconf + +$(eval $(host-autotools-package)) + diff --git a/package/sdl/Config.in b/package/sdl/Config.in index 9f1e34de..8176dc44 100644 --- a/package/sdl/Config.in +++ b/package/sdl/Config.in @@ -17,6 +17,10 @@ config BR2_PACKAGE_SDL_DIRECTFB bool "SDL DirectFB video driver" depends on BR2_PACKAGE_DIRECTFB +config BR2_PACKAGE_SDL_DIRECTFB2 + bool "SDL DirectFB2 video driver" + depends on BR2_PACKAGE_DIRECTFB2 + config BR2_PACKAGE_SDL_X11 bool "SDL X11 video driver" depends on BR2_PACKAGE_XORG7 diff --git a/package/sdl/sdl.mk b/package/sdl/sdl.mk index 462600de..dfca1173 100644 --- a/package/sdl/sdl.mk +++ b/package/sdl/sdl.mk @@ -38,10 +38,12 @@ endif ifeq ($(BR2_PACKAGE_SDL_DIRECTFB),y) SDL_DEPENDENCIES += directfb -SDL_CONF_OPTS += --enable-video-directfb=yes -SDL_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config -else -SDL_CONF_OPTS += --enable-video-directfb=no +SDL_CONF_OPTS += --enable-video-directfb +endif + +ifeq ($(BR2_PACKAGE_SDL_DIRECTFB2),y) +SDL_DEPENDENCIES += directfb2 +SDL_CONF_OPTS += --enable-video-directfb endif ifeq ($(BR2_PACKAGE_SDL_X11),y) diff --git a/package/sdl2/Config.in b/package/sdl2/Config.in index 2ad45e4d..0be00f5a 100644 --- a/package/sdl2/Config.in +++ b/package/sdl2/Config.in @@ -18,6 +18,13 @@ config BR2_PACKAGE_SDL2_DIRECTFB comment "DirectFB video driver needs directfb" depends on !BR2_PACKAGE_DIRECTFB +config BR2_PACKAGE_SDL2_DIRECTFB2 + bool "SDL2: DirectFB2 video driver" + depends on BR2_PACKAGE_DIRECTFB2 + +comment "SDL2: DirectFB2 video driver needs directfb2" + depends on !BR2_PACKAGE_DIRECTFB2 + config BR2_PACKAGE_SDL2_X11 bool "X11 video driver" depends on BR2_PACKAGE_XORG7 diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk index 633383b9..2c7c2268 100644 --- a/package/sdl2/sdl2.mk +++ b/package/sdl2/sdl2.mk @@ -60,8 +60,12 @@ ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y) SDL2_DEPENDENCIES += directfb SDL2_CONF_OPTS += --enable-video-directfb SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config -else -SDL2_CONF_OPTS += --disable-video-directfb +endif + +ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB2),y) +SDL2_DEPENDENCIES += directfb2 +SDL2_CONF_OPTS += --enable-video-directfb --disable-directfb-shared +SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config endif ifeq ($(BR2_PACKAGE_SDL2_OPENGLES)$(BR2_PACKAGE_RPI_USERLAND),yy)