Post-release version bump to 1.9.15
[profile/ivi/clutter.git] / configure.ac
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
4 #
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
8 # After the release:
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])
14
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:
18 #
19 #  (<minor> * 100 + <micro>) - <interface_age>
20 #
21 # this allows using the same soname for different micro-releases in case
22 # no API was added or deprecated. for instance:
23 #
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
31 #   ...
32 #
33 # • for development releases: keep clutter_interface_age to 0
34 m4_define([clutter_interface_age], [0])
35
36 m4_define([clutter_binary_age], [m4_eval(100 * clutter_minor_version + clutter_micro_version)])
37
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],
41                                                                  [release])])])
42
43 m4_define([clutter_version], [clutter_major_version.clutter_minor_version.clutter_micro_version])
44
45 # change this only when breaking the API
46 m4_define([clutter_api_version], [1.0])
47
48 AC_PREREQ([2.63])
49
50 AC_INIT([clutter],
51         [clutter_version],
52         [http://bugzilla.gnome.org/enter_bug.cgi?product=clutter],
53         [clutter],
54         [http://www.clutter-project.org])
55
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])
60
61 AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar])
62 AM_SILENT_RULES([yes])
63
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])
71
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
77 CLUTTER_LT_AGE=lt_age
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])
83
84 AC_PROG_SED
85
86 dnl = Preliminary platform checks =============================================
87
88 AC_CANONICAL_HOST
89
90 platform_win32=no
91 platform_quartz=no
92 platform_linux=no
93
94 AC_MSG_CHECKING([if building for some Win32 platform])
95 AS_CASE([$host],
96         [*-*-mingw*|*-*-cygwin*],
97         [
98           CLUTTER_LT_LDFLAGS="$CLUTTER_LT_LDFLAGS -no-undefined"
99           platform_win32=yes
100         ],
101
102         [*-*-linux*],
103         [
104           platform_linux=yes
105         ],
106
107         []
108 )
109 AC_MSG_RESULT([$platform_win32])
110
111 AM_CONDITIONAL(OS_WIN32, [test "$platform_win32" = "yes"])
112
113 AC_CHECK_HEADER([OpenGL/gl.h], [platform_quartz=yes], [platform_quartz=no])
114 AM_CONDITIONAL(OS_QUARTZ, [test "$platform_quartz" = "yes"])
115
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"])
120
121 AC_SUBST(CLUTTER_LT_LDFLAGS)
122
123 AC_CACHE_SAVE
124
125 dnl = Dependencies =========================================================
126
127 # Checks for programs.
128 AM_PROG_CC_C_O
129
130 # require libtool >= 2.2
131 LT_PREREQ([2.2.6])
132 LT_INIT([disable-static])
133
134 # Checks for header files.
135 AC_HEADER_STDC
136
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.0.0])
150
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])
163
164 # Checks for typedefs, structures, and compiler characteristics.
165 AM_PATH_GLIB_2_0([glib_req_version],
166                  [],
167                  [AC_MSG_ERROR([glib-2.0 is required])],
168                  [gobject gthread gmodule-no-export])
169
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])],
174               [],
175               [
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; }],
180                             [
181                               AC_MSG_RESULT([yes])
182                               enable_Bsymbolic=yes
183                             ],
184                             [
185                               AC_MSG_RESULT([no])
186                               enable_Bsymbolic=no
187                             ])
188                 LDFLAGS="${saved_LDFLAGS}"
189               ])
190
191 AS_IF([test "x$enable_Bsymbolic" = "xyes"], [CLUTTER_LINK_FLAGS=-Wl[,]-Bsymbolic-functions])
192 AC_SUBST(CLUTTER_LINK_FLAGS)
193
194 AC_CACHE_SAVE
195
196 dnl ========================================================================
197
198 FLAVOUR_LIBS=""
199 FLAVOUR_CFLAGS=""
200 CLUTTER_BACKENDS=""
201 CLUTTER_INPUT_BACKENDS=""
202 CLUTTER_CONFIG_DEFINES=
203
204 experimental_backend=no
205 experimental_input_backend=no
206
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"
209
210 # private base dependencies
211 CLUTTER_BASE_PC_FILES_PRIVATE=""
212
213 # backend specific pkg-config files
214 BACKEND_PC_FILES=""
215
216 # private backend specific dependencies
217 BACKEND_PC_FILES_PRIVATE=""
218
219 dnl === Clutter windowing system backend ======================================
220
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],
224               [enable_x11=check])
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],
232               [enable_osx=check])
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],
236               [enable_gdk=check])
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],
240               [enable_wayland=no])
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],
244               [enable_egl=no])
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],
248               [enable_cex100=no])
249
250 dnl Define default values
251 AS_IF([test "x$enable_x11" = "xcheck"],
252       [
253         AS_IF([test "x$platform_glx" = "xyes"], [enable_x11=yes], [enable_x11=no])
254       ])
255
256 AS_IF([test "x$enable_win32" = "xcheck"],
257       [
258         AS_IF([test "x$platform_win32" = "xyes"], [enable_win32=yes], [enable_win32=no])
259       ])
260
261 AS_IF([test "x$enable_osx" = "xcheck"],
262       [
263         AS_IF([test "x$platform_quartz" = "xyes"], [enable_osx=yes], [enable_osx=no])
264       ])
265
266 AS_IF([test "x$enable_gdk" = "xcheck"],
267       [
268         PKG_CHECK_EXISTS([gdk-3.0 >= gdk_req_version], [enable_gdk=yes], [enable_gdk=no])
269       ])
270
271 dnl Per-backend rules
272 AS_IF([test "x$enable_x11" = "xyes"],
273       [
274         CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11"
275         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11"
276
277         SUPPORT_X11=1
278         SUPPORT_GLX=1
279         SUPPORT_COGL=1
280
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],
285                          [
286                            AC_DEFINE([HAVE_PANGO_FT2], [1], [Supports PangoFt2])
287                            BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE pangoft2"
288                          ],
289                          [])
290
291         AC_DEFINE([HAVE_CLUTTER_GLX], [1], [Have the GLX backend])
292       ])
293
294 AS_IF([test "x$enable_gdk" = "xyes"],
295       [
296         CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk"
297         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk"
298
299         SUPPORT_GDK=1
300         SUPPORT_COGL=1
301
302         BACKEND_PC_FILES="$BACKEND_PC_FILES gdk-3.0"
303       ])
304
305 AS_IF([test "x$enable_wayland" = "xyes"],
306       [
307         CLUTTER_BACKENDS="$CLUTTER_BACKENDS wayland"
308         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS wayland"
309
310         experimental_backend="yes"
311
312         SUPPORT_WAYLAND=1
313
314         PKG_CHECK_EXISTS([wayland-client xkbcommon gdk-pixbuf-2.0],
315                          [
316                             BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-client xkbcommon",
317                             BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE gdk-pixbuf-2.0"
318                          ],
319                          [])
320
321         AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland client backend])
322       ])
323
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)])],
330               [],
331               [AS_IF([test "x$SUPPORT_EGL" = "x1"],
332                      [enable_wayland_compositor=yes],
333                      [enable_wayland_compositor=no])
334               ])
335
336 AS_IF([test "x$enable_wayland_compositor" = "xyes"],
337       [
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])
344       ])
345
346 AM_CONDITIONAL(SUPPORT_WAYLAND_COMPOSITOR, [test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"])
347
348 AS_IF([test "x$enable_wayland_compositor" != "xyes" -a "x$enable_wayland" != "xyes"],
349       [
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"
354       ])
355
356 AS_IF([test "x$enable_cex100" = "xyes"],
357       [
358         CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100"
359
360         experimental_backend="yes"
361
362         SUPPORT_COGL=1
363         SUPPORT_CEX100=1
364
365         have_gdl=no
366         AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
367
368         AS_IF([test "x$have_gdl" = "xno"],
369               [
370                 AC_CHECK_HEADERS([CE4100/libgdl.h],
371                                  [
372                                    FLAVOUR_CFLAGS="-I/usr/include/CE4100"
373                                    have_gdl=yes
374                                    CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
375                                  ])
376               ])
377
378         AS_IF([test "x$have_gdl" = "xno"],
379               [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])])
380
381         AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
382
383         FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
384
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])
388       ])
389
390 AS_IF([test "x$enable_egl" = "xyes"],
391       [
392         CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
393
394         experimental_backend="yes"
395
396         SUPPORT_EGL=1
397         SUPPORT_COGL=1
398
399         FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS"
400         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS"
401
402         AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
403
404         AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
405       ])
406
407 AS_IF([test "x$enable_osx" = "xyes"],
408       [
409         CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx"
410         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx"
411
412         AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend])
413
414         FLAVOUR_LIBS="$FLAVOUR_LIBS -framework Cocoa -framework OpenGL"
415
416         SUPPORT_OSX=1
417       ])
418
419 AS_IF([test "x$enable_win32" = "xyes"],
420       [
421         CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32"
422         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32"
423
424         AC_DEFINE([HAVE_CLUTTER_WIN32], [1], [Have the Win32 backend])
425
426         FLAVOUR_LIBS="$FLAVOUR_LIBS -lopengl32 -lgdi32 -lwinmm"
427         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS -D_WIN32_WINNT=0x0500"
428
429         AC_CHECK_TOOL(WINDRES, [windres], [AC_MSG_ERROR([*** windres is required])])
430
431         SUPPORT_WIN32=1
432       ])
433
434 AS_IF([test "x$CLUTTER_BACKENDS" = "x"],
435       [
436         AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.])
437       ])
438
439 # additional input backends
440
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],
444               [enable_tslib=no])
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],
448               [enable_evdev=no])
449
450 AS_IF([test "x$enable_tslib" = "xyes"],
451       [
452         PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no])
453         AS_IF([test "x$have_tslib" = "xyes"],
454               [
455                 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib"
456                 experimental_input_backend="yes"
457                 AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
458                 SUPPORT_TSLIB=1
459               ])
460       ])
461
462 AS_IF([test "x$enable_evdev" = "xyes"],
463       [
464         PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
465         AS_IF([test "x$have_evdev" = "xyes"],
466               [
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])
471                 SUPPORT_EVDEV=1
472               ])
473       ])
474
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"])
484
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"])
489
490 AM_CONDITIONAL(NEED_XKB_UTILS, [test "x$have_evdev" = "xyes" -O "x$SUPPORT_WAYLAND" = "x1"])
491
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])
498
499 dnl strip leading spaces
500 CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
501 AC_SUBST(CLUTTER_BACKENDS)
502
503 CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
504 AC_SUBST(CLUTTER_INPUT_BACKENDS)
505
506 AC_CACHE_SAVE
507
508 dnl === Clutter configuration =================================================
509
510 # windowing systems
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\""])
548
549 # the 'null' input backend is special
550 CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
551 #define CLUTTER_INPUT_NULL \"null\""
552
553 AC_SUBST([CLUTTER_CONFIG_DEFINES])
554
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])
563
564 dnl === X11 checks, only for X11-based backends ===============================
565 X11_PC_FILES=""
566 X11_EXTS=""
567 x11_tests=no
568
569 AS_IF([test "x$SUPPORT_X11" = "x1"],
570       [
571         # base X11 includes and libraries
572         AC_MSG_CHECKING([for X11])
573
574         # start with pkg-config
575         PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
576         AS_IF([test "x$have_x11" = "xyes"],
577               [
578                 X11_PC_FILES="x11"
579
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`
583
584                 AC_MSG_RESULT([found])
585               ],
586               [
587                 # no pkg-config, let's go old school
588                 AC_PATH_X
589
590                 AS_IF([test "x$no_x" = "xyes"],
591                       [AC_MSG_ERROR([No X11 Libraries found])],
592                       [
593                         AS_IF([test "x$x_includes" != "xNONE" && test -n "$x_includes"],
594                               [X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`])
595
596                         AS_IF([test "x$x_libraries" != "xNONE" && test -n "$x_libraries"],
597                               [X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`])
598
599                         AC_MSG_RESULT([found])
600                       ]
601                 )
602               ]
603         )
604
605         # XEXT (required)
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"],
609               [
610                 AC_DEFINE(HAVE_XEXT, [1], [Define to 1 if we have the XEXT X extension])
611
612                 X11_LIBS="$X11_LIBS -lXext"
613                 X11_PC_FILES="$X11_PC_FILES xext"
614                 X11_EXTS="$X11_EXTS xext"
615
616                 AC_MSG_RESULT([found])
617               ],
618               [AC_MSG_ERROR([Not found])]
619         )
620
621         # XFIXES (required)
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"],
625               [
626                 AC_DEFINE(HAVE_XFIXES, [1], [Define to 1 if we have the XFIXES X extension])
627
628                 X11_LIBS="$X11_LIBS -lXfixes"
629                 X11_PC_FILES="$X11_PC_FILES xfixes >= $XFIXES_REQ_VERSION"
630                 X11_EXTS="$X11_EXTS xfixes"
631
632                 AC_MSG_RESULT([found])
633               ],
634               [AC_MSG_ERROR([Not found])]
635         )
636
637         # XDAMAGE (required)
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"],
641               [
642                 AC_DEFINE(HAVE_XDAMAGE, [1], [Define to 1 if we have the XDAMAGE X extension])
643
644                 X11_LIBS="$X11_LIBS -lXdamage"
645                 X11_PC_FILES="$X11_PC_FILES xdamage"
646                 X11_EXTS="$X11_EXTS xdamage"
647
648                 AC_MSG_RESULT([found])
649               ],
650               [AC_MSG_ERROR([not found])]
651         )
652
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"],
657               [
658                 AC_DEFINE(HAVE_XCOMPOSITE, [1], [Define to 1 if we have the XCOMPOSITE X extension])
659
660                 X11_LIBS="$X11_LIBS -lXcomposite"
661                 X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION"
662                 X11_EXTS="$X11_EXTS xcomposite"
663
664                 AC_MSG_RESULT([found])
665               ],
666               [AC_MSG_ERROR([not found])]
667         )
668
669         # X Generic Extensions (optional)
670         clutter_save_CPPFLAGS="$CPPFLAGS"
671         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
672
673         clutter_save_LIBS="$LIBS"
674         LIBS="$LIBS $X11_LIBS"
675
676         have_xge=no
677         AC_CHECK_FUNC([XGetEventData],
678                       [
679                         AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available])
680                         have_xge=yes
681                         X11_EXTS="$X11_EXTS xge"
682                       ])
683
684         CPPFLAGS="$clutter_save_CPPFLAGS"
685         LIBS="$clutter_save_LIBS"
686
687         # XI (optional)
688         AC_ARG_ENABLE([xinput],
689                       [AS_HELP_STRING([--enable-xinput], [Use the XI X extension])],
690                       [],
691                       [enable_xinput=yes])
692
693         AS_IF([test "x$enable_xinput" = "xyes"],
694               [
695                 PKG_CHECK_EXISTS([xi], [have_xinput=yes], [have_xinput=no])
696               ],
697               [
698                 have_xinput=no
699               ])
700
701         AS_CASE([$have_xinput],
702
703                 [yes],
704                 [
705                   AC_CHECK_HEADERS([X11/extensions/XInput2.h],
706                                    [
707                                      have_xinput2=yes
708                                      AC_DEFINE([HAVE_XINPUT_2],
709                                                [1],
710                                                [Define to 1 if XI2 is available])
711                                    ],
712                                    [
713                                      have_xinput2=no
714                                      AC_DEFINE([HAVE_XINPUT],
715                                                [1],
716                                                [Define to 1 if XInput is available])
717                                    ])
718
719                   X11_LIBS="$X11_LIBS $XINPUT_LIBS"
720                   X11_PC_FILES="$X11_PC_FILES xi"
721                   X11_EXTS="$X11_EXTS xi"
722                 ],
723
724                 [no],
725                 [have_xinput2=no],
726
727                 [*],
728                 [AC_MSG_ERROR([Invalid argument for --enable-xinput])]
729         )
730
731         # XKB
732         clutter_save_CPPFLAGS="$CPPFLAGS"
733         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
734
735         clutter_save_LIBS="$LIBS"
736         LIBS="$LIBS $X11_LIBS"
737
738         have_xkb=no
739         AC_CHECK_FUNC([XkbQueryExtension],
740                       [
741                         AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
742                         have_xkb=yes
743
744                         X11_EXTS="$X11_EXTS xkb"
745                       ])
746
747         CPPFLAGS="$clutter_save_CPPFLAGS"
748         LIBS="$clutter_save_LIBS"
749
750         x11_tests=yes
751         BACKEND_PC_FILES="$BACKEND_PC_FILES $X11_PC_FILES"
752         FLAVOUR_LIBS="$FLAVOUR_LIBS $X11_LIBS"
753         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $X11_CFLAGS"
754       ]
755 )
756
757 AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"])
758 AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"])
759
760 X11_EXTS=${X11_EXTS#* }
761
762 AC_CACHE_SAVE
763
764 dnl === Enable debug level ====================================================
765
766 m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])])
767 AC_ARG_ENABLE([debug],
768               [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
769                               [Control Clutter debugging level @<:@default=]debug_default[@:>@])],
770               [],
771               [enable_debug=debug_default])
772
773 AS_CASE([$enable_debug],
774
775         [yes],
776         [
777           test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
778           CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
779         ],
780
781         [minimum],
782         [CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"],
783
784         [no],
785         [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
786
787         [AC_MSG_ERROR([Unknown argument for --enable-debug])]
788 )
789
790 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
791
792 dnl === Enable deprecation guards ==================================================
793
794 m4_define([deprecated_default],
795           [m4_if(m4_eval(clutter_minor_version % 2),
796                  [1],
797                  [no],
798                  [yes])])
799
800 AC_ARG_ENABLE([deprecated],
801               [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@],
802                               [Whether deprecated symbols should be disabled when compiling Clutter @<:@default=]deprecated_default[@:>@])],
803               [],
804               [enable_deprecated=deprecated_default])
805
806 AS_CASE([$enable_deprecated],
807
808         [no],
809         [
810           CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED"
811         ],
812
813         [yes],
814         [
815           CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS"
816         ],
817
818         [AC_MSG_ERROR([Unknown argument for --enable-deprecated])]
819 )
820
821 AC_SUBST([CLUTTER_DEPRECATED_CFLAGS])
822
823
824 dnl === Conformance test suite ================================================
825
826 AC_ARG_ENABLE([conformance],
827               [AS_HELP_STRING([--enable-conformance=@<:@no/yes@:>@],
828                               [Build conformance test suite @<:@default=yes@:>@])],
829               [],
830               [enable_conformance=yes])
831
832 AM_CONDITIONAL([BUILD_TESTS], [test "x$enable_conformance" = "xyes"])
833
834 dnl === Profiling =============================================================
835
836 m4_define([profile_default], [no])
837 AC_ARG_ENABLE(profile,
838               AS_HELP_STRING([--enable-profile=@<:@no/yes@:>@],
839                              [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@:>@]),
840               [],
841               [enable_profile=profile_default])
842
843 AS_CASE([$enable_profile],
844
845         [yes],
846         [
847           AS_IF([test "x$GCC" = "xyes"],
848                 [
849                   PKG_CHECK_MODULES([PROFILE_DEP], [uprof-0.3])
850                   CLUTTER_PROFILE_CFLAGS="-DCLUTTER_ENABLE_PROFILE $PROFILE_DEP_CFLAGS"
851                   CLUTTER_PROFILE_LDFLAGS="$PROFILE_DEP_LIBS"
852
853                   AS_IF([test "x$enable_debug" = "xyes"], [CLUTTER_PROFILE_CFLAGS+=" -DUPROF_DEBUG"])
854                 ],
855                 [
856                   AC_MSG_ERROR([--enable-profile is currently only supported if using GCC])
857                 ])
858         ],
859
860         [no],
861         [
862           CLUTTER_PROFILE_CFLAGS=""
863           CLUTTER_PROFILE_LDFLAGS=""
864         ],
865
866         [*], [AC_MSG_ERROR([Invalid value for --enable-profile])]
867 )
868 AM_CONDITIONAL(PROFILE, test "x$enable_profile" != "xno")
869 AC_SUBST(CLUTTER_PROFILE_CFLAGS)
870 AC_SUBST(CLUTTER_PROFILE_LDFLAGS)
871
872 dnl === Coverage report =======================================================
873
874 AC_PATH_PROG([GCOV], [gcov], [enable_gcov=no])
875
876 AC_MSG_CHECKING([whether to build with gcov testing])
877
878 AC_ARG_ENABLE([gcov],
879               [AS_HELP_STRING([--enable-gcov],
880                               [Whether to enable coverage testing (requires gcc
881 and gcov)])],
882               [],
883               [enable_gcov=no])
884
885 AS_IF([test "x$enable_gcov" = "xyes" && test "x$GCC" = "xyes"],
886       [
887         AS_IF([test "x$enable_conformance" = "xno"],
888               [AC_MSG_WARN([Conformance test suite is disabled, the coverage report will be incomplete])],
889               [AC_MSG_RESULT([yes])]
890         )
891
892         GCOV_CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
893         GCOV_LDFLAGS="-lgcov"
894       ],
895       [AC_MSG_RESULT([no])]
896 )
897
898 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" = "xyes"])
899 AC_SUBST([GCOV_CFLAGS])
900 AC_SUBST([GCOV_LDFLAGS])
901
902 dnl === Enable strict compiler flags ==========================================
903
904 # use strict compiler flags only when building from git; the rules for
905 # distcheck will take care of turning this on when making a release
906 m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_micro_version % 2), [1], [yes], [no])])
907 AC_ARG_ENABLE([maintainer-flags],
908               [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@],
909                               [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
910               [],
911               [enable_maintainer_flags=maintainer_flags_default])
912
913 MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
914                            -Wall -Wcast-align -Wuninitialized
915                            -Wno-strict-aliasing -Wempty-body -Wformat
916                            -Wformat-security -Winit-self
917                            -Wdeclaration-after-statement -Wvla
918                            -Wpointer-arith"
919
920 AS_CASE([$enable_maintainer_flags],
921         [yes],
922         [
923           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
924         ],
925
926         [no],
927         [
928         ],
929
930         [error],
931         [
932           MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
933           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
934         ],
935
936         [*],
937         [AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
938 )
939
940 # strip leading spaces
941 MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#*  }
942 AC_SUBST(MAINTAINER_CFLAGS)
943
944 dnl === Dependencies, compiler flags and linker libraries =====================
945 # strip leading space
946 BACKEND_PC_FILES=${BACKEND_PC_FILES#* }
947
948 # public dependencies, will fill the Requires: field of clutter.pc
949 CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES"
950 PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
951
952 # private dependencies, will fill the Requires.private: field of clutter.pc
953 AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" = "x" && test "x$BACKEND_PC_FILES_PRIVATE" = "x"],
954       [
955         CLUTTER_REQUIRES_PRIVATE=""
956         CLUTTER_DEPS_PRIVATE_CFLAGS=""
957         CLUTTER_DEPS_PRIVATE_LIBS=""
958       ],
959       [
960         CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE"
961         PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE])
962       ])
963
964 AC_SUBST(CLUTTER_REQUIRES)
965 AC_SUBST(CLUTTER_REQUIRES_PRIVATE)
966
967 CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_DEPS_PRIVATE_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS"
968 CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_DEPS_PRIVATE_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS"
969 AC_SUBST(CLUTTER_CFLAGS)
970 AC_SUBST(CLUTTER_LIBS)
971
972
973 dnl === GObject-Introspection check ===========================================
974
975 GOBJECT_INTROSPECTION_CHECK([gi_req_version])
976
977 dnl === GTK Doc check =========================================================
978
979 GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
980
981 # we don't want to build the documentation from a Git clone unless we
982 # explicitly tell configure to do so; this allows avoiding to recurse into
983 # the documentation directory when building Clutter inside Poky for a
984 # target device that doesn't have gtk-doc installed. for reference
985 # see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
986 #
987 # we use autogen.sh as it exists only inside the Git clones, and it
988 # is not packaged into tarballs.
989 AM_CONDITIONAL([BUILD_GTK_DOC], [test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
990
991 # prefixes for fixing gtk-doc references
992 CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
993 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
994 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
995 COGL_PREFIX="`$PKG_CONFIG --variable=prefix cogl-1.0`"
996 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
997 AC_SUBST(CAIRO_PREFIX)
998 AC_SUBST(GLIB_PREFIX)
999 AC_SUBST(PANGO_PREFIX)
1000 AC_SUBST(COGL_PREFIX)
1001 AC_SUBST(ATK_PREFIX)
1002
1003 dnl === Manual ================================================================
1004
1005 AC_ARG_ENABLE([docs],
1006               [AS_HELP_STRING([--enable-docs=@<:@no/yes@:>@],
1007                               [Build optional documentation; requires xsltproc and jw.])],
1008               [enable_docs=$enableval],
1009               [enable_docs=no])
1010
1011 enable_pdfs=no
1012 AS_IF([test "x$enable_docs" = "xyes"],
1013       [
1014         AC_PATH_PROG(JW, [jw], [no])
1015         AS_IF([test "x$JW" = "xno"],
1016               [
1017                 AC_MSG_WARN([jw not found; pdf generation has been disabled])
1018               ],
1019               [enable_pdfs=yes])
1020
1021         AC_PATH_PROG(XSLTPROC, [xsltproc], [no])
1022         AS_IF([test "x$XSLTPROC" = "xno"],
1023               [
1024                 AC_MSG_ERROR([xsltproc not found])
1025               ])
1026       ]
1027 )
1028
1029 AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
1030 AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
1031
1032 dnl === I18N ==================================================================
1033
1034 AM_GNU_GETTEXT_VERSION([0.17])
1035 AM_GNU_GETTEXT([external])
1036
1037 GETTEXT_PACKAGE="clutter-1.0"
1038 AC_SUBST(GETTEXT_PACKAGE)
1039 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
1040                    ["$GETTEXT_PACKAGE"],
1041                    [The prefix for our gettext translation domains.])
1042 AS_ALL_LINGUAS
1043
1044 dnl ===========================================================================
1045
1046 AC_CONFIG_FILES([
1047         Makefile
1048         config.h.win32
1049         README
1050
1051         build/Makefile
1052         build/autotools/Makefile
1053         build/mingw/Makefile
1054         build/win32/Makefile
1055         build/win32/vs9/Makefile
1056         build/win32/vs10/Makefile
1057
1058         clutter/Makefile
1059         clutter/clutter-config.h
1060         clutter/clutter-version.h
1061         clutter/clutter-$CLUTTER_API_VERSION.pc:clutter/clutter.pc.in
1062
1063         clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
1064
1065         clutter/cex100/clutter-cex100.h
1066
1067         tests/Makefile
1068         tests/accessibility/Makefile
1069         tests/conform/Makefile
1070         tests/conform/test-launcher.sh
1071         tests/data/Makefile
1072         tests/interactive/Makefile
1073         tests/interactive/wrapper.sh
1074         tests/micro-bench/Makefile
1075         tests/performance/Makefile
1076
1077         doc/Makefile
1078         doc/reference/Makefile
1079         doc/reference/clutter/Makefile
1080         doc/reference/clutter/clutter-docs.xml
1081         doc/reference/cally/Makefile
1082         doc/reference/cally/cally-docs.xml
1083         doc/common/Makefile
1084         doc/cookbook/Makefile
1085         doc/cookbook/clutter-cookbook.xml
1086         doc/cookbook/examples/Makefile
1087
1088         po/Makefile.in
1089 ])
1090
1091 AC_OUTPUT
1092
1093 dnl === Summary ===============================================================
1094
1095 echo ""
1096 echo "Clutter - $VERSION (${CLUTTER_RELEASE_STATUS})"
1097
1098 # Global flags
1099 echo ""
1100 echo " • Global:"
1101 echo "        Prefix: ${prefix}"
1102 echo "        Libdir: ${libdir}"
1103 echo "        Sysconfdir: ${sysconfdir}"
1104
1105 # Compiler/Debug related flags
1106 echo ""
1107 echo " • Compiler options:"
1108 echo "        Clutter debug level: ${enable_debug}"
1109 echo "        Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
1110 echo "        Profiling enabled: ${enable_profile}"
1111 echo "        Enable coverage tests: ${enable_gcov}"
1112 echo "        Enable deprecated symbols: ${enable_deprecated}"
1113
1114 # Documentation
1115 echo ""
1116 echo " • Documentation:"
1117 echo "        Build API Reference: ${enable_gtk_doc}"
1118 echo "        Build Additional Documentation: ${enable_docs} (Generate PDF: ${enable_pdfs})"
1119
1120 # Miscellaneous
1121 echo ""
1122 echo " • Extra:"
1123 echo "        Build introspection data: ${enable_introspection}"
1124 echo "        Build conformance test suite: ${enable_conformance}"
1125 echo "        Build X11-specific tests: ${x11_tests}"
1126
1127 # Clutter backend related flags
1128 echo ""
1129 echo " • Clutter Backends:"
1130
1131 if test "x$experimental_backend" = "xno"; then
1132 echo "        Windowing systems: ${CLUTTER_BACKENDS}"
1133 else
1134 echo "        Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
1135 fi
1136
1137 if test "x$experimental_input_backend" = "xno"; then
1138 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS}"
1139 else
1140 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
1141 fi
1142
1143 if test "x$SUPPORT_X11" = "x1"; then
1144 echo ""
1145 echo "     - X11 backend options:"
1146 echo "        Enabled extensions: ${X11_EXTS}"
1147 echo "        Build X11-specific tests: ${x11_tests}"
1148 fi
1149
1150 if test "x$SUPPORT_CEX100" = "x1"; then
1151 echo ""
1152 echo "     - CEx100 backend options (WARNING: Experimental):"
1153 echo "        libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
1154 fi
1155
1156 if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then
1157 echo ""
1158 echo "     - Wayland compositor support enabled (WARNING: Experimental)"
1159 fi
1160
1161 echo ""
1162
1163 # General warning about experimental features
1164 if test "x$experimental_backend" = "xyes"; then
1165 echo ""
1166 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1167 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1168 echo ""
1169 echo "  The stability of your build might be affected by one or more"
1170 echo "  experimental backends or experimental and unsupported features"
1171 echo ""
1172 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1173 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1174 echo ""
1175 fi