Make it possible to enable/disable the various compositors from configure
authorKristian Høgsberg <krh@bitplanet.net>
Fri, 14 Jan 2011 22:22:35 +0000 (17:22 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 14 Jan 2011 22:39:11 +0000 (17:39 -0500)
compositor/Makefile.am
compositor/compositor.c
configure.ac

index ded71e0..56a2e7e 100644 (file)
@@ -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
 
index a92f7d7..8659344 100644 (file)
@@ -18,6 +18,8 @@
 
 #define _GNU_SOURCE
 
+#include "config.h"
+
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -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");
index 31654a6..e3c3336 100644 (file)
@@ -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"],