mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH v4 1/6] sdl2: add new package
Date: Wed, 18 Jul 2018 16:54:36 +0200	[thread overview]
Message-ID: <20180718145436.dmgbxi4ffo6elweh@pengutronix.de> (raw)
In-Reply-To: <20180717133732.27192-2-m.grzeschik@pengutronix.de>

On Tue, Jul 17, 2018 at 03:37:27PM +0200, Michael Grzeschik wrote:
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> ---
> v1 -> v2: - added select to MESALIB_GL* on SDL2_OPENGL*
>           - padded prompt entry with extra spaces
> v2 -> v3: - added patch to add egl cflags on configure.in and enabled autogen.sh
> v3 -> v4: - improved egl check with PKG_CHECK_MODULES
>           - removed extract stage and added custom autogen.sh
> 
>  ...001-sdl-2.0.8-add-egl-cflags-to-test.patch |  55 +++++
>  patches/SDL2-2.0.8/autogen.sh                 |   3 +
>  patches/SDL2-2.0.8/series                     |   4 +
>  rules/sdl2.in                                 | 206 ++++++++++++++++++
>  rules/sdl2.make                               | 153 +++++++++++++
>  5 files changed, 421 insertions(+)
>  create mode 100644 patches/SDL2-2.0.8/0001-sdl-2.0.8-add-egl-cflags-to-test.patch
>  create mode 100755 patches/SDL2-2.0.8/autogen.sh
>  create mode 100644 patches/SDL2-2.0.8/series
>  create mode 100644 rules/sdl2.in
>  create mode 100644 rules/sdl2.make
> 
> diff --git a/patches/SDL2-2.0.8/0001-sdl-2.0.8-add-egl-cflags-to-test.patch b/patches/SDL2-2.0.8/0001-sdl-2.0.8-add-egl-cflags-to-test.patch
> new file mode 100644
> index 000000000..c86d48e5a
> --- /dev/null
> +++ b/patches/SDL2-2.0.8/0001-sdl-2.0.8-add-egl-cflags-to-test.patch
> @@ -0,0 +1,55 @@
> +From: Sergey Zhuravlevich <zhurxx@gmail.com>
> +Date: Mon, 16 Jul 2018 12:03:42 +0200
> +Subject: [PATCH] sdl-2.0.8: add egl-cflags to test
> +
> +- also call aclocal to expand PKG_CHECK_MODULES
> +
> +Signed-off-by: Sergey Zhuravlevich <zhurxx@gmail.com>
> +Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> +---
> + autogen.sh   |  2 +-
> + configure.in | 11 +++++++++++
> + 2 files changed, 12 insertions(+), 1 deletion(-)
> +
> +diff --git a/autogen.sh b/autogen.sh
> +index 9edfb8a7d913..2f1e2ef3d419 100755
> +--- a/autogen.sh
> ++++ b/autogen.sh
> +@@ -8,7 +8,7 @@ test -z "$srcdir" && srcdir=.
> + cd "$srcdir"
> + 
> + # Regenerate configuration files
> +-cat acinclude/* >aclocal.m4
> ++aclocal
> + found=false
> + for autoconf in autoconf autoconf259 autoconf-2.59
> + do if which $autoconf >/dev/null 2>&1; then $autoconf && found=true; break; fi
> +diff --git a/configure.in b/configure.in
> +index 1c7e79338a88..06e37a1b7f98 100644
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -2335,6 +2335,14 @@ dnl Find OpenGL ES
> + CheckOpenGLESX11()
> + {
> +     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
> ++        PKG_CHECK_MODULES(EGL, [egl], [have_egl="yes"], [have_egl="no"])
> ++
> ++        save_CFLAGS="$CFLAGS"
> ++        if test x$have_egl = xyes; then
> ++          CFLAGS="$save_CFLAGS $EGL_CFLAGS"
> ++          EXTRA_CFLAGS="$EXTRA_CFLAGS $EGL_CFLAGS"
> ++        fi
> ++
> +         AC_MSG_CHECKING(for EGL support)
> +         video_opengl_egl=no
> +         AC_TRY_COMPILE([
> +@@ -2347,6 +2355,9 @@ CheckOpenGLESX11()
> +         video_opengl_egl=yes
> +         ])
> +         AC_MSG_RESULT($video_opengl_egl)
> ++
> ++        CFLAGS="$save_CFLAGS"
> ++
> +         if test x$video_opengl_egl = xyes; then
> +             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
> +         fi
> diff --git a/patches/SDL2-2.0.8/autogen.sh b/patches/SDL2-2.0.8/autogen.sh
> new file mode 100755
> index 000000000..a430a4eb7
> --- /dev/null
> +++ b/patches/SDL2-2.0.8/autogen.sh
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +./autogen.sh
> diff --git a/patches/SDL2-2.0.8/series b/patches/SDL2-2.0.8/series
> new file mode 100644
> index 000000000..3693c2785
> --- /dev/null
> +++ b/patches/SDL2-2.0.8/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-sdl-2.0.8-add-egl-cflags-to-test.patch
> +# 57d72a951bd7f961008ad5274d82876a  - git-ptx-patches magic
> diff --git a/rules/sdl2.in b/rules/sdl2.in
> new file mode 100644
> index 000000000..54edea6ab
> --- /dev/null
> +++ b/rules/sdl2.in
> @@ -0,0 +1,206 @@
> +## SECTION=multimedia_sdl
> +
> +menuconfig SDL2
> +	tristate
> +	prompt "SDL2                          "
> +	select LIBC_M
> +	select LIBC_DL
> +	select LIBC_PTHREAD
> +	select GCCLIBS_GCC_S
> +	select LIBUNWIND
> +	select CROSS_NASM		if SDL2_VIDEO
> +	select ALSA_LIB			if SDL2_ALSA
> +	select XORG_LIB_X11		if SDL2_XORG
> +	select XORG_LIB_XT		if SDL2_XORG
> +	select XORG_LIB_XVMC		if SDL2_XORG && SDL2_VIDEO
> +	select DIRECTFB			if SDL2_DIRECTFB
> +	select TSLIB			if SDL2_TSLIB
> +	select DBUS			if SDL2_DBUS
> +	select LIBDRM			if SDL2_WAYLAND
> +	select MESALIB_GLX		if SDL2_OPENGL
> +	select MESALIB_GLES1		if SDL2_OPENGLES1
> +	select MESALIB_GLES2		if SDL2_OPENGLES2
> +	select MESALIB			if SDL2_WAYLAND
> +	select MESALIB_GBM		if SDL2_WAYLAND
> +	select MESALIB_EGL		if SDL2_WAYLAND
> +	select MESALIB_EGL_DRM		if SDL2_WAYLAND
> +	select MESALIB_EGL_WAYLAND	if SDL2_WAYLAND
> +	select LIBXKBCOMMON		if SDL2_WAYLAND
> +	select UDEV			if SDL2_UDEV
> +	select UDEV_LIBUDEV		if SDL2_UDEV
> +	select PULSEAUDIO		if SDL2_PULSEAUDIO
> +	select WAYLAND			if SDL2_WAYLAND
> +	select WAYLAND_PROTOCOLS	if SDL2_WAYLAND
> +	help
> +	  Simple DirectMedia Layer is a cross-platform multimedia
> +	  library designed to provide low level access to audio,
> +	  keyboard, mouse, joystick, 3D hardware via OpenGL, and
> +	  2D video framebuffer.
> +
> +if SDL2
> +

I'd like to avoid unnecessary options here. Just pick a good default
(probably enabled) unless there is a good reason to add an option.
e.g. Anything that has an external dependency should have an option.
And SDL2_KMS for consistency.

> +config SDL2_TIMERS
> +	bool
> +	prompt "SDL2 Timers Support"
> +	default y
> +	help
> +	  FIXME

Either add help texts or remove the help completely. No FIXMEs.

Michael

> +
> +config SDL2_FILE
> +	bool
> +	prompt "SDL2 File Support"
> +	default y
> +	help
> +	  FIXME
> +
> +config SDL2_CPUINFO
> +	bool
> +	prompt "SDL2 CPU Info Support"
> +	default y
> +	help
> +	  FIXME
> +
> +menuconfig SDL2_AUDIO
> +	bool
> +	prompt "SDL2 Audio Support             "
> +	default y
> +	help
> +	  FIXME
> +
> +if SDL2_AUDIO
> +
> +config SDL2_OSS
> +	bool
> +	prompt "SDL2 OSS Support"
> +	help
> +	  Open Sound System (OSS) is the first attempt in
> +	  unifying the digital audio architecture for UNIX.
> +	  OSS is a set of device drivers that provide a
> +	  uniform API across all the major UNIX architectures.
> +
> +config SDL2_ALSA
> +	bool
> +	prompt "SDL2 ALSA Support"
> +	default y
> +	help
> +	  The Advanced Linux Sound Architecture (ALSA)
> +	  provides audio and MIDI functionality to the
> +	  Linux operating system.
> +
> +config SDL2_PULSEAUDIO
> +	bool
> +	prompt "SDL2 Pulseaudio Support"
> +	default y
> +	help
> +	  pulseaudio
> +
> +endif
> +
> +menuconfig SDL2_VIDEO
> +	bool
> +	prompt "SDL2 Video Support             "
> +	default y
> +	help
> +	  FIXME
> +
> +if SDL2_VIDEO
> +
> +config SDL2_KMS
> +	bool
> +	prompt "KMS Support                "
> +	help
> +	  kms video support
> +
> +config SDL2_XORG
> +	bool
> +	prompt "Xorg Support                "
> +	help
> +	  X.Org provides an open source implementation of the
> +	  X Window System.
> +
> +config SDL2_WAYLAND
> +	bool
> +	prompt "Wayland Support                "
> +	help
> +	  Wayland Window System.
> +
> +config SDL2_DIRECTFB
> +	bool
> +	depends on STAGING
> +	prompt "DirectFB Support"
> +	default y
> +	help
> +	  DirectFB is a thin library that provides hardware
> +	  graphics acceleration, input device handling and
> +	  abstraction, integrated windowing system with support
> +	  for translucent windows and multiple display layers,
> +	  not only on top of the Linux Framebuffer Device.
> +
> +config SDL2_OPENGL
> +	bool
> +	prompt "OpenGL Support"
> +	help
> +	  OpenGL is a multi-platform software interface to
> +	  graphics hardware, supporting rendering and imaging
> +	  operations.
> +
> +config SDL2_OPENGLES
> +	bool
> +	prompt "OpenGLES Support"
> +	help
> +	  OpenGL ES graphics support
> +
> +config SDL2_OPENGLES1
> +	bool
> +	prompt "OpenGLES1 Support"
> +	help
> +	  OpenGL ES1 graphics support
> +
> +config SDL2_OPENGLES2
> +	bool
> +	prompt "OpenGLES2 Support"
> +	help
> +	  OpenGL ES2 graphics support
> +
> +endif
> +
> +config SDL2_EVENT
> +	bool
> +	prompt "SDL2 Event Support"
> +	default y
> +	help
> +	  FIXME
> +
> +config SDL2_JOYSTICK
> +	bool
> +	prompt "SDL2 Joystick Support"
> +	help
> +	  FIXME
> +
> +config SDL2_THREADS
> +	bool
> +	prompt "SDL2 Thread Support            "
> +	default y
> +	help
> +	  Turn on multithreading support
> +
> +config SDL2_TSLIB
> +	bool
> +	prompt "tslib Support"
> +	help
> +	  Turn on support for the touchscreen library 'tslib'
> +
> +config SDL2_UDEV
> +	bool
> +	prompt "udev Support"
> +	help
> +	  Turn on support for the udev library
> +
> +config SDL2_DBUS
> +	bool
> +	prompt "dbus Support"
> +
> +	help
> +	  Turn on support for the dbus library
> +
> +endif
> diff --git a/rules/sdl2.make b/rules/sdl2.make
> new file mode 100644
> index 000000000..3c0d62b66
> --- /dev/null
> +++ b/rules/sdl2.make
> @@ -0,0 +1,153 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2018 by Sergey Zhuravlevich
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_SDL2) += sdl2
> +
> +#
> +# Paths and names
> +#
> +SDL2_VERSION	:= 2.0.8
> +SDL2_MD5		:= 3800d705cef742c6a634f202c37f263f
> +SDL2		:= SDL2-$(SDL2_VERSION)
> +SDL2_SUFFIX	:= tar.gz
> +SDL2_URL		:= https://www.libsdl.org/release/$(SDL2).$(SDL2_SUFFIX)
> +SDL2_SOURCE	:= $(SRCDIR)/$(SDL2).$(SDL2_SUFFIX)
> +SDL2_DIR		:= $(BUILDDIR)/$(SDL2)
> +SDL2_LICENSE	:= zlib
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# autoconf
> +#
> +SDL2_CONF_TOOL	:= autoconf
> +SDL2_CONF_OPT	:= \
> +	$(CROSS_AUTOCONF_USR) \
> +	--enable-shared \
> +	--disable-static \
> +	--enable-libtool-lock \
> +	--enable-assertions=auto \
> +	--enable-dependency-tracking \
> +	--enable-libc \
> +	--enable-gcc-atomics \
> +	--enable-atomic \
> +	--$(call ptx/endis,PTXCONF_SDL2_AUDIO)-audio \
> +	--$(call ptx/endis,PTXCONF_SDL2_VIDEO)-video \
> +	--disable-render \
> +	--$(call ptx/endis,PTXCONF_SDL2_EVENT)-events \
> +	--$(call ptx/endis,PTXCONF_SDL2_JOYSTICK)-joystick \
> +	--disable-haptic \
> +	--disable-power \
> +	--disable-filesystem \
> +	--$(call ptx/endis,PTXCONF_SDL2_THREADS)-threads \
> +	--$(call ptx/endis,PTXCONF_SDL2_TIMERS)-timers \
> +	--$(call ptx/endis,PTXCONF_SDL2_FILE)-file \
> +	--enable-loadso \
> +	--$(call ptx/endis,PTXCONF_SDL2_CPUINFO)-cpuinfo \
> +	--enable-assembly \
> +	--disable-ssemath \
> +	--disable-mmx \
> +	--disable-3dnow \
> +	--disable-sse \
> +	--disable-sse2 \
> +	--disable-sse3 \
> +	--disable-jack \
> +	--disable-jack-shared \
> +	--disable-sndio \
> +	--disable-sndio-shared \
> +	--disable-fusionsound \
> +	--disable-fusionsound-shared \
> +	--$(call ptx/endis,PTXCONF_SDL2_OSS)-oss \
> +	--$(call ptx/endis,PTXCONF_SDL2_ALSA)-alsa \
> +	--disable-alsatest \
> +	--disable-alsa-shared \
> +	--disable-esd \
> +	--disable-esdtest \
> +	--disable-esd-shared \
> +	--$(call ptx/endis,PTXCONF_SDL2_PULSEAUDIO)-pulseaudio \
> +	--$(call ptx/endis,PTXCONF_SDL2_PULSEAUDIO)-pulseaudio-shared \
> +	--disable-arts \
> +	--disable-arts-shared \
> +	--disable-nas \
> +	--disable-nas-shared \
> +	--disable-diskaudio \
> +	--disable-dummyaudio \
> +	--disable-libsamplerate \
> +	--disable-libsamplerate-shared \
> +	--$(call ptx/endis,PTXCONF_SDL2_WAYLAND)-video-wayland \
> +	--disable-video-wayland-qt-touch \
> +	--$(call ptx/endis,PTXCONF_SDL2_WAYLAND)-wayland-shared \
> +	--disable-video-mir \
> +	--disable-mir-shared \
> +	--disable-video-rpi \
> +	--disable-altivec \
> +	--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11 \
> +	--disable-x11-shared \
> +	--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-vm \
> +	--disable-video-vivante \
> +	--disable-video-x11-xinerama \
> +	--disable-video-x11-xrandr \
> +	--disable-video-x11-xcursor \
> +	--disable-video-x11-xdbe \
> +	--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xinput \
> +	--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-scrnsaver \
> +	--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xshape \
> +	--disable-video-cocoa \
> +	--disable-render-metal \
> +	--$(call ptx/endis,PTXCONF_SDL2_DIRECTFB)-video-directfb \
> +	--$(call ptx/endis,PTXCONF_SDL2_DIRECTFB)-directfb-shared \
> +	--$(call ptx/endis,PTXCONF_SDL2_KMS)-video-kmsdrm \
> +	--$(call ptx/endis,PTXCONF_SDL2_KMS)-kmsdrm-shared \
> +	--enable-video-dummy \
> +	--$(call ptx/endis,PTXCONF_SDL2_OPENGL)-video-opengl \
> +	--$(call ptx/endis,PTXCONF_SDL2_OPENGLES)-video-opengles \
> +	--$(call ptx/endis,PTXCONF_SDL2_OPENGLES1)-video-opengles1 \
> +	--$(call ptx/endis,PTXCONF_SDL2_OPENGLES2)-video-opengles2 \
> +	--disable-video-vulkan \
> +	--$(call ptx/endis,PTXCONF_SDL2_UDEV)-libudev \
> +	--$(call ptx/endis,PTXCONF_SDL2_DBUS)-dbus \
> +	--disable-ime \
> +	--disable-ibus \
> +	--disable-fcitx \
> +	--$(call ptx/endis,PTXCONF_SDL2_TSLIB)-input-tslib \
> +	--enable-pthreads \
> +	--enable-pthread-sem \
> +	--disable-directx \
> +	--enable-sdl-dlopen \
> +	--enable-clock_gettime \
> +	--disable-rpath \
> +	--disable-render-d3d \
> +	--$(call ptx/wwo,PTXCONF_SDL2_XORG)-x
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/sdl2.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, sdl2)
> +	@$(call install_fixup, sdl2,PRIORITY,optional)
> +	@$(call install_fixup, sdl2,SECTION,base)
> +	@$(call install_fixup, sdl2,AUTHOR,"Sergey Zhuravlevich <zhurxx@gmail.com>")
> +	@$(call install_fixup, sdl2,DESCRIPTION,missing)
> +
> +	@$(call install_lib, sdl2, 0, 0, 0644, libSDL2-2.0)
> +
> +	@$(call install_finish, sdl2)
> +
> +	@$(call touch)
> +
> +# vim: syntax=make
> -- 
> 2.18.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2018-07-18 14:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-17 13:37 [ptxdist] [PATCH v4 0/6] sdl2: add support for new packages Michael Grzeschik
2018-07-17 13:37 ` [ptxdist] [PATCH v4 1/6] sdl2: add new package Michael Grzeschik
2018-07-18 14:54   ` Michael Olbrich [this message]
2018-07-17 13:37 ` [ptxdist] [PATCH v4 2/6] sdl2-test: " Michael Grzeschik
2018-07-17 13:37 ` [ptxdist] [PATCH v4 3/6] sdl2-image: " Michael Grzeschik
2018-07-17 13:37 ` [ptxdist] [PATCH v4 4/6] sdl2-net: " Michael Grzeschik
2018-07-17 13:37 ` [ptxdist] [PATCH v4 5/6] sdl2-ttf: " Michael Grzeschik
2018-07-18 14:56   ` Michael Olbrich
2018-07-17 13:37 ` [ptxdist] [PATCH v4 6/6] sdl2-mixer: " Michael Grzeschik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180718145436.dmgbxi4ffo6elweh@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox