build: Remove clutter-version.h.win32.in
[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], [13])
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([--with-evdev=@<:@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 dnl Instead of using AM_CFLAGS to ensure
491 dnl COGL_ENABLE_EXPERIMENTAL_2_0_API is defined while compiling clutter
492 dnl and cogl code we use a define in config.h instead. This helps ensure
493 dnl other tools such as glib-mkenums and gir-scanner don't end up
494 dnl using the define also.
495 AC_DEFINE([COGL_ENABLE_EXPERIMENTAL_2_0_API], [1], [Can use Cogl 2.0 API internally])
496
497 dnl strip leading spaces
498 CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
499 AC_SUBST(CLUTTER_BACKENDS)
500
501 CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
502 AC_SUBST(CLUTTER_INPUT_BACKENDS)
503
504 AC_CACHE_SAVE
505
506 dnl === Clutter configuration =================================================
507
508 # windowing systems
509 AS_IF([test "x$SUPPORT_X11" = "x1"],
510       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
511 #define CLUTTER_WINDOWING_X11 \"x11\"
512 #define CLUTTER_INPUT_X11 \"x11\""])
513 AS_IF([test "x$SUPPORT_GDK" = "x1"],
514       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
515 #define CLUTTER_WINDOWING_GDK \"gdk\"
516 #define CLUTTER_INPUT_GDK \"gdk\""])
517 AS_IF([test "x$SUPPORT_GLX" = "x1"],
518       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
519 #define CLUTTER_WINDOWING_GLX \"glx\""])
520 AS_IF([test "x$SUPPORT_EGL" = "x1"],
521       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
522 #define CLUTTER_WINDOWING_EGL \"eglnative\""])
523 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
524       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
525 #define CLUTTER_WINDOWING_WAYLAND \"wayland\""])
526 AS_IF([test "x$SUPPORT_OSX" = "x1"],
527       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
528 #define CLUTTER_WINDOWING_OSX \"osx\"
529 #define CLUTTER_INPUT_OSX \"osx\""])
530 AS_IF([test "x$SUPPORT_WIN32" = "x1"],
531       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
532 #define CLUTTER_WINDOWING_WIN32 \"win32\"
533 #define CLUTTER_INPUT_WIN32 \"win32\""])
534 AS_IF([test "x$SUPPORT_CEX100" = "x1"],
535       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
536 #define CLUTTER_WINDOWING_CEX100 \"cex100\""])
537 AS_IF([test "x$SUPPORT_EVDEV" = "x1"],
538       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
539 #define CLUTTER_INPUT_EVDEV \"evdev\""])
540 AS_IF([test "x$SUPPORT_TSLIB" = "x1"],
541       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
542 #define CLUTTER_INPUT_TSLIB \"tslib\""])
543 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
544       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
545 #define CLUTTER_INPUT_WAYLAND \"wayland\""])
546
547 # the 'null' input backend is special
548 CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
549 #define CLUTTER_INPUT_NULL \"null\""
550
551 AC_SUBST([CLUTTER_CONFIG_DEFINES])
552
553 dnl === Clutter substitutions kept for backwards compatibility ================
554 AC_SUBST([CLUTTER_WINSYS],       [deprecated])
555 AC_SUBST([CLUTTER_WINSYS_BASE],  [deprecated])
556 AC_SUBST([CLUTTER_STAGE_TYPE],   [deprecated])
557 AC_SUBST([CLUTTER_SONAME_INFIX], [deprecated])
558 AC_SUBST([CLUTTER_FLAVOUR],      [deprecated])
559 AC_SUBST([CLUTTER_COGL],         [deprecated])
560 AC_SUBST([COGL_DRIVER],          [deprecated])
561
562 dnl === X11 checks, only for X11-based backends ===============================
563 X11_PC_FILES=""
564 X11_EXTS=""
565 x11_tests=no
566
567 AS_IF([test "x$SUPPORT_X11" = "x1"],
568       [
569         # base X11 includes and libraries
570         AC_MSG_CHECKING([for X11])
571
572         # start with pkg-config
573         PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
574         AS_IF([test "x$have_x11" = "xyes"],
575               [
576                 X11_PC_FILES="x11"
577
578                 # we actually need to ask for CFLAGS and LIBS
579                 X11_CFLAGS=`$PKG_CONFIG --cflags $X11_PC_FILES`
580                 X11_LIBS=`$PKG_CONFIG --libs $X11_PC_FILES`
581
582                 AC_MSG_RESULT([found])
583               ],
584               [
585                 # no pkg-config, let's go old school
586                 AC_PATH_X
587
588                 AS_IF([test "x$no_x" = "xyes"],
589                       [AC_MSG_ERROR([No X11 Libraries found])],
590                       [
591                         AS_IF([test "x$x_includes" != "xNONE" && test -n "$x_includes"],
592                               [X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`])
593
594                         AS_IF([test "x$x_libraries" != "xNONE" && test -n "$x_libraries"],
595                               [X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`])
596
597                         AC_MSG_RESULT([found])
598                       ]
599                 )
600               ]
601         )
602
603         # XEXT (required)
604         AC_MSG_CHECKING([for XEXT extension])
605         PKG_CHECK_EXISTS([xext], [have_xext=yes], [have_xext=no])
606         AS_IF([test "x$have_xext" = "xyes"],
607               [
608                 AC_DEFINE(HAVE_XEXT, [1], [Define to 1 if we have the XEXT X extension])
609
610                 X11_LIBS="$X11_LIBS -lXext"
611                 X11_PC_FILES="$X11_PC_FILES xext"
612                 X11_EXTS="$X11_EXTS xext"
613
614                 AC_MSG_RESULT([found])
615               ],
616               [AC_MSG_ERROR([Not found])]
617         )
618
619         # XFIXES (required)
620         AC_MSG_CHECKING([for XFIXES extension >= $XFIXES_REQ_VERSION])
621         PKG_CHECK_EXISTS([xfixes >= $XFIXES_REQ_VERSION], [have_xfixes=yes], [have_xfixes=no])
622         AS_IF([test "x$have_xfixes" = "xyes"],
623               [
624                 AC_DEFINE(HAVE_XFIXES, [1], [Define to 1 if we have the XFIXES X extension])
625
626                 X11_LIBS="$X11_LIBS -lXfixes"
627                 X11_PC_FILES="$X11_PC_FILES xfixes >= $XFIXES_REQ_VERSION"
628                 X11_EXTS="$X11_EXTS xfixes"
629
630                 AC_MSG_RESULT([found])
631               ],
632               [AC_MSG_ERROR([Not found])]
633         )
634
635         # XDAMAGE (required)
636         AC_MSG_CHECKING([for XDAMAGE extension])
637         PKG_CHECK_EXISTS([xdamage], [have_xdamage=yes], [have_xdamage=no])
638         AS_IF([test "x$have_xdamage" = "xyes"],
639               [
640                 AC_DEFINE(HAVE_XDAMAGE, [1], [Define to 1 if we have the XDAMAGE X extension])
641
642                 X11_LIBS="$X11_LIBS -lXdamage"
643                 X11_PC_FILES="$X11_PC_FILES xdamage"
644                 X11_EXTS="$X11_EXTS xdamage"
645
646                 AC_MSG_RESULT([found])
647               ],
648               [AC_MSG_ERROR([not found])]
649         )
650
651         # XCOMPOSITE (optional)
652         AC_MSG_CHECKING([for XCOMPOSITE extension >= $XCOMPOSITE_REQ_VERSION])
653         PKG_CHECK_EXISTS([xcomposite >= $XCOMPOSITE_REQ_VERSION], [have_xcomposite=yes], [have_xcomposite=no])
654         AS_IF([test "x$have_xcomposite" = "xyes"],
655               [
656                 AC_DEFINE(HAVE_XCOMPOSITE, [1], [Define to 1 if we have the XCOMPOSITE X extension])
657
658                 X11_LIBS="$X11_LIBS -lXcomposite"
659                 X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION"
660                 X11_EXTS="$X11_EXTS xcomposite"
661
662                 AC_MSG_RESULT([found])
663               ],
664               [AC_MSG_ERROR([not found])]
665         )
666
667         # X Generic Extensions (optional)
668         clutter_save_CPPFLAGS="$CPPFLAGS"
669         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
670
671         clutter_save_LIBS="$LIBS"
672         LIBS="$LIBS $X11_LIBS"
673
674         have_xge=no
675         AC_CHECK_FUNC([XGetEventData],
676                       [
677                         AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available])
678                         have_xge=yes
679                         X11_EXTS="$X11_EXTS xge"
680                       ])
681
682         CPPFLAGS="$clutter_save_CPPFLAGS"
683         LIBS="$clutter_save_LIBS"
684
685         # XI (optional)
686         AC_ARG_ENABLE([xinput],
687                       [AS_HELP_STRING([--enable-xinput], [Use the XI X extension])],
688                       [],
689                       [enable_xinput=yes])
690
691         AS_IF([test "x$enable_xinput" = "xyes"],
692               [
693                 PKG_CHECK_EXISTS([xi], [have_xinput=yes], [have_xinput=no])
694               ],
695               [
696                 have_xinput=no
697               ])
698
699         AS_CASE([$have_xinput],
700
701                 [yes],
702                 [
703                   AC_CHECK_HEADERS([X11/extensions/XInput2.h],
704                                    [
705                                      have_xinput2=yes
706                                      AC_DEFINE([HAVE_XINPUT_2],
707                                                [1],
708                                                [Define to 1 if XI2 is available])
709                                    ],
710                                    [
711                                      have_xinput2=no
712                                      AC_DEFINE([HAVE_XINPUT],
713                                                [1],
714                                                [Define to 1 if XInput is available])
715                                    ])
716
717                   X11_LIBS="$X11_LIBS $XINPUT_LIBS"
718                   X11_PC_FILES="$X11_PC_FILES xi"
719                   X11_EXTS="$X11_EXTS xi"
720                 ],
721
722                 [no],
723                 [have_xinput2=no],
724
725                 [*],
726                 [AC_MSG_ERROR([Invalid argument for --enable-xinput])]
727         )
728
729         # XKB
730         clutter_save_CPPFLAGS="$CPPFLAGS"
731         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
732
733         clutter_save_LIBS="$LIBS"
734         LIBS="$LIBS $X11_LIBS"
735
736         have_xkb=no
737         AC_CHECK_FUNC([XkbQueryExtension],
738                       [
739                         AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
740                         have_xkb=yes
741
742                         X11_EXTS="$X11_EXTS xkb"
743                       ])
744
745         CPPFLAGS="$clutter_save_CPPFLAGS"
746         LIBS="$clutter_save_LIBS"
747
748         x11_tests=yes
749         BACKEND_PC_FILES="$BACKEND_PC_FILES $X11_PC_FILES"
750         FLAVOUR_LIBS="$FLAVOUR_LIBS $X11_LIBS"
751         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $X11_CFLAGS"
752       ]
753 )
754
755 AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"])
756 AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"])
757
758 X11_EXTS=${X11_EXTS#* }
759
760 AC_CACHE_SAVE
761
762 dnl === Enable debug level ====================================================
763
764 m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])])
765 AC_ARG_ENABLE([debug],
766               [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
767                               [Control Clutter debugging level @<:@default=]debug_default[@:>@])],
768               [],
769               [enable_debug=debug_default])
770
771 AS_CASE([$enable_debug],
772
773         [yes],
774         [
775           test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
776           CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
777         ],
778
779         [minimum],
780         [CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"],
781
782         [no],
783         [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
784
785         [AC_MSG_ERROR([Unknown argument for --enable-debug])]
786 )
787
788 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
789
790 dnl === Enable deprecation guards ==================================================
791
792 m4_define([deprecated_default],
793           [m4_if(m4_eval(clutter_minor_version % 2),
794                  [1],
795                  [no],
796                  [yes])])
797
798 AC_ARG_ENABLE([deprecated],
799               [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@],
800                               [Whether deprecated symbols should be disabled when compiling Clutter @<:@default=]deprecated_default[@:>@])],
801               [],
802               [enable_deprecated=deprecated_default])
803
804 AS_CASE([$enable_deprecated],
805
806         [no],
807         [
808           CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED"
809         ],
810
811         [yes],
812         [
813           CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS"
814         ],
815
816         [AC_MSG_ERROR([Unknown argument for --enable-deprecated])]
817 )
818
819 AC_SUBST([CLUTTER_DEPRECATED_CFLAGS])
820
821
822 dnl === Conformance test suite ================================================
823
824 AC_ARG_ENABLE([conformance],
825               [AS_HELP_STRING([--enable-conformance=@<:@no/yes@:>@],
826                               [Build conformance test suite @<:@default=yes@:>@])],
827               [],
828               [enable_conformance=yes])
829
830 AM_CONDITIONAL([BUILD_TESTS], [test "x$enable_conformance" = "xyes"])
831
832 dnl === Profiling =============================================================
833
834 m4_define([profile_default], [no])
835 AC_ARG_ENABLE(profile,
836               AS_HELP_STRING([--enable-profile=@<:@no/yes@:>@],
837                              [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@:>@]),
838               [],
839               [enable_profile=profile_default])
840
841 AS_CASE([$enable_profile],
842
843         [yes],
844         [
845           AS_IF([test "x$GCC" = "xyes"],
846                 [
847                   PKG_CHECK_MODULES([PROFILE_DEP], [uprof-0.3])
848                   CLUTTER_PROFILE_CFLAGS="-DCLUTTER_ENABLE_PROFILE $PROFILE_DEP_CFLAGS"
849                   CLUTTER_PROFILE_LDFLAGS="$PROFILE_DEP_LIBS"
850
851                   AS_IF([test "x$enable_debug" = "xyes"], [CLUTTER_PROFILE_CFLAGS+=" -DUPROF_DEBUG"])
852                 ],
853                 [
854                   AC_MSG_ERROR([--enable-profile is currently only supported if using GCC])
855                 ])
856         ],
857
858         [no],
859         [
860           CLUTTER_PROFILE_CFLAGS=""
861           CLUTTER_PROFILE_LDFLAGS=""
862         ],
863
864         [*], [AC_MSG_ERROR([Invalid value for --enable-profile])]
865 )
866 AM_CONDITIONAL(PROFILE, test "x$enable_profile" != "xno")
867 AC_SUBST(CLUTTER_PROFILE_CFLAGS)
868 AC_SUBST(CLUTTER_PROFILE_LDFLAGS)
869
870 dnl === Coverage report =======================================================
871
872 AC_PATH_PROG([GCOV], [gcov], [enable_gcov=no])
873
874 AC_MSG_CHECKING([whether to build with gcov testing])
875
876 AC_ARG_ENABLE([gcov],
877               [AS_HELP_STRING([--enable-gcov],
878                               [Whether to enable coverage testing (requires gcc
879 and gcov)])],
880               [],
881               [enable_gcov=no])
882
883 AS_IF([test "x$enable_gcov" = "xyes" && test "x$GCC" = "xyes"],
884       [
885         AS_IF([test "x$enable_conformance" = "xno"],
886               [AC_MSG_WARN([Conformance test suite is disabled, the coverage report will be incomplete])],
887               [AC_MSG_RESULT([yes])]
888         )
889
890         GCOV_CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
891         GCOV_LDFLAGS="-lgcov"
892       ],
893       [AC_MSG_RESULT([no])]
894 )
895
896 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" = "xyes"])
897 AC_SUBST([GCOV_CFLAGS])
898 AC_SUBST([GCOV_LDFLAGS])
899
900 dnl === Enable strict compiler flags ==========================================
901
902 # use strict compiler flags only when building from git; the rules for
903 # distcheck will take care of turning this on when making a release
904 m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_micro_version % 2), [1], [yes], [no])])
905 AC_ARG_ENABLE([maintainer-flags],
906               [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@],
907                               [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
908               [],
909               [enable_maintainer_flags=maintainer_flags_default])
910
911 MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
912                            -Wall -Wcast-align -Wuninitialized
913                            -Wno-strict-aliasing -Wempty-body -Wformat
914                            -Wformat-security -Winit-self
915                            -Wdeclaration-after-statement -Wvla
916                            -Wpointer-arith"
917
918 AS_CASE([$enable_maintainer_flags],
919         [yes],
920         [
921           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
922         ],
923
924         [no],
925         [
926         ],
927
928         [error],
929         [
930           MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
931           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
932         ],
933
934         [*],
935         [AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
936 )
937
938 # strip leading spaces
939 MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#*  }
940 AC_SUBST(MAINTAINER_CFLAGS)
941
942 dnl === Dependencies, compiler flags and linker libraries =====================
943 # strip leading space
944 BACKEND_PC_FILES=${BACKEND_PC_FILES#* }
945
946 # public dependencies, will fill the Requires: field of clutter.pc
947 CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES"
948 PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
949
950 # private dependencies, will fill the Requires.private: field of clutter.pc
951 AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" = "x" && test "x$BACKEND_PC_FILES_PRIVATE" = "x"],
952       [
953         CLUTTER_REQUIRES_PRIVATE=""
954         CLUTTER_DEPS_PRIVATE_CFLAGS=""
955         CLUTTER_DEPS_PRIVATE_LIBS=""
956       ],
957       [
958         CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE"
959         PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE])
960       ])
961
962 AC_SUBST(CLUTTER_REQUIRES)
963 AC_SUBST(CLUTTER_REQUIRES_PRIVATE)
964
965 CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_DEPS_PRIVATE_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS"
966 CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_DEPS_PRIVATE_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS"
967 AC_SUBST(CLUTTER_CFLAGS)
968 AC_SUBST(CLUTTER_LIBS)
969
970
971 dnl === GObject-Introspection check ===========================================
972
973 GOBJECT_INTROSPECTION_CHECK([gi_req_version])
974
975 dnl === GTK Doc check =========================================================
976
977 GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
978
979 # we don't want to build the documentation from a Git clone unless we
980 # explicitly tell configure to do so; this allows avoiding to recurse into
981 # the documentation directory when building Clutter inside Poky for a
982 # target device that doesn't have gtk-doc installed. for reference
983 # see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
984 #
985 # we use autogen.sh as it exists only inside the Git clones, and it
986 # is not packaged into tarballs.
987 AM_CONDITIONAL([BUILD_GTK_DOC], [test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
988
989 # prefixes for fixing gtk-doc references
990 CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
991 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
992 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
993 COGL_PREFIX="`$PKG_CONFIG --variable=prefix cogl-1.0`"
994 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
995 AC_SUBST(CAIRO_PREFIX)
996 AC_SUBST(GLIB_PREFIX)
997 AC_SUBST(PANGO_PREFIX)
998 AC_SUBST(COGL_PREFIX)
999 AC_SUBST(ATK_PREFIX)
1000
1001 dnl === Manual ================================================================
1002
1003 AC_ARG_ENABLE([docs],
1004               [AS_HELP_STRING([--enable-docs=@<:@no/yes@:>@],
1005                               [Build optional documentation; requires xsltproc and jw.])],
1006               [enable_docs=$enableval],
1007               [enable_docs=no])
1008
1009 enable_pdfs=no
1010 AS_IF([test "x$enable_docs" = "xyes"],
1011       [
1012         AC_PATH_PROG(JW, [jw], [no])
1013         AS_IF([test "x$JW" = "xno"],
1014               [
1015                 AC_MSG_WARN([jw not found; pdf generation has been disabled])
1016               ],
1017               [enable_pdfs=yes])
1018
1019         AC_PATH_PROG(XSLTPROC, [xsltproc], [no])
1020         AS_IF([test "x$XSLTPROC" = "xno"],
1021               [
1022                 AC_MSG_ERROR([xsltproc not found])
1023               ])
1024       ]
1025 )
1026
1027 AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
1028 AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
1029
1030 dnl === I18N ==================================================================
1031
1032 AM_GNU_GETTEXT_VERSION([0.17])
1033 AM_GNU_GETTEXT([external])
1034
1035 GETTEXT_PACKAGE="clutter-1.0"
1036 AC_SUBST(GETTEXT_PACKAGE)
1037 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
1038                    ["$GETTEXT_PACKAGE"],
1039                    [The prefix for our gettext translation domains.])
1040 AS_ALL_LINGUAS
1041
1042 dnl ===========================================================================
1043
1044 AC_CONFIG_FILES([
1045         Makefile
1046         config.h.win32
1047         README
1048
1049         build/Makefile
1050         build/autotools/Makefile
1051         build/mingw/Makefile
1052         build/win32/Makefile
1053         build/win32/vs9/Makefile
1054         build/win32/vs10/Makefile
1055
1056         clutter/Makefile
1057         clutter/clutter-config.h
1058         clutter/clutter-version.h
1059         clutter/clutter-$CLUTTER_API_VERSION.pc:clutter/clutter.pc.in
1060
1061         clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
1062
1063         clutter/cex100/clutter-cex100.h
1064
1065         tests/Makefile
1066         tests/accessibility/Makefile
1067         tests/conform/Makefile
1068         tests/conform/test-launcher.sh
1069         tests/data/Makefile
1070         tests/interactive/Makefile
1071         tests/interactive/wrapper.sh
1072         tests/micro-bench/Makefile
1073         tests/performance/Makefile
1074
1075         doc/Makefile
1076         doc/reference/Makefile
1077         doc/reference/clutter/Makefile
1078         doc/reference/clutter/clutter-docs.xml
1079         doc/reference/cally/Makefile
1080         doc/reference/cally/cally-docs.xml
1081         doc/common/Makefile
1082         doc/cookbook/Makefile
1083         doc/cookbook/clutter-cookbook.xml
1084         doc/cookbook/examples/Makefile
1085
1086         po/Makefile.in
1087 ])
1088
1089 AC_OUTPUT
1090
1091 dnl === Summary ===============================================================
1092
1093 echo ""
1094 echo "Clutter - $VERSION (${CLUTTER_RELEASE_STATUS})"
1095
1096 # Global flags
1097 echo ""
1098 echo " • Global:"
1099 echo "        Prefix: ${prefix}"
1100 echo "        Libdir: ${libdir}"
1101 echo "        Sysconfdir: ${sysconfdir}"
1102
1103 # Compiler/Debug related flags
1104 echo ""
1105 echo " • Compiler options:"
1106 echo "        Clutter debug level: ${enable_debug}"
1107 echo "        Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
1108 echo "        Profiling enabled: ${enable_profile}"
1109 echo "        Enable coverage tests: ${enable_gcov}"
1110 echo "        Enable deprecated symbols: ${enable_deprecated}"
1111
1112 # Documentation
1113 echo ""
1114 echo " • Documentation:"
1115 echo "        Build API Reference: ${enable_gtk_doc}"
1116 echo "        Build Additional Documentation: ${enable_docs} (Generate PDF: ${enable_pdfs})"
1117
1118 # Miscellaneous
1119 echo ""
1120 echo " • Extra:"
1121 echo "        Build introspection data: ${enable_introspection}"
1122 echo "        Build conformance test suite: ${enable_conformance}"
1123 echo "        Build X11-specific tests: ${x11_tests}"
1124
1125 # Clutter backend related flags
1126 echo ""
1127 echo " • Clutter Backends:"
1128
1129 if test "x$experimental_backend" = "xno"; then
1130 echo "        Windowing systems: ${CLUTTER_BACKENDS}"
1131 else
1132 echo "        Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
1133 fi
1134
1135 if test "x$experimental_input_backend" = "xno"; then
1136 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS}"
1137 else
1138 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
1139 fi
1140
1141 if test "x$SUPPORT_X11" = "x1"; then
1142 echo ""
1143 echo "     - X11 backend options:"
1144 echo "        Enabled extensions: ${X11_EXTS}"
1145 echo "        Build X11-specific tests: ${x11_tests}"
1146 fi
1147
1148 if test "x$SUPPORT_CEX100" = "x1"; then
1149 echo ""
1150 echo "     - CEx100 backend options (WARNING: Experimental):"
1151 echo "        libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
1152 fi
1153
1154 if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then
1155 echo ""
1156 echo "     - Wayland compositor support enabled (WARNING: Experimental)"
1157 fi
1158
1159 echo ""
1160
1161 # General warning about experimental features
1162 if test "x$experimental_backend" = "xyes"; then
1163 echo ""
1164 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1165 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1166 echo ""
1167 echo "  The stability of your build might be affected by one or more"
1168 echo "  experimental backends or experimental and unsupported features"
1169 echo ""
1170 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1171 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1172 echo ""
1173 fi