[Buildroot] [PATCH 1/4] libepoxy: move outside x11r7 scope
Gustavo Zacarias
gustavo at zacarias.com.ar
Sun Dec 20 13:40:33 UTC 2015
Move it outside x11r7 scope since it can be built without it with a few
patches (sent upstream via github pull request).
Motivation is simple, it's a dependency for newer gtk3 versions which
can work with a wayland or broadway backend, and having a full x11 stack
is pointless for that scenario.
Signed-off-by: Gustavo Zacarias <gustavo at zacarias.com.ar>
---
package/Config.in | 1 +
.../0001-Use-target_os-instead-of-host_os.patch | 39 ++++++++
package/libepoxy/0002-Make-glx-conditional.patch | 109 +++++++++++++++++++++
.../0003-Forward-egl-cflags-into-epoxy.pc.patch | 45 +++++++++
package/{x11r7 => }/libepoxy/Config.in | 1 -
package/{x11r7 => }/libepoxy/libepoxy.mk | 7 +-
package/x11r7/Config.in | 1 -
7 files changed, 199 insertions(+), 4 deletions(-)
create mode 100644 package/libepoxy/0001-Use-target_os-instead-of-host_os.patch
create mode 100644 package/libepoxy/0002-Make-glx-conditional.patch
create mode 100644 package/libepoxy/0003-Forward-egl-cflags-into-epoxy.pc.patch
rename package/{x11r7 => }/libepoxy/Config.in (90%)
rename package/{x11r7 => }/libepoxy/libepoxy.mk (72%)
diff --git a/package/Config.in b/package/Config.in
index 4d8c054..a0da1d0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -845,6 +845,7 @@ menu "Graphics"
source "package/libdmtx/Config.in"
source "package/libdri2/Config.in"
source "package/libdrm/Config.in"
+ source "package/libepoxy/Config.in"
source "package/libexif/Config.in"
source "package/libevas-generic-loaders/Config.in"
source "package/libfm/Config.in"
diff --git a/package/libepoxy/0001-Use-target_os-instead-of-host_os.patch b/package/libepoxy/0001-Use-target_os-instead-of-host_os.patch
new file mode 100644
index 0000000..7ea0740
--- /dev/null
+++ b/package/libepoxy/0001-Use-target_os-instead-of-host_os.patch
@@ -0,0 +1,39 @@
+From 4ef87628ad9ff25115d2fdbe652ca39eeae824c5 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo at zacarias.com.ar>
+Date: Wed, 28 Oct 2015 15:10:24 -0300
+Subject: [PATCH 1/3] Use target_os instead of host_os
+
+We might be cross-compiling and hence host might be != target.
+
+Signed-off-by: Gustavo Zacarias <gustavo at zacarias.com.ar>
+---
+Status: pull request https://github.com/anholt/libepoxy/pull/80
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2d67726..a271cc4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -60,7 +60,7 @@ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
+
+ has_znow=yes
+
+-case $host_os in
++case $target_os in
+ mingw*)
+ build_egl=no
+ build_glx=no
+@@ -122,7 +122,7 @@ AM_CONDITIONAL(HAS_ZNOW, test x$has_znow = xyes)
+ AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])
+ AC_SUBST([DLOPEN_LIBS])
+
+-case $host_os in
++case $target_os in
+ mingw*)
+ # visibility flags aren't supported for windows DLLs, and the
+ # compiler whines to tell you so, so don't set them up.
+--
+2.4.10
+
diff --git a/package/libepoxy/0002-Make-glx-conditional.patch b/package/libepoxy/0002-Make-glx-conditional.patch
new file mode 100644
index 0000000..18fe2d2
--- /dev/null
+++ b/package/libepoxy/0002-Make-glx-conditional.patch
@@ -0,0 +1,109 @@
+From 54aa14558dc8493e730be209844868131f67c741 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo at zacarias.com.ar>
+Date: Wed, 11 Nov 2015 14:40:18 -0300
+Subject: [PATCH 2/3] Make glx conditional
+
+Since libgtk3 uses libepoxy and can be built for wayland alone without
+X11 support it doesn't make sense to force OpenGL support and a full
+X11 stack.
+
+Signed-off-by: Gustavo Zacarias <gustavo at zacarias.com.ar>
+---
+Status: pull request https://github.com/anholt/libepoxy/pull/80
+
+ configure.ac | 7 +++++--
+ src/Makefile.am | 7 +++++++
+ src/dispatch_common.c | 4 ++++
+ src/dispatch_common.h | 4 ----
+ 4 files changed, 16 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a271cc4..c7cffb2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,6 +102,11 @@ if test x$build_egl = xyes; then
+ AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
+ fi
+
++PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
++if test x$gl = xno; then
++ build_glx=no
++fi
++
+ AM_CONDITIONAL(BUILD_GLX, test x$build_glx = xyes)
+ if test x$build_glx = xyes; then
+ AC_DEFINE([BUILD_GLX], [1], [build GLX tests])
+@@ -151,8 +156,6 @@ fi
+
+ AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
+
+-PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
+-
+ AC_CONFIG_FILES([
+ epoxy.pc
+ Makefile
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 49c3507..6c0a46b 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -19,7 +19,14 @@
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ # IN THE SOFTWARE.
+
++if BUILD_GLX
++PLATFORM_HAS_GLX=1
++else
++PLATFORM_HAS_GLX=0
++endif
++
+ AM_CPPFLAGS = \
++ -DPLATFORM_HAS_GLX=$(PLATFORM_HAS_GLX) \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ $()
+diff --git a/src/dispatch_common.c b/src/dispatch_common.c
+index 013027f..761cee7 100644
+--- a/src/dispatch_common.c
++++ b/src/dispatch_common.c
+@@ -657,7 +657,11 @@ epoxy_get_proc_address(const char *name)
+ return epoxy_gl_dlsym(name);
+ #else
+ if (epoxy_current_context_is_glx()) {
++#if PLATFORM_HAS_GLX
+ return glXGetProcAddressARB((const GLubyte *)name);
++#else
++ return false;
++#endif
+ } else {
+ #if PLATFORM_HAS_EGL
+ GLenum egl_api = epoxy_egl_get_current_gl_context_api();
+diff --git a/src/dispatch_common.h b/src/dispatch_common.h
+index 676a4d5..01886a3 100644
+--- a/src/dispatch_common.h
++++ b/src/dispatch_common.h
+@@ -25,22 +25,18 @@
+
+ #ifdef _WIN32
+ #define PLATFORM_HAS_EGL 0
+-#define PLATFORM_HAS_GLX 0
+ #define PLATFORM_HAS_WGL 1
+ #define EPOXY_IMPORTEXPORT __declspec(dllexport)
+ #elif defined(__APPLE__)
+ #define PLATFORM_HAS_EGL 0
+-#define PLATFORM_HAS_GLX 0
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #elif defined(ANDROID)
+ #define PLATFORM_HAS_EGL 1
+-#define PLATFORM_HAS_GLX 0
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #else
+ #define PLATFORM_HAS_EGL 1
+-#define PLATFORM_HAS_GLX 1
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #endif
+--
+2.4.10
+
diff --git a/package/libepoxy/0003-Forward-egl-cflags-into-epoxy.pc.patch b/package/libepoxy/0003-Forward-egl-cflags-into-epoxy.pc.patch
new file mode 100644
index 0000000..b402649
--- /dev/null
+++ b/package/libepoxy/0003-Forward-egl-cflags-into-epoxy.pc.patch
@@ -0,0 +1,45 @@
+From 68e5f1574758240aedfe8653d7aaae62cdb08bf5 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo at zacarias.com.ar>
+Date: Sun, 20 Dec 2015 10:07:06 -0300
+Subject: [PATCH 3/3] Forward egl cflags into epoxy.pc
+
+When building mesa egl without x11 and gles2 the headers need a
+MESA_EGL_NO_X11_HEADERS define, so put them in epoxy.pc as well since
+otherwise builds will fail.
+
+Signed-off-by: Gustavo Zacarias <gustavo at zacarias.com.ar>
+---
+Status: pull request https://github.com/anholt/libepoxy/pull/80
+
+ configure.ac | 2 ++
+ epoxy.pc.in | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c7cffb2..7b599de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,6 +102,8 @@ if test x$build_egl = xyes; then
+ AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
+ fi
+
++AC_SUBST(EGL_CFLAGS)
++
+ PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
+ if test x$gl = xno; then
+ build_glx=no
+diff --git a/epoxy.pc.in b/epoxy.pc.in
+index 8c85a33..f377da5 100644
+--- a/epoxy.pc.in
++++ b/epoxy.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: epoxy
+ Description: epoxy GL dispatch Library
+ Version: @PACKAGE_VERSION@
+-Cflags: -I${includedir}
++Cflags: -I${includedir} @EGL_CFLAGS@
+ Libs: -L${libdir} -lepoxy
+ Libs.private: @DLOPEN_LIBS@
+--
+2.4.10
+
diff --git a/package/x11r7/libepoxy/Config.in b/package/libepoxy/Config.in
similarity index 90%
rename from package/x11r7/libepoxy/Config.in
rename to package/libepoxy/Config.in
index 5628bf7..21607c2 100644
--- a/package/x11r7/libepoxy/Config.in
+++ b/package/libepoxy/Config.in
@@ -1,6 +1,5 @@
config BR2_PACKAGE_LIBEPOXY
bool "epoxy"
- select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XUTIL_UTIL_MACROS
depends on BR2_PACKAGE_HAS_LIBEGL
help
diff --git a/package/x11r7/libepoxy/libepoxy.mk b/package/libepoxy/libepoxy.mk
similarity index 72%
rename from package/x11r7/libepoxy/libepoxy.mk
rename to package/libepoxy/libepoxy.mk
index 12ddd03..75ac395 100644
--- a/package/x11r7/libepoxy/libepoxy.mk
+++ b/package/libepoxy/libepoxy.mk
@@ -8,9 +8,12 @@ LIBEPOXY_VERSION = v1.3.1
LIBEPOXY_SITE = $(call github,anholt,libepoxy,$(LIBEPOXY_VERSION))
LIBEPOXY_INSTALL_STAGING = YES
LIBEPOXY_AUTORECONF = YES
-LIBEPOXY_DEPENDENCIES = xlib_libX11 xutil_util-macros libegl \
- $(if $(BR2_PACKAGE_HAS_LIBGL),libgl) host-pkgconf
+LIBEPOXY_DEPENDENCIES = libegl xutil_util-macros
LIBEPOXY_LICENSE = MIT
LIBEPOXY_LICENSE_FILES = COPYING
+ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_XLIB_LIBX11),yy)
+LIBEPOXY_DEPENDENCIES += libgl xlib_libX11
+endif
+
$(eval $(autotools-package))
diff --git a/package/x11r7/Config.in b/package/x11r7/Config.in
index 381157f..f4d0c80 100644
--- a/package/x11r7/Config.in
+++ b/package/x11r7/Config.in
@@ -15,7 +15,6 @@ if BR2_PACKAGE_XORG7
endmenu
menu "X11R7 Libraries"
source package/x11r7/libxcb/Config.in
- source package/x11r7/libepoxy/Config.in
source package/x11r7/xcb-util/Config.in
source package/x11r7/xcb-util-cursor/Config.in
source package/x11r7/xcb-util-image/Config.in
--
2.4.10
More information about the buildroot
mailing list