From 166852ee957ff25a1d14dcaa7512917343130fa4 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Thu, 20 Jul 2017 17:53:01 +0100 Subject: [PATCH] configure.ac: rework wayland-protocols handling At dist/distcheck time we need to ensure that all the files and their respective dependencies are handled. At the moment we'll bail out as the linux-dmabuf rules are guarded in a conditional. Move them outside of it and drop the sources from BUILT_SOURCES. Thus the files will be generated only as needed, which will happen only after the wayland-protocols dependency is enforced in configure.ac. v2: add dependency tracking for the header Cc: Andres Gomez Signed-off-by: Emil Velikov Reviewed-by: Andres Gomez --- configure.ac | 13 ++++++++++--- src/egl/Makefile.am | 13 +++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 2689fc55e85..2736fbf201b 100644 --- a/configure.ac +++ b/configure.ac @@ -1681,19 +1681,26 @@ if test "x$WAYLAND_SCANNER" = x; then AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) fi +PKG_CHECK_EXISTS([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED], [have_wayland_protocols=yes], [have_wayland_protocols=no]) +if test "x$have_wayland_protocols" = xyes; then + ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` +fi +AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir) + # Do per platform setups and checks platforms=`IFS=', '; echo $with_platforms` for plat in $platforms; do case "$plat" in wayland) - PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED]) - ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` - AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir) + PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED]) if test "x$WAYLAND_SCANNER" = "x:"; then AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) fi + if test "x$have_wayland_protocols" = xno; then + AC_MSG_ERROR([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED is needed to compile the wayland platform]) + fi DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM" ;; diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am index 7c1a4929b81..f881145c0e3 100644 --- a/src/egl/Makefile.am +++ b/src/egl/Makefile.am @@ -64,7 +64,6 @@ libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la endif endif -if HAVE_PLATFORM_WAYLAND WL_DMABUF_XML = $(WAYLAND_PROTOCOLS_DATADIR)/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml drivers/dri2/linux-dmabuf-unstable-v1-protocol.c: $(WL_DMABUF_XML) @@ -75,17 +74,19 @@ drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h: $(WL_DMABUF_XML) $(MKDIR_GEN) $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@ -BUILT_SOURCES += \ - drivers/dri2/linux-dmabuf-unstable-v1-protocol.c \ - drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h +drivers/dri2/linux-dmabuf-unstable-v1-protocol.lo: drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h +drivers/dri2/egl_dri2.lo: drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h +if HAVE_PLATFORM_WAYLAND AM_CFLAGS += $(WAYLAND_CFLAGS) libEGL_common_la_LIBADD += $(WAYLAND_LIBS) libEGL_common_la_LIBADD += $(LIBDRM_LIBS) libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la libEGL_common_la_LIBADD += $(top_builddir)/src/util/libmesautil.la -dri2_backend_FILES += drivers/dri2/platform_wayland.c \ - drivers/dri2/linux-dmabuf-unstable-v1-protocol.c +dri2_backend_FILES += \ + drivers/dri2/platform_wayland.c \ + drivers/dri2/linux-dmabuf-unstable-v1-protocol.c \ + drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h endif if HAVE_PLATFORM_DRM -- 2.30.2