Blame configure.ac

Packit 31ecd5
# clutter package version number, (as distinct from shared library version)
Packit 31ecd5
# An odd micro number indicates in-progress development from Git
Packit 31ecd5
# An even micro number indicates a released version
Packit 31ecd5
#
Packit 31ecd5
# Making a point release:
Packit 31ecd5
# - increase clutter_micro_version to the next even number
Packit 31ecd5
# - increase clutter_interface_age to the next even number
Packit 31ecd5
# After the release:
Packit 31ecd5
# - increase clutter_micro_version to the next odd number
Packit 31ecd5
# - increase clutter_interface_version to the next odd number
Packit 31ecd5
m4_define([clutter_major_version], [1])
Packit 31ecd5
m4_define([clutter_minor_version], [26])
Packit 31ecd5
m4_define([clutter_micro_version], [2])
Packit 31ecd5
Packit 31ecd5
# • for stable releases: increase the interface age by 1 for each release
Packit 31ecd5
# • for development releases: keep clutter_interface_age to 0
Packit 31ecd5
m4_define([clutter_interface_age],
Packit 31ecd5
          [m4_if(m4_eval(clutter_minor_version % 2), [1],
Packit 31ecd5
                 [0],
Packit 31ecd5
                 [clutter_micro_version])])
Packit 31ecd5
Packit 31ecd5
m4_define([clutter_binary_age], [m4_eval(100 * clutter_minor_version + clutter_micro_version)])
Packit 31ecd5
Packit 31ecd5
m4_define([clutter_release_status],
Packit 31ecd5
          [m4_if(m4_eval(clutter_micro_version % 2), [1], [git],
Packit 31ecd5
                 [m4_if(m4_eval(clutter_minor_version % 2), [1], [snapshot],
Packit 31ecd5
                                                                 [release])])])
Packit 31ecd5
Packit 31ecd5
m4_define([clutter_version], [clutter_major_version.clutter_minor_version.clutter_micro_version])
Packit 31ecd5
Packit 31ecd5
# change this only when breaking the API
Packit 31ecd5
m4_define([clutter_api_version], [1.0])
Packit 31ecd5
Packit 31ecd5
AC_PREREQ([2.63])
Packit 31ecd5
Packit 31ecd5
AC_INIT([clutter],
Packit 31ecd5
        [clutter_version],
Packit 31ecd5
        [http://bugzilla.gnome.org/enter_bug.cgi?product=clutter],
Packit 31ecd5
        [clutter],
Packit 31ecd5
        [http://www.clutter-project.org])
Packit 31ecd5
Packit 31ecd5
AC_CONFIG_SRCDIR([clutter/clutter.h])
Packit 31ecd5
AC_CONFIG_HEADERS([clutter/config.h])
Packit 31ecd5
AC_CONFIG_AUX_DIR([build])
Packit 31ecd5
AC_CONFIG_MACRO_DIR([build/autotools])
Packit 31ecd5
Packit 31ecd5
AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar])
Packit 31ecd5
AM_SILENT_RULES([yes])
Packit 31ecd5
Packit 31ecd5
AC_SUBST([CLUTTER_MAJOR_VERSION],  [clutter_major_version])
Packit 31ecd5
AC_SUBST([CLUTTER_MINOR_VERSION],  [clutter_minor_version])
Packit 31ecd5
AC_SUBST([CLUTTER_MICRO_VERSION],  [clutter_micro_version])
Packit 31ecd5
AC_SUBST([CLUTTER_VERSION],        [clutter_version])
Packit 31ecd5
AC_SUBST([CLUTTER_API_VERSION],    [clutter_api_version])
Packit 31ecd5
AC_SUBST([CLUTTER_API_VERSION_AM], [$CLUTTER_MAJOR_VERSION\_0])
Packit 31ecd5
AC_SUBST([CLUTTER_RELEASE_STATUS], [clutter_release_status])
Packit 31ecd5
Packit 31ecd5
m4_define([lt_current],  [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
Packit 31ecd5
m4_define([lt_revision], [clutter_interface_age])
Packit 31ecd5
m4_define([lt_age],      [m4_eval(clutter_binary_age - clutter_interface_age)])
Packit 31ecd5
CLUTTER_LT_CURRENT=lt_current
Packit 31ecd5
CLUTTER_LT_REV=lt_revision
Packit 31ecd5
CLUTTER_LT_AGE=lt_age
Packit 31ecd5
CLUTTER_LT_VERSION="$CLUTTER_LT_CURRENT:$CLUTTER_LT_REV:$CLUTTER_LT_AGE"
Packit 31ecd5
CLUTTER_LT_LDFLAGS="-version-info $CLUTTER_LT_VERSION"
Packit 31ecd5
AC_SUBST([CLUTTER_LT_CURRENT],  [lt_current])
Packit 31ecd5
AC_SUBST([CLUTTER_LT_REVISION], [lt_revision])
Packit 31ecd5
AC_SUBST([CLUTTER_LT_VERSION],  [$CLUTTER_LT_VERSION])
Packit 31ecd5
Packit 31ecd5
AC_PROG_SED
Packit 31ecd5
Packit 31ecd5
dnl = Preliminary platform checks =============================================
Packit 31ecd5
Packit 31ecd5
AC_CANONICAL_HOST
Packit 31ecd5
Packit 31ecd5
platform_win32=no
Packit 31ecd5
platform_quartz=no
Packit 31ecd5
platform_linux=no
Packit 31ecd5
Packit 31ecd5
AC_MSG_CHECKING([if building for some Win32 platform])
Packit 31ecd5
AS_CASE([$host],
Packit 31ecd5
        [*-*-mingw*|*-*-cygwin*],
Packit 31ecd5
        [
Packit 31ecd5
          CLUTTER_LT_LDFLAGS="$CLUTTER_LT_LDFLAGS -no-undefined"
Packit 31ecd5
          platform_win32=yes
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [*-*-linux*],
Packit 31ecd5
        [
Packit 31ecd5
          platform_linux=yes
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        []
Packit 31ecd5
)
Packit 31ecd5
AC_MSG_RESULT([$platform_win32])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(OS_WIN32, [test "$platform_win32" = "yes"])
Packit 31ecd5
Packit 31ecd5
AC_CHECK_HEADER([OpenGL/gl.h], [platform_quartz=yes], [platform_quartz=no])
Packit 31ecd5
AM_CONDITIONAL(OS_QUARTZ, [test "$platform_quartz" = "yes"])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(OS_LINUX, [test "$platform_linux" = "yes"])
Packit 31ecd5
Packit 31ecd5
AC_SUBST(CLUTTER_LT_LDFLAGS)
Packit 31ecd5
Packit 31ecd5
AC_CACHE_SAVE
Packit 31ecd5
Packit 31ecd5
dnl = Dependencies =========================================================
Packit 31ecd5
Packit 31ecd5
# Checks for programs.
Packit 31ecd5
AM_PROG_CC_C_O
Packit 31ecd5
Packit 31ecd5
# require libtool >= 2.2
Packit 31ecd5
LT_PREREQ([2.2.6])
Packit 31ecd5
LT_INIT([disable-static])
Packit 31ecd5
LT_LIB_M
Packit 31ecd5
Packit 31ecd5
# Checks for header files.
Packit 31ecd5
AC_HEADER_STDC
Packit 31ecd5
Packit 31ecd5
# required versions for dependencies
Packit 31ecd5
m4_define([glib_req_version],           [2.44.0])
Packit 31ecd5
m4_define([cogl_req_version],           [1.21.2])
Packit 31ecd5
m4_define([json_glib_req_version],      [0.12.0])
Packit 31ecd5
m4_define([atk_req_version],            [2.5.3])
Packit 31ecd5
m4_define([cairo_req_version],          [1.14.0])
Packit 31ecd5
m4_define([pango_req_version],          [1.30])
Packit 31ecd5
m4_define([gi_req_version],             [1.39.0])
Packit 31ecd5
m4_define([gtk_doc_req_version],        [1.20])
Packit 31ecd5
m4_define([xcomposite_req_version],     [0.4])
Packit 31ecd5
m4_define([gdk_req_version],            [3.22.6])
Packit 31ecd5
m4_define([libinput_req_version],       [0.19.0])
Packit 31ecd5
m4_define([libudev_req_version],        [136])
Packit 31ecd5
Packit 31ecd5
AC_SUBST([GLIB_REQ_VERSION],       [glib_req_version])
Packit 31ecd5
AC_SUBST([COGL_REQ_VERSION],       [cogl_req_version])
Packit 31ecd5
AC_SUBST([JSON_GLIB_REQ_VERSION],  [json_glib_req_version])
Packit 31ecd5
AC_SUBST([ATK_REQ_VERSION],        [atk_req_version])
Packit 31ecd5
AC_SUBST([CAIRO_REQ_VERSION],      [cairo_req_version])
Packit 31ecd5
AC_SUBST([PANGO_REQ_VERSION],      [pango_req_version])
Packit 31ecd5
AC_SUBST([GI_REQ_VERSION],         [gi_req_version])
Packit 31ecd5
AC_SUBST([GTK_DOC_REQ_VERSION],    [gtk_doc_req_version])
Packit 31ecd5
AC_SUBST([XCOMPOSITE_REQ_VERSION], [xcomposite_req_version])
Packit 31ecd5
AC_SUBST([GDK_REQ_VERSION],        [gdk_req_version])
Packit 31ecd5
AC_SUBST([LIBINPUT_REQ_VERSION],   [libinput_req_version])
Packit 31ecd5
AC_SUBST([LIBUDEV_REQ_VERSION],    [libudev_req_version])
Packit 31ecd5
Packit 31ecd5
# Checks for typedefs, structures, and compiler characteristics.
Packit 31ecd5
AM_PATH_GLIB_2_0([glib_req_version],
Packit 31ecd5
                 [],
Packit 31ecd5
                 [AC_MSG_ERROR([glib-2.0 is required])],
Packit 31ecd5
                 [gobject gio gthread gmodule-no-export])
Packit 31ecd5
Packit 31ecd5
# Check for -Bsymbolic-functions to avoid intra-library PLT jumps
Packit 31ecd5
AC_ARG_ENABLE([Bsymbolic],
Packit 31ecd5
              [AS_HELP_STRING([--disable-Bsymbolic],
Packit 31ecd5
                              [Avoid linking with -Bsymbolic])],
Packit 31ecd5
              [],
Packit 31ecd5
              [
Packit 31ecd5
                saved_LDFLAGS="${LDFLAGS}"
Packit 31ecd5
                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
Packit 31ecd5
                LDFLAGS=-Wl,-Bsymbolic-functions
Packit 31ecd5
                AC_TRY_LINK([], [int main (void) { return 0; }],
Packit 31ecd5
                            [
Packit 31ecd5
                              AC_MSG_RESULT([yes])
Packit 31ecd5
                              enable_Bsymbolic=yes
Packit 31ecd5
                            ],
Packit 31ecd5
                            [
Packit 31ecd5
                              AC_MSG_RESULT([no])
Packit 31ecd5
                              enable_Bsymbolic=no
Packit 31ecd5
                            ])
Packit 31ecd5
                LDFLAGS="${saved_LDFLAGS}"
Packit 31ecd5
              ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_Bsymbolic" = "xyes"], [CLUTTER_LINK_FLAGS=-Wl[,]-Bsymbolic-functions])
Packit 31ecd5
AC_SUBST(CLUTTER_LINK_FLAGS)
Packit 31ecd5
Packit 31ecd5
# Check for the visibility flags
Packit 31ecd5
CLUTTER_HIDDEN_VISIBILITY_CFLAGS=""
Packit 31ecd5
case "$host" in
Packit 31ecd5
  *-*-mingw*)
Packit 31ecd5
    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
Packit 31ecd5
    AC_DEFINE([_CLUTTER_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern],
Packit 31ecd5
              [defines how to decorate public symbols while building])
Packit 31ecd5
    CFLAGS="${CFLAGS} -fvisibility=hidden"
Packit 31ecd5
    ;;
Packit 31ecd5
  *)
Packit 31ecd5
    dnl on other compilers, check if we can do -fvisibility=hidden
Packit 31ecd5
    SAVED_CFLAGS="${CFLAGS}"
Packit 31ecd5
    CFLAGS="-fvisibility=hidden"
Packit 31ecd5
    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
Packit 31ecd5
    AC_TRY_COMPILE([], [int main (void) { return 0; }],
Packit 31ecd5
                   AC_MSG_RESULT(yes)
Packit 31ecd5
                   enable_fvisibility_hidden=yes,
Packit 31ecd5
                   AC_MSG_RESULT(no)
Packit 31ecd5
                   enable_fvisibility_hidden=no)
Packit 31ecd5
    CFLAGS="${SAVED_CFLAGS}"
Packit 31ecd5
Packit 31ecd5
    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
Packit 31ecd5
      AC_DEFINE([_CLUTTER_EXTERN], [__attribute__((visibility("default"))) extern],
Packit 31ecd5
                [defines how to decorate public symbols while building])
Packit 31ecd5
      CLUTTER_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
Packit 31ecd5
    ])
Packit 31ecd5
    ;;
Packit 31ecd5
esac
Packit 31ecd5
AC_SUBST(CLUTTER_HIDDEN_VISIBILITY_CFLAGS)
Packit 31ecd5
Packit 31ecd5
AC_CACHE_SAVE
Packit 31ecd5
Packit 31ecd5
dnl ========================================================================
Packit 31ecd5
Packit 31ecd5
FLAVOUR_LIBS=""
Packit 31ecd5
FLAVOUR_CFLAGS=""
Packit 31ecd5
CLUTTER_BACKENDS=""
Packit 31ecd5
CLUTTER_INPUT_BACKENDS=""
Packit 31ecd5
CLUTTER_CONFIG_DEFINES=
Packit 31ecd5
Packit 31ecd5
experimental_backend=no
Packit 31ecd5
experimental_input_backend=no
Packit 31ecd5
Packit 31ecd5
# base dependencies for core
Packit 31ecd5
CLUTTER_BASE_PC_FILES="cogl-1.0 >= $COGL_REQ_VERSION cogl-path-1.0 cairo-gobject >= $CAIRO_REQ_VERSION gio-2.0 >= glib_req_version atk >= $ATK_REQ_VERSION pangocairo >= $PANGO_REQ_VERSION cogl-pango-1.0 json-glib-1.0 >= $JSON_GLIB_REQ_VERSION"
Packit 31ecd5
Packit 31ecd5
# private base dependencies
Packit 31ecd5
CLUTTER_BASE_PC_FILES_PRIVATE=""
Packit 31ecd5
Packit 31ecd5
# backend specific pkg-config files
Packit 31ecd5
BACKEND_PC_FILES=""
Packit 31ecd5
Packit 31ecd5
# private backend specific dependencies
Packit 31ecd5
BACKEND_PC_FILES_PRIVATE=""
Packit 31ecd5
Packit 31ecd5
dnl === Clutter windowing system backend ======================================
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([x11-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-x11-backend=@<:@yes/no@:>@], [Enable the X11 backend (default=check)])],
Packit 31ecd5
              [enable_x11=$enableval],
Packit 31ecd5
              [enable_x11=check])
Packit 31ecd5
AC_ARG_ENABLE([win32-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-win32-backend=@<:@yes/no@:>@], [Enable the Windows backend (default=check)])],
Packit 31ecd5
              [enable_win32=$enableval],
Packit 31ecd5
              [enable_win32=check])
Packit 31ecd5
AC_ARG_ENABLE([quartz-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-quartz-backend=@<:@yes/no@:>@], [Enable the OS X backend (default=check)])],
Packit 31ecd5
              [enable_osx=$enableval],
Packit 31ecd5
              [enable_osx=check])
Packit 31ecd5
AC_ARG_ENABLE([gdk-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-gdk-backend=@<:@yes/no@:>@], [Enable the GDK backend (default=check)])],
Packit 31ecd5
              [enable_gdk=$enableval],
Packit 31ecd5
              [enable_gdk=check])
Packit 31ecd5
AC_ARG_ENABLE([wayland-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-wayland-backend=@<:@yes/no@:>@], [Enable the Wayland client backend (default=check)])],
Packit 31ecd5
              [enable_wayland=$enableval],
Packit 31ecd5
              [enable_wayland=check])
Packit 31ecd5
AC_ARG_ENABLE([egl-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-egl-backend=@<:@yes/no@:>@], [Enable the EGL framebuffer backend (default=no)])],
Packit 31ecd5
              [enable_egl=$enableval],
Packit 31ecd5
              [enable_egl=check])
Packit 31ecd5
AC_ARG_ENABLE([mir-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-mir-backend=@<:@yes/no@:>@], [Enable the Mir client backend (default=no)])],
Packit 31ecd5
              [enable_mir=$enableval],
Packit 31ecd5
              [enable_mir=no])
Packit 31ecd5
AC_ARG_ENABLE([cex100-backend],
Packit 31ecd5
              [AS_HELP_STRING([--enable-cex100-backend=@<:@yes/no@:>@], [Enable the CEx100 backend (default=no)])],
Packit 31ecd5
              [enable_cex100=$enableval],
Packit 31ecd5
              [enable_cex100=no])
Packit 31ecd5
Packit 31ecd5
dnl Additional input backends
Packit 31ecd5
AC_ARG_ENABLE([tslib-input],
Packit 31ecd5
              [AS_HELP_STRING([--enable-tslib-input=@<:@yes/no@:>@], [Enable TSLib for input events (default=no)])],
Packit 31ecd5
              [enable_tslib=$enableval],
Packit 31ecd5
              [enable_tslib=no])
Packit 31ecd5
AC_ARG_ENABLE([evdev-input],
Packit 31ecd5
              [AS_HELP_STRING([--enable-evdev-input=@<:@yes/no@:>@], [Enable evdev for input events (default=check)])],
Packit 31ecd5
              [enable_evdev=$enableval],
Packit 31ecd5
              [enable_evdev=check])
Packit 31ecd5
Packit 31ecd5
dnl Define default values
Packit 31ecd5
AS_IF([test "x$enable_x11" = xcheck], [
Packit 31ecd5
  PKG_CHECK_EXISTS([x11], [enable_x11=yes], [enable_x11=no])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_win32" = xcheck], [
Packit 31ecd5
  AS_IF([test "x$platform_win32" = "xyes"], [enable_win32=yes], [enable_win32=no])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_osx" = xcheck], [
Packit 31ecd5
  AS_IF([test "x$platform_quartz" = "xyes"], [enable_osx=yes], [enable_osx=no])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_gdk" = xcheck], [
Packit 31ecd5
  PKG_CHECK_EXISTS([gdk-3.0 >= gdk_req_version], [enable_gdk=yes], [enable_gdk=no])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_egl" = xcheck], [
Packit 31ecd5
  PKG_CHECK_EXISTS([egl], [enable_egl=yes], [enable_egl=no])
Packit 31ecd5
  PKG_CHECK_EXISTS([libinput], [enable_evdev=yes], [enable_evdev=no])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
dnl Per-backend rules
Packit 31ecd5
AS_IF([test "x$enable_x11" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11"
Packit 31ecd5
        CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11"
Packit 31ecd5
Packit 31ecd5
        SUPPORT_X11=1
Packit 31ecd5
        SUPPORT_GLX=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
        # we use fontconfig API and pango-ft2 when the fontconfig
Packit 31ecd5
        # configuration changes; we don't expose any API for this
Packit 31ecd5
        # so we add pango-ft2 to the private Requires.
Packit 31ecd5
        PKG_CHECK_EXISTS([pangoft2],
Packit 31ecd5
                         [
Packit 31ecd5
                           AC_DEFINE([HAVE_PANGO_FT2], [1], [Supports PangoFt2])
Packit 31ecd5
                           BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE pangoft2"
Packit 31ecd5
                         ],
Packit 31ecd5
                         [])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_gdk" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk"
Packit 31ecd5
        CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk"
Packit 31ecd5
Packit 31ecd5
	SUPPORT_GDK=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
	BACKEND_PC_FILES="$BACKEND_PC_FILES gdk-3.0"
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_wayland" != xno],
Packit 31ecd5
      [
Packit 31ecd5
        # We need to manually check for Wayland support in Cogl because
Packit 31ecd5
        # the windowing systems are not exposed in the pkg-config file
Packit 31ecd5
        saved_CFLAGS="${CFLAGS}"
Packit 31ecd5
        CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
Packit 31ecd5
Packit 31ecd5
        AC_MSG_CHECKING([for Wayland Cogl backend])
Packit 31ecd5
Packit 31ecd5
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 31ecd5
#include <cogl/cogl.h>
Packit 31ecd5
]],
Packit 31ecd5
[[
Packit 31ecd5
#ifndef COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT
Packit 31ecd5
#error Cogl compiled without Wayland support
Packit 31ecd5
#endif
Packit 31ecd5
]])], [
Packit 31ecd5
          AC_MSG_RESULT(yes)
Packit 31ecd5
          have_cogl_wayland=yes
Packit 31ecd5
        ], [
Packit 31ecd5
          AC_MSG_RESULT(no)
Packit 31ecd5
          have_cogl_wayland=no
Packit 31ecd5
        ])
Packit 31ecd5
Packit 31ecd5
        CFLAGS="${saved_CFLAGS}"
Packit 31ecd5
        AS_IF([test "x$have_cogl_wayland" = xyes],
Packit 31ecd5
              [
Packit 31ecd5
                PKG_CHECK_EXISTS([wayland-client wayland-cursor xkbcommon gdk-pixbuf-2.0],
Packit 31ecd5
                                 [
Packit 31ecd5
                                   BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-cursor wayland-client xkbcommon"
Packit 31ecd5
                                   BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE gdk-pixbuf-2.0"
Packit 31ecd5
Packit 31ecd5
                                   CLUTTER_BACKENDS="$CLUTTER_BACKENDS wayland"
Packit 31ecd5
                                   CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS wayland"
Packit 31ecd5
Packit 31ecd5
                                   SUPPORT_WAYLAND=1
Packit 31ecd5
                                   SUPPORT_COGL=1
Packit 31ecd5
                                 ],
Packit 31ecd5
                                 [
Packit 31ecd5
                                   AS_IF([test "x$enable_wayland" = xyes],
Packit 31ecd5
                                         [AC_MSG_ERROR(["*** Missing dependencies for Wayland support ***"])],
Packit 31ecd5
                                         [enable_wayland=no])
Packit 31ecd5
                                 ])
Packit 31ecd5
              ],
Packit 31ecd5
              [
Packit 31ecd5
                AS_IF([test "x$enable_wayland" = xyes],
Packit 31ecd5
                      [AC_MSG_ERROR("*** Cogl is missing Wayland support ***")],
Packit 31ecd5
                      [enable_wayland=no])
Packit 31ecd5
              ])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
dnl Note this is orthogonal to the client side support and you can
Packit 31ecd5
dnl use the Wayland compositor features with any of the clutter
Packit 31ecd5
dnl backends with corresponding Cogl support.
Packit 31ecd5
AC_ARG_ENABLE([wayland-compositor],
Packit 31ecd5
              [AS_HELP_STRING([--enable-wayland-compositor=@<:@yes/no@:>@],
Packit 31ecd5
                              [Enable Wayland compositor features (default=no)])],
Packit 31ecd5
              [],
Packit 31ecd5
              [AS_IF([test "x$SUPPORT_EGL" = "x1"],
Packit 31ecd5
                     [enable_wayland_compositor=yes],
Packit 31ecd5
                     [enable_wayland_compositor=no])
Packit 31ecd5
              ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_wayland_compositor" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        PKG_CHECK_EXISTS([wayland-server],
Packit 31ecd5
			 [BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-server"], [])
Packit 31ecd5
Packit 31ecd5
        SUPPORT_WAYLAND_COMPOSITOR=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
	CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT 1"
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_WAYLAND_COMPOSITOR, [test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_cex100" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100"
Packit 31ecd5
Packit 31ecd5
        experimental_backend="yes"
Packit 31ecd5
Packit 31ecd5
        SUPPORT_CEX100=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
        have_gdl=no
Packit 31ecd5
        AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
Packit 31ecd5
Packit 31ecd5
        AS_IF([test "x$have_gdl" = "xno"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_CHECK_HEADERS([CE4100/libgdl.h],
Packit 31ecd5
                                 [
Packit 31ecd5
                                   FLAVOUR_CFLAGS="-I/usr/include/CE4100"
Packit 31ecd5
                                   have_gdl=yes
Packit 31ecd5
                                   CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
Packit 31ecd5
                                 ])
Packit 31ecd5
              ])
Packit 31ecd5
Packit 31ecd5
        AS_IF([test "x$have_gdl" = "xno"],
Packit 31ecd5
              [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])])
Packit 31ecd5
Packit 31ecd5
        AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
Packit 31ecd5
Packit 31ecd5
        FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
Packit 31ecd5
Packit 31ecd5
        AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend])
Packit 31ecd5
        AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_egl" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
Packit 31ecd5
Packit 31ecd5
        SUPPORT_EGL=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
        FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS"
Packit 31ecd5
        FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS"
Packit 31ecd5
Packit 31ecd5
        AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_osx" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx"
Packit 31ecd5
        CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx"
Packit 31ecd5
Packit 31ecd5
        FLAVOUR_LIBS="$FLAVOUR_LIBS -framework Cocoa -framework OpenGL"
Packit 31ecd5
Packit 31ecd5
        SUPPORT_OSX=1
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_win32" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32"
Packit 31ecd5
        CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32"
Packit 31ecd5
Packit 31ecd5
        FLAVOUR_LIBS="$FLAVOUR_LIBS -lopengl32 -lgdi32 -lwinmm"
Packit 31ecd5
        FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS -D_WIN32_WINNT=0x0500"
Packit 31ecd5
Packit 31ecd5
        AC_CHECK_TOOL(WINDRES, [windres], [AC_MSG_ERROR([*** windres is required])])
Packit 31ecd5
Packit 31ecd5
        SUPPORT_WIN32=1
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_mir" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_BACKENDS="$CLUTTER_BACKENDS mir"
Packit 31ecd5
        CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS mir"
Packit 31ecd5
Packit 31ecd5
        SUPPORT_MIR=1
Packit 31ecd5
        SUPPORT_COGL=1
Packit 31ecd5
Packit 31ecd5
        # We need to manually check for Mir support in Cogl because
Packit 31ecd5
        # the windowing systems are not exposed in the pkg-config file
Packit 31ecd5
        saved_CFLAGS="${CFLAGS}"
Packit 31ecd5
        CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
Packit 31ecd5
Packit 31ecd5
        AC_MSG_CHECKING([for Mir Cogl backend])
Packit 31ecd5
Packit 31ecd5
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 31ecd5
#include <cogl/cogl.h>
Packit 31ecd5
]],
Packit 31ecd5
[[
Packit 31ecd5
#ifndef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT
Packit 31ecd5
#error Cogl compiled without Mir support
Packit 31ecd5
#endif
Packit 31ecd5
]])], [
Packit 31ecd5
          AC_MSG_RESULT(yes)
Packit 31ecd5
          have_cogl_mir=yes
Packit 31ecd5
        ], [
Packit 31ecd5
          AC_MSG_RESULT(no)
Packit 31ecd5
          have_cogl_mir=no
Packit 31ecd5
        ])
Packit 31ecd5
Packit 31ecd5
        AS_IF([test "x$have_cogl_mir" = xno], [AC_MSG_ERROR("*** Cogl is missing Mir support.")])
Packit 31ecd5
Packit 31ecd5
        PKG_CHECK_EXISTS([mirclient],
Packit 31ecd5
                         [BACKEND_PC_FILES="$BACKEND_PC_FILES mirclient"],
Packit 31ecd5
                         [])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$CLUTTER_BACKENDS" = "x"],
Packit 31ecd5
      [
Packit 31ecd5
        AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$platform_linux" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        AC_DEFINE([OS_LINUX], [1], [Define to 1 if building for Linux])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_tslib" = xyes], [
Packit 31ecd5
  PKG_CHECK_EXISTS([tslib-1.0], [have_tslib=yes], [have_tslib=no])
Packit 31ecd5
  AS_IF([test "x$have_tslib" = xyes], [
Packit 31ecd5
    CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib"
Packit 31ecd5
    experimental_input_backend="yes"
Packit 31ecd5
    AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
Packit 31ecd5
    SUPPORT_TSLIB=1
Packit 31ecd5
  ])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_evdev" = xyes], [
Packit 31ecd5
  PKG_CHECK_EXISTS([libinput gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
Packit 31ecd5
  AS_IF([test "x$have_evdev" = "xyes"], [
Packit 31ecd5
    CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev"
Packit 31ecd5
    BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE libudev >= $LIBUDEV_REQ_VERSION libinput >= $LIBINPUT_REQ_VERSION xkbcommon"
Packit 31ecd5
    AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
Packit 31ecd5
    SUPPORT_EVDEV=1
Packit 31ecd5
  ])
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
# conditionals for use in automake files...
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_GLX,     [test "x$SUPPORT_GLX" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_X11,     [test "x$SUPPORT_X11" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_GDK,     [test "x$SUPPORT_GDK" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_EGL,     [test "x$SUPPORT_EGL" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_OSX,     [test "x$SUPPORT_OSX" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_WIN32,   [test "x$SUPPORT_WIN32" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_CEX100,  [test "x$SUPPORT_CEX100" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_WAYLAND, [test "x$SUPPORT_WAYLAND" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(SUPPORT_MIR,     [test "x$SUPPORT_MIR" = "x1"])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(USE_COGL,  [test "x$SUPPORT_COGL" = "x1"])
Packit 31ecd5
AM_CONDITIONAL(USE_TSLIB, [test "x$have_tslib" = "xyes"])
Packit 31ecd5
AM_CONDITIONAL(USE_EVDEV, [test "x$have_evdev" = "xyes"])
Packit 31ecd5
AM_CONDITIONAL(USE_GLD,   [test "x$have_gdl" = "xyes"])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(NEED_XKB_UTILS, [test "x$have_evdev" = "xyes" -o "x$SUPPORT_WAYLAND" = "x1"])
Packit 31ecd5
Packit 31ecd5
dnl Instead of using AM_CFLAGS to ensure
Packit 31ecd5
dnl COGL_ENABLE_EXPERIMENTAL_2_0_API is defined while compiling clutter
Packit 31ecd5
dnl and cogl code we use a define in config.h instead. This helps ensure
Packit 31ecd5
dnl other tools such as glib-mkenums and gir-scanner don't end up
Packit 31ecd5
dnl using the define also.
Packit 31ecd5
AC_DEFINE([COGL_ENABLE_EXPERIMENTAL_2_0_API], [1], [Can use Cogl 2.0 API internally])
Packit 31ecd5
Packit 31ecd5
AC_ARG_WITH([default-drivers],
Packit 31ecd5
            [AS_HELP_STRING([--with-default-drivers=DRIVER], [Comma-separated list of Cogl drivers to use])],
Packit 31ecd5
            [clutter_drivers=$withval],
Packit 31ecd5
            [clutter_drivers="*"])
Packit 31ecd5
Packit 31ecd5
AC_DEFINE_UNQUOTED([CLUTTER_DRIVERS], ["$clutter_drivers"], [List of Cogl drivers])
Packit 31ecd5
Packit 31ecd5
dnl strip leading spaces
Packit 31ecd5
CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
Packit 31ecd5
AC_SUBST(CLUTTER_BACKENDS)
Packit 31ecd5
Packit 31ecd5
CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
Packit 31ecd5
AC_SUBST(CLUTTER_INPUT_BACKENDS)
Packit 31ecd5
Packit 31ecd5
AC_CACHE_SAVE
Packit 31ecd5
Packit 31ecd5
dnl === Clutter configuration =================================================
Packit 31ecd5
Packit 31ecd5
# windowing systems
Packit 31ecd5
AS_IF([test "x$SUPPORT_X11" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_X11 \"x11\"
Packit 31ecd5
#define CLUTTER_INPUT_X11 \"x11\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_GDK" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_GDK \"gdk\"
Packit 31ecd5
#define CLUTTER_INPUT_GDK \"gdk\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_GLX" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_GLX \"glx\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_EGL" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_EGL \"eglnative\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_WAYLAND \"wayland\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_MIR" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_MIR \"mir\"
Packit 31ecd5
#define CLUTTER_INPUT_MIR \"mir\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_OSX" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_OSX \"osx\"
Packit 31ecd5
#define CLUTTER_INPUT_OSX \"osx\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_WIN32" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_WIN32 \"win32\"
Packit 31ecd5
#define CLUTTER_INPUT_WIN32 \"win32\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_CEX100" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_WINDOWING_CEX100 \"cex100\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_EVDEV" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_INPUT_EVDEV \"evdev\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_TSLIB" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_INPUT_TSLIB \"tslib\""])
Packit 31ecd5
AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
Packit 31ecd5
      [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_INPUT_WAYLAND \"wayland\""])
Packit 31ecd5
Packit 31ecd5
# the 'null' input backend is special
Packit 31ecd5
CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
Packit 31ecd5
#define CLUTTER_INPUT_NULL \"null\""
Packit 31ecd5
Packit 31ecd5
AC_SUBST([CLUTTER_CONFIG_DEFINES])
Packit 31ecd5
Packit 31ecd5
dnl === Clutter substitutions kept for backwards compatibility ================
Packit 31ecd5
AC_SUBST([CLUTTER_WINSYS],       [deprecated])
Packit 31ecd5
AC_SUBST([CLUTTER_WINSYS_BASE],  [deprecated])
Packit 31ecd5
AC_SUBST([CLUTTER_STAGE_TYPE],   [deprecated])
Packit 31ecd5
AC_SUBST([CLUTTER_SONAME_INFIX], [deprecated])
Packit 31ecd5
AC_SUBST([CLUTTER_FLAVOUR],      [deprecated])
Packit 31ecd5
AC_SUBST([CLUTTER_COGL],         [deprecated])
Packit 31ecd5
AC_SUBST([COGL_DRIVER],          [deprecated])
Packit 31ecd5
Packit 31ecd5
dnl === X11 checks, only for X11-based backends ===============================
Packit 31ecd5
X11_PC_FILES=""
Packit 31ecd5
X11_EXTS=""
Packit 31ecd5
x11_tests=no
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$SUPPORT_X11" = "x1"],
Packit 31ecd5
      [
Packit 31ecd5
        # base X11 includes and libraries
Packit 31ecd5
        AC_MSG_CHECKING([for X11])
Packit 31ecd5
Packit 31ecd5
        # start with pkg-config
Packit 31ecd5
        PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
Packit 31ecd5
        AS_IF([test "x$have_x11" = "xyes"],
Packit 31ecd5
              [
Packit 31ecd5
                X11_PC_FILES="x11"
Packit 31ecd5
Packit 31ecd5
                # we actually need to ask for CFLAGS and LIBS
Packit 31ecd5
                X11_CFLAGS=`$PKG_CONFIG --cflags $X11_PC_FILES`
Packit 31ecd5
                X11_LIBS=`$PKG_CONFIG --libs $X11_PC_FILES`
Packit 31ecd5
Packit 31ecd5
                AC_MSG_RESULT([found])
Packit 31ecd5
              ],
Packit 31ecd5
              [
Packit 31ecd5
                # no pkg-config, let's go old school
Packit 31ecd5
                AC_PATH_X
Packit 31ecd5
Packit 31ecd5
                AS_IF([test "x$no_x" = "xyes"],
Packit 31ecd5
                      [AC_MSG_ERROR([No X11 Libraries found])],
Packit 31ecd5
                      [
Packit 31ecd5
                        AS_IF([test "x$x_includes" != "xNONE" && test -n "$x_includes"],
Packit 31ecd5
                              [X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`])
Packit 31ecd5
Packit 31ecd5
                        AS_IF([test "x$x_libraries" != "xNONE" && test -n "$x_libraries"],
Packit 31ecd5
                              [X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`])
Packit 31ecd5
Packit 31ecd5
                        AC_MSG_RESULT([found])
Packit 31ecd5
                      ]
Packit 31ecd5
                )
Packit 31ecd5
              ]
Packit 31ecd5
        )
Packit 31ecd5
Packit 31ecd5
        # XEXT (required)
Packit 31ecd5
        AC_MSG_CHECKING([for XEXT extension])
Packit 31ecd5
        PKG_CHECK_EXISTS([xext], [have_xext=yes], [have_xext=no])
Packit 31ecd5
        AS_IF([test "x$have_xext" = "xyes"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_DEFINE(HAVE_XEXT, [1], [Define to 1 if we have the XEXT X extension])
Packit 31ecd5
Packit 31ecd5
                X11_LIBS="$X11_LIBS -lXext"
Packit 31ecd5
                X11_PC_FILES="$X11_PC_FILES xext"
Packit 31ecd5
                X11_EXTS="$X11_EXTS xext"
Packit 31ecd5
Packit 31ecd5
                AC_MSG_RESULT([found])
Packit 31ecd5
              ],
Packit 31ecd5
              [AC_MSG_ERROR([Not found])]
Packit 31ecd5
        )
Packit 31ecd5
Packit 31ecd5
        # XDAMAGE (required)
Packit 31ecd5
        AC_MSG_CHECKING([for XDAMAGE extension])
Packit 31ecd5
        PKG_CHECK_EXISTS([xdamage], [have_xdamage=yes], [have_xdamage=no])
Packit 31ecd5
        AS_IF([test "x$have_xdamage" = "xyes"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_DEFINE(HAVE_XDAMAGE, [1], [Define to 1 if we have the XDAMAGE X extension])
Packit 31ecd5
Packit 31ecd5
                X11_LIBS="$X11_LIBS -lXdamage"
Packit 31ecd5
                X11_PC_FILES="$X11_PC_FILES xdamage"
Packit 31ecd5
                X11_EXTS="$X11_EXTS xdamage"
Packit 31ecd5
Packit 31ecd5
                AC_MSG_RESULT([found])
Packit 31ecd5
              ],
Packit 31ecd5
              [AC_MSG_ERROR([not found])]
Packit 31ecd5
        )
Packit 31ecd5
Packit 31ecd5
        # XCOMPOSITE (optional)
Packit 31ecd5
        AC_MSG_CHECKING([for XCOMPOSITE extension >= $XCOMPOSITE_REQ_VERSION])
Packit 31ecd5
        PKG_CHECK_EXISTS([xcomposite >= $XCOMPOSITE_REQ_VERSION], [have_xcomposite=yes], [have_xcomposite=no])
Packit 31ecd5
        AS_IF([test "x$have_xcomposite" = "xyes"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_DEFINE(HAVE_XCOMPOSITE, [1], [Define to 1 if we have the XCOMPOSITE X extension])
Packit 31ecd5
Packit 31ecd5
                X11_LIBS="$X11_LIBS -lXcomposite"
Packit 31ecd5
                X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION"
Packit 31ecd5
                X11_EXTS="$X11_EXTS xcomposite"
Packit 31ecd5
Packit 31ecd5
                AC_MSG_RESULT([found])
Packit 31ecd5
              ],
Packit 31ecd5
              [AC_MSG_ERROR([not found])]
Packit 31ecd5
        )
Packit 31ecd5
Packit 31ecd5
        # X Generic Extensions (optional)
Packit 31ecd5
        clutter_save_CPPFLAGS="$CPPFLAGS"
Packit 31ecd5
        CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
Packit 31ecd5
Packit 31ecd5
        clutter_save_LIBS="$LIBS"
Packit 31ecd5
        LIBS="$LIBS $X11_LIBS"
Packit 31ecd5
Packit 31ecd5
        have_xge=no
Packit 31ecd5
        AC_CHECK_FUNC([XGetEventData],
Packit 31ecd5
                      [
Packit 31ecd5
                        AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available])
Packit 31ecd5
                        have_xge=yes
Packit 31ecd5
                        X11_EXTS="$X11_EXTS xge"
Packit 31ecd5
                      ])
Packit 31ecd5
Packit 31ecd5
        CPPFLAGS="$clutter_save_CPPFLAGS"
Packit 31ecd5
        LIBS="$clutter_save_LIBS"
Packit 31ecd5
Packit 31ecd5
        # XI (optional)
Packit 31ecd5
        AC_ARG_ENABLE([xinput],
Packit 31ecd5
                      [AS_HELP_STRING([--enable-xinput], [Use the XI X extension])],
Packit 31ecd5
                      [],
Packit 31ecd5
                      [enable_xinput=yes])
Packit 31ecd5
Packit 31ecd5
        AS_IF([test "x$enable_xinput" = "xyes"],
Packit 31ecd5
              [
Packit 31ecd5
                PKG_CHECK_EXISTS([xi], [have_xinput=yes], [have_xinput=no])
Packit 31ecd5
              ],
Packit 31ecd5
              [
Packit 31ecd5
                have_xinput=no
Packit 31ecd5
              ])
Packit 31ecd5
Packit 31ecd5
        AS_CASE([$have_xinput],
Packit 31ecd5
Packit 31ecd5
                [yes],
Packit 31ecd5
                [
Packit 31ecd5
                  AC_CHECK_HEADERS([X11/extensions/XInput2.h],
Packit 31ecd5
                                   [
Packit 31ecd5
                                     have_xinput2=yes
Packit 31ecd5
                                     AC_DEFINE([HAVE_XINPUT_2],
Packit 31ecd5
                                               [1],
Packit 31ecd5
                                               [Define to 1 if XI2 is available])
Packit 31ecd5
                                   ])
Packit 31ecd5
Packit 31ecd5
                  clutter_save_LIBS="$LIBS"
Packit 31ecd5
                  LIBS="$LIBS -lXi"
Packit 31ecd5
Packit 31ecd5
                  AC_CHECK_FUNC([XIAllowTouchEvents],
Packit 31ecd5
                                [
Packit 31ecd5
                                  AC_CHECK_MEMBER([XIScrollClassInfo.number],
Packit 31ecd5
                                                  [
Packit 31ecd5
                                                    have_xinput_2_2=yes
Packit 31ecd5
                                                    AC_DEFINE([HAVE_XINPUT_2_2], [1], [Define to 1 if XInput 2.2 is available])
Packit 31ecd5
                                                  ],
Packit 31ecd5
                                                  [have_xinput_2_2=no],
Packit 31ecd5
                                                  [[#include <X11/extensions/XInput2.h>]])])
Packit 31ecd5
Packit 31ecd5
                  LIBS="$clutter_save_LIBS"
Packit 31ecd5
Packit 31ecd5
                  X11_LIBS="$X11_LIBS $XINPUT_LIBS"
Packit 31ecd5
                  X11_PC_FILES="$X11_PC_FILES xi"
Packit 31ecd5
Packit 31ecd5
                  AS_IF([test "x$have_xinput_2_2" = "xyes"],
Packit 31ecd5
                        [X11_EXTS="$X11_EXTS xi2.2"],
Packit 31ecd5
                        [X11_EXTS="$X11_EXTS xi2.0"])
Packit 31ecd5
                ],
Packit 31ecd5
Packit 31ecd5
                [no],
Packit 31ecd5
                [have_xinput2=no],
Packit 31ecd5
Packit 31ecd5
                [*],
Packit 31ecd5
                [AC_MSG_ERROR([Invalid argument for --enable-xinput])]
Packit 31ecd5
        )
Packit 31ecd5
Packit 31ecd5
        # XKB
Packit 31ecd5
        clutter_save_CPPFLAGS="$CPPFLAGS"
Packit 31ecd5
        CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
Packit 31ecd5
Packit 31ecd5
        clutter_save_LIBS="$LIBS"
Packit 31ecd5
        LIBS="$LIBS $X11_LIBS"
Packit 31ecd5
Packit 31ecd5
        have_xkb=no
Packit 31ecd5
        AC_CHECK_FUNC([XkbQueryExtension],
Packit 31ecd5
                      [
Packit 31ecd5
                        AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
Packit 31ecd5
                        have_xkb=yes
Packit 31ecd5
Packit 31ecd5
                        X11_EXTS="$X11_EXTS xkb"
Packit 31ecd5
                      ])
Packit 31ecd5
Packit 31ecd5
        CPPFLAGS="$clutter_save_CPPFLAGS"
Packit 31ecd5
        LIBS="$clutter_save_LIBS"
Packit 31ecd5
Packit 31ecd5
        x11_tests=yes
Packit 31ecd5
        BACKEND_PC_FILES="$BACKEND_PC_FILES $X11_PC_FILES"
Packit 31ecd5
        FLAVOUR_LIBS="$FLAVOUR_LIBS $X11_LIBS"
Packit 31ecd5
        FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $X11_CFLAGS"
Packit 31ecd5
      ]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"])
Packit 31ecd5
AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"])
Packit 31ecd5
Packit 31ecd5
X11_EXTS=${X11_EXTS#* }
Packit 31ecd5
Packit 31ecd5
AC_CACHE_SAVE
Packit 31ecd5
Packit 31ecd5
dnl === Enable GDK-Pixbuf in tests ============================================
Packit 31ecd5
Packit 31ecd5
m4_define([pixbuf_default], [yes])
Packit 31ecd5
AC_ARG_ENABLE([gdk-pixbuf],
Packit 31ecd5
              [AS_HELP_STRING([--enable-gdk-pixbuf=@<:@no/yes@:>@],
Packit 31ecd5
                              [Enable tests using GDK-Pixbuf @<:@default=]pixbuf_default[@:>@])],
Packit 31ecd5
              [enable_pixbuf=$enable_val],
Packit 31ecd5
              [enable_pixbuf=pixbuf_default])
Packit 31ecd5
Packit 31ecd5
AS_CASE([$enable_pixbuf],
Packit 31ecd5
Packit 31ecd5
        [yes],
Packit 31ecd5
        [
Packit 31ecd5
          PKG_CHECK_MODULES([GDK_PIXBUF], [gdk-pixbuf-2.0])
Packit 31ecd5
          AC_SUBST(GDK_PIXBUF_CFLAGS)
Packit 31ecd5
          AC_SUBST(GDK_PIXBUF_LIBS)
Packit 31ecd5
          pixbuf_tests=yes
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [no],
Packit 31ecd5
        [
Packit 31ecd5
          pixbuf_tests=no
Packit 31ecd5
        ]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL([PIXBUF_TESTS], [test "x$pixbuf_tests" = "xyes"])
Packit 31ecd5
Packit 31ecd5
dnl === Enable debug level ====================================================
Packit 31ecd5
Packit 31ecd5
m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])])
Packit 31ecd5
AC_ARG_ENABLE([debug],
Packit 31ecd5
              [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
Packit 31ecd5
                              [Control Clutter debugging level @<:@default=]debug_default[@:>@])],
Packit 31ecd5
              [],
Packit 31ecd5
              [enable_debug=debug_default])
Packit 31ecd5
Packit 31ecd5
AS_CASE([$enable_debug],
Packit 31ecd5
Packit 31ecd5
        [yes],
Packit 31ecd5
        [
Packit 31ecd5
          test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
Packit 31ecd5
          CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [minimum],
Packit 31ecd5
        [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_CAST_CHECKS"],
Packit 31ecd5
Packit 31ecd5
        [no],
Packit 31ecd5
        [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
Packit 31ecd5
Packit 31ecd5
        [AC_MSG_ERROR([Unknown argument for --enable-debug])]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
AC_SUBST(CLUTTER_DEBUG_CFLAGS)
Packit 31ecd5
Packit 31ecd5
dnl === Enable deprecation guards ==================================================
Packit 31ecd5
Packit 31ecd5
m4_define([deprecated_default],
Packit 31ecd5
          [m4_if(m4_eval(clutter_minor_version % 2),
Packit 31ecd5
                 [1],
Packit 31ecd5
                 [no],
Packit 31ecd5
                 [yes])])
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([deprecated],
Packit 31ecd5
              [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@],
Packit 31ecd5
                              [Whether deprecated symbols should be disabled when compiling Clutter @<:@default=]deprecated_default[@:>@])],
Packit 31ecd5
              [],
Packit 31ecd5
              [enable_deprecated=deprecated_default])
Packit 31ecd5
Packit 31ecd5
AS_CASE([$enable_deprecated],
Packit 31ecd5
Packit 31ecd5
        [no],
Packit 31ecd5
        [
Packit 31ecd5
          CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED"
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [yes],
Packit 31ecd5
        [
Packit 31ecd5
          CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS"
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [AC_MSG_ERROR([Unknown argument for --enable-deprecated])]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
AC_SUBST([CLUTTER_DEPRECATED_CFLAGS])
Packit 31ecd5
Packit 31ecd5
dnl === Enable strict compiler flags ==========================================
Packit 31ecd5
Packit 31ecd5
# use strict compiler flags only when building from git; the rules for
Packit 31ecd5
# distcheck will take care of turning this on when making a release
Packit 31ecd5
m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_micro_version % 2), [1], [yes], [no])])
Packit 31ecd5
AC_ARG_ENABLE([maintainer-flags],
Packit 31ecd5
              [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@],
Packit 31ecd5
                              [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
Packit 31ecd5
              [],
Packit 31ecd5
              [enable_maintainer_flags=maintainer_flags_default])
Packit 31ecd5
Packit 31ecd5
MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
Packit 31ecd5
                           -Wall
Packit 31ecd5
                           -Wcast-align
Packit 31ecd5
                           -Wuninitialized
Packit 31ecd5
                           -Wno-strict-aliasing
Packit 31ecd5
                           -Wshadow"
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([Werror],
Packit 31ecd5
              [AS_HELP_STRING([--disable-Werror], [Removes -Werror from compiler flags])],
Packit 31ecd5
              [],
Packit 31ecd5
              [enable_Werror=yes])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$enable_Werror" = xyes], [
Packit 31ecd5
  MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
Packit 31ecd5
                             -Werror=logical-op
Packit 31ecd5
                             -Werror=pointer-arith
Packit 31ecd5
                             -Werror=missing-declarations
Packit 31ecd5
                             -Werror=redundant-decls
Packit 31ecd5
                             -Werror=empty-body
Packit 31ecd5
                             -Werror=format
Packit 31ecd5
                             -Werror=format-security
Packit 31ecd5
                             -Werror=format-nonliteral
Packit 31ecd5
                             -Werror=init-self
Packit 31ecd5
                             -Werror=declaration-after-statement
Packit 31ecd5
                             -Werror=vla"
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AS_CASE([$enable_maintainer_flags],
Packit 31ecd5
        [yes],
Packit 31ecd5
        [
Packit 31ecd5
          AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [no],
Packit 31ecd5
        [
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [error],
Packit 31ecd5
        [
Packit 31ecd5
          MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
Packit 31ecd5
          AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
Packit 31ecd5
        ],
Packit 31ecd5
Packit 31ecd5
        [*],
Packit 31ecd5
        [AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
# strip leading spaces
Packit 31ecd5
MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#*  }
Packit 31ecd5
AC_SUBST(MAINTAINER_CFLAGS)
Packit 31ecd5
Packit 31ecd5
dnl === Dependencies, compiler flags and linker libraries =====================
Packit 31ecd5
# strip leading space
Packit 31ecd5
BACKEND_PC_FILES=${BACKEND_PC_FILES#* }
Packit 31ecd5
Packit 31ecd5
# public dependencies, will fill the Requires: field of clutter.pc
Packit 31ecd5
CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES"
Packit 31ecd5
PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
Packit 31ecd5
Packit 31ecd5
# private dependencies, will fill the Requires.private: field of clutter.pc
Packit 31ecd5
AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" = "x" && test "x$BACKEND_PC_FILES_PRIVATE" = "x"],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_REQUIRES_PRIVATE=""
Packit 31ecd5
        CLUTTER_DEPS_PRIVATE_CFLAGS=""
Packit 31ecd5
        CLUTTER_DEPS_PRIVATE_LIBS=""
Packit 31ecd5
      ],
Packit 31ecd5
      [
Packit 31ecd5
        CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE"
Packit 31ecd5
        PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE])
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AC_SUBST(CLUTTER_REQUIRES)
Packit 31ecd5
AC_SUBST(CLUTTER_REQUIRES_PRIVATE)
Packit 31ecd5
Packit 31ecd5
CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_DEPS_PRIVATE_CFLAGS $GLIB_CFLAGS"
Packit 31ecd5
CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_DEPS_PRIVATE_LIBS $GLIB_LIBS"
Packit 31ecd5
AC_SUBST(CLUTTER_CFLAGS)
Packit 31ecd5
AC_SUBST(CLUTTER_LIBS)
Packit 31ecd5
Packit 31ecd5
dnl === Test coverage =========================================================
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([gcov],
Packit 31ecd5
              [AS_HELP_STRING([--enable-gcov], [Enable gcov])],
Packit 31ecd5
              [use_gcov=$enableval],
Packit 31ecd5
              [use_gcov=no])
Packit 31ecd5
Packit 31ecd5
AS_IF([test "x$use_gcov" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        dnl we need gcc:
Packit 31ecd5
        AS_IF([test "$GCC" != "yes"], [AC_MSG_ERROR([GCC is required for --enable-gcov])])
Packit 31ecd5
Packit 31ecd5
        dnl Check if ccache is being used
Packit 31ecd5
        AC_CHECK_PROG(SHTOOL, shtool, shtool)
Packit 31ecd5
        AS_CASE([`$SHTOOL path $CC`],
Packit 31ecd5
                [*ccache*], [gcc_ccache=yes],
Packit 31ecd5
                [gcc_ccache=no])
Packit 31ecd5
Packit 31ecd5
        if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
Packit 31ecd5
          AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
Packit 31ecd5
        fi
Packit 31ecd5
Packit 31ecd5
        ltp_version_list="1.6 1.7 1.8 1.9 1.10"
Packit 31ecd5
        AC_CHECK_PROG(LTP, lcov, lcov)
Packit 31ecd5
        AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
Packit 31ecd5
Packit 31ecd5
        if test "$LTP"; then
Packit 31ecd5
          AC_CACHE_CHECK([for ltp version], clutter_cv_ltp_version,
Packit 31ecd5
                         [
Packit 31ecd5
                           clutter_cv_ltp_version=invalid
Packit 31ecd5
                           ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
Packit 31ecd5
                           for ltp_check_version in $ltp_version_list; do
Packit 31ecd5
                             if test "$ltp_version" = "$ltp_check_version"; then
Packit 31ecd5
                               clutter_cv_ltp_version="$ltp_check_version (ok)"
Packit 31ecd5
                             fi
Packit 31ecd5
                           done
Packit 31ecd5
                         ])
Packit 31ecd5
        else
Packit 31ecd5
          ltp_msg="To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list"
Packit 31ecd5
          AC_MSG_ERROR([$ltp_msg])
Packit 31ecd5
        fi
Packit 31ecd5
Packit 31ecd5
        case $clutter_cv_ltp_version in
Packit 31ecd5
          ""|invalid[)]
Packit 31ecd5
          ltp_msg="You must have one of the following versions of LTP: $ltp_version_list (found: $ltp_version)."
Packit 31ecd5
          AC_MSG_ERROR([$ltp_msg])
Packit 31ecd5
          LTP="exit 0;"
Packit 31ecd5
          ;;
Packit 31ecd5
        esac
Packit 31ecd5
Packit 31ecd5
        if test -z "$LTP_GENHTML"; then
Packit 31ecd5
          AC_MSG_ERROR([Could not find genhtml from the LTP package])
Packit 31ecd5
        fi
Packit 31ecd5
Packit 31ecd5
        AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov])
Packit 31ecd5
Packit 31ecd5
        dnl Remove all optimization flags from CFLAGS
Packit 31ecd5
        changequote({,})
Packit 31ecd5
        CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
Packit 31ecd5
        CLUTTER_CFLAGS=`echo "$CLUTTER_CFLAGS" | $SED -e 's/-O[0-9]*//g'`
Packit 31ecd5
        changequote([,])
Packit 31ecd5
Packit 31ecd5
        dnl Define the special gcc flags
Packit 31ecd5
        CLUTTER_GCOV_CFLAGS="-O0 -fprofile-arcs -ftest-coverage"
Packit 31ecd5
        CLUTTER_GCOV_LDADD="-lgcov"
Packit 31ecd5
Packit 31ecd5
        AC_SUBST(CLUTTER_GCOV_CFLAGS)
Packit 31ecd5
        AC_SUBST(CLUTTER_GCOV_LDADD)
Packit 31ecd5
Packit 31ecd5
        CLUTTER_CFLAGS="$CLUTTER_CFLAGS $CLUTTER_GCOV_CFLAGS"
Packit 31ecd5
        CLUTTER_LIBS="$CLUTTER_LIBS $CLUTTER_GCOV_LDADD"
Packit 31ecd5
      ])
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(ENABLE_GCOV, test "x$use_gcov" = "xyes")
Packit 31ecd5
Packit 31ecd5
dnl === GObject-Introspection check ===========================================
Packit 31ecd5
Packit 31ecd5
GOBJECT_INTROSPECTION_CHECK([gi_req_version])
Packit 31ecd5
Packit 31ecd5
dnl === GTK Doc check =========================================================
Packit 31ecd5
Packit 31ecd5
GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
Packit 31ecd5
Packit 31ecd5
# we don't want to build the documentation from a Git clone unless we
Packit 31ecd5
# explicitly tell configure to do so; this allows avoiding to recurse into
Packit 31ecd5
# the documentation directory when building Clutter inside Poky for a
Packit 31ecd5
# target device that doesn't have gtk-doc installed. for reference
Packit 31ecd5
# see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
Packit 31ecd5
#
Packit 31ecd5
# we use autogen.sh as it exists only inside the Git clones, and it
Packit 31ecd5
# is not packaged into tarballs.
Packit 31ecd5
AM_CONDITIONAL([BUILD_GTK_DOC], [test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
Packit 31ecd5
Packit 31ecd5
# prefixes for fixing gtk-doc references
Packit 31ecd5
CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
Packit 31ecd5
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
Packit 31ecd5
PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
Packit 31ecd5
COGL_PREFIX="`$PKG_CONFIG --variable=prefix cogl-1.0`"
Packit 31ecd5
ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
Packit 31ecd5
AC_SUBST(CAIRO_PREFIX)
Packit 31ecd5
AC_SUBST(GLIB_PREFIX)
Packit 31ecd5
AC_SUBST(PANGO_PREFIX)
Packit 31ecd5
AC_SUBST(COGL_PREFIX)
Packit 31ecd5
AC_SUBST(ATK_PREFIX)
Packit 31ecd5
Packit 31ecd5
dnl === Manual ================================================================
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([docs],
Packit 31ecd5
              [AS_HELP_STRING([--enable-docs=@<:@no/yes@:>@],
Packit 31ecd5
                              [Build optional documentation; requires xsltproc and jw.])],
Packit 31ecd5
              [enable_docs=$enableval],
Packit 31ecd5
              [enable_docs=no])
Packit 31ecd5
Packit 31ecd5
enable_pdfs=no
Packit 31ecd5
AS_IF([test "x$enable_docs" = "xyes"],
Packit 31ecd5
      [
Packit 31ecd5
        AC_PATH_PROG(JW, [jw], [no])
Packit 31ecd5
        AS_IF([test "x$JW" = "xno"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_MSG_WARN([jw not found; pdf generation has been disabled])
Packit 31ecd5
              ],
Packit 31ecd5
              [enable_pdfs=yes])
Packit 31ecd5
Packit 31ecd5
        AC_PATH_PROG(XSLTPROC, [xsltproc], [no])
Packit 31ecd5
        AS_IF([test "x$XSLTPROC" = "xno"],
Packit 31ecd5
              [
Packit 31ecd5
                AC_MSG_ERROR([xsltproc not found])
Packit 31ecd5
              ])
Packit 31ecd5
      ]
Packit 31ecd5
)
Packit 31ecd5
Packit 31ecd5
AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
Packit 31ecd5
AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
Packit 31ecd5
Packit 31ecd5
dnl === I18N ==================================================================
Packit 31ecd5
Packit 31ecd5
AM_GNU_GETTEXT_VERSION([0.17])
Packit 31ecd5
AM_GNU_GETTEXT([external])
Packit 31ecd5
Packit 31ecd5
GETTEXT_PACKAGE="clutter-1.0"
Packit 31ecd5
AC_SUBST(GETTEXT_PACKAGE)
Packit 31ecd5
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
Packit 31ecd5
                   ["$GETTEXT_PACKAGE"],
Packit 31ecd5
                   [The prefix for our gettext translation domains.])
Packit 31ecd5
AS_ALL_LINGUAS
Packit 31ecd5
Packit 31ecd5
dnl = Build optionals =========================================================
Packit 31ecd5
Packit 31ecd5
dnl === Conformance test suite ================================================
Packit 31ecd5
Packit 31ecd5
GLIB_TESTS
Packit 31ecd5
Packit 31ecd5
AC_ARG_ENABLE([examples],
Packit 31ecd5
              [AS_HELP_STRING([--disable-examples], [Whether examples should be built])],
Packit 31ecd5
              [],
Packit 31ecd5
              [enable_examples=yes])
Packit 31ecd5
AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = "xyes"])
Packit 31ecd5
Packit 31ecd5
dnl ===========================================================================
Packit 31ecd5
Packit 31ecd5
AC_CONFIG_FILES([
Packit 31ecd5
	Makefile
Packit 31ecd5
        README
Packit 31ecd5
Packit 31ecd5
	build/Makefile
Packit 31ecd5
	build/autotools/Makefile
Packit 31ecd5
	build/mingw/Makefile
Packit 31ecd5
	build/win32/Makefile
Packit 31ecd5
	build/win32/vs9/Makefile
Packit 31ecd5
	build/win32/vs10/Makefile
Packit 31ecd5
Packit 31ecd5
	clutter/Makefile
Packit 31ecd5
	clutter/config.h.win32
Packit 31ecd5
        clutter/clutter-config.h
Packit 31ecd5
	clutter/clutter-version.h
Packit 31ecd5
	clutter/clutter-$CLUTTER_API_VERSION.pc:clutter/clutter.pc.in
Packit 31ecd5
Packit 31ecd5
	clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
Packit 31ecd5
Packit 31ecd5
	clutter/cex100/clutter-cex100.h
Packit 31ecd5
Packit 31ecd5
	tests/Makefile
Packit 31ecd5
	tests/accessibility/Makefile
Packit 31ecd5
	tests/conform/Makefile
Packit 31ecd5
	tests/interactive/Makefile
Packit 31ecd5
	tests/interactive/wrapper.sh
Packit 31ecd5
	tests/micro-bench/Makefile
Packit 31ecd5
	tests/performance/Makefile
Packit 31ecd5
Packit 31ecd5
        examples/Makefile
Packit 31ecd5
Packit 31ecd5
	doc/Makefile
Packit 31ecd5
	doc/reference/Makefile
Packit 31ecd5
	doc/reference/clutter-docs.xml
Packit 31ecd5
	doc/common/Makefile
Packit 31ecd5
	doc/cookbook/Makefile
Packit 31ecd5
	doc/cookbook/clutter-cookbook.xml
Packit 31ecd5
	doc/cookbook/examples/Makefile
Packit 31ecd5
Packit 31ecd5
	po/Makefile.in
Packit 31ecd5
])
Packit 31ecd5
Packit 31ecd5
AC_OUTPUT
Packit 31ecd5
Packit 31ecd5
dnl === Summary ===============================================================
Packit 31ecd5
Packit 31ecd5
echo ""
Packit 31ecd5
echo "Clutter - $VERSION (${CLUTTER_RELEASE_STATUS})"
Packit 31ecd5
Packit 31ecd5
# Global flags
Packit 31ecd5
echo ""
Packit 31ecd5
echo " • Global:"
Packit 31ecd5
echo "        Prefix: ${prefix}"
Packit 31ecd5
echo "        Libdir: ${libdir}"
Packit 31ecd5
echo "        Sysconfdir: ${sysconfdir}"
Packit 31ecd5
Packit 31ecd5
# Compiler/Debug related flags
Packit 31ecd5
echo ""
Packit 31ecd5
echo " • Compiler options:"
Packit 31ecd5
echo "        Clutter debug level: ${enable_debug}"
Packit 31ecd5
echo "        Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
Packit 31ecd5
echo "        Enable coverage tests: ${use_gcov}"
Packit 31ecd5
echo "        Enable deprecated symbols: ${enable_deprecated}"
Packit 31ecd5
Packit 31ecd5
# Documentation
Packit 31ecd5
echo ""
Packit 31ecd5
echo " • Documentation:"
Packit 31ecd5
echo "        Build API Reference: ${enable_gtk_doc}"
Packit 31ecd5
echo "        Build Additional Documentation: ${enable_docs} (Generate PDF: ${enable_pdfs})"
Packit 31ecd5
Packit 31ecd5
# Miscellaneous
Packit 31ecd5
echo ""
Packit 31ecd5
echo " • Extra:"
Packit 31ecd5
echo "        Build introspection data: ${enable_introspection}"
Packit 31ecd5
if test "x$x11_tests" = "xyes"; then
Packit 31ecd5
echo "        Build X11-specific tests: ${x11_tests}"
Packit 31ecd5
fi
Packit 31ecd5
if test "x$pixbuf_tests" = "xyes"; then
Packit 31ecd5
echo "        Build tests using GDK-Pixbuf: ${pixbuf_tests}"
Packit 31ecd5
fi
Packit 31ecd5
echo "        Install test suites: ${enable_installed_tests}"
Packit 31ecd5
echo "        Build examples: ${enable_examples}"
Packit 31ecd5
Packit 31ecd5
# Clutter backend related flags
Packit 31ecd5
echo ""
Packit 31ecd5
echo " • Clutter Backends:"
Packit 31ecd5
Packit 31ecd5
if test "x$experimental_backend" = "xno"; then
Packit 31ecd5
echo "        Windowing systems: ${CLUTTER_BACKENDS}"
Packit 31ecd5
else
Packit 31ecd5
echo "        Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
Packit 31ecd5
fi
Packit 31ecd5
Packit 31ecd5
if test "x$experimental_input_backend" = "xno"; then
Packit 31ecd5
echo "        Input backends: ${CLUTTER_INPUT_BACKENDS}"
Packit 31ecd5
else
Packit 31ecd5
echo "        Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
Packit 31ecd5
fi
Packit 31ecd5
Packit 31ecd5
echo "        Cogl drivers: $clutter_drivers"
Packit 31ecd5
Packit 31ecd5
if test "x$SUPPORT_X11" = "x1"; then
Packit 31ecd5
echo ""
Packit 31ecd5
echo "     - X11 backend options:"
Packit 31ecd5
echo "        Enabled extensions: ${X11_EXTS}"
Packit 31ecd5
fi
Packit 31ecd5
Packit 31ecd5
if test "x$SUPPORT_CEX100" = "x1"; then
Packit 31ecd5
echo ""
Packit 31ecd5
echo "     - CEx100 backend options (WARNING: Experimental):"
Packit 31ecd5
echo "        libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
Packit 31ecd5
fi
Packit 31ecd5
Packit 31ecd5
if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then
Packit 31ecd5
echo ""
Packit 31ecd5
echo "     - Wayland compositor support enabled (WARNING: Experimental)"
Packit 31ecd5
fi
Packit 31ecd5
Packit 31ecd5
echo ""
Packit 31ecd5
Packit 31ecd5
# General warning about experimental features
Packit 31ecd5
if test "x$experimental_backend" = xyes -o "x$experimental_input_backend" = xyes; then
Packit 31ecd5
echo ""
Packit 31ecd5
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
Packit 31ecd5
echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
Packit 31ecd5
echo ""
Packit 31ecd5
echo "  The stability of your build might be affected by one or more"
Packit 31ecd5
echo "  experimental backends or experimental and unsupported features"
Packit 31ecd5
echo ""
Packit 31ecd5
echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
Packit 31ecd5
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
Packit 31ecd5
echo ""
Packit 31ecd5
fi