mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
5ae7a67b36
One of the current limitations of EGLStreams is that there's no way to
resize a surface consumer without re-creating the entire stream.
Therefore, while resizing, clients will send wl_surface::attach requests
so the compositor can re-create its endpoint of the stream, but no
buffer will be available actually. If we proceed with the rest of the
attach operation we'll be presenting an empty buffer.
In order to fix this, a separate wl_eglstream_controller protocol has
been introduced that clients can use to request a stream re-creation
without overloading wl_surface::attach for that purpose.
This change adds the required logic to create the corresponding
wl_eglstream_controller global interface that clients can bind to.
Whenever a client requests a stream to be created, we just need to
create and realize the new EGLStream buffer. The same buffer resource
will be given at a later time to wl_surface::attach, whenever new
content is made available by the application, so we can proceed to
acquire the stream buffer and update the surface state.
https://bugzilla.gnome.org/show_bug.cgi?id=782575
(cherry picked from commit 435b3c4bdb
)
579 lines
18 KiB
Plaintext
579 lines
18 KiB
Plaintext
AC_PREREQ(2.62)
|
|
|
|
m4_define([mutter_major_version], [3])
|
|
m4_define([mutter_minor_version], [28])
|
|
m4_define([mutter_micro_version], [3])
|
|
|
|
m4_define([mutter_version],
|
|
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
|
|
|
m4_define([mutter_plugin_api_version], [3])
|
|
|
|
m4_define([libmutter_api_version], [2])
|
|
|
|
AC_INIT([mutter], [mutter_version],
|
|
[http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
|
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AC_CONFIG_SRCDIR(src/core/display.c)
|
|
AC_CONFIG_HEADERS(config.h)
|
|
AC_CONFIG_SUBDIRS([cogl clutter])
|
|
|
|
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz tar-ustar subdir-objects])
|
|
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
|
|
AM_MAINTAINER_MODE([enable])
|
|
|
|
AC_GNU_SOURCE
|
|
|
|
MUTTER_MAJOR_VERSION=mutter_major_version
|
|
MUTTER_MINOR_VERSION=mutter_minor_version
|
|
MUTTER_MICRO_VERSION=mutter_micro_version
|
|
MUTTER_VERSION=mutter_version
|
|
MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
|
|
LIBMUTTER_API_VERSION=libmutter_api_version
|
|
AC_SUBST(MUTTER_MAJOR_VERSION)
|
|
AC_SUBST(MUTTER_MINOR_VERSION)
|
|
AC_SUBST(MUTTER_MICRO_VERSION)
|
|
AC_SUBST(MUTTER_PLUGIN_API_VERSION)
|
|
AC_SUBST(MUTTER_VERSION)
|
|
AC_SUBST(LIBMUTTER_API_VERSION)
|
|
|
|
# Make the mutter versions visible to the cogl and clutter subdirs
|
|
export LIBMUTTER_API_VERSION MUTTER_VERSION
|
|
|
|
MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins"
|
|
AC_SUBST(MUTTER_PLUGIN_DIR)
|
|
|
|
# Honor aclocal flags
|
|
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
|
|
|
|
GETTEXT_PACKAGE=mutter
|
|
AC_SUBST(GETTEXT_PACKAGE)
|
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
|
|
|
AM_GNU_GETTEXT_VERSION([0.19.6])
|
|
AM_GNU_GETTEXT([external])
|
|
|
|
LT_PREREQ([2.2.6])
|
|
LT_INIT([disable-static])
|
|
|
|
# Debian / Ubuntu set this flag to 'no' in libtool, causing linking errors
|
|
# (i.e when linking against mutter-clutter). Not to explicitly redefine such
|
|
# deps, we enable this flag for everybody.
|
|
link_all_deplibs=yes
|
|
link_all_deplibs_CXX=yes
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CC_C_O
|
|
AC_PROG_INSTALL
|
|
AC_PROG_SED
|
|
AC_HEADER_STDC
|
|
PKG_PROG_PKG_CONFIG([0.21])
|
|
|
|
# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
|
|
AM_PATH_GLIB_2_0([2.53.2])
|
|
|
|
CANBERRA_GTK=libcanberra-gtk3
|
|
CANBERRA_GTK_VERSION=0.26
|
|
|
|
LIBWACOM_VERSION=0.13
|
|
|
|
MUTTER_PC_MODULES="
|
|
gl
|
|
egl
|
|
gtk+-3.0 >= 3.19.8
|
|
gio-unix-2.0 >= 2.35.1
|
|
pango >= 1.2.0
|
|
cairo >= 1.10.0
|
|
gsettings-desktop-schemas >= 3.21.4
|
|
json-glib-1.0
|
|
upower-glib >= 0.99.0
|
|
gnome-desktop-3.0
|
|
xcomposite >= 0.2
|
|
xcursor
|
|
xdamage
|
|
xext
|
|
xfixes
|
|
xi >= 1.6.0
|
|
xkbfile
|
|
xkeyboard-config
|
|
xkbcommon >= 0.4.3
|
|
xkbcommon-x11
|
|
xrender
|
|
x11-xcb
|
|
xcb-randr
|
|
xcb-res
|
|
"
|
|
XWAYLAND_GRAB_DEFAULT_ACCESS_RULES="gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr"
|
|
|
|
GLIB_GSETTINGS
|
|
|
|
AC_ARG_ENABLE(verbose-mode,
|
|
AC_HELP_STRING([--disable-verbose-mode],
|
|
[disable mutter's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
|
|
enable_verbose_mode=yes)
|
|
|
|
if test x$enable_verbose_mode = xyes; then
|
|
AC_DEFINE(WITH_VERBOSE_MODE,1,[Build with verbose mode support])
|
|
fi
|
|
|
|
AC_ARG_ENABLE(sm,
|
|
AC_HELP_STRING([--disable-sm],
|
|
[disable mutter's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
|
|
enable_sm=auto)
|
|
|
|
AC_ARG_ENABLE(startup-notification,
|
|
AC_HELP_STRING([--disable-startup-notification],
|
|
[disable mutter's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
|
|
enable_startup_notification=auto)
|
|
|
|
AC_ARG_WITH(libcanberra,
|
|
AC_HELP_STRING([--without-libcanberra],
|
|
[disable the use of libcanberra for playing sounds]),,
|
|
with_libcanberra=auto)
|
|
|
|
AC_ARG_WITH(libwacom,
|
|
AC_HELP_STRING([--without-libwacom],
|
|
[disable the use of libwacom for advanced tablet management]),,
|
|
with_libwacom=auto)
|
|
|
|
AC_ARG_WITH(gudev,
|
|
AC_HELP_STRING([--without-gudev],
|
|
[disable the use of gudev for device type detection]),,
|
|
with_gudev=auto)
|
|
|
|
AC_ARG_WITH([xwayland-path],
|
|
[AS_HELP_STRING([--with-xwayland-path], [Absolute path for an X Wayland server])],
|
|
[XWAYLAND_PATH="$withval"],
|
|
[XWAYLAND_PATH="$bindir/Xwayland"])
|
|
|
|
AC_ARG_ENABLE(installed_tests,
|
|
AS_HELP_STRING([--enable-installed-tests],
|
|
[Install test programs (default: no)]),,
|
|
[enable_installed_tests=no])
|
|
AM_CONDITIONAL(BUILDOPT_INSTALL_TESTS, test x$enable_installed_tests = xyes)
|
|
|
|
## here we get the flags we'll actually use
|
|
|
|
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
|
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
|
|
AC_SUBST(GNOME_KEYBINDINGS_KEYSDIR)
|
|
|
|
STARTUP_NOTIFICATION_VERSION=0.7
|
|
AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION])
|
|
if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then
|
|
have_startup_notification=yes
|
|
else
|
|
have_startup_notification=no
|
|
fi
|
|
AC_MSG_RESULT($have_startup_notification)
|
|
|
|
if test x$enable_startup_notification = xyes; then
|
|
have_startup_notification=yes
|
|
echo "startup-notification support forced on"
|
|
elif test x$enable_startup_notification = xauto; then
|
|
true
|
|
else
|
|
have_startup_notification=no
|
|
fi
|
|
|
|
if test x$have_startup_notification = xyes; then
|
|
echo "Building with libstartup-notification"
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
|
|
AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
|
|
else
|
|
echo "Building without libstartup-notification"
|
|
fi
|
|
|
|
have_libcanberra=no
|
|
AC_MSG_CHECKING([libcanberra-gtk])
|
|
if test x$with_libcanberra = xno ; then
|
|
AC_MSG_RESULT([disabled])
|
|
else
|
|
if $PKG_CONFIG --exists $CANBERRA_GTK '>=' $CANBERRA_GTK_VERSION; then
|
|
have_libcanberra=yes
|
|
AC_MSG_RESULT(yes)
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES $CANBERRA_GTK"
|
|
AC_DEFINE([HAVE_LIBCANBERRA], 1, [Building with libcanberra for playing sounds])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
if test x$with_libcanberra = xyes ; then
|
|
AC_MSG_ERROR([libcanberra forced and libcanberra-gtk was not found])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
have_libwacom=no
|
|
AC_MSG_CHECKING([libwacom])
|
|
if test x$with_libwacom = xno ; then
|
|
AC_MSG_RESULT([disabled])
|
|
else
|
|
if $PKG_CONFIG --exists libwacom '>=' $LIBWACOM_VERSION; then
|
|
have_libwacom=yes
|
|
AC_MSG_RESULT(yes)
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES libwacom"
|
|
AC_DEFINE([HAVE_LIBWACOM], 1, [Building with libwacom for advanced tablet management])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
if test x$with_libwacom = xyes ; then
|
|
AC_MSG_ERROR([libwacom forced but not found])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
have_gudev=no
|
|
AC_MSG_CHECKING([gudev])
|
|
if test x$with_gudev = xno ; then
|
|
AC_MSG_RESULT([disabled])
|
|
else
|
|
if $PKG_CONFIG --exists "gudev-1.0 >= 232"; then
|
|
have_gudev=yes
|
|
AC_MSG_RESULT(yes)
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES gudev-1.0 >= 232"
|
|
AC_DEFINE([HAVE_LIBGUDEV], 1, [Building with gudev for device type detection])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
if test x$with_gudev = xyes ; then
|
|
AC_MSG_ERROR([gudev forced but not found])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_ARG_ENABLE(remote-desktop,
|
|
AS_HELP_STRING([--enable-remote-desktop], [enable support for remote desktop and screen cast]),,
|
|
enable_remote_desktop=no
|
|
)
|
|
AS_IF([test "$enable_remote_desktop" = "yes"], [
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES libpipewire-0.2 >= 0.2.2"
|
|
AC_DEFINE([HAVE_REMOTE_DESKTOP],[1], [Defined if screen cast and remote desktop support is enabled])
|
|
])
|
|
AM_CONDITIONAL([HAVE_REMOTE_DESKTOP],[test "$enable_remote_desktop" = "yes"])
|
|
|
|
INTROSPECTION_VERSION=0.9.5
|
|
GOBJECT_INTROSPECTION_CHECK([$INTROSPECTION_VERSION])
|
|
|
|
if test x$found_introspection != xno; then
|
|
AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
|
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0"
|
|
fi
|
|
|
|
AC_SUBST(XWAYLAND_PATH)
|
|
|
|
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
|
|
|
PKG_CHECK_MODULES(ELOGIND, [libelogind], [have_elogind=yes], [have_elogind=no])
|
|
|
|
if test x$have_elogind = xyes; then
|
|
logind_provider="libelogind"
|
|
fi
|
|
|
|
PKG_CHECK_MODULES(SYSTEMD, [libsystemd], [have_systemd=yes], [have_systemd=no])
|
|
|
|
if test x$have_systemd = xyes -o -z "$logind_provider"; then
|
|
logind_provider="libsystemd"
|
|
fi
|
|
|
|
MUTTER_NATIVE_BACKEND_MODULES="libdrm $logind_provider libinput >= 1.4 gudev-1.0 gbm >= 10.3"
|
|
|
|
AC_ARG_ENABLE(native-backend,
|
|
AS_HELP_STRING([--disable-native-backend], [disable mutter native (KMS) backend]),,
|
|
enable_native_backend=auto
|
|
)
|
|
have_native_backend="no"
|
|
AS_IF([test "$enable_native_backend" = "yes"], [have_native_backend=yes],
|
|
[test "$enable_native_backend" = "auto"], PKG_CHECK_EXISTS([$MUTTER_NATIVE_BACKEND_MODULES], [have_native_backend=yes]))
|
|
|
|
AS_IF([test "$have_native_backend" = "yes"], [
|
|
PKG_CHECK_MODULES([MUTTER_NATIVE_BACKEND], [$MUTTER_NATIVE_BACKEND_MODULES])
|
|
AC_DEFINE([HAVE_NATIVE_BACKEND],[1], [Define if you want to enable the native (KMS) backend based on systemd])
|
|
])
|
|
AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test "$have_native_backend" = "yes"])
|
|
|
|
MUTTER_WAYLAND_EGLSTREAM_MODULES="wayland-eglstream-protocols"
|
|
|
|
AC_ARG_ENABLE(egl-device,
|
|
AS_HELP_STRING([--enable-egl-device], [enable support for EGLDevice on top of KMS]),,
|
|
enable_egl_device=no
|
|
have_wayland_eglstream=no
|
|
)
|
|
AS_IF([test "$enable_egl_device" = "yes"], [
|
|
AC_DEFINE([HAVE_EGL_DEVICE],[1], [Defined if EGLDevice support is enabled])
|
|
PKG_CHECK_EXISTS([$MUTTER_WAYLAND_EGLSTREAM_MODULES], [have_wayland_eglstream=yes], [have_wayland_eglstream=no])
|
|
])
|
|
AS_IF([test "$have_wayland_eglstream" = "yes"], [
|
|
AC_DEFINE([HAVE_WAYLAND_EGLSTREAM],[1],[Defined if Wayland EGLStream protocols are available])
|
|
PKG_CHECK_MODULES(WAYLAND_EGLSTREAM, [$MUTTER_WAYLAND_EGLSTREAM_MODULES],
|
|
[ac_wayland_eglstream_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir $MUTTER_WAYLAND_EGLSTREAM_MODULES`])
|
|
AC_SUBST(WAYLAND_EGLSTREAM_DATADIR, $ac_wayland_eglstream_pkgdatadir)
|
|
])
|
|
AM_CONDITIONAL([HAVE_WAYLAND_EGLSTREAM],[test "$have_wayland_eglstream" = "yes"])
|
|
|
|
MUTTER_WAYLAND_MODULES="wayland-server >= 1.13.0"
|
|
|
|
AC_ARG_ENABLE(wayland,
|
|
AS_HELP_STRING([--disable-wayland], [disable mutter on wayland support]),,
|
|
enable_wayland=auto
|
|
)
|
|
AS_IF([test "$enable_wayland" = "yes"], [have_wayland=yes],
|
|
[test "$enable_wayland" = "auto"], PKG_CHECK_EXISTS([$MUTTER_WAYLAND_MODULES], [have_wayland=yes]))
|
|
|
|
AS_IF([test "$have_wayland" = "yes"], [
|
|
PKG_CHECK_MODULES([MUTTER_WAYLAND], [$MUTTER_WAYLAND_MODULES])
|
|
AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
|
|
AS_IF([test $WAYLAND_SCANNER = "no"],
|
|
[AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])
|
|
AC_SUBST([WAYLAND_SCANNER])
|
|
AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
|
|
|
|
PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.12],
|
|
[ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
|
|
AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
|
|
])
|
|
AM_CONDITIONAL([HAVE_WAYLAND],[test "$have_wayland" = "yes"])
|
|
|
|
AC_ARG_WITH([xwayland-grab-default-access-rules],
|
|
[AS_HELP_STRING([--with-xwayland-grab-default-access-rules="app-res1,app-res2,..."],
|
|
[comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland"])],
|
|
[with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES="$withval"],
|
|
[with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES="$XWAYLAND_GRAB_DEFAULT_ACCESS_RULES"])
|
|
|
|
case "$with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES" in
|
|
yes) with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES="$XWAYLAND_GRAB_DEFAULT_ACCESS_RULES" ;;
|
|
no) with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES='' ;;
|
|
esac
|
|
AC_DEFINE_UNQUOTED([XWAYLAND_GRAB_DEFAULT_ACCESS_RULES],
|
|
"$with_XWAYLAND_GRAB_DEFAULT_ACCESS_RULES",
|
|
[Xwayland applications allowed to issue keyboard grabs])
|
|
AC_SUBST(XWAYLAND_GRAB_DEFAULT_ACCESS_RULES)
|
|
|
|
PKG_CHECK_EXISTS([xi >= 1.6.99.1],
|
|
AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
|
|
|
|
AC_PATH_XTRA
|
|
|
|
ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
|
|
|
# Check for Xinerama extension - we only support the "XFree86" style,
|
|
# and not the older Solaris-only version; recent Solaris supports the
|
|
# XFree86 style.
|
|
mutter_save_cppflags="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
|
|
have_xinerama=yes
|
|
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
|
|
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
|
[X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
|
|
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
|
|
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
|
|
fi],
|
|
have_xinerama=no,
|
|
[#include <X11/Xlib.h>])],
|
|
have_xinerama=no, -lXext $ALL_X_LIBS)
|
|
AC_MSG_CHECKING(for Xinerama support)
|
|
AC_MSG_RESULT($have_xinerama)
|
|
|
|
CPPFLAGS="$mutter_save_cppflags"
|
|
|
|
if test x$have_xinerama = xno; then
|
|
AC_MSG_ERROR([Xinerama extension was not found])
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED([XKB_BASE], ["`$PKG_CONFIG --variable xkb_base xkeyboard-config`"],
|
|
[XKB base dir])
|
|
|
|
RANDR_LIBS=
|
|
found_randr=no
|
|
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
|
|
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
|
|
RANDR_LIBS=-lXrandr found_randr=yes,,
|
|
[#include <X11/Xlib.h>])],
|
|
, -lXext $ALL_X_LIBS)
|
|
|
|
if test "x$found_randr" = "xyes"; then
|
|
AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library])
|
|
PKG_CHECK_EXISTS([xrandr >= 1.5.0],
|
|
AC_DEFINE([HAVE_XRANDR15],[1],[Define if you have support for XRandR 1.5 or greater]))
|
|
fi
|
|
|
|
MUTTER_LIBS="$MUTTER_LIBS $RANDR_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
|
|
|
found_sm=no
|
|
case "$MUTTER_LIBS" in
|
|
*-lSM*)
|
|
found_sm=yes
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(SM, SmcSaveYourselfDone,
|
|
[AC_CHECK_HEADERS(X11/SM/SMlib.h,
|
|
MUTTER_LIBS="-lSM -lICE $MUTTER_LIBS" found_sm=yes)],
|
|
, $MUTTER_LIBS)
|
|
;;
|
|
esac
|
|
|
|
if test x$enable_sm = xno; then
|
|
found_sm=no
|
|
fi
|
|
|
|
if test x$enable_sm = xyes; then
|
|
if test "$found_sm" = "no"; then
|
|
AC_MSG_ERROR([--enable-sm forced and -lSM not found])
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if test "$found_sm" = "yes"; then
|
|
AC_DEFINE(HAVE_SM, , [Building with SM support])
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
|
|
|
|
AC_PATH_PROG(ZENITY, zenity, no)
|
|
if test x"$ZENITY" = xno; then
|
|
AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
|
|
fi
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug enable debugging],,
|
|
enable_debug=no)
|
|
if test "x$enable_debug" = "xyes"; then
|
|
CFLAGS="$CFLAGS -g -O"
|
|
fi
|
|
|
|
AC_CHECK_DECL([GL_EXT_x11_sync_object],
|
|
[],
|
|
[AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])],
|
|
[#include <GL/glx.h>])
|
|
|
|
AC_PATH_PROG([CVT],[cvt],[])
|
|
|
|
#### Warnings (last since -Werror can disturb other tests)
|
|
|
|
# Stay command-line compatible with the gnome-common configure option. Here
|
|
# minimum/yes/maximum are the same, however.
|
|
AC_ARG_ENABLE(compile_warnings,
|
|
AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
|
|
enable_compile_warnings=error)
|
|
|
|
changequote(,)dnl
|
|
if test "$enable_compile_warnings" != no ; then
|
|
if test "x$GCC" = "xyes"; then
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wall[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wall" ;;
|
|
esac
|
|
|
|
# case " $CFLAGS " in
|
|
# *[\ \ ]-Wshadow[\ \ ]*) ;;
|
|
# *) CFLAGS="$CFLAGS -Wshadow" ;;
|
|
# esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wchar-subscripts[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wnested-externs[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wnested-externs" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wpointer-arith[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wpointer-arith" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wcast-align[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wcast-align" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wsign-compare[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Wsign-compare" ;;
|
|
esac
|
|
|
|
if test "$enable_compile_warnings" = error; then
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Werror[\ \ ]*) ;;
|
|
*) CFLAGS="$CFLAGS -Werror -Wno-error=deprecated-declarations" ;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
changequote([,])dnl
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
data/Makefile
|
|
doc/Makefile
|
|
doc/man/Makefile
|
|
src/Makefile
|
|
src/libmutter-$LIBMUTTER_API_VERSION.pc:src/libmutter.pc.in
|
|
src/compositor/plugins/Makefile
|
|
src/meta/meta-version.h
|
|
po/Makefile.in
|
|
])
|
|
|
|
AC_OUTPUT
|
|
|
|
# Check that cogl and clutter have their .pc files regenerated with the correct version
|
|
|
|
COGL_PC_VERSION=$(grep Version: cogl/cogl/mutter-cogl-$LIBMUTTER_API_VERSION.pc|awk '{ print $2; }')
|
|
AS_IF([test "x$COGL_PC_VERSION" != "x$MUTTER_VERSION"],
|
|
[AC_MSG_ERROR([mutter-cogl pkg-config file not updated, rerun ./configure])])
|
|
|
|
CLUTTER_PC_VERSION=$(grep Version: clutter/clutter/mutter-clutter-$LIBMUTTER_API_VERSION.pc|awk '{ print $2; }')
|
|
AS_IF([test "x$CLUTTER_PC_VERSION" != "x$MUTTER_VERSION"],
|
|
[AC_MSG_ERROR([mutter-clutter pkg-config file not updated, rerun ./configure])])
|
|
|
|
if test x$enable_verbose_mode = xno; then
|
|
echo "*** WARNING WARNING WARNING WARNING WARNING"
|
|
echo "*** Building without verbose mode"
|
|
echo "*** This means there's no way to debug mutter problems."
|
|
echo "*** Please build normal desktop versions of mutter"
|
|
echo "*** with verbose mode enabled so users can use it when they report bugs."
|
|
fi
|
|
|
|
dnl ==========================================================================
|
|
echo "
|
|
mutter-$VERSION
|
|
|
|
prefix: ${prefix}
|
|
source code location: ${srcdir}
|
|
compiler: ${CC}
|
|
|
|
Startup notification: ${have_startup_notification}
|
|
libcanberra: ${have_libcanberra}
|
|
libwacom: ${have_libwacom}
|
|
gudev ${have_gudev}
|
|
Introspection: ${found_introspection}
|
|
Session management: ${found_sm}
|
|
Wayland: ${have_wayland}
|
|
Wayland EGLStream: ${have_wayland_eglstream}
|
|
Native (KMS) backend: ${have_native_backend}
|
|
EGLDevice: ${enable_egl_device}
|
|
Remote desktop: ${enable_remote_desktop}
|
|
"
|
|
|
|
|
|
MUTTER_MINOR_VERSION=mutter_minor_version
|
|
if expr $MUTTER_MINOR_VERSION % 2 > /dev/null ; then
|
|
stable_version=`expr $MUTTER_MINOR_VERSION - 1`
|
|
echo "This is the UNSTABLE branch of mutter"
|
|
echo -n "Use 3.$stable_version.x for stable "
|
|
echo "(gnome-3-$stable_version branch in git)"
|
|
else
|
|
echo "This is the stable branch of mutter"
|
|
fi
|