All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.