From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 5/7] mesa3d: modularize and bump to version 10.0.3
Date: Wed, 05 Feb 2014 08:24:35 +0100 [thread overview]
Message-ID: <52F1E733.3030005@mind.be> (raw)
In-Reply-To: <BLU0-SMTP47875A4E6642624302CE843D9AA0@phx.gbl>
On 04/02/14 19:15, Bernd Kuhls wrote:
> Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
The commit message should explain why the uclibc-locale patch and
AUTORECONF can be removed. It should also explain a bit better what
"modularize" means. And also explicitly warn that mesa3d no longer
depends on X and therefore must explicitly include the largefile
dependency. And maybe I'm forgetting something.
And of course: keep Spenser's SoB.
> ---
> v2: bump to version 10.0.3
> v1: - rebased Spenser Gilliland?s patch, which originally bumped
> version to 9.1.6 and removed mesa3d-uclibc-locale.patch:
> http://patchwork.ozlabs.org/patch/278303/
> - removed MESA3D_AUTORECONF=yes, not needed anymore
> - fixed bug in variable naming
> BR2_PACKAGE_MESA3D_DRI_DRIVERS_* -> BR2_PACKAGE_MESA3D_DRI_DRIVER_*
> preventing DRI drivers from being built
> - bump version to 10.0.2
>
> package/mesa3d/Config.in | 180 +++++++++++++++++++-
> package/mesa3d/mesa3d-uclibc-locale.patch | 56 ------
> package/mesa3d/mesa3d.mk | 120 ++++++++++---
> package/opengl/Config.in | 1 +
> package/opengl/libegl/libegl.mk | 4 +
> package/opengl/libgl/Config.in | 6 +
> package/opengl/libgl/libgl.mk | 21 +++
> package/opengl/libgles/libgles.mk | 4 +
> package/opengl/libopenvg/libopenvg.mk | 4 +
> .../xserver_xorg-server/xserver_xorg-server.mk | 4 +-
> 10 files changed, 317 insertions(+), 83 deletions(-)
> delete mode 100644 package/mesa3d/mesa3d-uclibc-locale.patch
> create mode 100644 package/opengl/libgl/Config.in
> create mode 100644 package/opengl/libgl/libgl.mk
>
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 0ce168e..b797dfb 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -1,14 +1,182 @@
> config BR2_PACKAGE_MESA3D
> bool "Mesa 3D Graphics Library"
> - select BR2_PACKAGE_XPROTO_GLPROTO
> - select BR2_PACKAGE_XLIB_LIBXXF86VM
> - select BR2_PACKAGE_XLIB_LIBXDAMAGE
> - select BR2_PACKAGE_XLIB_LIBXFIXES
> - select BR2_PACKAGE_XPROTO_DRI2PROTO
> select BR2_PACKAGE_LIBDRM
> select BR2_PACKAGE_EXPAT
> select BR2_PACKAGE_HOST_LIBXML2_PYTHON
> - depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
This removes the following implicit dependencies (from XORG7):
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_PREFER_STATIC_LIB # dlopen in xlib_libX11
Are you sure they are no longer needed? Actually, the same is true for
the libdrm patch that removes the XORG7 dependency.
> + select BR2_PACKAGE_XPROTO_DRI2_PROTO if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_XPROTO_XF86DRIPROTO if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XSERVER_XORG_SERVER
> + select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XSERVER_XORG_SERVER
> depends on BR2_INSTALL_LIBSTDCPP
> + depends on BR2_LARGEFILE
> help
> Mesa 3D, an open-source implementation of the OpenGL specification.
> +
> + http://mesa3d.org
> +
> +if BR2_PACKAGE_MESA3D
> +
> +menu "libraries"
> +
> +config BR2_PACKAGE_MESA3D_GBM
> + depends on BR2_PACKAGE_UDEV
> + bool "gbm support"
> + help
> + Add support for Graphics Buffer Manager.
> +
> +config BR2_PACKAGE_MESA3D_XVMC
> + bool "xvmc support"
> + help
> + Add support for X Video Motion Compensation.
> +
> +config BR2_PACKAGE_MESA3D_VDPAU
> + bool "vdpau support"
> + help
> + Add support for Video Decode and Presentation API for Unix.
> +
> +endmenu
> +
> +menu "Drivers"
> +
> +config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915
I think it would be better named BR2_PACKAGE_MESA3D_DRIVER_GALLIUM_I915
so that all drivers start with the same substring. On second thought:
since the configure option has it like this, it is better to keep it
similar to the configure option.
> + bool "Gallium i915 driver"
> + depends on BR2_i386 || BR2_x86_64
> + select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> + select BR2_PACKAGE_LIBDRM_INTEL
> + help
> + Supports intel chips with Gallium. In most cases, the DRI i965 driver
> + should be used as it is better maintained by Intel.
> +
[snip a bunch of drivers]
> +
> +endmenu
> +
> +# The following hidden options inform gallium or dri driver selection.
I think it would be a bit clearer if these hidden options were defined
before the Drivers menu. Also, the ocmment should be "inform the .mk file
of gallium or dri driver selection".
> +config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> + select BR2_PACKAGE_MESA3D_DRIVER
> + bool
> +
> +config BR2_PACKAGE_MESA3D_DRI_DRIVER
> + select BR2_PACKAGE_MESA3D_DRIVER
> + bool
> +
> +config BR2_PACKAGE_MESA3D_DRIVER
> + bool
> +
> +menu "API Support"
> +depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER || BR2_PACKAGE_MESA3D_DRI_DRIVER
Isn't it simpler to write "depends on BR2_PACKAGE_MESA3D_DRIVER" ?
> +
> +config BR2_PACKAGE_MESA3D_OPENGL
> + bool "OpenGL"
> + select BR2_PACKAGE_HAS_OPENGL
> + help
> + Use the Khronos OpenGL API. This is a desktop computer API and is not
> + normally implemented by embedded systems.
> +
> +config BR2_PACKAGE_MESA3D_EGL
> + bool "EGL"
> + select BR2_PACKAGE_MESA3D_GBM
> + select BR2_PACKAGE_HAS_OPENGL_EGL
> + help
> + Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
> + similar to GLX, for X, and WGL, for Windows.
> +
> + config BR2_PACKAGE_MESA3D_OPENGL_ES
> + bool "OpenGL ES"
> + select BR2_PACKAGE_HAS_OPENGL_ES
> + help
> + Use the Khronos OpenGL ES APIs. This is commonly used on embedded
> + systems and represents a subset of the OpenGL API.
> +
> +config BR2_PACKAGE_MESA3D_OPENVG
> + bool "OpenVG"
> + depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> + select BR2_PACKAGE_HAS_OPENVG
> + select BR2_PACKAGE_MESA3D_OPENGL_EGL
> + help
> + Use the Khronos OpenVG APIs. This is a 2D API commonly used on
> + embedded systems.
> +
> +config BR2_PACKAGE_MESA3D_OPENCL
> + bool "OpenCL"
> + depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> + select BR2_PACKAGE_HAS_OPENCL
> + help
> + Use the Khronos OpenCL APIs. This is a GPU computation language
> + commonly used in GPGPU computing applications.
> +
> +endmenu
> +
> +endif
> +
> +comment "mesa3d depends on a toolchain with C++ and largefile support"
"mesa3d needs a toolchain w/ C++, largefile"
> + depends on !BR2_LARGEFILE || !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/mesa3d/mesa3d-uclibc-locale.patch b/package/mesa3d/mesa3d-uclibc-locale.patch
> deleted file mode 100644
[snip]
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index d4080d4..f12a1f5 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -4,31 +4,15 @@
> #
> ################################################################################
>
> -MESA3D_VERSION = 7.10.3
> -MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.gz
> -MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/older-versions/7.x/$(MESA3D_VERSION)
> +MESA3D_VERSION = 10.0.3
> +MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.bz2
> +MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
> MESA3D_LICENSE = MIT, SGI, Khronos
> MESA3D_LICENSE_FILES = docs/license.html
>
> -MESA3D_AUTORECONF = YES
> MESA3D_INSTALL_STAGING = YES
>
> -MESA3D_CONF_OPT = \
> - --disable-egl \
> - --disable-glu \
> - --disable-glw \
> - --disable-glut \
> - --disable-gallium \
> - --with-driver=dri \
> - --with-dri-drivers=swrast \
> - --disable-static
> -
> MESA3D_DEPENDENCIES = \
> - xproto_glproto \
> - xlib_libXxf86vm \
> - xlib_libXdamage \
> - xlib_libXfixes \
> - xproto_dri2proto \
> libdrm \
> expat \
> host-xutil_makedepend \
> @@ -37,4 +21,102 @@ MESA3D_DEPENDENCIES = \
> host-bison \
> host-flex
>
> +MESA3D_CONF_OPT = \
> + --disable-static
If this is really needed, then it should depend on !PREFER_STATIC and
the comment should be extended.
> +
> +# Libraries
[snip]
> diff --git a/package/opengl/Config.in b/package/opengl/Config.in
> index ed81835..02010a9 100644
> --- a/package/opengl/Config.in
> +++ b/package/opengl/Config.in
> @@ -1,4 +1,5 @@
> source "package/opengl/libegl/Config.in"
> +source "package/opengl/libgl/Config.in"
The addition of libgl should be a separate patch.
> source "package/opengl/libgles/Config.in"
> source "package/opengl/libopenvg/Config.in"
> source "package/opengl/libopenmax/Config.in"
> diff --git a/package/opengl/libegl/libegl.mk b/package/opengl/libegl/libegl.mk
> index b2b74f1..8d8e6a4 100644
> --- a/package/opengl/libegl/libegl.mk
> +++ b/package/opengl/libegl/libegl.mk
> @@ -7,6 +7,10 @@
> LIBEGL_SOURCE =
> LIBEGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL_EGL))
>
> +ifeq ($(BR2_PACKAGE_MESA3D_EGL),y)
> +LIBEGL_DEPENDENCIES += mesa3d
> +endif
We changed the way that this works. Instead, the mesa3d Config.in should
define BR2_PACKAGE_PROVIDES_OPENGL_EGL. Cfr. rpi-userland.
(I didn't look at the rest any more for lack of time).
Regards,
Arnout
> +
> ifeq ($(LIBEGL_DEPENDENCIES),)
> define LIBEGL_CONFIGURE_CMDS
> echo "No libEGL implementation selected. Configuration error."
> diff --git a/package/opengl/libgl/Config.in b/package/opengl/libgl/Config.in
> new file mode 100644
> index 0000000..5421c86
> --- /dev/null
> +++ b/package/opengl/libgl/Config.in
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_HAS_OPENGL_GL
> + bool
> +
> +config BR2_PACKAGE_PROVIDES_OPENGL_GL
> + depends on BR2_PACKAGE_HAS_OPENGL_GL
> + string
> diff --git a/package/opengl/libgl/libgl.mk b/package/opengl/libgl/libgl.mk
> new file mode 100644
> index 0000000..f95a959
> --- /dev/null
> +++ b/package/opengl/libgl/libgl.mk
> @@ -0,0 +1,21 @@
> +################################################################################
> +#
> +# libgl
> +#
> +################################################################################
> +
> +LIBGL_SOURCE =
> +LIBGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL_GL))
> +
> +ifeq ($(BR2_PACKAGE_MESA_OPENGL),y)
> +LIBGL_DEPENDENCIES += mesa3d
> +endif
> +
> +ifeq ($(LIBGL_DEPENDENCIES),)
> +define LIBGL_CONFIGURE_CMDS
> + echo "No libGL implementation selected. Configuration error."
> + exit 1
> +endef
> +endif
> +
> +$(eval $(generic-package))
> diff --git a/package/opengl/libgles/libgles.mk b/package/opengl/libgles/libgles.mk
> index 0dcbaa7..5c1e6d4 100644
> --- a/package/opengl/libgles/libgles.mk
> +++ b/package/opengl/libgles/libgles.mk
> @@ -7,6 +7,10 @@
> LIBGLES_SOURCE =
> LIBGLES_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL_ES))
>
> +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
> +LIBGLES_DEPENDENCIES += mesa3d
> +endif
> +
> ifeq ($(LIBGLES_DEPENDENCIES),)
> define LIBGLES_CONFIGURE_CMDS
> echo "No libGLES implementation selected. Configuration error."
> diff --git a/package/opengl/libopenvg/libopenvg.mk b/package/opengl/libopenvg/libopenvg.mk
> index ffd9d68..83c600b 100644
> --- a/package/opengl/libopenvg/libopenvg.mk
> +++ b/package/opengl/libopenvg/libopenvg.mk
> @@ -7,6 +7,10 @@
> LIBOPENVG_SOURCE =
> LIBOPENVG_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENVG))
>
> +ifeq ($(BR2_PACKAGE_MESA3D_OPENVG),y)
> +LIBOPENVG_DEPENDENCIES += mesa3d
> +endif
> +
> ifeq ($(LIBOPENVG_DEPENDENCIES),)
> define LIBOPENVG_CONFIGURE_CMDS
> echo "No libOpenVG implementation selected. Configuration error."
> diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> index 4089aab..f5a4db6 100644
> --- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> +++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> @@ -99,7 +99,7 @@ else # modular
> XSERVER_XORG_SERVER_CONF_OPT += --disable-kdrive --disable-xfbdev
> endif
>
> -ifeq ($(BR2_PACKAGE_MESA3D),y)
> +ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
> XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto
> else
> XSERVER_XORG_SERVER_CONF_OPT += --disable-dri
> @@ -172,7 +172,7 @@ ifneq ($(BR2_PACKAGE_XLIB_LIBDMX),y)
> XSERVER_XORG_SERVER_CONF_OPT += --disable-dmx
> endif
>
> -ifeq ($(BR2_PACKAGE_MESA3D),y)
> +ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
> XSERVER_XORG_SERVER_CONF_OPT += --enable-glx
> else
> XSERVER_XORG_SERVER_CONF_OPT += --disable-glx
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2014-02-05 7:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1391537725-15894-1-git-send-email-berndkuhls@hotmail.com>
2014-02-04 18:15 ` [Buildroot] [PATCH v2 1/7] xlib_libpthread-stubs: Rename package to libpthread-stubs Bernd Kuhls
2014-02-05 6:50 ` Arnout Vandecappelle
2014-02-04 18:15 ` [Buildroot] [PATCH v2 2/7] libdrm: Remove dependency towards X11 Bernd Kuhls
2014-02-05 6:56 ` Arnout Vandecappelle
2014-02-05 18:19 ` Bernd Kuhls
2014-02-05 20:35 ` Bernd Kuhls
2014-02-05 22:49 ` Arnout Vandecappelle
2014-02-04 18:15 ` [Buildroot] [PATCH v2 3/7] libdrm: bump to version 2.4.52 Bernd Kuhls
2014-02-04 18:15 ` [Buildroot] [PATCH v2 4/7] mesa3d: pull out from x11 Bernd Kuhls
2014-02-05 6:59 ` Arnout Vandecappelle
2014-02-04 18:15 ` [Buildroot] [PATCH v2 5/7] mesa3d: modularize and bump to version 10.0.3 Bernd Kuhls
2014-02-05 7:24 ` Arnout Vandecappelle [this message]
2014-03-06 17:33 ` [Buildroot] [v2, " Sebastien Bourdelin
2014-03-06 17:40 ` Bernd Kuhls
2014-03-06 18:06 ` Sebastien Bourdelin
2014-03-06 21:45 ` Thomas Petazzoni
2014-03-07 6:03 ` Bernd Kuhls
2014-03-07 11:02 ` Thomas Petazzoni
2014-02-04 18:15 ` [Buildroot] [PATCH v2 6/7] xorg: Bump xserver_xorg-server version to 1.15.0 Bernd Kuhls
2014-02-05 16:59 ` Arnout Vandecappelle
2014-02-04 18:15 ` [Buildroot] [PATCH v2 7/7] xdriver_xf86-video-intel: Bump version to 2.99.909 Bernd Kuhls
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=52F1E733.3030005@mind.be \
--to=arnout@mind.be \
--cc=buildroot@busybox.net \
/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