X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=86b01f9b6828407eea4723d6103fa2df71414313;hb=716ee65a98a2ee779a6069e4a41b0186afa29f66;hp=4ef3bcd0e0130cfb2c7a7f8ed15bd412bd3708cf;hpb=8249e48802193865114d7ff7e0b1023ffaee9456;p=profile%2Fivi%2Fclutter.git diff --git a/configure.ac b/configure.ac index 4ef3bcd..86b01f9 100644 --- a/configure.ac +++ b/configure.ac @@ -9,8 +9,8 @@ # - increase clutter_micro_version to the next odd number # - increase clutter_interface_version to the next odd number m4_define([clutter_major_version], [1]) -m4_define([clutter_minor_version], [9]) -m4_define([clutter_micro_version], [1]) +m4_define([clutter_minor_version], [11]) +m4_define([clutter_micro_version], [5]) # • for stable releases: increase the interface age by 1 for each release; # if the API changes, set to 0. interface_age and binary_age are used to @@ -83,6 +83,8 @@ AC_SUBST([CLUTTER_LT_VERSION], [$CLUTTER_LT_VERSION]) AC_PROG_SED +dnl = Preliminary platform checks ============================================= + AC_CANONICAL_HOST platform_win32=no @@ -97,6 +99,11 @@ AS_CASE([$host], platform_win32=yes ], + [*-*-linux*], + [ + platform_linux=yes + ], + [] ) AC_MSG_RESULT([$platform_win32]) @@ -109,10 +116,13 @@ AM_CONDITIONAL(OS_QUARTZ, [test "$platform_quartz" = "yes"]) AC_CHECK_HEADER([GL/glx.h], [platform_glx=yes], [platform_glx=no]) AC_CHECK_LIB([GL], [glXCreateContext], [platform_glx=yes], [platform_glx=no]) AM_CONDITIONAL(OS_GLX, [test "$platform_glx" = "yes"]) +AM_CONDITIONAL(OS_LINUX, [test "$platform_linux" = "yes"]) AC_SUBST(CLUTTER_LT_LDFLAGS) -dnl ======================================================================== +AC_CACHE_SAVE + +dnl = Dependencies ========================================================= # Checks for programs. AM_PROG_CC_C_O @@ -125,18 +135,18 @@ LT_INIT([disable-static]) AC_HEADER_STDC # required versions for dependencies -m4_define([glib_req_version], [2.31.0]) -m4_define([cogl_req_version], [1.9.1]) +m4_define([glib_req_version], [2.31.19]) +m4_define([cogl_req_version], [1.9.6]) m4_define([json_glib_req_version], [0.12.0]) m4_define([atk_req_version], [2.1.5]) m4_define([cairo_req_version], [1.10]) -m4_define([pango_req_version], [1.20]) +m4_define([pango_req_version], [1.30]) m4_define([gi_req_version], [0.9.5]) m4_define([uprof_req_version], [0.3]) m4_define([gtk_doc_req_version], [1.15]) m4_define([xfixes_req_version], [3]) m4_define([xcomposite_req_version], [0.4]) -m4_define([gdk_req_version], [3.0.0]) +m4_define([gdk_req_version], [3.3.18]) AC_SUBST([GLIB_REQ_VERSION], [glib_req_version]) AC_SUBST([COGL_REQ_VERSION], [cogl_req_version]) @@ -181,20 +191,31 @@ AC_ARG_ENABLE([Bsymbolic], AS_IF([test "x$enable_Bsymbolic" = "xyes"], [CLUTTER_LINK_FLAGS=-Wl[,]-Bsymbolic-functions]) AC_SUBST(CLUTTER_LINK_FLAGS) +AC_CACHE_SAVE + dnl ======================================================================== FLAVOUR_LIBS="" FLAVOUR_CFLAGS="" CLUTTER_BACKENDS="" +CLUTTER_INPUT_BACKENDS="" +CLUTTER_CONFIG_DEFINES= experimental_backend=no +experimental_input_backend=no # base dependencies for core CLUTTER_BASE_PC_FILES="cogl-1.0 >= $COGL_REQ_VERSION cairo-gobject >= $CAIRO_REQ_VERSION atk >= $ATK_REQ_VERSION pangocairo >= $PANGO_REQ_VERSION cogl-pango-1.0 json-glib-1.0 >= $JSON_GLIB_REQ_VERSION" +# private base dependencies +CLUTTER_BASE_PC_FILES_PRIVATE="" + # backend specific pkg-config files BACKEND_PC_FILES="" +# private backend specific dependencies +BACKEND_PC_FILES_PRIVATE="" + dnl === Clutter windowing system backend ====================================== AC_ARG_ENABLE([x11-backend], @@ -221,6 +242,10 @@ AC_ARG_ENABLE([egl-backend], [AS_HELP_STRING([--enable-egl-backend=@<:@yes/no@:>@], [Enable the EGL framebuffer backend (default=no)])], [enable_egl=$enableval], [enable_egl=no]) +AC_ARG_ENABLE([cex100-backend], + [AS_HELP_STRING([--enable-cex100-backend=@<:@yes/no@:>@], [Enable the CEx100 backend (default=no)])], + [enable_cex100=$enableval], + [enable_cex100=no]) dnl Define default values AS_IF([test "x$enable_x11" = "xcheck"], @@ -247,31 +272,19 @@ dnl Per-backend rules AS_IF([test "x$enable_x11" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11" + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11" SUPPORT_X11=1 SUPPORT_GLX=1 SUPPORT_COGL=1 - # Mesa 7.3 added a GL pkg-config file, finally, but if a pkg-config - # file isn't found just add -lGL and hope for the best. - PKG_CHECK_EXISTS([gl], - [BACKEND_PC_FILES="$BACKEND_PC_FILES gl"], - [FLAVOUR_LIBS="$FLAVOUR_LIBS -lGL"]) - - # We might fall back to DRM for sync-to-vblank on GLX - PKG_CHECK_EXISTS([libdrm], - [ - AC_DEFINE([HAVE_DRM], [1], [Have libdrm support]) - BACKEND_PC_FILES="$BACKEND_PC_FILES libdrm" - ], - []) - - # we use fontconfig API and pango-fc when the fontconfig - # configuration changes + # we use fontconfig API and pango-ft2 when the fontconfig + # configuration changes; we don't expose any API for this + # so we add pango-ft2 to the private Requires. PKG_CHECK_EXISTS([pangoft2], [ AC_DEFINE([HAVE_PANGO_FT2], [1], [Supports PangoFt2]) - BACKEND_PC_FILES="$BACKEND_PC_FILES pangoft2" + BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE pangoft2" ], []) @@ -281,110 +294,107 @@ AS_IF([test "x$enable_x11" = "xyes"], AS_IF([test "x$enable_gdk" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk" + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk" SUPPORT_GDK=1 SUPPORT_COGL=1 BACKEND_PC_FILES="$BACKEND_PC_FILES gdk-3.0" - PKG_CHECK_EXISTS([gl], [BACKEND_PC_FILES="$BACKEND_PC_FILES gl"], []) ]) AS_IF([test "x$enable_wayland" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS wayland" + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS wayland" experimental_backend="yes" SUPPORT_WAYLAND=1 - SUPPORT_EVDEV=1 - PKG_CHECK_EXISTS([gl], [BACKEND_PC_FILES="$BACKEND_PC_FILES gl"], []) - PKG_CHECK_EXISTS([egl], [BACKEND_PC_FILES="$BACKEND_PC_FILES egl"], []) - PKG_CHECK_EXISTS([wayland-client xkbcommon], - [BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-client xkbcommon"], + PKG_CHECK_EXISTS([wayland-client xkbcommon gdk-pixbuf-2.0], + [ + BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-client xkbcommon" + BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE gdk-pixbuf-2.0" + ], []) - AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland backend]) + AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland client backend]) ]) -AS_IF([test "x$enable_egl" = "xyes"], - [ - CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl" +dnl Note this is orthogonal to the client side support and you can +dnl use the Wayland compositor features with any of the clutter +dnl backends with corresponding Cogl support. +AC_ARG_ENABLE([wayland-compositor], + [AS_HELP_STRING([--enable-wayland-compositor=@<:@yes/no@:>@], + [Enable Wayland compositor features (default=no)])], + [], + [AS_IF([test "x$SUPPORT_EGL" = "x1"], + [enable_wayland_compositor=yes], + [enable_wayland_compositor=no]) + ]) - SUPPORT_EGL=1 - SUPPORT_COGL=1 +AS_IF([test "x$enable_wayland_compositor" = "xyes"], + [ + PKG_CHECK_EXISTS([wayland-server], + [BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-server"], []) + SUPPORT_WAYLAND_COMPOSITOR=1 + CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES +#define CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT 1" + AC_DEFINE([HAVE_CLUTTER_WAYLAND_COMPOSITOR], [1], [Have Wayland compositor support]) + ]) - # if Mesa has support for egl, we can use it as well - PKG_CHECK_EXISTS([egl], - [ - BACKEND_PC_FILES="$BACKEND_PC_FILES egl" - ], - []) +AM_CONDITIONAL(SUPPORT_WAYLAND_COMPOSITOR, [test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"]) - AC_ARG_WITH([tslib], - [AS_HELP_STRING([--with-tslib=@<:@yes/no@:>@], [Use TSLib for events])], - [], - [with_tslib=yes]) +AS_IF([test "x$enable_wayland_compositor" != "xyes" -a "x$enable_wayland" != "xyes"], + [ + # The wayland headers introduce so much symbol shadowing that build + # logs become incomprehensible with -Wshadow so we only use it for + # non-wayland builds. + MAINTAINER_COMPILER_FLAGS="-Wshadow" + ]) - AC_ARG_WITH([evdev], - [AS_HELP_STRING([--with-evdev=@<:@yes/no@:>@], [Use evdev for events])], - [], - [with_evdev=yes]) +AS_IF([test "x$enable_cex100" = "xyes"], + [ + CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100" - AC_ARG_WITH([gdl], - [AS_HELP_STRING([--with-gdl=@<:@yes/no@:>@], [Use libgdl for CE3100/CE4100 support])], - [], - [with_gdl=no]) + experimental_backend="yes" - AS_IF([test "x$with_tslib" = "xyes"], - [ - PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no]) - AS_IF([test "x$have_tslib" = "xyes"], - [ - AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling]) - SUPPORT_TSLIB=1 - ]) - ], - [have_tslib=no]) + SUPPORT_COGL=1 + SUPPORT_CEX100=1 - AS_IF([test "x$with_evdev" = "xyes"], - [ - PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no]) - AS_IF([test "x$have_evdev" = "xyes"], - [ - AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling]) - SUPPORT_EVDEV=1 - ]) - ], - [have_evdev=no]) + have_gdl=no + AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes]) - AS_IF([test "x$with_gdl" = "xyes"], + AS_IF([test "x$have_gdl" = "xno"], [ - have_gdl=no + AC_CHECK_HEADERS([CE4100/libgdl.h], + [ + FLAVOUR_CFLAGS="-I/usr/include/CE4100" + have_gdl=yes + CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/ + ]) + ]) - AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes]) + AS_IF([test "x$have_gdl" = "xno"], + [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])]) - AS_IF([test "x$have_gdl" = "xno"], - [ - AC_CHECK_HEADERS([CE4100/libgdl.h], - [ - FLAVOUR_CFLAGS="-I/usr/include/CE4100" - have_gdl=yes - CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/ - ]) - ]) + AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX) - AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX) + FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl" - AS_IF([test "x$have_gdl" = "xno"], [AC_MSG_ERROR([libgdl.h not found])]) + AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend]) + AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend]) + AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend]) + ]) - FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl" +AS_IF([test "x$enable_egl" = "xyes"], + [ + CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl" - SUPPORT_EGL_PLATFORM_GDL=1 + experimental_backend="yes" - AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend]) - ], - [have_gdl=no]) + SUPPORT_EGL=1 + SUPPORT_COGL=1 FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS" FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS" @@ -397,6 +407,7 @@ AS_IF([test "x$enable_egl" = "xyes"], AS_IF([test "x$enable_osx" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx" + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx" AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend]) @@ -408,6 +419,7 @@ AS_IF([test "x$enable_osx" = "xyes"], AS_IF([test "x$enable_win32" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32" + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32" AC_DEFINE([HAVE_CLUTTER_WIN32], [1], [Have the Win32 backend]) @@ -424,6 +436,47 @@ AS_IF([test "x$CLUTTER_BACKENDS" = "x"], AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.]) ]) +AS_IF([test "x$platform_linux" = "xyes"], + [ + AC_DEFINE([OS_LINUX], [1], [Define to 1 if building for Linux]) + ]) + +# additional input backends + +AC_ARG_ENABLE([tslib-input], + [AS_HELP_STRING([--enable-tslib-input=@<:@yes/no@:>@], [Enable TSLib for input events (default=no)])], + [enable_tslib=$enableval], + [enable_tslib=no]) +AC_ARG_ENABLE([evdev-input], + [AS_HELP_STRING([--enable-evdev-input=@<:@yes/no@:>@], [Enable evdev for input events (default=no)])], + [enable_evdev=$enableval], + [enable_evdev=no]) + +AS_IF([test "x$enable_tslib" = "xyes"], + [ + PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no]) + AS_IF([test "x$have_tslib" = "xyes"], + [ + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib" + experimental_input_backend="yes" + AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling]) + SUPPORT_TSLIB=1 + ]) + ]) + +AS_IF([test "x$enable_evdev" = "xyes"], + [ + PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no]) + AS_IF([test "x$have_evdev" = "xyes"], + [ + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev" + BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 xkbcommon" + experimental_input_backend="yes" + AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling]) + SUPPORT_EVDEV=1 + ]) + ]) + # conditionals for use in automake files... AM_CONDITIONAL(SUPPORT_GLX, [test "x$SUPPORT_GLX" = "x1"]) AM_CONDITIONAL(SUPPORT_X11, [test "x$SUPPORT_X11" = "x1"]) @@ -431,17 +484,16 @@ AM_CONDITIONAL(SUPPORT_GDK, [test "x$SUPPORT_GDK" = "x1"]) AM_CONDITIONAL(SUPPORT_EGL, [test "x$SUPPORT_EGL" = "x1"]) AM_CONDITIONAL(SUPPORT_OSX, [test "x$SUPPORT_OSX" = "x1"]) AM_CONDITIONAL(SUPPORT_WIN32, [test "x$SUPPORT_WIN32" = "x1"]) -AM_CONDITIONAL(SUPPORT_CEX100, [test "x$SUPPORT_EGL_PLATFORM_GDL" = "x1"]) +AM_CONDITIONAL(SUPPORT_CEX100, [test "x$SUPPORT_CEX100" = "x1"]) AM_CONDITIONAL(SUPPORT_WAYLAND, [test "x$SUPPORT_WAYLAND" = "x1"]) -AM_CONDITIONAL(SUPPORT_STUB, [test "x$SUPPORT_WIN32" = "x1" -o \ - "x$SUPPORT_OSX" = "x1" -o \ - "x$SUPPORT_WAYLAND" = "x1"]) AM_CONDITIONAL(USE_COGL, [test "x$SUPPORT_COGL" = "x1"]) AM_CONDITIONAL(USE_TSLIB, [test "x$have_tslib" = "xyes"]) AM_CONDITIONAL(USE_EVDEV, [test "x$have_evdev" = "xyes"]) AM_CONDITIONAL(USE_GLD, [test "x$have_gdl" = "xyes"]) +AM_CONDITIONAL(NEED_XKB_UTILS, [test "x$have_evdev" = "xyes" -o "x$SUPPORT_WAYLAND" = "x1"]) + dnl Instead of using AM_CFLAGS to ensure dnl COGL_ENABLE_EXPERIMENTAL_2_0_API is defined while compiling clutter dnl and cogl code we use a define in config.h instead. This helps ensure @@ -453,17 +505,22 @@ dnl strip leading spaces CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* } AC_SUBST(CLUTTER_BACKENDS) -dnl === Clutter configuration ================================================= +CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* } +AC_SUBST(CLUTTER_INPUT_BACKENDS) -CLUTTER_CONFIG_DEFINES= +AC_CACHE_SAVE + +dnl === Clutter configuration ================================================= # windowing systems AS_IF([test "x$SUPPORT_X11" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES -#define CLUTTER_WINDOWING_X11 \"x11\""]) +#define CLUTTER_WINDOWING_X11 \"x11\" +#define CLUTTER_INPUT_X11 \"x11\""]) AS_IF([test "x$SUPPORT_GDK" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES -#define CLUTTER_WINDOWING_GDK \"gdk\""]) +#define CLUTTER_WINDOWING_GDK \"gdk\" +#define CLUTTER_INPUT_GDK \"gdk\""]) AS_IF([test "x$SUPPORT_GLX" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES #define CLUTTER_WINDOWING_GLX \"glx\""]) @@ -475,11 +532,13 @@ AS_IF([test "x$SUPPORT_WAYLAND" = "x1"], #define CLUTTER_WINDOWING_WAYLAND \"wayland\""]) AS_IF([test "x$SUPPORT_OSX" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES -#define CLUTTER_WINDOWING_OSX \"osx\""]) +#define CLUTTER_WINDOWING_OSX \"osx\" +#define CLUTTER_INPUT_OSX \"osx\""]) AS_IF([test "x$SUPPORT_WIN32" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES -#define CLUTTER_WINDOWING_WIN32 \"win32\""]) -AS_IF([test "x$SUPPORT_EGL_PLATFORM_GDL" = "x1"], +#define CLUTTER_WINDOWING_WIN32 \"win32\" +#define CLUTTER_INPUT_WIN32 \"win32\""]) +AS_IF([test "x$SUPPORT_CEX100" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES #define CLUTTER_WINDOWING_CEX100 \"cex100\""]) AS_IF([test "x$SUPPORT_EVDEV" = "x1"], @@ -488,6 +547,13 @@ AS_IF([test "x$SUPPORT_EVDEV" = "x1"], AS_IF([test "x$SUPPORT_TSLIB" = "x1"], [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES #define CLUTTER_INPUT_TSLIB \"tslib\""]) +AS_IF([test "x$SUPPORT_WAYLAND" = "x1"], + [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES +#define CLUTTER_INPUT_WAYLAND \"wayland\""]) + +# the 'null' input backend is special +CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES +#define CLUTTER_INPUT_NULL \"null\"" AC_SUBST([CLUTTER_CONFIG_DEFINES]) @@ -500,11 +566,9 @@ AC_SUBST([CLUTTER_FLAVOUR], [deprecated]) AC_SUBST([CLUTTER_COGL], [deprecated]) AC_SUBST([COGL_DRIVER], [deprecated]) -dnl === Image loading backend ================================================= -IMAGE_PC_FILES="" - dnl === X11 checks, only for X11-based backends =============================== X11_PC_FILES="" +X11_EXTS="" x11_tests=no AS_IF([test "x$SUPPORT_X11" = "x1"], @@ -552,6 +616,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], X11_LIBS="$X11_LIBS -lXext" X11_PC_FILES="$X11_PC_FILES xext" + X11_EXTS="$X11_EXTS xext" AC_MSG_RESULT([found]) ], @@ -567,6 +632,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], X11_LIBS="$X11_LIBS -lXfixes" X11_PC_FILES="$X11_PC_FILES xfixes >= $XFIXES_REQ_VERSION" + X11_EXTS="$X11_EXTS xfixes" AC_MSG_RESULT([found]) ], @@ -582,6 +648,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], X11_LIBS="$X11_LIBS -lXdamage" X11_PC_FILES="$X11_PC_FILES xdamage" + X11_EXTS="$X11_EXTS xdamage" AC_MSG_RESULT([found]) ], @@ -597,6 +664,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], X11_LIBS="$X11_LIBS -lXcomposite" X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION" + X11_EXTS="$X11_EXTS xcomposite" AC_MSG_RESULT([found]) ], @@ -615,6 +683,7 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], [ AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available]) have_xge=yes + X11_EXTS="$X11_EXTS xge" ]) CPPFLAGS="$clutter_save_CPPFLAGS" @@ -652,8 +721,27 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], [Define to 1 if XInput is available]) ]) + clutter_save_LIBS="$LIBS" + LIBS="$LIBS -lXi" + + AC_CHECK_FUNC([XIAllowTouchEvents], + [ + AC_CHECK_MEMBER([XIScrollClassInfo.number], + [ + have_xinput_2_2=yes + AC_DEFINE([HAVE_XINPUT_2_2], [1], [Define to 1 if XInput 2.2 is available]) + ], + [have_xinput_2_2=no], + [[#include ]])]) + + LIBS="$clutter_save_LIBS" + X11_LIBS="$X11_LIBS $XINPUT_LIBS" X11_PC_FILES="$X11_PC_FILES xi" + + AS_IF([test "x$have_xinput_2_2" = "xyes"], + [X11_EXTS="$X11_EXTS xi2.2"], + [X11_EXTS="$X11_EXTS xi2.0"]) ], [no], @@ -675,6 +763,8 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], [ AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension]) have_xkb=yes + + X11_EXTS="$X11_EXTS xkb" ]) CPPFLAGS="$clutter_save_CPPFLAGS" @@ -690,6 +780,37 @@ AS_IF([test "x$SUPPORT_X11" = "x1"], AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"]) AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"]) +X11_EXTS=${X11_EXTS#* } + +AC_CACHE_SAVE + +dnl === Enable GDK-Pixbuf in tests ============================================ + +m4_define([pixbuf_default], [yes]) +AC_ARG_ENABLE([gdk-pixbuf], + [AS_HELP_STRING([--enable-gdk-pixbuf=@<:@no/yes@:>@], + [Enable tests using GDK-Pixbuf @<:@default=]pixbuf_default[@:>@])], + [enable_pixbuf=$enable_val], + [enable_pixbuf=pixbuf_default]) + +AS_CASE([$enable_pixbuf], + + [yes], + [ + PKG_CHECK_MODULES([GDK_PIXBUF], [gdk-pixbuf-2.0]) + AC_SUBST(GDK_PIXBUF_CFLAGS) + AC_SUBST(GDK_PIXBUF_LIBS) + pixbuf_tests=yes + ], + + [no], + [ + pixbuf_tests=no + ] +) + +AM_CONDITIONAL([PIXBUF_TESTS], [test "x$pixbuf_tests" = "xyes"]) + dnl === Enable debug level ==================================================== m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])]) @@ -736,12 +857,12 @@ AS_CASE([$enable_deprecated], [no], [ - CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED -DCLUTTER_DISABLE_DEPRECATED" + CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED" ], [yes], [ - CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS" + CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS" ], [AC_MSG_ERROR([Unknown argument for --enable-deprecated])] @@ -750,16 +871,6 @@ AS_CASE([$enable_deprecated], AC_SUBST([CLUTTER_DEPRECATED_CFLAGS]) -dnl === Conformance test suite ================================================ - -AC_ARG_ENABLE([conformance], - [AS_HELP_STRING([--enable-conformance=@<:@no/yes@:>@], - [Build conformance test suite @<:@default=yes@:>@])], - [], - [enable_conformance=yes]) - -AM_CONDITIONAL([BUILD_TESTS], [test "x$enable_conformance" = "xyes"]) - dnl === Profiling ============================================================= m4_define([profile_default], [no]) @@ -839,11 +950,14 @@ AC_ARG_ENABLE([maintainer-flags], [], [enable_maintainer_flags=maintainer_flags_default]) -MAINTAINER_COMPILER_FLAGS="-Wall -Wshadow -Wcast-align -Wuninitialized +MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS + -Wall -Wcast-align -Wuninitialized -Wno-strict-aliasing -Wempty-body -Wformat - -Wformat-security -Winit-self + -Wformat-security -Wformat-nonliteral -Winit-self -Wdeclaration-after-statement -Wvla - -Wpointer-arith" + -Wpointer-arith -Wmissing-declarations + -Wcast-align + -Wredundant-decls" AS_CASE([$enable_maintainer_flags], [yes], @@ -873,12 +987,27 @@ dnl === Dependencies, compiler flags and linker libraries ===================== # strip leading space BACKEND_PC_FILES=${BACKEND_PC_FILES#* } -CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $IMAGE_PC_FILES $BACKEND_PC_FILES" +# public dependencies, will fill the Requires: field of clutter.pc +CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES" PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES]) + +# private dependencies, will fill the Requires.private: field of clutter.pc +AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" = "x" && test "x$BACKEND_PC_FILES_PRIVATE" = "x"], + [ + CLUTTER_REQUIRES_PRIVATE="" + CLUTTER_DEPS_PRIVATE_CFLAGS="" + CLUTTER_DEPS_PRIVATE_LIBS="" + ], + [ + CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE" + PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE]) + ]) + AC_SUBST(CLUTTER_REQUIRES) +AC_SUBST(CLUTTER_REQUIRES_PRIVATE) -CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS" -CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS" +CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_DEPS_PRIVATE_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS" +CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_DEPS_PRIVATE_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS" AC_SUBST(CLUTTER_CFLAGS) AC_SUBST(CLUTTER_LIBS) @@ -954,16 +1083,40 @@ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], [The prefix for our gettext translation domains.]) AS_ALL_LINGUAS +dnl = Build optionals ========================================================= + +dnl === Conformance test suite ================================================ + +AC_ARG_ENABLE([conformance], + [AS_HELP_STRING([--disable-conformance], [Whether the conformance tests should be built])], + [], + [enable_conformance=yes]) + +AC_ARG_ENABLE([tests], + [AS_HELP_STRING([--disable-tests], [Whether tests should be built])], + [], + [enable_tests=yes]) +AM_CONDITIONAL(BUILD_TESTS, [test "x$enable_tests" = "xyes" && test "x$enable_conformance" = "xyes"]) + +AC_ARG_ENABLE([examples], + [AS_HELP_STRING([--disable-examples], [Whether examples should be built])], + [], + [enable_examples=yes]) +AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = "xyes"]) + dnl =========================================================================== AC_CONFIG_FILES([ Makefile - + config.h.win32 README build/Makefile build/autotools/Makefile build/mingw/Makefile + build/win32/Makefile + build/win32/vs9/Makefile + build/win32/vs10/Makefile clutter/Makefile clutter/clutter-config.h @@ -972,7 +1125,7 @@ AC_CONFIG_FILES([ clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in - clutter/egl/clutter-cex100.h + clutter/cex100/clutter-cex100.h tests/Makefile tests/accessibility/Makefile @@ -984,6 +1137,8 @@ AC_CONFIG_FILES([ tests/micro-bench/Makefile tests/performance/Makefile + examples/Makefile + doc/Makefile doc/reference/Makefile doc/reference/clutter/Makefile @@ -1031,8 +1186,12 @@ echo " Build Additional Documentation: ${enable_docs} (Generate PDF: ${en echo "" echo " • Extra:" echo " Build introspection data: ${enable_introspection}" -echo " Build conformance test suite: ${enable_conformance}" +echo " Build test suites: ${enable_tests}" +if test "x$enable_tests" = "xyes"; then echo " Build X11-specific tests: ${x11_tests}" +echo " Build tests using GDK-Pixbuf: ${pixbuf_tests}" +fi +echo " Build examples: ${enable_examples}" # Clutter backend related flags echo "" @@ -1044,20 +1203,27 @@ else echo " Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)" fi +if test "x$experimental_input_backend" = "xno"; then +echo " Input backends: ${CLUTTER_INPUT_BACKENDS}" +else +echo " Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)" +fi + if test "x$SUPPORT_X11" = "x1"; then echo "" -echo " Enable XComposite: ${have_xcomposite}" -echo " Enable XInput: ${have_xinput}" -echo " Enable Xge: ${have_xge}" -echo " Enable XI2: ${have_xinput2}" -echo " Enable XKB: ${have_xkb}" +echo " - X11 backend options:" +echo " Enabled extensions: ${X11_EXTS}" fi -if test "x$SUPPORT_EGL" = "x1"; then +if test "x$SUPPORT_CEX100" = "x1"; then echo "" -echo " Enable TSLib: ${have_tslib}" -echo " Enable evdev: ${have_evdev}" -echo " Enable GDL: ${have_gdl}" +echo " - CEx100 backend options (WARNING: Experimental):" +echo " libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}" +fi + +if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then +echo "" +echo " - Wayland compositor support enabled (WARNING: Experimental)" fi echo "" @@ -1065,11 +1231,13 @@ echo "" # General warning about experimental features if test "x$experimental_backend" = "xyes"; then echo "" -echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" -echo " *WARNING*" +echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" +echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*" echo "" echo " The stability of your build might be affected by one or more" echo " experimental backends or experimental and unsupported features" -echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" +echo "" +echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*" +echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" echo "" fi