1 # clutter package version number, (as distinct from shared library version)
2 # An odd micro number indicates in-progress development from Git
3 # An even micro number indicates a released version
5 # Making a point release:
6 # - increase clutter_micro_version to the next even number
7 # - increase clutter_interface_age to the next even number
9 # - increase clutter_micro_version to the next odd number
10 # - increase clutter_interface_version to the next odd number
11 m4_define([clutter_major_version], [1])
12 m4_define([clutter_minor_version], [9])
13 m4_define([clutter_micro_version], [15])
15 # • for stable releases: increase the interface age by 1 for each release;
16 # if the API changes, set to 0. interface_age and binary_age are used to
17 # create the soname of the shared object:
19 # (<minor> * 100 + <micro>) - <interface_age>
21 # this allows using the same soname for different micro-releases in case
22 # no API was added or deprecated. for instance:
24 # clutter 1.2.0 -> 100 * 2 + 0 = 200, interface age = 0 -> 200
25 # clutter 1.2.2 -> 100 * 2 + 2 = 202, interface age = 2 -> 200
26 # clutter 1.2.4 -> 100 * 2 + 4 = 204, interface age = 4 -> 200
27 # [ API addition, deprecation ]
28 # clutter 1.2.6 -> 100 * 2 + 6 = 206, interface age = 0 -> 206
29 # clutter 1.2.8 -> 100 * 2 + 8 = 208, interface age = 2 -> 206
30 # clutter 1.2.10 -> 100 * 2 + 10 = 210, interface age = 4 -> 206
33 # • for development releases: keep clutter_interface_age to 0
34 m4_define([clutter_interface_age], [0])
36 m4_define([clutter_binary_age], [m4_eval(100 * clutter_minor_version + clutter_micro_version)])
38 m4_define([clutter_release_status],
39 [m4_if(m4_eval(clutter_micro_version % 2), [1], [git],
40 [m4_if(m4_eval(clutter_minor_version % 2), [1], [snapshot],
43 m4_define([clutter_version], [clutter_major_version.clutter_minor_version.clutter_micro_version])
45 # change this only when breaking the API
46 m4_define([clutter_api_version], [1.0])
52 [http://bugzilla.gnome.org/enter_bug.cgi?product=clutter],
54 [http://www.clutter-project.org])
56 AC_CONFIG_SRCDIR([clutter/clutter.h])
57 AC_CONFIG_HEADERS([config.h])
58 AC_CONFIG_AUX_DIR([build])
59 AC_CONFIG_MACRO_DIR([build/autotools])
61 AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar])
62 AM_SILENT_RULES([yes])
64 AC_SUBST([CLUTTER_MAJOR_VERSION], [clutter_major_version])
65 AC_SUBST([CLUTTER_MINOR_VERSION], [clutter_minor_version])
66 AC_SUBST([CLUTTER_MICRO_VERSION], [clutter_micro_version])
67 AC_SUBST([CLUTTER_VERSION], [clutter_version])
68 AC_SUBST([CLUTTER_API_VERSION], [clutter_api_version])
69 AC_SUBST([CLUTTER_API_VERSION_AM], [$CLUTTER_MAJOR_VERSION\_0])
70 AC_SUBST([CLUTTER_RELEASE_STATUS], [clutter_release_status])
72 m4_define([lt_current], [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
73 m4_define([lt_revision], [clutter_interface_age])
74 m4_define([lt_age], [m4_eval(clutter_binary_age - clutter_interface_age)])
75 CLUTTER_LT_CURRENT=lt_current
76 CLUTTER_LT_REV=lt_revision
78 CLUTTER_LT_VERSION="$CLUTTER_LT_CURRENT:$CLUTTER_LT_REV:$CLUTTER_LT_AGE"
79 CLUTTER_LT_LDFLAGS="-version-info $CLUTTER_LT_VERSION"
80 AC_SUBST([CLUTTER_LT_CURRENT], [lt_current])
81 AC_SUBST([CLUTTER_LT_REVISION], [lt_revision])
82 AC_SUBST([CLUTTER_LT_VERSION], [$CLUTTER_LT_VERSION])
86 dnl = Preliminary platform checks =============================================
94 AC_MSG_CHECKING([if building for some Win32 platform])
96 [*-*-mingw*|*-*-cygwin*],
98 CLUTTER_LT_LDFLAGS="$CLUTTER_LT_LDFLAGS -no-undefined"
109 AC_MSG_RESULT([$platform_win32])
111 AM_CONDITIONAL(OS_WIN32, [test "$platform_win32" = "yes"])
113 AC_CHECK_HEADER([OpenGL/gl.h], [platform_quartz=yes], [platform_quartz=no])
114 AM_CONDITIONAL(OS_QUARTZ, [test "$platform_quartz" = "yes"])
116 AC_CHECK_HEADER([GL/glx.h], [platform_glx=yes], [platform_glx=no])
117 AC_CHECK_LIB([GL], [glXCreateContext], [platform_glx=yes], [platform_glx=no])
118 AM_CONDITIONAL(OS_GLX, [test "$platform_glx" = "yes"])
119 AM_CONDITIONAL(OS_LINUX, [test "$platform_linux" = "yes"])
121 AC_SUBST(CLUTTER_LT_LDFLAGS)
125 dnl = Dependencies =========================================================
127 # Checks for programs.
130 # require libtool >= 2.2
132 LT_INIT([disable-static])
134 # Checks for header files.
137 # required versions for dependencies
138 m4_define([glib_req_version], [2.31.19])
139 m4_define([cogl_req_version], [1.9.6])
140 m4_define([json_glib_req_version], [0.12.0])
141 m4_define([atk_req_version], [2.1.5])
142 m4_define([cairo_req_version], [1.10])
143 m4_define([pango_req_version], [1.20])
144 m4_define([gi_req_version], [0.9.5])
145 m4_define([uprof_req_version], [0.3])
146 m4_define([gtk_doc_req_version], [1.15])
147 m4_define([xfixes_req_version], [3])
148 m4_define([xcomposite_req_version], [0.4])
149 m4_define([gdk_req_version], [3.3.18])
151 AC_SUBST([GLIB_REQ_VERSION], [glib_req_version])
152 AC_SUBST([COGL_REQ_VERSION], [cogl_req_version])
153 AC_SUBST([JSON_GLIB_REQ_VERSION], [json_glib_req_version])
154 AC_SUBST([ATK_REQ_VERSION], [atk_req_version])
155 AC_SUBST([CAIRO_REQ_VERSION], [cairo_req_version])
156 AC_SUBST([PANGO_REQ_VERSION], [pango_req_version])
157 AC_SUBST([GI_REQ_VERSION], [gi_req_version])
158 AC_SUBST([UPROF_REQ_VERSION], [uprof_req_version])
159 AC_SUBST([GTK_DOC_REQ_VERSION], [gtk_doc_req_version])
160 AC_SUBST([XFIXES_REQ_VERSION], [xfixes_req_version])
161 AC_SUBST([XCOMPOSITE_REQ_VERSION], [xcomposite_req_version])
162 AC_SUBST([GDK_REQ_VERSION], [gdk_req_version])
164 # Checks for typedefs, structures, and compiler characteristics.
165 AM_PATH_GLIB_2_0([glib_req_version],
167 [AC_MSG_ERROR([glib-2.0 is required])],
168 [gobject gthread gmodule-no-export])
170 # Check for -Bsymbolic-functions to avoid intra-library PLT jumps
171 AC_ARG_ENABLE([Bsymbolic],
172 [AS_HELP_STRING([--disable-Bsymbolic],
173 [Avoid linking with -Bsymbolic])],
176 saved_LDFLAGS="${LDFLAGS}"
177 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
178 LDFLAGS=-Wl,-Bsymbolic-functions
179 AC_TRY_LINK([], [int main (void) { return 0; }],
188 LDFLAGS="${saved_LDFLAGS}"
191 AS_IF([test "x$enable_Bsymbolic" = "xyes"], [CLUTTER_LINK_FLAGS=-Wl[,]-Bsymbolic-functions])
192 AC_SUBST(CLUTTER_LINK_FLAGS)
196 dnl ========================================================================
201 CLUTTER_INPUT_BACKENDS=""
202 CLUTTER_CONFIG_DEFINES=
204 experimental_backend=no
205 experimental_input_backend=no
207 # base dependencies for core
208 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"
210 # private base dependencies
211 CLUTTER_BASE_PC_FILES_PRIVATE=""
213 # backend specific pkg-config files
216 # private backend specific dependencies
217 BACKEND_PC_FILES_PRIVATE=""
219 dnl === Clutter windowing system backend ======================================
221 AC_ARG_ENABLE([x11-backend],
222 [AS_HELP_STRING([--enable-x11-backend=@<:@yes/no@:>@], [Enable the X11 backend (default=check)])],
223 [enable_x11=$enableval],
225 AC_ARG_ENABLE([win32-backend],
226 [AS_HELP_STRING([--enable-win32-backend=@<:@yes/no@:>@], [Enable the Windows backend (default=check)])],
227 [enable_win32=$enableval],
228 [enable_win32=check])
229 AC_ARG_ENABLE([quartz-backend],
230 [AS_HELP_STRING([--enable-quartz-backend=@<:@yes/no@:>@], [Enable the OS X backend (default=check)])],
231 [enable_osx=$enableval],
233 AC_ARG_ENABLE([gdk-backend],
234 [AS_HELP_STRING([--enable-gdk-backend=@<:@yes/no@:>@], [Enable the GDK backend (default=check)])],
235 [enable_gdk=$enableval],
237 AC_ARG_ENABLE([wayland-backend],
238 [AS_HELP_STRING([--enable-wayland-backend=@<:@yes/no@:>@], [Enable the Wayland client backend (default=no)])],
239 [enable_wayland=$enableval],
241 AC_ARG_ENABLE([egl-backend],
242 [AS_HELP_STRING([--enable-egl-backend=@<:@yes/no@:>@], [Enable the EGL framebuffer backend (default=no)])],
243 [enable_egl=$enableval],
245 AC_ARG_ENABLE([cex100-backend],
246 [AS_HELP_STRING([--enable-cex100-backend=@<:@yes/no@:>@], [Enable the CEx100 backend (default=no)])],
247 [enable_cex100=$enableval],
250 dnl Define default values
251 AS_IF([test "x$enable_x11" = "xcheck"],
253 AS_IF([test "x$platform_glx" = "xyes"], [enable_x11=yes], [enable_x11=no])
256 AS_IF([test "x$enable_win32" = "xcheck"],
258 AS_IF([test "x$platform_win32" = "xyes"], [enable_win32=yes], [enable_win32=no])
261 AS_IF([test "x$enable_osx" = "xcheck"],
263 AS_IF([test "x$platform_quartz" = "xyes"], [enable_osx=yes], [enable_osx=no])
266 AS_IF([test "x$enable_gdk" = "xcheck"],
268 PKG_CHECK_EXISTS([gdk-3.0 >= gdk_req_version], [enable_gdk=yes], [enable_gdk=no])
271 dnl Per-backend rules
272 AS_IF([test "x$enable_x11" = "xyes"],
274 CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11"
275 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11"
281 # we use fontconfig API and pango-ft2 when the fontconfig
282 # configuration changes; we don't expose any API for this
283 # so we add pango-ft2 to the private Requires.
284 PKG_CHECK_EXISTS([pangoft2],
286 AC_DEFINE([HAVE_PANGO_FT2], [1], [Supports PangoFt2])
287 BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE pangoft2"
291 AC_DEFINE([HAVE_CLUTTER_GLX], [1], [Have the GLX backend])
294 AS_IF([test "x$enable_gdk" = "xyes"],
296 CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk"
297 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk"
302 BACKEND_PC_FILES="$BACKEND_PC_FILES gdk-3.0"
305 AS_IF([test "x$enable_wayland" = "xyes"],
307 CLUTTER_BACKENDS="$CLUTTER_BACKENDS wayland"
308 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS wayland"
310 experimental_backend="yes"
314 PKG_CHECK_EXISTS([wayland-client xkbcommon gdk-pixbuf-2.0],
316 BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-client xkbcommon",
317 BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE gdk-pixbuf-2.0"
321 AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland client backend])
324 dnl Note this is orthogonal to the client side support and you can
325 dnl use the Wayland compositor features with any of the clutter
326 dnl backends with corresponding Cogl support.
327 AC_ARG_ENABLE([wayland-compositor],
328 [AS_HELP_STRING([--enable-wayland-compositor=@<:@yes/no@:>@],
329 [Enable Wayland compositor features (default=no)])],
331 [AS_IF([test "x$SUPPORT_EGL" = "x1"],
332 [enable_wayland_compositor=yes],
333 [enable_wayland_compositor=no])
336 AS_IF([test "x$enable_wayland_compositor" = "xyes"],
338 PKG_CHECK_EXISTS([wayland-server],
339 [BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-server"], [])
340 SUPPORT_WAYLAND_COMPOSITOR=1
341 CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
342 #define CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT 1"
343 AC_DEFINE([HAVE_CLUTTER_WAYLAND_COMPOSITOR], [1], [Have Wayland compositor support])
346 AM_CONDITIONAL(SUPPORT_WAYLAND_COMPOSITOR, [test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"])
348 AS_IF([test "x$enable_wayland_compositor" != "xyes" -a "x$enable_wayland" != "xyes"],
350 # The wayland headers introduce so much symbol shadowing that build
351 # logs become incomprehensible with -Wshadow so we only use it for
352 # non-wayland builds.
353 MAINTAINER_COMPILER_FLAGS="-Wshadow"
356 AS_IF([test "x$enable_cex100" = "xyes"],
358 CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100"
360 experimental_backend="yes"
366 AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
368 AS_IF([test "x$have_gdl" = "xno"],
370 AC_CHECK_HEADERS([CE4100/libgdl.h],
372 FLAVOUR_CFLAGS="-I/usr/include/CE4100"
374 CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
378 AS_IF([test "x$have_gdl" = "xno"],
379 [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])])
381 AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
383 FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
385 AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend])
386 AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
387 AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
390 AS_IF([test "x$enable_egl" = "xyes"],
392 CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
394 experimental_backend="yes"
399 FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS"
400 FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS"
402 AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
404 AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
407 AS_IF([test "x$enable_osx" = "xyes"],
409 CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx"
410 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx"
412 AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend])
414 FLAVOUR_LIBS="$FLAVOUR_LIBS -framework Cocoa -framework OpenGL"
419 AS_IF([test "x$enable_win32" = "xyes"],
421 CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32"
422 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32"
424 AC_DEFINE([HAVE_CLUTTER_WIN32], [1], [Have the Win32 backend])
426 FLAVOUR_LIBS="$FLAVOUR_LIBS -lopengl32 -lgdi32 -lwinmm"
427 FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS -D_WIN32_WINNT=0x0500"
429 AC_CHECK_TOOL(WINDRES, [windres], [AC_MSG_ERROR([*** windres is required])])
434 AS_IF([test "x$CLUTTER_BACKENDS" = "x"],
436 AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.])
439 # additional input backends
441 AC_ARG_ENABLE([tslib-input],
442 [AS_HELP_STRING([--enable-tslib-input=@<:@yes/no@:>@], [Enable TSLib for input events (default=no)])],
443 [enable_tslib=$enableval],
445 AC_ARG_ENABLE([evdev-input],
446 [AS_HELP_STRING([--enable-evdev-input=@<:@yes/no@:>@], [Enable evdev for input events (default=no)])],
447 [enable_evdev=$enableval],
450 AS_IF([test "x$enable_tslib" = "xyes"],
452 PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no])
453 AS_IF([test "x$have_tslib" = "xyes"],
455 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib"
456 experimental_input_backend="yes"
457 AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
462 AS_IF([test "x$enable_evdev" = "xyes"],
464 PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
465 AS_IF([test "x$have_evdev" = "xyes"],
467 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev"
468 BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 xkbcommon"
469 experimental_input_backend="yes"
470 AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
475 # conditionals for use in automake files...
476 AM_CONDITIONAL(SUPPORT_GLX, [test "x$SUPPORT_GLX" = "x1"])
477 AM_CONDITIONAL(SUPPORT_X11, [test "x$SUPPORT_X11" = "x1"])
478 AM_CONDITIONAL(SUPPORT_GDK, [test "x$SUPPORT_GDK" = "x1"])
479 AM_CONDITIONAL(SUPPORT_EGL, [test "x$SUPPORT_EGL" = "x1"])
480 AM_CONDITIONAL(SUPPORT_OSX, [test "x$SUPPORT_OSX" = "x1"])
481 AM_CONDITIONAL(SUPPORT_WIN32, [test "x$SUPPORT_WIN32" = "x1"])
482 AM_CONDITIONAL(SUPPORT_CEX100, [test "x$SUPPORT_CEX100" = "x1"])
483 AM_CONDITIONAL(SUPPORT_WAYLAND, [test "x$SUPPORT_WAYLAND" = "x1"])
485 AM_CONDITIONAL(USE_COGL, [test "x$SUPPORT_COGL" = "x1"])
486 AM_CONDITIONAL(USE_TSLIB, [test "x$have_tslib" = "xyes"])
487 AM_CONDITIONAL(USE_EVDEV, [test "x$have_evdev" = "xyes"])
488 AM_CONDITIONAL(USE_GLD, [test "x$have_gdl" = "xyes"])
490 AM_CONDITIONAL(NEED_XKB_UTILS, [test "x$have_evdev" = "xyes" -O "x$SUPPORT_WAYLAND" = "x1"])
492 dnl Instead of using AM_CFLAGS to ensure
493 dnl COGL_ENABLE_EXPERIMENTAL_2_0_API is defined while compiling clutter
494 dnl and cogl code we use a define in config.h instead. This helps ensure
495 dnl other tools such as glib-mkenums and gir-scanner don't end up
496 dnl using the define also.
497 AC_DEFINE([COGL_ENABLE_EXPERIMENTAL_2_0_API], [1], [Can use Cogl 2.0 API internally])
499 dnl strip leading spaces
500 CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
501 AC_SUBST(CLUTTER_BACKENDS)
503 CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
504 AC_SUBST(CLUTTER_INPUT_BACKENDS)
508 dnl === Clutter configuration =================================================
511 AS_IF([test "x$SUPPORT_X11" = "x1"],
512 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
513 #define CLUTTER_WINDOWING_X11 \"x11\"
514 #define CLUTTER_INPUT_X11 \"x11\""])
515 AS_IF([test "x$SUPPORT_GDK" = "x1"],
516 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
517 #define CLUTTER_WINDOWING_GDK \"gdk\"
518 #define CLUTTER_INPUT_GDK \"gdk\""])
519 AS_IF([test "x$SUPPORT_GLX" = "x1"],
520 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
521 #define CLUTTER_WINDOWING_GLX \"glx\""])
522 AS_IF([test "x$SUPPORT_EGL" = "x1"],
523 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
524 #define CLUTTER_WINDOWING_EGL \"eglnative\""])
525 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
526 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
527 #define CLUTTER_WINDOWING_WAYLAND \"wayland\""])
528 AS_IF([test "x$SUPPORT_OSX" = "x1"],
529 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
530 #define CLUTTER_WINDOWING_OSX \"osx\"
531 #define CLUTTER_INPUT_OSX \"osx\""])
532 AS_IF([test "x$SUPPORT_WIN32" = "x1"],
533 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
534 #define CLUTTER_WINDOWING_WIN32 \"win32\"
535 #define CLUTTER_INPUT_WIN32 \"win32\""])
536 AS_IF([test "x$SUPPORT_CEX100" = "x1"],
537 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
538 #define CLUTTER_WINDOWING_CEX100 \"cex100\""])
539 AS_IF([test "x$SUPPORT_EVDEV" = "x1"],
540 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
541 #define CLUTTER_INPUT_EVDEV \"evdev\""])
542 AS_IF([test "x$SUPPORT_TSLIB" = "x1"],
543 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
544 #define CLUTTER_INPUT_TSLIB \"tslib\""])
545 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
546 [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
547 #define CLUTTER_INPUT_WAYLAND \"wayland\""])
549 # the 'null' input backend is special
550 CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
551 #define CLUTTER_INPUT_NULL \"null\""
553 AC_SUBST([CLUTTER_CONFIG_DEFINES])
555 dnl === Clutter substitutions kept for backwards compatibility ================
556 AC_SUBST([CLUTTER_WINSYS], [deprecated])
557 AC_SUBST([CLUTTER_WINSYS_BASE], [deprecated])
558 AC_SUBST([CLUTTER_STAGE_TYPE], [deprecated])
559 AC_SUBST([CLUTTER_SONAME_INFIX], [deprecated])
560 AC_SUBST([CLUTTER_FLAVOUR], [deprecated])
561 AC_SUBST([CLUTTER_COGL], [deprecated])
562 AC_SUBST([COGL_DRIVER], [deprecated])
564 dnl === X11 checks, only for X11-based backends ===============================
569 AS_IF([test "x$SUPPORT_X11" = "x1"],
571 # base X11 includes and libraries
572 AC_MSG_CHECKING([for X11])
574 # start with pkg-config
575 PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
576 AS_IF([test "x$have_x11" = "xyes"],
580 # we actually need to ask for CFLAGS and LIBS
581 X11_CFLAGS=`$PKG_CONFIG --cflags $X11_PC_FILES`
582 X11_LIBS=`$PKG_CONFIG --libs $X11_PC_FILES`
584 AC_MSG_RESULT([found])
587 # no pkg-config, let's go old school
590 AS_IF([test "x$no_x" = "xyes"],
591 [AC_MSG_ERROR([No X11 Libraries found])],
593 AS_IF([test "x$x_includes" != "xNONE" && test -n "$x_includes"],
594 [X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`])
596 AS_IF([test "x$x_libraries" != "xNONE" && test -n "$x_libraries"],
597 [X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`])
599 AC_MSG_RESULT([found])
606 AC_MSG_CHECKING([for XEXT extension])
607 PKG_CHECK_EXISTS([xext], [have_xext=yes], [have_xext=no])
608 AS_IF([test "x$have_xext" = "xyes"],
610 AC_DEFINE(HAVE_XEXT, [1], [Define to 1 if we have the XEXT X extension])
612 X11_LIBS="$X11_LIBS -lXext"
613 X11_PC_FILES="$X11_PC_FILES xext"
614 X11_EXTS="$X11_EXTS xext"
616 AC_MSG_RESULT([found])
618 [AC_MSG_ERROR([Not found])]
622 AC_MSG_CHECKING([for XFIXES extension >= $XFIXES_REQ_VERSION])
623 PKG_CHECK_EXISTS([xfixes >= $XFIXES_REQ_VERSION], [have_xfixes=yes], [have_xfixes=no])
624 AS_IF([test "x$have_xfixes" = "xyes"],
626 AC_DEFINE(HAVE_XFIXES, [1], [Define to 1 if we have the XFIXES X extension])
628 X11_LIBS="$X11_LIBS -lXfixes"
629 X11_PC_FILES="$X11_PC_FILES xfixes >= $XFIXES_REQ_VERSION"
630 X11_EXTS="$X11_EXTS xfixes"
632 AC_MSG_RESULT([found])
634 [AC_MSG_ERROR([Not found])]
638 AC_MSG_CHECKING([for XDAMAGE extension])
639 PKG_CHECK_EXISTS([xdamage], [have_xdamage=yes], [have_xdamage=no])
640 AS_IF([test "x$have_xdamage" = "xyes"],
642 AC_DEFINE(HAVE_XDAMAGE, [1], [Define to 1 if we have the XDAMAGE X extension])
644 X11_LIBS="$X11_LIBS -lXdamage"
645 X11_PC_FILES="$X11_PC_FILES xdamage"
646 X11_EXTS="$X11_EXTS xdamage"
648 AC_MSG_RESULT([found])
650 [AC_MSG_ERROR([not found])]
653 # XCOMPOSITE (optional)
654 AC_MSG_CHECKING([for XCOMPOSITE extension >= $XCOMPOSITE_REQ_VERSION])
655 PKG_CHECK_EXISTS([xcomposite >= $XCOMPOSITE_REQ_VERSION], [have_xcomposite=yes], [have_xcomposite=no])
656 AS_IF([test "x$have_xcomposite" = "xyes"],
658 AC_DEFINE(HAVE_XCOMPOSITE, [1], [Define to 1 if we have the XCOMPOSITE X extension])
660 X11_LIBS="$X11_LIBS -lXcomposite"
661 X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION"
662 X11_EXTS="$X11_EXTS xcomposite"
664 AC_MSG_RESULT([found])
666 [AC_MSG_ERROR([not found])]
669 # X Generic Extensions (optional)
670 clutter_save_CPPFLAGS="$CPPFLAGS"
671 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
673 clutter_save_LIBS="$LIBS"
674 LIBS="$LIBS $X11_LIBS"
677 AC_CHECK_FUNC([XGetEventData],
679 AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available])
681 X11_EXTS="$X11_EXTS xge"
684 CPPFLAGS="$clutter_save_CPPFLAGS"
685 LIBS="$clutter_save_LIBS"
688 AC_ARG_ENABLE([xinput],
689 [AS_HELP_STRING([--enable-xinput], [Use the XI X extension])],
693 AS_IF([test "x$enable_xinput" = "xyes"],
695 PKG_CHECK_EXISTS([xi], [have_xinput=yes], [have_xinput=no])
701 AS_CASE([$have_xinput],
705 AC_CHECK_HEADERS([X11/extensions/XInput2.h],
708 AC_DEFINE([HAVE_XINPUT_2],
710 [Define to 1 if XI2 is available])
714 AC_DEFINE([HAVE_XINPUT],
716 [Define to 1 if XInput is available])
719 X11_LIBS="$X11_LIBS $XINPUT_LIBS"
720 X11_PC_FILES="$X11_PC_FILES xi"
721 X11_EXTS="$X11_EXTS xi"
728 [AC_MSG_ERROR([Invalid argument for --enable-xinput])]
732 clutter_save_CPPFLAGS="$CPPFLAGS"
733 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
735 clutter_save_LIBS="$LIBS"
736 LIBS="$LIBS $X11_LIBS"
739 AC_CHECK_FUNC([XkbQueryExtension],
741 AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
744 X11_EXTS="$X11_EXTS xkb"
747 CPPFLAGS="$clutter_save_CPPFLAGS"
748 LIBS="$clutter_save_LIBS"
751 BACKEND_PC_FILES="$BACKEND_PC_FILES $X11_PC_FILES"
752 FLAVOUR_LIBS="$FLAVOUR_LIBS $X11_LIBS"
753 FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $X11_CFLAGS"
757 AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"])
758 AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"])
760 X11_EXTS=${X11_EXTS#* }
764 dnl === Enable GDK-Pixbuf in tests ============================================
766 m4_define([pixbuf_default], [yes])
767 AC_ARG_ENABLE([gdk-pixbuf],
768 [AS_HELP_STRING([--enable-gdk-pixbuf=@<:@no/yes@:>@],
769 [Enable tests using GDK-Pixbuf @<:@default=]pixbuf_default[@:>@])],
770 [enable_pixbuf=$enable_val],
771 [enable_pixbuf=pixbuf_default])
773 AS_CASE([$enable_pixbuf],
777 PKG_CHECK_MODULES([GDK_PIXBUF], [gdk-pixbuf-2.0])
778 AC_SUBST(GDK_PIXBUF_CFLAGS)
779 AC_SUBST(GDK_PIXBUF_LIBS)
789 AM_CONDITIONAL([PIXBUF_TESTS], [test "x$pixbuf_tests" = "xyes"])
791 dnl === Enable debug level ====================================================
793 m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])])
794 AC_ARG_ENABLE([debug],
795 [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
796 [Control Clutter debugging level @<:@default=]debug_default[@:>@])],
798 [enable_debug=debug_default])
800 AS_CASE([$enable_debug],
804 test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
805 CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
809 [CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"],
812 [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
814 [AC_MSG_ERROR([Unknown argument for --enable-debug])]
817 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
819 dnl === Enable deprecation guards ==================================================
821 m4_define([deprecated_default],
822 [m4_if(m4_eval(clutter_minor_version % 2),
827 AC_ARG_ENABLE([deprecated],
828 [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@],
829 [Whether deprecated symbols should be disabled when compiling Clutter @<:@default=]deprecated_default[@:>@])],
831 [enable_deprecated=deprecated_default])
833 AS_CASE([$enable_deprecated],
837 CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED"
842 CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS"
845 [AC_MSG_ERROR([Unknown argument for --enable-deprecated])]
848 AC_SUBST([CLUTTER_DEPRECATED_CFLAGS])
851 dnl === Conformance test suite ================================================
853 AC_ARG_ENABLE([conformance],
854 [AS_HELP_STRING([--enable-conformance=@<:@no/yes@:>@],
855 [Build conformance test suite @<:@default=yes@:>@])],
857 [enable_conformance=yes])
859 AM_CONDITIONAL([BUILD_TESTS], [test "x$enable_conformance" = "xyes"])
861 dnl === Profiling =============================================================
863 m4_define([profile_default], [no])
864 AC_ARG_ENABLE(profile,
865 AS_HELP_STRING([--enable-profile=@<:@no/yes@:>@],
866 [Turn on profiling support. yes; All profiling probe points are compiled in and may be runtime enabled. no; No profiling support will built into clutter. @<:@default=no@:>@]),
868 [enable_profile=profile_default])
870 AS_CASE([$enable_profile],
874 AS_IF([test "x$GCC" = "xyes"],
876 PKG_CHECK_MODULES([PROFILE_DEP], [uprof-0.3])
877 CLUTTER_PROFILE_CFLAGS="-DCLUTTER_ENABLE_PROFILE $PROFILE_DEP_CFLAGS"
878 CLUTTER_PROFILE_LDFLAGS="$PROFILE_DEP_LIBS"
880 AS_IF([test "x$enable_debug" = "xyes"], [CLUTTER_PROFILE_CFLAGS+=" -DUPROF_DEBUG"])
883 AC_MSG_ERROR([--enable-profile is currently only supported if using GCC])
889 CLUTTER_PROFILE_CFLAGS=""
890 CLUTTER_PROFILE_LDFLAGS=""
893 [*], [AC_MSG_ERROR([Invalid value for --enable-profile])]
895 AM_CONDITIONAL(PROFILE, test "x$enable_profile" != "xno")
896 AC_SUBST(CLUTTER_PROFILE_CFLAGS)
897 AC_SUBST(CLUTTER_PROFILE_LDFLAGS)
899 dnl === Coverage report =======================================================
901 AC_PATH_PROG([GCOV], [gcov], [enable_gcov=no])
903 AC_MSG_CHECKING([whether to build with gcov testing])
905 AC_ARG_ENABLE([gcov],
906 [AS_HELP_STRING([--enable-gcov],
907 [Whether to enable coverage testing (requires gcc
912 AS_IF([test "x$enable_gcov" = "xyes" && test "x$GCC" = "xyes"],
914 AS_IF([test "x$enable_conformance" = "xno"],
915 [AC_MSG_WARN([Conformance test suite is disabled, the coverage report will be incomplete])],
916 [AC_MSG_RESULT([yes])]
919 GCOV_CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
920 GCOV_LDFLAGS="-lgcov"
922 [AC_MSG_RESULT([no])]
925 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" = "xyes"])
926 AC_SUBST([GCOV_CFLAGS])
927 AC_SUBST([GCOV_LDFLAGS])
929 dnl === Enable strict compiler flags ==========================================
931 # use strict compiler flags only when building from git; the rules for
932 # distcheck will take care of turning this on when making a release
933 m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_micro_version % 2), [1], [yes], [no])])
934 AC_ARG_ENABLE([maintainer-flags],
935 [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@],
936 [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
938 [enable_maintainer_flags=maintainer_flags_default])
940 MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
941 -Wall -Wcast-align -Wuninitialized
942 -Wno-strict-aliasing -Wempty-body -Wformat
943 -Wformat-security -Wformat-nonliteral -Winit-self
944 -Wdeclaration-after-statement -Wvla
945 -Wpointer-arith -Wmissing-declarations
946 -Waggregate-returns -Wcast-align
949 AS_CASE([$enable_maintainer_flags],
952 AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
961 MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
962 AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
966 [AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
969 # strip leading spaces
970 MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#* }
971 AC_SUBST(MAINTAINER_CFLAGS)
973 dnl === Dependencies, compiler flags and linker libraries =====================
974 # strip leading space
975 BACKEND_PC_FILES=${BACKEND_PC_FILES#* }
977 # public dependencies, will fill the Requires: field of clutter.pc
978 CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES"
979 PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
981 # private dependencies, will fill the Requires.private: field of clutter.pc
982 AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" = "x" && test "x$BACKEND_PC_FILES_PRIVATE" = "x"],
984 CLUTTER_REQUIRES_PRIVATE=""
985 CLUTTER_DEPS_PRIVATE_CFLAGS=""
986 CLUTTER_DEPS_PRIVATE_LIBS=""
989 CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE"
990 PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE])
993 AC_SUBST(CLUTTER_REQUIRES)
994 AC_SUBST(CLUTTER_REQUIRES_PRIVATE)
996 CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_DEPS_PRIVATE_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS"
997 CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_DEPS_PRIVATE_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS"
998 AC_SUBST(CLUTTER_CFLAGS)
999 AC_SUBST(CLUTTER_LIBS)
1002 dnl === GObject-Introspection check ===========================================
1004 GOBJECT_INTROSPECTION_CHECK([gi_req_version])
1006 dnl === GTK Doc check =========================================================
1008 GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
1010 # we don't want to build the documentation from a Git clone unless we
1011 # explicitly tell configure to do so; this allows avoiding to recurse into
1012 # the documentation directory when building Clutter inside Poky for a
1013 # target device that doesn't have gtk-doc installed. for reference
1014 # see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
1016 # we use autogen.sh as it exists only inside the Git clones, and it
1017 # is not packaged into tarballs.
1018 AM_CONDITIONAL([BUILD_GTK_DOC], [test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
1020 # prefixes for fixing gtk-doc references
1021 CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
1022 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1023 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1024 COGL_PREFIX="`$PKG_CONFIG --variable=prefix cogl-1.0`"
1025 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1026 AC_SUBST(CAIRO_PREFIX)
1027 AC_SUBST(GLIB_PREFIX)
1028 AC_SUBST(PANGO_PREFIX)
1029 AC_SUBST(COGL_PREFIX)
1030 AC_SUBST(ATK_PREFIX)
1032 dnl === Manual ================================================================
1034 AC_ARG_ENABLE([docs],
1035 [AS_HELP_STRING([--enable-docs=@<:@no/yes@:>@],
1036 [Build optional documentation; requires xsltproc and jw.])],
1037 [enable_docs=$enableval],
1041 AS_IF([test "x$enable_docs" = "xyes"],
1043 AC_PATH_PROG(JW, [jw], [no])
1044 AS_IF([test "x$JW" = "xno"],
1046 AC_MSG_WARN([jw not found; pdf generation has been disabled])
1050 AC_PATH_PROG(XSLTPROC, [xsltproc], [no])
1051 AS_IF([test "x$XSLTPROC" = "xno"],
1053 AC_MSG_ERROR([xsltproc not found])
1058 AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
1059 AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
1061 dnl === I18N ==================================================================
1063 AM_GNU_GETTEXT_VERSION([0.17])
1064 AM_GNU_GETTEXT([external])
1066 GETTEXT_PACKAGE="clutter-1.0"
1067 AC_SUBST(GETTEXT_PACKAGE)
1068 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
1069 ["$GETTEXT_PACKAGE"],
1070 [The prefix for our gettext translation domains.])
1073 dnl ===========================================================================
1081 build/autotools/Makefile
1082 build/mingw/Makefile
1083 build/win32/Makefile
1084 build/win32/vs9/Makefile
1085 build/win32/vs10/Makefile
1088 clutter/clutter-config.h
1089 clutter/clutter-version.h
1090 clutter/clutter-$CLUTTER_API_VERSION.pc:clutter/clutter.pc.in
1092 clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
1094 clutter/cex100/clutter-cex100.h
1097 tests/accessibility/Makefile
1098 tests/conform/Makefile
1099 tests/conform/test-launcher.sh
1101 tests/interactive/Makefile
1102 tests/interactive/wrapper.sh
1103 tests/micro-bench/Makefile
1104 tests/performance/Makefile
1107 doc/reference/Makefile
1108 doc/reference/clutter/Makefile
1109 doc/reference/clutter/clutter-docs.xml
1110 doc/reference/cally/Makefile
1111 doc/reference/cally/cally-docs.xml
1113 doc/cookbook/Makefile
1114 doc/cookbook/clutter-cookbook.xml
1115 doc/cookbook/examples/Makefile
1122 dnl === Summary ===============================================================
1125 echo "Clutter - $VERSION (${CLUTTER_RELEASE_STATUS})"
1130 echo " Prefix: ${prefix}"
1131 echo " Libdir: ${libdir}"
1132 echo " Sysconfdir: ${sysconfdir}"
1134 # Compiler/Debug related flags
1136 echo " • Compiler options:"
1137 echo " Clutter debug level: ${enable_debug}"
1138 echo " Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
1139 echo " Profiling enabled: ${enable_profile}"
1140 echo " Enable coverage tests: ${enable_gcov}"
1141 echo " Enable deprecated symbols: ${enable_deprecated}"
1145 echo " • Documentation:"
1146 echo " Build API Reference: ${enable_gtk_doc}"
1147 echo " Build Additional Documentation: ${enable_docs} (Generate PDF: ${enable_pdfs})"
1152 echo " Build introspection data: ${enable_introspection}"
1153 echo " Build conformance test suite: ${enable_conformance}"
1154 echo " Build X11-specific tests: ${x11_tests}"
1155 echo " Build tests using GDK-Pixbuf: ${pixbuf_tests}"
1157 # Clutter backend related flags
1159 echo " • Clutter Backends:"
1161 if test "x$experimental_backend" = "xno"; then
1162 echo " Windowing systems: ${CLUTTER_BACKENDS}"
1164 echo " Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
1167 if test "x$experimental_input_backend" = "xno"; then
1168 echo " Input backends: ${CLUTTER_INPUT_BACKENDS}"
1170 echo " Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
1173 if test "x$SUPPORT_X11" = "x1"; then
1175 echo " - X11 backend options:"
1176 echo " Enabled extensions: ${X11_EXTS}"
1179 if test "x$SUPPORT_CEX100" = "x1"; then
1181 echo " - CEx100 backend options (WARNING: Experimental):"
1182 echo " libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
1185 if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then
1187 echo " - Wayland compositor support enabled (WARNING: Experimental)"
1192 # General warning about experimental features
1193 if test "x$experimental_backend" = "xyes"; then
1195 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1196 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1198 echo " The stability of your build might be affected by one or more"
1199 echo " experimental backends or experimental and unsupported features"
1201 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1202 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"