diff mbox

sdl2: new package

Message ID 1424944071-6473-1-git-send-email-guillaume.gardet@oliseo.fr
State Superseded
Headers show

Commit Message

Guillaume GARDET Feb. 26, 2015, 9:47 a.m. UTC
Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr>

---
 package/Config.in      |  1 +
 package/sdl2/Config.in | 22 +++++++++++++++++
 package/sdl2/sdl2.mk   | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 90 insertions(+)
 create mode 100644 package/sdl2/Config.in
 create mode 100644 package/sdl2/sdl2.mk

Comments

Guillaume GARDET March 13, 2015, 10:39 a.m. UTC | #1
Ping...

Guillaume


Le 26/02/2015 10:47, Guillaume GARDET a écrit :
> Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr>
>
> ---
>   package/Config.in      |  1 +
>   package/sdl2/Config.in | 22 +++++++++++++++++
>   package/sdl2/sdl2.mk   | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
>   3 files changed, 90 insertions(+)
>   create mode 100644 package/sdl2/Config.in
>   create mode 100644 package/sdl2/sdl2.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index fe3d3d0..ad4d248 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -215,6 +215,7 @@ endif
>   	source "package/psplash/Config.in"
>   	source "package/sawman/Config.in"
>   	source "package/sdl/Config.in"
> +	source "package/sdl2/Config.in"
>   	source "package/sdl_gfx/Config.in"
>   	source "package/sdl_image/Config.in"
>   	source "package/sdl_mixer/Config.in"
> diff --git a/package/sdl2/Config.in b/package/sdl2/Config.in
> new file mode 100644
> index 0000000..5d0fe01
> --- /dev/null
> +++ b/package/sdl2/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_SDL2
> +	bool "SDL2"
> +	help
> +	  Simple DirectMedia Layer 2 - SDL2 is a library that allows
> +	  programs portable low level access to a video framebuffer,
> +	  audio output, mouse, and keyboard. It is not compatible with SDL1.
> +
> +	  http://www.libsdl.org/
> +
> +if BR2_PACKAGE_SDL2
> +
> +config BR2_PACKAGE_SDL2_DIRECTFB
> +	bool "SDL2 DirectFB video driver"
> +	depends on BR2_PACKAGE_DIRECTFB
> +
> +config BR2_PACKAGE_SDL2_X11
> +	bool "SDL2 X11 video driver"
> +	depends on BR2_PACKAGE_XORG7
> +	select BR2_PACKAGE_XLIB_LIBX11
> +	select BR2_PACKAGE_XLIB_LIBXEXT
> +
> +endif
> diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
> new file mode 100644
> index 0000000..b9aa907
> --- /dev/null
> +++ b/package/sdl2/sdl2.mk
> @@ -0,0 +1,67 @@
> +################################################################################
> +#
> +# sdl2
> +#
> +################################################################################
> +
> +SDL2_VERSION = 2.0.3
> +SDL2_SOURCE = SDL2-$(SDL2_VERSION).tar.gz
> +SDL2_SITE = http://www.libsdl.org/release
> +SDL2_LICENSE = zlib
> +SDL2_LICENSE_FILES = COPYING
> +SDL2_INSTALL_STAGING = YES
> +
> +# We must enable static build to get compilation successful.
> +SDL2_CONF_OPTS = --enable-static
> +
> +ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y)
> +SDL2_DEPENDENCIES += directfb
> +SDL2_CONF_OPTS += --enable-video-directfb=yes
> +SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config
> +else
> +SDL2_CONF_OPTS += --enable-video-directfb=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SDL2_X11),y)
> +SDL2_CONF_OPTS += --enable-video-x11=yes
> +SDL2_DEPENDENCIES += \
> +	xlib_libX11 xlib_libXext \
> +	$(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \
> +	$(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr)
> +else
> +SDL2_CONF_OPTS += --enable-video-x11=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_TSLIB),y)
> +SDL2_DEPENDENCIES += tslib
> +endif
> +
> +ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
> +SDL2_DEPENDENCIES += alsa-lib
> +endif
> +
> +ifeq ($(BR2_PACKAGE_MESA3D),y)
> +SDL_DEPENDENCIES += mesa3d
> +endif
> +
> +SDL2_CONF_OPTS += \
> +	--enable-pulseaudio=no \
> +	--disable-arts \
> +	--disable-esd
> +
> +HOST_SDL2_CONF_OPTS += \
> +	--enable-pulseaudio=no \
> +	--enable-video-x11=no \
> +	--disable-arts \
> +	--disable-esd
> +
> +# Remove the -Wl,-rpath option.
> +define SDL2_FIXUP_SDL2_CONFIG
> +	$(SED) 's%-Wl,-rpath,\$${libdir}%%' \
> +		$(STAGING_DIR)/usr/bin/sdl2-config
> +endef
> +
> +SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIXUP_SDL2_CONFIG
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))
Thomas Petazzoni March 13, 2015, 4:14 p.m. UTC | #2
Dear Guillaume GARDET,

Sorry for not replying earlier. I had a look at your patch some time
ago and had some comments, but apparently never replied.

On Thu, 26 Feb 2015 10:47:51 +0100, Guillaume GARDET wrote:

> diff --git a/package/sdl2/Config.in b/package/sdl2/Config.in
> new file mode 100644
> index 0000000..5d0fe01
> --- /dev/null
> +++ b/package/sdl2/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_SDL2
> +	bool "SDL2"

I know it's not the case for the existing SDL package, but we generally
prefer to have package names in lower-case in menuconfig, for
consistency. So s/SDL2/sdl2/ here.

> +	help
> +	  Simple DirectMedia Layer 2 - SDL2 is a library that allows
> +	  programs portable low level access to a video framebuffer,
> +	  audio output, mouse, and keyboard. It is not compatible with SDL1.
> +
> +	  http://www.libsdl.org/

Did you check with very basic toolchains that SDL2 builds fine? I'm
surprised you have really zero dependency on toolchain features. Can
you check for example with the following configurations:

  http://autobuild.buildroot.org/toolchains/configs/br-arm-basic.config
  http://autobuild.buildroot.org/toolchains/configs/br-arm-full-nothread.config
  http://autobuild.buildroot.org/toolchains/configs/bfin-linux-uclibc.config
  http://autobuild.buildroot.org/toolchains/configs/bfin-uclinux.config

You may discover that sdl2 depends on certain toolchain options.

> +config BR2_PACKAGE_SDL2_DIRECTFB
> +	bool "SDL2 DirectFB video driver"
> +	depends on BR2_PACKAGE_DIRECTFB

No need to repeat "SDL2" here, since this option is indented below the
"sdl2" main option.

> diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
> new file mode 100644
> index 0000000..b9aa907
> --- /dev/null
> +++ b/package/sdl2/sdl2.mk
> @@ -0,0 +1,67 @@
> +################################################################################
> +#
> +# sdl2
> +#
> +################################################################################
> +
> +SDL2_VERSION = 2.0.3
> +SDL2_SOURCE = SDL2-$(SDL2_VERSION).tar.gz
> +SDL2_SITE = http://www.libsdl.org/release
> +SDL2_LICENSE = zlib
> +SDL2_LICENSE_FILES = COPYING
> +SDL2_INSTALL_STAGING = YES
> +
> +# We must enable static build to get compilation successful.
> +SDL2_CONF_OPTS = --enable-static

Hum, this is a bit annoying, but OK.

> +
> +ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y)
> +SDL2_DEPENDENCIES += directfb
> +SDL2_CONF_OPTS += --enable-video-directfb=yes
> +SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config
> +else
> +SDL2_CONF_OPTS += --enable-video-directfb=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SDL2_X11),y)
> +SDL2_CONF_OPTS += --enable-video-x11=yes
> +SDL2_DEPENDENCIES += \
> +	xlib_libX11 xlib_libXext \
> +	$(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \
> +	$(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr)

No space after the comma.

> +else
> +SDL2_CONF_OPTS += --enable-video-x11=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_TSLIB),y)
> +SDL2_DEPENDENCIES += tslib
> +endif

Please explicit the --enable-input-tslib / --disable-input-tslib.

> +ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
> +SDL2_DEPENDENCIES += alsa-lib
> +endif

Same: --enable-alsa / --disable-alsa.

> +
> +ifeq ($(BR2_PACKAGE_MESA3D),y)
> +SDL_DEPENDENCIES += mesa3d
> +endif

What feature is this supposed to be enabling? mesa3d is an OpenGL
implementation, but it's not the only one. So if it's OpenGL related,
most likely this is not the right thing to do.

> +SDL2_CONF_OPTS += \
> +	--enable-pulseaudio=no \
> +	--disable-arts \
> +	--disable-esd

Please put this earlier, where the first non-conditional SDL2_CONF_OPTS
definition is.

> +HOST_SDL2_CONF_OPTS += \
> +	--enable-pulseaudio=no \
> +	--enable-video-x11=no \
> +	--disable-arts \
> +	--disable-esd

Not needed I believe.

> +
> +# Remove the -Wl,-rpath option.
> +define SDL2_FIXUP_SDL2_CONFIG
> +	$(SED) 's%-Wl,-rpath,\$${libdir}%%' \
> +		$(STAGING_DIR)/usr/bin/sdl2-config
> +endef
> +
> +SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIXUP_SDL2_CONFIG
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))

Why do you have a host package? There is nothing that depends on it.

Could you look at those comments, and resubmit an updated version
and/or comment on them as needed?

Thanks a lot!

Thomas
Guillaume GARDET March 30, 2015, 9:33 a.m. UTC | #3
Hi,

Le 13/03/2015 17:14, Thomas Petazzoni a écrit :
> Dear Guillaume GARDET,
>
> Sorry for not replying earlier. I had a look at your patch some time
> ago and had some comments, but apparently never replied.
>
> On Thu, 26 Feb 2015 10:47:51 +0100, Guillaume GARDET wrote:
>
>> diff --git a/package/sdl2/Config.in b/package/sdl2/Config.in
>> new file mode 100644
>> index 0000000..5d0fe01
>> --- /dev/null
>> +++ b/package/sdl2/Config.in
>> @@ -0,0 +1,22 @@
>> +config BR2_PACKAGE_SDL2
>> +	bool "SDL2"
> I know it's not the case for the existing SDL package, but we generally
> prefer to have package names in lower-case in menuconfig, for
> consistency. So s/SDL2/sdl2/ here.

ok

>
>> +	help
>> +	  Simple DirectMedia Layer 2 - SDL2 is a library that allows
>> +	  programs portable low level access to a video framebuffer,
>> +	  audio output, mouse, and keyboard. It is not compatible with SDL1.
>> +
>> +	  http://www.libsdl.org/
> Did you check with very basic toolchains that SDL2 builds fine? I'm
> surprised you have really zero dependency on toolchain features. Can
> you check for example with the following configurations:
>
>    http://autobuild.buildroot.org/toolchains/configs/br-arm-basic.config
>    http://autobuild.buildroot.org/toolchains/configs/br-arm-full-nothread.config
>    http://autobuild.buildroot.org/toolchains/configs/bfin-linux-uclibc.config
>    http://autobuild.buildroot.org/toolchains/configs/bfin-uclinux.config
>
> You may discover that sdl2 depends on certain toolchain options.

I used sdl (1) as a template which has no wuch deps, but I will test.

>
>> +config BR2_PACKAGE_SDL2_DIRECTFB
>> +	bool "SDL2 DirectFB video driver"
>> +	depends on BR2_PACKAGE_DIRECTFB
> No need to repeat "SDL2" here, since this option is indented below the
> "sdl2" main option.

ok

>
>> diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
>> new file mode 100644
>> index 0000000..b9aa907
>> --- /dev/null
>> +++ b/package/sdl2/sdl2.mk
>> @@ -0,0 +1,67 @@
>> +################################################################################
>> +#
>> +# sdl2
>> +#
>> +################################################################################
>> +
>> +SDL2_VERSION = 2.0.3
>> +SDL2_SOURCE = SDL2-$(SDL2_VERSION).tar.gz
>> +SDL2_SITE = http://www.libsdl.org/release
>> +SDL2_LICENSE = zlib
>> +SDL2_LICENSE_FILES = COPYING
>> +SDL2_INSTALL_STAGING = YES
>> +
>> +# We must enable static build to get compilation successful.
>> +SDL2_CONF_OPTS = --enable-static
> Hum, this is a bit annoying, but OK.
>
>> +
>> +ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y)
>> +SDL2_DEPENDENCIES += directfb
>> +SDL2_CONF_OPTS += --enable-video-directfb=yes
>> +SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config
>> +else
>> +SDL2_CONF_OPTS += --enable-video-directfb=no
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SDL2_X11),y)
>> +SDL2_CONF_OPTS += --enable-video-x11=yes
>> +SDL2_DEPENDENCIES += \
>> +	xlib_libX11 xlib_libXext \
>> +	$(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \
>> +	$(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr)
> No space after the comma.

ok

>
>> +else
>> +SDL2_CONF_OPTS += --enable-video-x11=no
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_TSLIB),y)
>> +SDL2_DEPENDENCIES += tslib
>> +endif
> Please explicit the --enable-input-tslib / --disable-input-tslib.

ok

>
>> +ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
>> +SDL2_DEPENDENCIES += alsa-lib
>> +endif
> Same: --enable-alsa / --disable-alsa.

ok

>
>> +
>> +ifeq ($(BR2_PACKAGE_MESA3D),y)
>> +SDL_DEPENDENCIES += mesa3d
>> +endif
> What feature is this supposed to be enabling? mesa3d is an OpenGL
> implementation, but it's not the only one. So if it's OpenGL related,
> most likely this is not the right thing to do.

Here, I also used sdl (1) package as a template. So, sdl (1) should be fixed too.

>
>> +SDL2_CONF_OPTS += \
>> +	--enable-pulseaudio=no \
>> +	--disable-arts \
>> +	--disable-esd
> Please put this earlier, where the first non-conditional SDL2_CONF_OPTS
> definition is.

ok

>
>> +HOST_SDL2_CONF_OPTS += \
>> +	--enable-pulseaudio=no \
>> +	--enable-video-x11=no \
>> +	--disable-arts \
>> +	--disable-esd
> Not needed I believe.

ok. sdl1 has it too.

>
>> +
>> +# Remove the -Wl,-rpath option.
>> +define SDL2_FIXUP_SDL2_CONFIG
>> +	$(SED) 's%-Wl,-rpath,\$${libdir}%%' \
>> +		$(STAGING_DIR)/usr/bin/sdl2-config
>> +endef
>> +
>> +SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIXUP_SDL2_CONFIG
>> +
>> +$(eval $(autotools-package))
>> +$(eval $(host-autotools-package))
> Why do you have a host package? There is nothing that depends on it.

Indeed. I used sdl1 has a template as said earlier. :(

>
> Could you look at those comments, and resubmit an updated version
> and/or comment on them as needed?

Will send a V2.


Guillaume
Guillaume GARDET March 30, 2015, 12:50 p.m. UTC | #4
Hi,

Le 13/03/2015 17:14, Thomas Petazzoni a écrit :
>> +	help
>> +	  Simple DirectMedia Layer 2 - SDL2 is a library that allows
>> +	  programs portable low level access to a video framebuffer,
>> +	  audio output, mouse, and keyboard. It is not compatible with SDL1.
>> +
>> +	  http://www.libsdl.org/
> Did you check with very basic toolchains that SDL2 builds fine? I'm
> surprised you have really zero dependency on toolchain features. Can
> you check for example with the following configurations:
>
>    http://autobuild.buildroot.org/toolchains/configs/br-arm-basic.config
>    http://autobuild.buildroot.org/toolchains/configs/br-arm-full-nothread.config
>    http://autobuild.buildroot.org/toolchains/configs/bfin-linux-uclibc.config

The 3 are ok.

>    http://autobuild.buildroot.org/toolchains/configs/bfin-uclinux.config

This one fails with:
"dlfcn.h: No such file or directory"

WHat would be the right "dpends on" option?


Guillaume
Thomas Petazzoni March 30, 2015, 12:59 p.m. UTC | #5
Dear Guillaume GARDET - Oliséo,

On Mon, 30 Mar 2015 14:50:55 +0200, Guillaume GARDET - Oliséo wrote:

> >    http://autobuild.buildroot.org/toolchains/configs/bfin-uclinux.config
> 
> This one fails with:
> "dlfcn.h: No such file or directory"
> 
> WHat would be the right "dpends on" option?

depends on !BR2_STATIC_LIBS

and the appropriate comment. See section "17.2.2. Dependencies on
target and toolchain options" in the Buildroot manual.

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index fe3d3d0..ad4d248 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -215,6 +215,7 @@  endif
 	source "package/psplash/Config.in"
 	source "package/sawman/Config.in"
 	source "package/sdl/Config.in"
+	source "package/sdl2/Config.in"
 	source "package/sdl_gfx/Config.in"
 	source "package/sdl_image/Config.in"
 	source "package/sdl_mixer/Config.in"
diff --git a/package/sdl2/Config.in b/package/sdl2/Config.in
new file mode 100644
index 0000000..5d0fe01
--- /dev/null
+++ b/package/sdl2/Config.in
@@ -0,0 +1,22 @@ 
+config BR2_PACKAGE_SDL2
+	bool "SDL2"
+	help
+	  Simple DirectMedia Layer 2 - SDL2 is a library that allows
+	  programs portable low level access to a video framebuffer,
+	  audio output, mouse, and keyboard. It is not compatible with SDL1.
+
+	  http://www.libsdl.org/
+
+if BR2_PACKAGE_SDL2
+
+config BR2_PACKAGE_SDL2_DIRECTFB
+	bool "SDL2 DirectFB video driver"
+	depends on BR2_PACKAGE_DIRECTFB
+
+config BR2_PACKAGE_SDL2_X11
+	bool "SDL2 X11 video driver"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+
+endif
diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
new file mode 100644
index 0000000..b9aa907
--- /dev/null
+++ b/package/sdl2/sdl2.mk
@@ -0,0 +1,67 @@ 
+################################################################################
+#
+# sdl2
+#
+################################################################################
+
+SDL2_VERSION = 2.0.3
+SDL2_SOURCE = SDL2-$(SDL2_VERSION).tar.gz
+SDL2_SITE = http://www.libsdl.org/release
+SDL2_LICENSE = zlib
+SDL2_LICENSE_FILES = COPYING
+SDL2_INSTALL_STAGING = YES
+
+# We must enable static build to get compilation successful.
+SDL2_CONF_OPTS = --enable-static
+
+ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y)
+SDL2_DEPENDENCIES += directfb
+SDL2_CONF_OPTS += --enable-video-directfb=yes
+SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config
+else
+SDL2_CONF_OPTS += --enable-video-directfb=no
+endif
+
+ifeq ($(BR2_PACKAGE_SDL2_X11),y)
+SDL2_CONF_OPTS += --enable-video-x11=yes
+SDL2_DEPENDENCIES += \
+	xlib_libX11 xlib_libXext \
+	$(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \
+	$(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr)
+else
+SDL2_CONF_OPTS += --enable-video-x11=no
+endif
+
+ifeq ($(BR2_PACKAGE_TSLIB),y)
+SDL2_DEPENDENCIES += tslib
+endif
+
+ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
+SDL2_DEPENDENCIES += alsa-lib
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D),y)
+SDL_DEPENDENCIES += mesa3d
+endif
+
+SDL2_CONF_OPTS += \
+	--enable-pulseaudio=no \
+	--disable-arts \
+	--disable-esd
+
+HOST_SDL2_CONF_OPTS += \
+	--enable-pulseaudio=no \
+	--enable-video-x11=no \
+	--disable-arts \
+	--disable-esd
+
+# Remove the -Wl,-rpath option.
+define SDL2_FIXUP_SDL2_CONFIG
+	$(SED) 's%-Wl,-rpath,\$${libdir}%%' \
+		$(STAGING_DIR)/usr/bin/sdl2-config
+endef
+
+SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIXUP_SDL2_CONFIG
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))