Skip to contentSkip to conversation

Add new libraries for XBMC Gotham

PATCH Superseded Bernd Kuhls 4 participants 16 messages Apr 4, 2014 – Apr 26, 2014

v5 of 14 Superseded Latest is v14 →

lore
Share & tools
lore
#0 lore raw

v5 cover Add new libraries for XBMC Gotham

Changelog:
v5: - rebased
- updated libva (Thomas)
- include only git-ready patches (X11 intel driver will follow in a seperate patch)
v4: - rebased
- removed flac version bump (Gustavo)
- removed libfs version bump https://github.com/OpenELEC/OpenELEC.tv/commit/b55859

Regards, Bernd

Bernd Kuhls (8):
libdrm: Explain dependency on xorg in Kconfig
mesa3d: Explain dependency for i965 DRI driver on xorg in Kconfig
libva: new package
libva-intel-driver: new package
ffmpeg: Add libva support
libglu: new package
libglew: new package
sdl: Add new dependency libglu for opengl support

 package/mesa3d/Config.in                              |    4 ----
 package/opengl/Config.in                              |    1 -
 package/opengl/libgl/Config.in                        |    6 ------
 package/opengl/libgl/libgl.mk                         |   16 ----------------
 package/vlc/vlc.mk                                    |    4 ++--
 package/x11r7/xdriver_xf86-video-ati/Config.in        |    5 +----
 package/x11r7/xdriver_xf86-video-glint/Config.in      |    5 +----
 package/x11r7/xdriver_xf86-video-intel/Config.in      |    7 ++-----
 package/x11r7/xdriver_xf86-video-mach64/Config.in     |    3 ---
 package/x11r7/xdriver_xf86-video-mga/Config.in        |    5 +----
 package/x11r7/xdriver_xf86-video-openchrome/Config.in |    5 +----
 package/x11r7/xdriver_xf86-video-r128/Config.in       |    5 +----
 package/x11r7/xdriver_xf86-video-savage/Config.in     |    5 +----
 package/x11r7/xdriver_xf86-video-sis/Config.in        |    5 +----
 package/x11r7/xdriver_xf86-video-tdfx/Config.in       |    5 +----
 package/x11r7/xdriver_xf86-video-vmware/Config.in     |    5 +----
 package/x11r7/xserver_xorg-server/Config.in           |    1 +
 17 files changed, 14 insertions(+), 73 deletions(-)
 delete mode 100644 package/opengl/libgl/Config.in
 delete mode 100644 package/opengl/libgl/libgl.mk
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH v5 1/8 libdrm: Explain dependency on xorg in Kconfig

---
 package/libdrm/Config.in |    3 +++
 1 file changed, 3 insertions(+)
package/libdrm/Config.in +3 -0
index 7192e94..0a8c681 100644
@@ -20,6 +20,9 @@ config BR2_PACKAGE_LIBDRM_INTEL
 	help
 	  installs intel graphics driver
 
+comment "libdrm intel driver depends on X.org"
+	depends on !BR2_PACKAGE_XORG7
+
 config BR2_PACKAGE_LIBDRM_RADEON
 	bool "radeon"
 	depends on BR2_i386 || BR2_x86_64
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH v5 2/8 mesa3d: Explain dependency for i965 DRI driver on xorg in Kconfig

In reply to Bernd Kuhls
---
 package/mesa3d/Config.in |    3 +++
 1 file changed, 3 insertions(+)
package/mesa3d/Config.in +3 -0
index f3d855b..12ec068 100644
@@ -77,6 +77,9 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
 	help
 	  Supports all Intel GPUs.  This version is most supported by Intel.
 
+comment "DRI i965 driver depends on X.org"
+	depends on !BR2_PACKAGE_XORG7
+
 config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
 	bool "DRI radeon driver"
 	depends on BR2_i386 || BR2_x86_64
Signature · 1 line
1.7.10.4
#3 lore raw

PATCH v5 2/8 mesa3d: Explain dependency for i965 DRI driver on xorg in Kconfig

Bernd, All,

On 2014-04-04 07:18 +0200, Bernd Kuhls spake thusly:

Quoted 11 lines
---
 package/mesa3d/Config.in |    3 +++
 1 file changed, 3 insertions(+)
package/mesa3d/Config.in +0 -0
index f3d855b..12ec068 100644

package/mesa3d/Config.in config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 · line 81

Quoted 5 lines
package/mesa3d/Config.in +2 -0
@@ -77,6 +77,9 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
 	help
 	  Supports all Intel GPUs.  This version is most supported by Intel.
 
+comment "DRI i965 driver depends on X.org"
+	depends on !BR2_PACKAGE_XORG7

This is oncorrect: the i965 driver does not have a "depends on XORG7", so the comment is wrong.

Either the driver is missing such a "depends on XORG7", or we should not add this comment.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH v5 2/8 mesa3d: Explain dependency for i965 DRI driver on xorg in Kconfig

"Yann E. MORIN" <[email protected]> wrote in news:20140417213757.GB3270 at free.fr:

Quoted 11 lines

Bernd, All,

On 2014-04-04 07:18 +0200, Bernd Kuhls spake thusly:

Quoted 8 lines
package/mesa3d/Config.in +0 -0
@@ -77,6 +77,9 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
      help
        Supports all Intel GPUs.  This version is most supported by
        Intel. 
 
Quoted 8 lines

package/mesa3d/Config.in config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 · line 81

Quoted 2 lines
package/mesa3d/Config.in +2 -0
+comment "DRI i965 driver depends on X.org"
+     depends on !BR2_PACKAGE_XORG7

This is oncorrect: the i965 driver does not have a "depends on XORG7", so the comment is wrong.

Either the driver is missing such a "depends on XORG7", or we should not add this comment.

Hi,

your patch
http://git.buildroot.net/buildroot/commit/package/mesa3d/Config.in?
id=c65d7e55a6a9a02f39976fb06e400eb3aefde160 superseeds my patch, closed in patchworks, thanks!

Regards, Bernd

#5 lore raw

PATCH v2 3/8 libva: new package

In reply to Bernd Kuhls

---
v2: re-formatted options (Thomas)

 package/Config.in       |    1 +
 package/libva/Config.in |   12 ++++++++++++
 package/libva/libva.mk  |   48 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+)
 create mode 100644 package/libva/Config.in
 create mode 100644 package/libva/libva.mk
package/Config.in +1 -0
index e816603..b45c6e9 100644
@@ -593,6 +593,7 @@ source "package/libsvg/Config.in"
 source "package/libsvg-cairo/Config.in"
 source "package/libsvgtiny/Config.in"
 source "package/libungif/Config.in"
+source "package/libva/Config.in"
 source "package/opencv/Config.in"
 source "package/opengl/Config.in"
 source "package/pango/Config.in"
package/libva/Config.in new file +12 -0
new file mode 100644
index 0000000..98a5ee8
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_LIBVA
+	bool "libva"
+	select BR2_PACKAGE_LIBDRM
+	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XSERVER_XORG_SERVER
+	help
+	  The main motivation for VA-API (Video Acceleration API) is to enable
+	  hardware accelerated video decode/encode at various entry-points (VLD,
+	  IDCT, Motion Compensation etc.) for the prevailing coding standards
+	  today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).
+
+	  http://www.freedesktop.org/wiki/Software/vaapi/
package/libva/libva.mk new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#6 lore raw

PATCH v2 3/8 libva: new package

Dear Bernd Kuhls,

package/libva/Config.in line 5

Quoted 11 lines · Bernd Kuhls
package/libva/Config.in new file +5 -0
new file mode 100644
index 0000000..98a5ee8
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_LIBVA
+	bool "libva"
+	select BR2_PACKAGE_LIBDRM
+	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XSERVER_XORG_SERVER

When BR2_PACKAGE_XSERVER_XORG_SERVER is enabled, the .mk file also depends on xlib_libX11, so I believe you should add a:

select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XSERVER_XORG_SERVER

here.

Also, you need to propagate the BR2_LARGEFILE dependency of BR2_PACKAGE_LIBDRM.

Quoted 6 lines
package/libva/libva.mk new file +0 -0
new file mode 100644
index 0000000..58d7b59

package/libva/libva.mk line 10

Quoted 10 lines
package/libva/libva.mk new file +10 -0
@@ -0,0 +1,48 @@
+################################################################################
+#
+# libva
+#
+################################################################################
+
+LIBVA_VERSION = 1.3.0
+LIBVA_SOURCE = libva-$(LIBVA_VERSION).tar.bz2
+LIBVA_SITE = http://www.freedesktop.org/software/vaapi/releases/libva
+LIBVA_LICENSE = MIT

You can add:

LIBVA_LICENSE_FILES = COPYING

package/libva/libva.mk line 22

Quoted 12 lines
package/libva/libva.mk new file +12 -0
+LIBVA_INSTALL_STAGING = YES
+
+LIBVA_DEPENDENCIES = host-pkgconf libdrm
+
+LIBVA_CONF_OPT = \
+	--enable-drm \
+	--disable-dummy-driver \
+	--with-drivers-path="/usr/lib/va"
+
+ifeq ($(BR2_PACKAGE_MESA3D),y)
+LIBVA_DEPENDENCIES += mesa3d
+LIBVA_CONF_OPT += --enable-glx

Are you sure that GLX support is always available as soon as mesa3d is enabled? I believe that GLX is the protocol used to do OpenGL under X.org, but Mesa3d is usable outside of X.org.

Quoted 11 lines
package/libva/libva.mk new file +11 -0
+endif
+
+ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER),y)
+LIBVA_DEPENDENCIES += \
+	xlib_libX11 \
+	xlib_libXext \
+	xlib_libXfixes
+LIBVA_CONF_OPT += --enable-x11
+else
+LIBVA_CONF_OPT += --disable-x11
+endif

package/libva/libva.mk line 43

Quoted 10 lines
package/libva/libva.mk new file +10 -0
+
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+LIBVA_DEPENDENCIES += wayland
+LIBVA_CONF_OPT += --enable-wayland
+else
+LIBVA_CONF_OPT += --disable-wayland
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y)
+LIBVA_CONF_OPT += --enable-egl

This would need a:

LIBVA_DEPENDENCIES += libegl

otherwise, the egl implementation is not guaranteed to be available before libva gets built.

package/libva/libva.mk line 48

Quoted 5 lines
package/libva/libva.mk new file +5 -0
+else
+LIBVA_CONF_OPT += --disable-egl
+endif
+
+$(eval $(autotools-package))

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH v5 4/8 libva-intel-driver: new package

In reply to Bernd Kuhls
---
 package/Config.in                                |    1 +
 package/libva-intel-driver/Config.in             |   13 +++++++++++++
 package/libva-intel-driver/libva-intel-driver.mk |   13 +++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 package/libva-intel-driver/Config.in
 create mode 100644 package/libva-intel-driver/libva-intel-driver.mk
package/Config.in +1 -0
index b45c6e9..3550935 100644
@@ -594,6 +594,7 @@ source "package/libsvg-cairo/Config.in"
 source "package/libsvgtiny/Config.in"
 source "package/libungif/Config.in"
 source "package/libva/Config.in"
+source "package/libva-intel-driver/Config.in"
 source "package/opencv/Config.in"
 source "package/opengl/Config.in"
 source "package/pango/Config.in"
package/libva-intel-driver/Config.in new file +13 -0
new file mode 100644
index 0000000..343f45f
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_LIBVA_INTEL_DRIVER
+	bool "libva-intel-driver"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_PACKAGE_LIBVA
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_LIBDRM_INTEL
+	help
+	  VA-API back-end driver for Intel graphics chips
+
+	  https://01.org/linuxgraphics/community/vaapi
+
+comment "libva intel driver depends on libva & X.org"
+	depends on !BR2_PACKAGE_LIBVA || !BR2_PACKAGE_XORG7
package/libva-intel-driver/libva-intel-driver.mk new file +13 -0
new file mode 100644
index 0000000..86d2dcc
@@ -0,0 +1,13 @@
+################################################################################
+#
+# libva-intel-driver
+#
+################################################################################
+
+LIBVA_INTEL_DRIVER_VERSION = 1.3.0
+LIBVA_INTEL_DRIVER_SOURCE = libva-intel-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2
+LIBVA_INTEL_DRIVER_SITE = http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver
+LIBVA_INTEL_DRIVER_LICENSE = MIT
+LIBVA_INTEL_DRIVER_DEPENDENCIES = libva
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.10.4
#8 lore raw

PATCH v5 4/8 libva-intel-driver: new package

Dear Bernd Kuhls,

package/libva-intel-driver/Config.in line 5

Quoted 11 lines · Bernd Kuhls
package/libva-intel-driver/Config.in new file +5 -0
new file mode 100644
index 0000000..343f45f
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_LIBVA_INTEL_DRIVER
+	bool "libva-intel-driver"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_PACKAGE_LIBVA
+	depends on BR2_PACKAGE_XORG7

In fact, in the libva package, you should maybe use:

select BR2_PACKAGE_XLIB_<foo> if BR2_PACKAGE_XORG7

Here, I'm not sure about the dependencies. Maybe we want to:

select BR2_PACKAGE_LIBVA
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_LIBDRM_INTEL

of course, don't forget to propagate the dependencies of libva and libdrm.

X.org can remain a "depends on".

Quoted 14 lines
package/libva-intel-driver/Config.in new file +8 -0
+	select BR2_PACKAGE_LIBDRM_INTEL
+	help
+	  VA-API back-end driver for Intel graphics chips
+
+	  https://01.org/linuxgraphics/community/vaapi
+
+comment "libva intel driver depends on libva & X.org"
+	depends on !BR2_PACKAGE_LIBVA || !BR2_PACKAGE_XORG7
package/libva-intel-driver/libva-intel-driver.mk new file +0 -0
new file mode 100644
index 0000000..86d2dcc

package/libva-intel-driver/libva-intel-driver.mk line 10

Quoted 10 lines
package/libva-intel-driver/libva-intel-driver.mk new file +10 -0
@@ -0,0 +1,13 @@
+################################################################################
+#
+# libva-intel-driver
+#
+################################################################################
+
+LIBVA_INTEL_DRIVER_VERSION = 1.3.0
+LIBVA_INTEL_DRIVER_SOURCE = libva-intel-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2
+LIBVA_INTEL_DRIVER_SITE = http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver
+LIBVA_INTEL_DRIVER_LICENSE = MIT

LIBVA_INTEL_DRIVER_LICENSE_FILES = COPYING

package/libva-intel-driver/libva-intel-driver.mk line 13

Quoted 3 lines
package/libva-intel-driver/libva-intel-driver.mk new file +3 -0
+LIBVA_INTEL_DRIVER_DEPENDENCIES = libva
+
+$(eval $(autotools-package))

A quick inspection of configure.ac reveals that:

* There are --enable-drm, --enable-x11 and --enable-wayland options. Maybe you should use them, at least to explicitly give a --disable-<foo> for the features you don't support.

* It needs host-pkgconf

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#9 lore raw

PATCH v5 5/8 ffmpeg: Add libva support

In reply to Bernd Kuhls
---
 package/ffmpeg/ffmpeg.mk |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
package/ffmpeg/ffmpeg.mk +7 -1
index fae558a..d3acffc 100644
@@ -41,7 +41,6 @@ FFMPEG_CONF_OPT = \
 	--enable-mdct \
 	--enable-rdft \
 	--disable-crystalhd \
-	--disable-vaapi \
 	--disable-vdpau \
 	--disable-dxva2 \
 	--enable-runtime-cpudetect \
@@ -209,6 +208,13 @@ FFMPEG_CONF_OPT += \
 	--enable-encoder=libvorbis
 endif
 
+ifeq ($(BR2_PACKAGE_LIBVA),y)
+FFMPEG_CONF_OPT += --enable-vaapi
+FFMPEG_DEPENDENCIES += libva
+else
+FFMPEG_CONF_OPT += --disable-vaapi
+endif
+
 ifeq ($(BR2_X86_CPU_HAS_MMX),y)
 FFMPEG_CONF_OPT += --enable-yasm
 FFMPEG_DEPENDENCIES += host-yasm
Signature · 1 line
1.7.10.4
#10 lore raw

PATCH v5 6/8 libglu: new package

In reply to Bernd Kuhls
---
 package/Config.in        |    1 +
 package/libglu/Config.in |   10 ++++++++++
 package/libglu/libglu.mk |   18 ++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 100644 package/libglu/Config.in
 create mode 100644 package/libglu/libglu.mk
package/Config.in +1 -0
index 3550935..3240188 100644
@@ -584,6 +584,7 @@ source "package/libexif/Config.in"
 source "package/libgail/Config.in"
 source "package/libgeotiff/Config.in"
 source "package/libglade/Config.in"
+source "package/libglu/Config.in"
 source "package/libgtk2/Config.in"
 source "package/libpng/Config.in"
 source "package/libqrencode/Config.in"
package/libglu/Config.in new file +10 -0
new file mode 100644
index 0000000..042a0c3
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LIBGLU
+	bool "libglu"
+	depends on BR2_PACKAGE_MESA3D
+	help
+	  Mesa OpenGL Utility library
+
+	  http://cgit.freedesktop.org/mesa/glu/
+
+comment "libglu depends on mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/libglu/libglu.mk new file +18 -0
new file mode 100644
index 0000000..9a4ebc1
@@ -0,0 +1,18 @@
+################################################################################
+#
+# libglu
+#
+################################################################################
+
+LIBGLU_VERSION = 9.0.0
+LIBGLU_SITE = http://cgit.freedesktop.org/mesa/glu/snapshot
+LIBGLU_SOURCE = glu-$(LIBGLU_VERSION).tar.gz
+LIBGLU_LICENSE = SGI-B-2.0
+LIBGLU_LICENSE_FILES = include/GL/glu.h
+LIBGLU_INSTALL_STAGING = YES
+LIBGLU_AUTORECONF = YES
+LIBGLU_DEPENDENCIES = mesa3d
+
+LIBGLU_CONF_OPT = --disable-osmesa
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.10.4
#11 lore raw

PATCH v5 6/8 libglu: new package

Dear Bernd Kuhls,

Quoted 12 lines · Bernd Kuhls
package/libglu/libglu.mk new file +6 -0
new file mode 100644
index 0000000..9a4ebc1
@@ -0,0 +1,18 @@
+################################################################################
+#
+# libglu
+#
+################################################################################
+

package/libglu/libglu.mk line 16

Quoted 10 lines
package/libglu/libglu.mk new file +10 -0
+LIBGLU_VERSION = 9.0.0
+LIBGLU_SITE = http://cgit.freedesktop.org/mesa/glu/snapshot
+LIBGLU_SOURCE = glu-$(LIBGLU_VERSION).tar.gz
+LIBGLU_LICENSE = SGI-B-2.0
+LIBGLU_LICENSE_FILES = include/GL/glu.h
+LIBGLU_INSTALL_STAGING = YES
+LIBGLU_AUTORECONF = YES
+LIBGLU_DEPENDENCIES = mesa3d
+
+LIBGLU_CONF_OPT = --disable-osmesa

Since you're passing --disable-osmesa, libGLU is using libGL. So what makes it depend on mesa3d specifically, and not any other OpenGL compatible implementation? Maybe it needs to use BR2_PACKAGE_HAS_OPENGL instead?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#12 lore raw

PATCH v5 7/8 libglew: new package

In reply to Bernd Kuhls
---
 package/Config.in                        |    1 +
 package/libglew/Config.in                |   19 ++++++++++++++
 package/libglew/libglew-0001-lib64.patch |   14 +++++++++++
 package/libglew/libglew.mk               |   40 ++++++++++++++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 100644 package/libglew/Config.in
 create mode 100644 package/libglew/libglew-0001-lib64.patch
 create mode 100644 package/libglew/libglew.mk
package/Config.in +1 -0
index 3240188..8433020 100644
@@ -584,6 +584,7 @@ source "package/libexif/Config.in"
 source "package/libgail/Config.in"
 source "package/libgeotiff/Config.in"
 source "package/libglade/Config.in"
+source "package/libglew/Config.in"
 source "package/libglu/Config.in"
 source "package/libgtk2/Config.in"
 source "package/libpng/Config.in"
package/libglew/Config.in new file +19 -0
new file mode 100644
index 0000000..fdb2b91
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_LIBGLEW
+	bool "libglew"
+	depends on BR2_PACKAGE_XSERVER_XORG_SERVER
+	depends on BR2_PACKAGE_MESA3D_DRIVER
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXI
+	select BR2_PACKAGE_XLIB_LIBXMU
+	help
+	  The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++
+	  extension loading library. GLEW provides efficient run-time mechanisms
+	  for determining which OpenGL extensions are supported on the target
+	  platform. OpenGL core and extension functionality is exposed in a
+	  single header file.
+
+	  http://glew.sourceforge.net
+
+comment "libglew depends on X.org server and an activated mesa3d driver"
+	depends on !BR2_PACKAGE_XSERVER_XORG_SERVER || !BR2_PACKAGE_MESA3D_DRIVER
package/libglew/libglew-0001-lib64.patch new file +14 -0
new file mode 100644
index 0000000..b961aec
@@ -0,0 +1,14 @@
+diff -uNr glew-1.10.0.org/config/Makefile.linux glew-1.10.0/config/Makefile.linux
+--- glew-1.10.0.org/config/Makefile.linux	2013-07-22 16:11:22.000000000 +0200
++++ glew-1.10.0/config/Makefile.linux	2014-03-30 22:01:04.403574030 +0200
+@@ -10,8 +10,8 @@
+   ARCH64 = true
+ endif
+ ifeq (${ARCH64},true)
+-  LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64
+-  LIBDIR = $(GLEW_DEST)/lib64
++  LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
++  LIBDIR = $(GLEW_DEST)/lib
+ else
+   LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
+   LIBDIR = $(GLEW_DEST)/lib
package/libglew/libglew.mk new file +40 -0
new file mode 100644
index 0000000..e9c08d7
@@ -0,0 +1,40 @@
+################################################################################
+#
+# libglew
+#
+################################################################################
+
+LIBGLEW_VERSION = 1.10.0
+LIBGLEW_SOURCE = glew-$(LIBGLEW_VERSION).tgz
+LIBGLEW_SITE = http://sourceforge.net/projects/glew/files/glew/$(LIBGLEW_VERSION)
+LIBGLEW_LICENSE = MIT
+LIBGLEW_INSTALL_STAGING = YES
+LIBGLEW_DEPENDENCIES = \
+	mesa3d \
+	xlib_libX11 \
+	xlib_libXext \
+	xlib_libXi \
+	xlib_libXmu
+
+define LIBGLEW_BUILD_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="/usr" CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" LD="$(TARGET_CC)" \
+    POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"
+endef
+
+define LIBGLEW_INSTALL_STAGING_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(STAGING_DIR)/usr" install
+endef
+
+define LIBGLEW_INSTALL_TARGET_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(TARGET_DIR)/usr" install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.7.10.4
#13 lore raw

PATCH v5 7/8 libglew: new package

Dear Bernd Kuhls,

package/libglew/Config.in line 3

Quoted 9 lines · Bernd Kuhls
package/libglew/Config.in new file +3 -0
new file mode 100644
index 0000000..fdb2b91
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_LIBGLEW
+	bool "libglew"
+	depends on BR2_PACKAGE_XSERVER_XORG_SERVER

A dependency on BR2_PACKAGE_XORG7 looks more appropriate. We technically speaking don't depend on the X.org server, only on the client libraries I believe.

package/libglew/Config.in line 4

Quoted 1 line
package/libglew/Config.in new file +1 -0
+	depends on BR2_PACKAGE_MESA3D_DRIVER

Why is this needed, and not only BR2_PACKAGE_MESA3D ? Also, it seems like libglew only makes sense in a context where mesa3d has GLX support, no?

Do you plan to include packages that depend on libglew? What are those packages? I'm just trying to get the big picture, and see how libglew fits in it.

package/libglew/libglew-0001-lib64.patch

Quoted 5 lines
package/libglew/libglew-0001-lib64.patch new file +0 -0
new file mode 100644
index 0000000..b961aec

All patches need a description + Signed-off-by, but...

package/libglew/libglew-0001-lib64.patch line 11

Quoted 12 lines
package/libglew/libglew-0001-lib64.patch new file +11 -0
@@ -0,0 +1,14 @@
+diff -uNr glew-1.10.0.org/config/Makefile.linux glew-1.10.0/config/Makefile.linux
+--- glew-1.10.0.org/config/Makefile.linux	2013-07-22 16:11:22.000000000 +0200
++++ glew-1.10.0/config/Makefile.linux	2014-03-30 22:01:04.403574030 +0200
+@@ -10,8 +10,8 @@
+   ARCH64 = true
+ endif
+ ifeq (${ARCH64},true)
+-  LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64
+-  LIBDIR = $(GLEW_DEST)/lib64
++  LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
++  LIBDIR = $(GLEW_DEST)/lib

Since you're overriding LDFLAGS.EXTRA from libglew.mk, why don't you do the same with LIBDIR ? It would avoid having to patch the package.

Quoted 9 lines
package/libglew/libglew-0001-lib64.patch new file +3 -0
+ else
+   LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
+   LIBDIR = $(GLEW_DEST)/lib
package/libglew/libglew.mk new file +0 -0
new file mode 100644
index 0000000..e9c08d7

package/libglew/libglew.mk line 10

Quoted 10 lines
package/libglew/libglew.mk new file +10 -0
@@ -0,0 +1,40 @@
+################################################################################
+#
+# libglew
+#
+################################################################################
+
+LIBGLEW_VERSION = 1.10.0
+LIBGLEW_SOURCE = glew-$(LIBGLEW_VERSION).tgz
+LIBGLEW_SITE = http://sourceforge.net/projects/glew/files/glew/$(LIBGLEW_VERSION)
+LIBGLEW_LICENSE = MIT

LIBGLEW_LICENSE_FILES = LICENSE.txt

package/libglew/libglew.mk line 23

Quoted 13 lines
package/libglew/libglew.mk new file +13 -0
+LIBGLEW_INSTALL_STAGING = YES
+LIBGLEW_DEPENDENCIES = \
+	mesa3d \
+	xlib_libX11 \
+	xlib_libXext \
+	xlib_libXi \
+	xlib_libXmu
+
+define LIBGLEW_BUILD_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="/usr" CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" LD="$(TARGET_CC)" \
+    POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"

We usually intend with one more tab the next lines of a given command. Also, you should use $(TARGET_CONFIGURE_OPTS) here as well:

	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="/usr" $(TARGET_CONFIGURE_OPTS) \
		POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"

package/libglew/libglew.mk line 30

Quoted 7 lines
package/libglew/libglew.mk new file +7 -0
+endef
+
+define LIBGLEW_INSTALL_STAGING_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(STAGING_DIR)/usr" install
	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="$(STAGING_DIR)/usr" $(TARGET_CONFIGURE_OPTS) \
		install

package/libglew/libglew.mk line 37

Quoted 7 lines
package/libglew/libglew.mk new file +7 -0
+endef
+
+define LIBGLEW_INSTALL_TARGET_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(TARGET_DIR)/usr" install
	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="$(TARGET_DIR)/usr" $(TARGET_CONFIGURE_OPTS) \
		install

package/libglew/libglew.mk line 40

Quoted 3 lines
package/libglew/libglew.mk new file +3 -0
+endef
+
+$(eval $(generic-package))

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#14 lore raw

PATCH v5 7/8 libglew: new package

Thomas Petazzoni
<[email protected]> wrote
in news:20140417225250.15ff2dd1 at skate:

Quoted 3 lines

Do you plan to include packages that depend on libglew? What are those packages? I'm just trying to get the big picture, and see how libglew fits in it.

Hi,

xbmc gotham depends on libglew and libglu:
https://github.com/xbmc/xbmc/blob/Gotham/configure.in#L1068

Regards, Bernd
(who is working through mail backlog after holiday ;))

#15 lore raw

PATCH v5 8/8 sdl: Add new dependency libglu for opengl support

In reply to Bernd Kuhls
---
 package/sdl/sdl.mk |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
package/sdl/sdl.mk +5 -1
index 086f5e9..fa68198 100644
@@ -62,9 +62,12 @@ SDL_DEPENDENCIES += alsa-lib
 endif
 
 ifeq ($(BR2_PACKAGE_MESA3D),y)
-SDL_DEPENDENCIES += mesa3d
+SDL_DEPENDENCIES += libglu mesa3d
+SDL_CONF_OPT += --enable-video-opengl
 endif
 
+SDL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+
 SDL_CONF_OPT += --enable-pulseaudio=no \
 		--disable-arts \
 		--disable-esd \
@@ -72,6 +75,7 @@ SDL_CONF_OPT += --enable-pulseaudio=no \
 		--disable-video-ps3
 
 HOST_SDL_CONF_OPT += --enable-pulseaudio=no \
+		--enable-video-x11=no \
 		--disable-arts \
 		--disable-esd \
 		--disable-nasm \
Signature · 1 line
1.7.10.4