From a9410223720329a90d1b41de2fbb6e5b1e53f5c5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Fri, 14 Jan 2011 17:22:35 -0500 Subject: [PATCH] Make it possible to enable/disable the various compositors from configure --- compositor/Makefile.am | 27 ++++++++++++++++++++------- compositor/compositor.c | 16 ++++++++++++++-- configure.ac | 25 +++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 9 deletions(-) diff --git a/compositor/Makefile.am b/compositor/Makefile.am index ded71e0..56a2e7e 100644 --- a/compositor/Makefile.am +++ b/compositor/Makefile.am @@ -13,19 +13,32 @@ compositor_LDADD = \ $(top_builddir)/wayland/libwayland-client.la \ $(COMPOSITOR_LIBS) +if ENABLE_DRM_COMPOSITOR +drm_compositor_sources = compositor-drm.c tty.c evdev.c +drm_sources = drm.c +endif + +if ENABLE_X11_COMPOSITOR +x11_compositor_sources = compositor-x11.c +drm_sources = drm.c +endif + +if ENABLE_WAYLAND_COMPOSITOR +wayland_compositor_sources = compositor-wayland.c +drm_sources = drm.c +endif + compositor_SOURCES = \ compositor.c \ compositor.h \ - compositor-drm.c \ - compositor-x11.c \ - compositor-wayland.c \ screenshooter.c \ screenshooter-protocol.c \ screenshooter-server-protocol.h \ - tty.c \ - evdev.c \ - drm.c \ - shm.c + shm.c \ + $(drm_compositor_sources) \ + $(x11_compositor_sources) \ + $(wayland_compositor_sources) \ + $(drm_sources) udevrulesddir = $(sysconfdir)/udev/rules.d diff --git a/compositor/compositor.c b/compositor/compositor.c index a92f7d7..8659344 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -18,6 +18,8 @@ #define _GNU_SOURCE +#include "config.h" + #include #include #include @@ -1462,12 +1464,22 @@ int main(int argc, char *argv[]) display = wl_display_create(); + ec = NULL; + +#if BUILD_WAYLAND_COMPOSITOR if (getenv("WAYLAND_DISPLAY")) ec = wayland_compositor_create(display, width, height); - else if (getenv("DISPLAY")) +#endif + +#if BUILD_X11_COMPOSITOR + if (ec == NULL && getenv("DISPLAY")) ec = x11_compositor_create(display, width, height); - else +#endif + +#if BUILD_DRM_COMPOSITOR + if (ec == NULL) ec = drm_compositor_create(display, option_connector); +#endif if (ec == NULL) { fprintf(stderr, "failed to create compositor\n"); diff --git a/configure.ac b/configure.ac index 31654a6..e3c3336 100644 --- a/configure.ac +++ b/configure.ac @@ -29,6 +29,31 @@ PKG_CHECK_MODULES(POPPLER, [poppler-glib gdk-2.0], [have_poppler=yes], [have_poppler=no]) AM_CONDITIONAL(HAVE_POPPLER, test "x$have_poppler" = "xyes") + +AC_ARG_ENABLE(x11-compositor, [ --enable-x11-compositor],, + enable_x11_compositor=yes) +AM_CONDITIONAL(ENABLE_X11_COMPOSITOR, test x$enable_x11_compositor == xyes) +if test x$enable_x11_compositor == xyes; then + AC_DEFINE([BUILD_X11_COMPOSITOR], [1], [Build the X11 compositor]) +fi + + +AC_ARG_ENABLE(drm-compositor, [ --enable-drm-compositor]) +AM_CONDITIONAL(ENABLE_DRM_COMPOSITOR, test x$enable_drm_compositor == xyes) +if test x$enable_drm_compositor == xyes; then + AC_DEFINE([BUILD_DRM_COMPOSITOR], [1], [Build the DRM compositor]) +fi + + +AC_ARG_ENABLE(wayland-compositor, [ --enable-wayland-compositor]) +AM_CONDITIONAL(ENABLE_WAYLAND_COMPOSITOR, + test x$enable_wayland_compositor == xyes) +if test x$enable_wayland_compositor == xyes; then + AC_DEFINE([BUILD_WAYLAND_COMPOSITOR], [1], + [Build the Wayland (nested) compositor]) +fi + + PKG_CHECK_MODULES(CAIRO_GL, [cairo-gl], [have_cairo_gl=yes], [have_cairo_gl=no]) AS_IF([test "x$have_cairo_gl" = "xyes"], -- 2.7.4