diff options
author | Michael Grzeschik <m.grzeschik@pengutronix.de> | 2018-07-26 19:39:20 +0200 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2018-07-30 10:03:21 +0200 |
commit | 4a812800ddf85b70fabd6efc2cd94444da9844a2 (patch) | |
tree | c9905cf976c65eda05ed41d1ec88fc442b501500 | |
parent | 3377922ee33b04584ee8fccffde81b7bf987f116 (diff) | |
download | ptxdist-4a812800ddf85b70fabd6efc2cd94444da9844a2.tar.gz ptxdist-4a812800ddf85b70fabd6efc2cd94444da9844a2.tar.xz |
sdl2: add new package
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r-- | patches/SDL2-2.0.8/0001-sdl-2.0.8-add-egl-cflags-to-test.patch | 55 | ||||
-rw-r--r-- | patches/SDL2-2.0.8/0002-sdl-2.0.8-KMSDRM-find-available-card-if-called-witho.patch | 129 | ||||
-rwxr-xr-x | patches/SDL2-2.0.8/autogen.sh | 3 | ||||
-rw-r--r-- | patches/SDL2-2.0.8/series | 5 | ||||
-rw-r--r-- | rules/sdl2.in | 153 | ||||
-rw-r--r-- | rules/sdl2.make | 153 |
6 files changed, 498 insertions, 0 deletions
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/0002-sdl-2.0.8-KMSDRM-find-available-card-if-called-witho.patch b/patches/SDL2-2.0.8/0002-sdl-2.0.8-KMSDRM-find-available-card-if-called-witho.patch new file mode 100644 index 000000000..e889f87ae --- /dev/null +++ b/patches/SDL2-2.0.8/0002-sdl-2.0.8-KMSDRM-find-available-card-if-called-witho.patch @@ -0,0 +1,129 @@ +From 212c7c68ec228a1058f39497d18c65e9312d00df Mon Sep 17 00:00:00 2001 +From: Michael Grzeschik <m.grzeschik@pengutronix.de> +Date: Thu, 12 Jul 2018 13:48:54 +0200 +Subject: [PATCH] sdl-2.0.8: KMSDRM: find available card if called without + index + +Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> +--- + src/video/kmsdrm/SDL_kmsdrmvideo.c | 84 ++++++++++++++++++++++++++++-- + 1 file changed, 80 insertions(+), 4 deletions(-) + +diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c +index 7855eeddb..f63c91b0a 100644 +--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c ++++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c +@@ -41,15 +41,22 @@ + #include "SDL_kmsdrmopengles.h" + #include "SDL_kmsdrmmouse.h" + #include "SDL_kmsdrmdyn.h" ++#include <sys/stat.h> ++#include <dirent.h> ++#include <errno.h> + +-#define KMSDRM_DRI_CARD_0 "/dev/dri/card0" ++#define KMSDRM_DRI_PATH "/dev/dri/" + + static int +-KMSDRM_Available(void) ++check_modestting(int devindex) + { + int available = 0; ++ char device[512]; ++ int drm_fd; ++ ++ sprintf(device, "%scard%d", KMSDRM_DRI_PATH, devindex); + +- int drm_fd = open(KMSDRM_DRI_CARD_0, O_RDWR | O_CLOEXEC); ++ drm_fd = open(device, O_RDWR | O_CLOEXEC); + if (drm_fd >= 0) { + if (SDL_KMSDRM_LoadSymbols()) { + drmModeRes *resources = KMSDRM_drmModeGetResources(drm_fd); +@@ -65,6 +72,72 @@ KMSDRM_Available(void) + return available; + } + ++static int get_dricount(void) ++{ ++ int devcount = 0; ++ struct dirent *res; ++ struct stat sb; ++ DIR *folder; ++ ++ if (!(stat(KMSDRM_DRI_PATH, &sb) == 0 ++ && S_ISDIR(sb.st_mode))) { ++ printf("The path %s cannot be opened or is not available\n", ++ KMSDRM_DRI_PATH); ++ return 0; ++ } ++ ++ if (access(KMSDRM_DRI_PATH, F_OK) == -1) { ++ printf("The path %s cannot be opened\n", ++ KMSDRM_DRI_PATH); ++ return 0; ++ } ++ ++ folder = opendir(KMSDRM_DRI_PATH); ++ if (!folder) ++ return 0; ++ ++ while ((res = readdir(folder))) { ++ if (res->d_type == DT_CHR) ++ devcount++; ++ } ++ ++ closedir(folder); ++ ++ return devcount; ++} ++ ++static int ++get_driindex(void) ++{ ++ int i = 0; ++ int available = 0; ++ int devcount = get_dricount(); ++ ++ for (i = 0; i < devcount; i++) { ++ if (check_modestting(i)) { ++ available = 1; ++ break; ++ } ++ } ++ ++ if (available) ++ return i; ++ ++ return -ENOENT; ++} ++ ++static int ++KMSDRM_Available(void) ++{ ++ int ret = -ENOENT; ++ ++ ret = get_driindex(); ++ if (ret >= 0) ++ return 1; ++ ++ return ret; ++} ++ + static void + KMSDRM_Destroy(SDL_VideoDevice * device) + { +@@ -83,7 +156,10 @@ KMSDRM_Create(int devindex) + SDL_VideoDevice *device; + SDL_VideoData *vdata; + +- if (devindex < 0 || devindex > 99) { ++ if (!devindex || devindex > 99) ++ devindex = get_driindex(); ++ ++ if (devindex < 0) { + SDL_SetError("devindex (%d) must be between 0 and 99.\n", devindex); + return NULL; + } +-- +2.18.0 + 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..e4e931f38 --- /dev/null +++ b/patches/SDL2-2.0.8/series @@ -0,0 +1,5 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-sdl-2.0.8-add-egl-cflags-to-test.patch +0002-sdl-2.0.8-KMSDRM-find-available-card-if-called-witho.patch +# b803bb470cfcfd4d04f208304b9fd212 - git-ptx-patches magic diff --git a/rules/sdl2.in b/rules/sdl2.in new file mode 100644 index 000000000..a509002ea --- /dev/null +++ b/rules/sdl2.in @@ -0,0 +1,153 @@ +## 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 XORGPROTO if SDL2_XORG + select XORG_LIB_X11 if SDL2_XORG + select XORG_LIB_XXF86VM if SDL2_XORG + select XORG_LIB_XRANDR if SDL2_XORG + select XORG_LIB_XCURSOR if SDL2_XORG + select XORG_LIB_XI if SDL2_XORG + 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_EGL_DRM if SDL2_KMS + select MESALIB if SDL2_WAYLAND || SDL2_OPENGL + select MESALIB_GBM 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_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 + +menuconfig SDL2_AUDIO + bool + prompt "SDL2 Audio Support " + default y + help + Turn on to enable audio support in libsdl2 + +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 is a sound system for POSIX OSes, meaning that it + is a proxy for your sound applications. + +endif + +menuconfig SDL2_VIDEO + bool + prompt "SDL2 Video Support " + default y + help + Turn on to enable video support in libsdl2 + +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_OPENGL + bool + prompt "OpenGL Support" + depends on SDL2_XORG + help + OpenGL is a multi-platform software interface to + graphics hardware, supporting rendering and imaging + operations. + +config SDL2_OPENGLES + bool + default SDL2_OPENGLES1 || SDL2_OPENGLES2 + +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_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..441620789 --- /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 \ + --enable-render \ + --enable-events \ + --enable-joystick \ + --enable-haptic \ + --disable-power \ + --disable-filesystem \ + --enable-threads \ + --enable-timers \ + --enable-file \ + --enable-loadso \ + --enable-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 \ + --$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xrandr \ + --$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xcursor \ + --disable-video-x11-xdbe \ + --$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xinput \ + --disable-video-x11-scrnsaver \ + --disable-video-x11-xshape \ + --disable-video-cocoa \ + --disable-render-metal \ + --disable-video-directfb \ + --disable-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 |