build: Fix the private pkg-config requirements
[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], [3])
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         []
103 )
104 AC_MSG_RESULT([$platform_win32])
105
106 AM_CONDITIONAL(OS_WIN32, [test "$platform_win32" = "yes"])
107
108 AC_CHECK_HEADER([OpenGL/gl.h], [platform_quartz=yes], [platform_quartz=no])
109 AM_CONDITIONAL(OS_QUARTZ, [test "$platform_quartz" = "yes"])
110
111 AC_CHECK_HEADER([GL/glx.h], [platform_glx=yes], [platform_glx=no])
112 AC_CHECK_LIB([GL], [glXCreateContext], [platform_glx=yes], [platform_glx=no])
113 AM_CONDITIONAL(OS_GLX, [test "$platform_glx" = "yes"])
114
115 AC_SUBST(CLUTTER_LT_LDFLAGS)
116
117 AC_CACHE_SAVE
118
119 dnl = Dependencies =========================================================
120
121 # Checks for programs.
122 AM_PROG_CC_C_O
123
124 # require libtool >= 2.2
125 LT_PREREQ([2.2.6])
126 LT_INIT([disable-static])
127
128 # Checks for header files.
129 AC_HEADER_STDC
130
131 # required versions for dependencies
132 m4_define([glib_req_version],           [2.31.0])
133 m4_define([cogl_req_version],           [1.9.1])
134 m4_define([json_glib_req_version],      [0.12.0])
135 m4_define([atk_req_version],            [2.1.5])
136 m4_define([cairo_req_version],          [1.10])
137 m4_define([pango_req_version],          [1.20])
138 m4_define([gi_req_version],             [0.9.5])
139 m4_define([uprof_req_version],          [0.3])
140 m4_define([gtk_doc_req_version],        [1.15])
141 m4_define([xfixes_req_version],         [3])
142 m4_define([xcomposite_req_version],     [0.4])
143 m4_define([gdk_req_version],            [3.0.0])
144
145 AC_SUBST([GLIB_REQ_VERSION],       [glib_req_version])
146 AC_SUBST([COGL_REQ_VERSION],       [cogl_req_version])
147 AC_SUBST([JSON_GLIB_REQ_VERSION],  [json_glib_req_version])
148 AC_SUBST([ATK_REQ_VERSION],        [atk_req_version])
149 AC_SUBST([CAIRO_REQ_VERSION],      [cairo_req_version])
150 AC_SUBST([PANGO_REQ_VERSION],      [pango_req_version])
151 AC_SUBST([GI_REQ_VERSION],         [gi_req_version])
152 AC_SUBST([UPROF_REQ_VERSION],      [uprof_req_version])
153 AC_SUBST([GTK_DOC_REQ_VERSION],    [gtk_doc_req_version])
154 AC_SUBST([XFIXES_REQ_VERSION],     [xfixes_req_version])
155 AC_SUBST([XCOMPOSITE_REQ_VERSION], [xcomposite_req_version])
156 AC_SUBST([GDK_REQ_VERSION],        [gdk_req_version])
157
158 # Checks for typedefs, structures, and compiler characteristics.
159 AM_PATH_GLIB_2_0([glib_req_version],
160                  [],
161                  [AC_MSG_ERROR([glib-2.0 is required])],
162                  [gobject gthread gmodule-no-export])
163
164 # Check for -Bsymbolic-functions to avoid intra-library PLT jumps
165 AC_ARG_ENABLE([Bsymbolic],
166               [AS_HELP_STRING([--disable-Bsymbolic],
167                               [Avoid linking with -Bsymbolic])],
168               [],
169               [
170                 saved_LDFLAGS="${LDFLAGS}"
171                 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
172                 LDFLAGS=-Wl,-Bsymbolic-functions
173                 AC_TRY_LINK([], [int main (void) { return 0; }],
174                             [
175                               AC_MSG_RESULT([yes])
176                               enable_Bsymbolic=yes
177                             ],
178                             [
179                               AC_MSG_RESULT([no])
180                               enable_Bsymbolic=no
181                             ])
182                 LDFLAGS="${saved_LDFLAGS}"
183               ])
184
185 AS_IF([test "x$enable_Bsymbolic" = "xyes"], [CLUTTER_LINK_FLAGS=-Wl[,]-Bsymbolic-functions])
186 AC_SUBST(CLUTTER_LINK_FLAGS)
187
188 AC_CACHE_SAVE
189
190 dnl ========================================================================
191
192 FLAVOUR_LIBS=""
193 FLAVOUR_CFLAGS=""
194 CLUTTER_BACKENDS=""
195 CLUTTER_INPUT_BACKENDS=""
196 CLUTTER_CONFIG_DEFINES=
197
198 experimental_backend=no
199 experimental_input_backend=no
200
201 # base dependencies for core
202 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"
203
204 # private base dependencies
205 CLUTTER_BASE_PC_FILES_PRIVATE=""
206
207 # backend specific pkg-config files
208 BACKEND_PC_FILES=""
209
210 # private backend specific dependencies
211 BACKEND_PC_FILES_PRIVATE=""
212
213 dnl === Clutter windowing system backend ======================================
214
215 AC_ARG_ENABLE([x11-backend],
216               [AS_HELP_STRING([--enable-x11-backend=@<:@yes/no@:>@], [Enable the X11 backend (default=check)])],
217               [enable_x11=$enableval],
218               [enable_x11=check])
219 AC_ARG_ENABLE([win32-backend],
220               [AS_HELP_STRING([--enable-win32-backend=@<:@yes/no@:>@], [Enable the Windows backend (default=check)])],
221               [enable_win32=$enableval],
222               [enable_win32=check])
223 AC_ARG_ENABLE([quartz-backend],
224               [AS_HELP_STRING([--enable-quartz-backend=@<:@yes/no@:>@], [Enable the OS X backend (default=check)])],
225               [enable_osx=$enableval],
226               [enable_osx=check])
227 AC_ARG_ENABLE([gdk-backend],
228               [AS_HELP_STRING([--enable-gdk-backend=@<:@yes/no@:>@], [Enable the GDK backend (default=check)])],
229               [enable_gdk=$enableval],
230               [enable_gdk=check])
231 AC_ARG_ENABLE([wayland-backend],
232               [AS_HELP_STRING([--enable-wayland-backend=@<:@yes/no@:>@], [Enable the Wayland client backend (default=no)])],
233               [enable_wayland=$enableval],
234               [enable_wayland=no])
235 AC_ARG_ENABLE([egl-backend],
236               [AS_HELP_STRING([--enable-egl-backend=@<:@yes/no@:>@], [Enable the EGL framebuffer backend (default=no)])],
237               [enable_egl=$enableval],
238               [enable_egl=no])
239 AC_ARG_ENABLE([cex100-backend],
240               [AS_HELP_STRING([--enable-cex100-backend=@<:@yes/no@:>@], [Enable the CEx100 backend (default=no)])],
241               [enable_cex100=$enableval],
242               [enable_cex100=no])
243
244 dnl Define default values
245 AS_IF([test "x$enable_x11" = "xcheck"],
246       [
247         AS_IF([test "x$platform_glx" = "xyes"], [enable_x11=yes], [enable_x11=no])
248       ])
249
250 AS_IF([test "x$enable_win32" = "xcheck"],
251       [
252         AS_IF([test "x$platform_win32" = "xyes"], [enable_win32=yes], [enable_win32=no])
253       ])
254
255 AS_IF([test "x$enable_osx" = "xcheck"],
256       [
257         AS_IF([test "x$platform_quartz" = "xyes"], [enable_osx=yes], [enable_osx=no])
258       ])
259
260 AS_IF([test "x$enable_gdk" = "xcheck"],
261       [
262         PKG_CHECK_EXISTS([gdk-3.0 >= gdk_req_version], [enable_gdk=yes], [enable_gdk=no])
263       ])
264
265 dnl Per-backend rules
266 AS_IF([test "x$enable_x11" = "xyes"],
267       [
268         CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11"
269         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11"
270
271         SUPPORT_X11=1
272         SUPPORT_GLX=1
273         SUPPORT_COGL=1
274
275         # Mesa 7.3 added a GL pkg-config file, finally, but if a pkg-config
276         # file isn't found just add -lGL and hope for the best.
277         PKG_CHECK_EXISTS([gl],
278                          [BACKEND_PC_FILES="$BACKEND_PC_FILES gl"],
279                          [FLAVOUR_LIBS="$FLAVOUR_LIBS -lGL"])
280
281         # We might fall back to DRM for sync-to-vblank on GLX
282         PKG_CHECK_EXISTS([libdrm],
283                          [
284                            AC_DEFINE([HAVE_DRM], [1], [Have libdrm support])
285                            BACKEND_PC_FILES="$BACKEND_PC_FILES libdrm"
286                          ],
287                          [])
288
289         # we use fontconfig API and pango-fc when the fontconfig
290         # configuration changes
291         PKG_CHECK_EXISTS([pangoft2],
292                          [
293                            AC_DEFINE([HAVE_PANGO_FT2], [1], [Supports PangoFt2])
294                            BACKEND_PC_FILES="$BACKEND_PC_FILES pangoft2"
295                          ],
296                          [])
297
298         AC_DEFINE([HAVE_CLUTTER_GLX], [1], [Have the GLX backend])
299       ])
300
301 AS_IF([test "x$enable_gdk" = "xyes"],
302       [
303         CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk"
304         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk"
305
306         SUPPORT_GDK=1
307         SUPPORT_COGL=1
308
309         BACKEND_PC_FILES="$BACKEND_PC_FILES gdk-3.0"
310         PKG_CHECK_EXISTS([gl], [BACKEND_PC_FILES="$BACKEND_PC_FILES gl"], [])
311       ])
312
313 AS_IF([test "x$enable_wayland" = "xyes"],
314       [
315         CLUTTER_BACKENDS="$CLUTTER_BACKENDS wayland"
316         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS wayland"
317
318         experimental_backend="yes"
319
320         SUPPORT_WAYLAND=1
321
322         PKG_CHECK_EXISTS([wayland-client xkbcommon gdk-pixbuf-2.0],
323                          [
324                             BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-client xkbcommon",
325                             BACKEND_PC_FILES_PRIVATE="$BACKEND_PC_FILES_PRIVATE gdk-pixbuf-2.0"
326                          ],
327                          [])
328
329         AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland client backend])
330       ])
331
332 dnl Note this is orthogonal to the client side support and you can
333 dnl use the Wayland compositor features with any of the clutter
334 dnl backends with corresponding Cogl support.
335 AC_ARG_ENABLE([wayland-compositor],
336               [AS_HELP_STRING([--enable-wayland-compositor=@<:@yes/no@:>@],
337                               [Enable Wayland compositor features (default=no)])],
338               [],
339               [AS_IF([test "x$SUPPORT_EGL" = "x1"],
340                      [enable_wayland_compositor=yes],
341                      [enable_wayland_compositor=no])
342               ])
343
344 AS_IF([test "x$enable_wayland_compositor" = "xyes"],
345       [
346         PKG_CHECK_EXISTS([wayland-server],
347                          [BACKEND_PC_FILES="$BACKEND_PC_FILES wayland-server"], [])
348         SUPPORT_WAYLAND_COMPOSITOR=1
349         CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
350 #define CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT 1"
351         AC_DEFINE([HAVE_CLUTTER_WAYLAND_COMPOSITOR], [1], [Have Wayland compositor support])
352       ])
353
354 AM_CONDITIONAL(SUPPORT_WAYLAND_COMPOSITOR, [test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"])
355
356 AS_IF([test "x$enable_wayland_compositor" != "xyes" -a "x$enable_wayland" != "xyes"],
357       [
358         # The wayland headers introduce so much symbol shadowing that build
359         # logs become incomprehensible with -Wshadow so we only use it for
360         # non-wayland builds.
361         MAINTAINER_COMPILER_FLAGS="-Wshadow"
362       ])
363
364 AS_IF([test "x$enable_cex100" = "xyes"],
365       [
366         CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100"
367
368         experimental_backend="yes"
369
370         SUPPORT_COGL=1
371         SUPPORT_CEX100=1
372
373         have_gdl=no
374         AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
375
376         AS_IF([test "x$have_gdl" = "xno"],
377               [
378                 AC_CHECK_HEADERS([CE4100/libgdl.h],
379                                  [
380                                    FLAVOUR_CFLAGS="-I/usr/include/CE4100"
381                                    have_gdl=yes
382                                    CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
383                                  ])
384               ])
385
386         AS_IF([test "x$have_gdl" = "xno"],
387               [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])])
388
389         AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
390
391         FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
392
393         AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend])
394         AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
395         AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
396       ])
397
398 AS_IF([test "x$enable_egl" = "xyes"],
399       [
400         CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
401
402         experimental_backend="yes"
403
404         SUPPORT_EGL=1
405         SUPPORT_COGL=1
406
407         # if Mesa has support for egl, we can use it as well
408         PKG_CHECK_EXISTS([egl],
409                          [
410                            BACKEND_PC_FILES="$BACKEND_PC_FILES egl"
411                          ],
412                          [])
413
414         FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS"
415         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS"
416
417         AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
418
419         AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
420       ])
421
422 AS_IF([test "x$enable_osx" = "xyes"],
423       [
424         CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx"
425         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx"
426
427         AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend])
428
429         FLAVOUR_LIBS="$FLAVOUR_LIBS -framework Cocoa -framework OpenGL"
430
431         SUPPORT_OSX=1
432       ])
433
434 AS_IF([test "x$enable_win32" = "xyes"],
435       [
436         CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32"
437         CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32"
438
439         AC_DEFINE([HAVE_CLUTTER_WIN32], [1], [Have the Win32 backend])
440
441         FLAVOUR_LIBS="$FLAVOUR_LIBS -lopengl32 -lgdi32 -lwinmm"
442         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS -D_WIN32_WINNT=0x0500"
443
444         AC_CHECK_TOOL(WINDRES, [windres], [AC_MSG_ERROR([*** windres is required])])
445
446         SUPPORT_WIN32=1
447       ])
448
449 AS_IF([test "x$CLUTTER_BACKENDS" = "x"],
450       [
451         AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.])
452       ])
453
454 # additional input backends
455
456 AC_ARG_ENABLE([tslib-input],
457               [AS_HELP_STRING([--enable-tslib-input=@<:@yes/no@:>@], [Enable TSLib for input events (default=no)])],
458               [enable_tslib=$enableval],
459               [enable_tslib=no])
460 AC_ARG_ENABLE([evdev-input],
461               [AS_HELP_STRING([--with-evdev=@<:@yes/no@:>@], [Enable evdev for input events (default=no)])],
462               [enable_evdev=$enableval],
463               [enable_evdev=no])
464
465 AS_IF([test "x$enable_tslib" = "xyes"],
466       [
467         PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no])
468         AS_IF([test "x$have_tslib" = "xyes"],
469               [
470                 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib"
471                 experimental_input_backend="yes"
472                 AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
473                 SUPPORT_TSLIB=1
474               ])
475       ])
476
477 AS_IF([test "x$enable_evdev" = "xyes"],
478       [
479         PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
480         AS_IF([test "x$have_evdev" = "xyes"],
481               [
482                 CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev"
483                 BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 xkbcommon"
484                 experimental_input_backend="yes"
485                 AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
486                 SUPPORT_EVDEV=1
487               ])
488       ])
489
490 # conditionals for use in automake files...
491 AM_CONDITIONAL(SUPPORT_GLX,     [test "x$SUPPORT_GLX" = "x1"])
492 AM_CONDITIONAL(SUPPORT_X11,     [test "x$SUPPORT_X11" = "x1"])
493 AM_CONDITIONAL(SUPPORT_GDK,     [test "x$SUPPORT_GDK" = "x1"])
494 AM_CONDITIONAL(SUPPORT_EGL,     [test "x$SUPPORT_EGL" = "x1"])
495 AM_CONDITIONAL(SUPPORT_OSX,     [test "x$SUPPORT_OSX" = "x1"])
496 AM_CONDITIONAL(SUPPORT_WIN32,   [test "x$SUPPORT_WIN32" = "x1"])
497 AM_CONDITIONAL(SUPPORT_CEX100,  [test "x$SUPPORT_CEX100" = "x1"])
498 AM_CONDITIONAL(SUPPORT_WAYLAND, [test "x$SUPPORT_WAYLAND" = "x1"])
499 AM_CONDITIONAL(SUPPORT_STUB,    [test "x$SUPPORT_WIN32" = "x1" -o \
500                                       "x$SUPPORT_OSX" = "x1"])
501
502 AM_CONDITIONAL(USE_COGL,  [test "x$SUPPORT_COGL" = "x1"])
503 AM_CONDITIONAL(USE_TSLIB, [test "x$have_tslib" = "xyes"])
504 AM_CONDITIONAL(USE_EVDEV, [test "x$have_evdev" = "xyes"])
505 AM_CONDITIONAL(USE_GLD,   [test "x$have_gdl" = "xyes"])
506
507 dnl Instead of using AM_CFLAGS to ensure
508 dnl COGL_ENABLE_EXPERIMENTAL_2_0_API is defined while compiling clutter
509 dnl and cogl code we use a define in config.h instead. This helps ensure
510 dnl other tools such as glib-mkenums and gir-scanner don't end up
511 dnl using the define also.
512 AC_DEFINE([COGL_ENABLE_EXPERIMENTAL_2_0_API], [1], [Can use Cogl 2.0 API internally])
513
514 dnl strip leading spaces
515 CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
516 AC_SUBST(CLUTTER_BACKENDS)
517
518 CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
519 AC_SUBST(CLUTTER_INPUT_BACKENDS)
520
521 AC_CACHE_SAVE
522
523 dnl === Clutter configuration =================================================
524
525 # windowing systems
526 AS_IF([test "x$SUPPORT_X11" = "x1"],
527       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
528 #define CLUTTER_WINDOWING_X11 \"x11\"
529 #define CLUTTER_INPUT_X11 \"x11\""])
530 AS_IF([test "x$SUPPORT_GDK" = "x1"],
531       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
532 #define CLUTTER_WINDOWING_GDK \"gdk\"
533 #define CLUTTER_INPUT_GDK \"gdk\""])
534 AS_IF([test "x$SUPPORT_GLX" = "x1"],
535       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
536 #define CLUTTER_WINDOWING_GLX \"glx\""])
537 AS_IF([test "x$SUPPORT_EGL" = "x1"],
538       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
539 #define CLUTTER_WINDOWING_EGL \"eglnative\""])
540 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
541       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
542 #define CLUTTER_WINDOWING_WAYLAND \"wayland\""])
543 AS_IF([test "x$SUPPORT_OSX" = "x1"],
544       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
545 #define CLUTTER_WINDOWING_OSX \"osx\"
546 #define CLUTTER_INPUT_OSX \"osx\""])
547 AS_IF([test "x$SUPPORT_WIN32" = "x1"],
548       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
549 #define CLUTTER_WINDOWING_WIN32 \"win32\"
550 #define CLUTTER_INPUT_WIN32 \"win32\""])
551 AS_IF([test "x$SUPPORT_CEX100" = "x1"],
552       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
553 #define CLUTTER_WINDOWING_CEX100 \"cex100\""])
554 AS_IF([test "x$SUPPORT_EVDEV" = "x1"],
555       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
556 #define CLUTTER_INPUT_EVDEV \"evdev\""])
557 AS_IF([test "x$SUPPORT_TSLIB" = "x1"],
558       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
559 #define CLUTTER_INPUT_TSLIB \"tslib\""])
560 AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
561       [CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
562 #define CLUTTER_INPUT_WAYLAND \"wayland\""])
563
564 # the 'null' input backend is special
565 CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
566 #define CLUTTER_INPUT_NULL \"null\""
567
568 AC_SUBST([CLUTTER_CONFIG_DEFINES])
569
570 dnl === Clutter substitutions kept for backwards compatibility ================
571 AC_SUBST([CLUTTER_WINSYS],       [deprecated])
572 AC_SUBST([CLUTTER_WINSYS_BASE],  [deprecated])
573 AC_SUBST([CLUTTER_STAGE_TYPE],   [deprecated])
574 AC_SUBST([CLUTTER_SONAME_INFIX], [deprecated])
575 AC_SUBST([CLUTTER_FLAVOUR],      [deprecated])
576 AC_SUBST([CLUTTER_COGL],         [deprecated])
577 AC_SUBST([COGL_DRIVER],          [deprecated])
578
579 dnl === X11 checks, only for X11-based backends ===============================
580 X11_PC_FILES=""
581 X11_EXTS=""
582 x11_tests=no
583
584 AS_IF([test "x$SUPPORT_X11" = "x1"],
585       [
586         # base X11 includes and libraries
587         AC_MSG_CHECKING([for X11])
588
589         # start with pkg-config
590         PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
591         AS_IF([test "x$have_x11" = "xyes"],
592               [
593                 X11_PC_FILES="x11"
594
595                 # we actually need to ask for CFLAGS and LIBS
596                 X11_CFLAGS=`$PKG_CONFIG --cflags $X11_PC_FILES`
597                 X11_LIBS=`$PKG_CONFIG --libs $X11_PC_FILES`
598
599                 AC_MSG_RESULT([found])
600               ],
601               [
602                 # no pkg-config, let's go old school
603                 AC_PATH_X
604
605                 AS_IF([test "x$no_x" = "xyes"],
606                       [AC_MSG_ERROR([No X11 Libraries found])],
607                       [
608                         AS_IF([test "x$x_includes" != "xNONE" && test -n "$x_includes"],
609                               [X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`])
610
611                         AS_IF([test "x$x_libraries" != "xNONE" && test -n "$x_libraries"],
612                               [X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`])
613
614                         AC_MSG_RESULT([found])
615                       ]
616                 )
617               ]
618         )
619
620         # XEXT (required)
621         AC_MSG_CHECKING([for XEXT extension])
622         PKG_CHECK_EXISTS([xext], [have_xext=yes], [have_xext=no])
623         AS_IF([test "x$have_xext" = "xyes"],
624               [
625                 AC_DEFINE(HAVE_XEXT, [1], [Define to 1 if we have the XEXT X extension])
626
627                 X11_LIBS="$X11_LIBS -lXext"
628                 X11_PC_FILES="$X11_PC_FILES xext"
629                 X11_EXTS="$X11_EXTS xext"
630
631                 AC_MSG_RESULT([found])
632               ],
633               [AC_MSG_ERROR([Not found])]
634         )
635
636         # XFIXES (required)
637         AC_MSG_CHECKING([for XFIXES extension >= $XFIXES_REQ_VERSION])
638         PKG_CHECK_EXISTS([xfixes >= $XFIXES_REQ_VERSION], [have_xfixes=yes], [have_xfixes=no])
639         AS_IF([test "x$have_xfixes" = "xyes"],
640               [
641                 AC_DEFINE(HAVE_XFIXES, [1], [Define to 1 if we have the XFIXES X extension])
642
643                 X11_LIBS="$X11_LIBS -lXfixes"
644                 X11_PC_FILES="$X11_PC_FILES xfixes >= $XFIXES_REQ_VERSION"
645                 X11_EXTS="$X11_EXTS xfixes"
646
647                 AC_MSG_RESULT([found])
648               ],
649               [AC_MSG_ERROR([Not found])]
650         )
651
652         # XDAMAGE (required)
653         AC_MSG_CHECKING([for XDAMAGE extension])
654         PKG_CHECK_EXISTS([xdamage], [have_xdamage=yes], [have_xdamage=no])
655         AS_IF([test "x$have_xdamage" = "xyes"],
656               [
657                 AC_DEFINE(HAVE_XDAMAGE, [1], [Define to 1 if we have the XDAMAGE X extension])
658
659                 X11_LIBS="$X11_LIBS -lXdamage"
660                 X11_PC_FILES="$X11_PC_FILES xdamage"
661                 X11_EXTS="$X11_EXTS xdamage"
662
663                 AC_MSG_RESULT([found])
664               ],
665               [AC_MSG_ERROR([not found])]
666         )
667
668         # XCOMPOSITE (optional)
669         AC_MSG_CHECKING([for XCOMPOSITE extension >= $XCOMPOSITE_REQ_VERSION])
670         PKG_CHECK_EXISTS([xcomposite >= $XCOMPOSITE_REQ_VERSION], [have_xcomposite=yes], [have_xcomposite=no])
671         AS_IF([test "x$have_xcomposite" = "xyes"],
672               [
673                 AC_DEFINE(HAVE_XCOMPOSITE, [1], [Define to 1 if we have the XCOMPOSITE X extension])
674
675                 X11_LIBS="$X11_LIBS -lXcomposite"
676                 X11_PC_FILES="$X11_PC_FILES xcomposite >= $XCOMPOSITE_REQ_VERSION"
677                 X11_EXTS="$X11_EXTS xcomposite"
678
679                 AC_MSG_RESULT([found])
680               ],
681               [AC_MSG_ERROR([not found])]
682         )
683
684         # X Generic Extensions (optional)
685         clutter_save_CPPFLAGS="$CPPFLAGS"
686         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
687
688         clutter_save_LIBS="$LIBS"
689         LIBS="$LIBS $X11_LIBS"
690
691         have_xge=no
692         AC_CHECK_FUNC([XGetEventData],
693                       [
694                         AC_DEFINE([HAVE_XGE], [1], [Define to 1 if X Generic Extensions is available])
695                         have_xge=yes
696                         X11_EXTS="$X11_EXTS xge"
697                       ])
698
699         CPPFLAGS="$clutter_save_CPPFLAGS"
700         LIBS="$clutter_save_LIBS"
701
702         # XI (optional)
703         AC_ARG_ENABLE([xinput],
704                       [AS_HELP_STRING([--enable-xinput], [Use the XI X extension])],
705                       [],
706                       [enable_xinput=yes])
707
708         AS_IF([test "x$enable_xinput" = "xyes"],
709               [
710                 PKG_CHECK_EXISTS([xi], [have_xinput=yes], [have_xinput=no])
711               ],
712               [
713                 have_xinput=no
714               ])
715
716         AS_CASE([$have_xinput],
717
718                 [yes],
719                 [
720                   AC_CHECK_HEADERS([X11/extensions/XInput2.h],
721                                    [
722                                      have_xinput2=yes
723                                      AC_DEFINE([HAVE_XINPUT_2],
724                                                [1],
725                                                [Define to 1 if XI2 is available])
726                                    ],
727                                    [
728                                      have_xinput2=no
729                                      AC_DEFINE([HAVE_XINPUT],
730                                                [1],
731                                                [Define to 1 if XInput is available])
732                                    ])
733
734                   X11_LIBS="$X11_LIBS $XINPUT_LIBS"
735                   X11_PC_FILES="$X11_PC_FILES xi"
736                   X11_EXTS="$X11_EXTS xi"
737                 ],
738
739                 [no],
740                 [have_xinput2=no],
741
742                 [*],
743                 [AC_MSG_ERROR([Invalid argument for --enable-xinput])]
744         )
745
746         # XKB
747         clutter_save_CPPFLAGS="$CPPFLAGS"
748         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
749
750         clutter_save_LIBS="$LIBS"
751         LIBS="$LIBS $X11_LIBS"
752
753         have_xkb=no
754         AC_CHECK_FUNC([XkbQueryExtension],
755                       [
756                         AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
757                         have_xkb=yes
758
759                         X11_EXTS="$X11_EXTS xkb"
760                       ])
761
762         CPPFLAGS="$clutter_save_CPPFLAGS"
763         LIBS="$clutter_save_LIBS"
764
765         x11_tests=yes
766         BACKEND_PC_FILES="$BACKEND_PC_FILES $X11_PC_FILES"
767         FLAVOUR_LIBS="$FLAVOUR_LIBS $X11_LIBS"
768         FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $X11_CFLAGS"
769       ]
770 )
771
772 AM_CONDITIONAL([BUILD_XI2], [test "x$have_xinput2" = "xyes"])
773 AM_CONDITIONAL([X11_TESTS], [test "x$x11_tests" = "xyes"])
774
775 X11_EXTS=${X11_EXTS#* }
776
777 AC_CACHE_SAVE
778
779 dnl === Enable debug level ====================================================
780
781 m4_define([debug_default], [m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum])])
782 AC_ARG_ENABLE([debug],
783               [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
784                               [Control Clutter debugging level @<:@default=]debug_default[@:>@])],
785               [],
786               [enable_debug=debug_default])
787
788 AS_CASE([$enable_debug],
789
790         [yes],
791         [
792           test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
793           CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
794         ],
795
796         [minimum],
797         [CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"],
798
799         [no],
800         [CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
801
802         [AC_MSG_ERROR([Unknown argument for --enable-debug])]
803 )
804
805 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
806
807 dnl === Enable deprecation guards ==================================================
808
809 m4_define([deprecated_default],
810           [m4_if(m4_eval(clutter_minor_version % 2),
811                  [1],
812                  [no],
813                  [yes])])
814
815 AC_ARG_ENABLE([deprecated],
816               [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@],
817                               [Whether deprecated symbols should be disabled when compiling Clutter @<:@default=]deprecated_default[@:>@])],
818               [],
819               [enable_deprecated=deprecated_default])
820
821 AS_CASE([$enable_deprecated],
822
823         [no],
824         [
825           CLUTTER_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED"
826         ],
827
828         [yes],
829         [
830           CLUTTER_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS"
831         ],
832
833         [AC_MSG_ERROR([Unknown argument for --enable-deprecated])]
834 )
835
836 AC_SUBST([CLUTTER_DEPRECATED_CFLAGS])
837
838
839 dnl === Conformance test suite ================================================
840
841 AC_ARG_ENABLE([conformance],
842               [AS_HELP_STRING([--enable-conformance=@<:@no/yes@:>@],
843                               [Build conformance test suite @<:@default=yes@:>@])],
844               [],
845               [enable_conformance=yes])
846
847 AM_CONDITIONAL([BUILD_TESTS], [test "x$enable_conformance" = "xyes"])
848
849 dnl === Profiling =============================================================
850
851 m4_define([profile_default], [no])
852 AC_ARG_ENABLE(profile,
853               AS_HELP_STRING([--enable-profile=@<:@no/yes@:>@],
854                              [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@:>@]),
855               [],
856               [enable_profile=profile_default])
857
858 AS_CASE([$enable_profile],
859
860         [yes],
861         [
862           AS_IF([test "x$GCC" = "xyes"],
863                 [
864                   PKG_CHECK_MODULES([PROFILE_DEP], [uprof-0.3])
865                   CLUTTER_PROFILE_CFLAGS="-DCLUTTER_ENABLE_PROFILE $PROFILE_DEP_CFLAGS"
866                   CLUTTER_PROFILE_LDFLAGS="$PROFILE_DEP_LIBS"
867
868                   AS_IF([test "x$enable_debug" = "xyes"], [CLUTTER_PROFILE_CFLAGS+=" -DUPROF_DEBUG"])
869                 ],
870                 [
871                   AC_MSG_ERROR([--enable-profile is currently only supported if using GCC])
872                 ])
873         ],
874
875         [no],
876         [
877           CLUTTER_PROFILE_CFLAGS=""
878           CLUTTER_PROFILE_LDFLAGS=""
879         ],
880
881         [*], [AC_MSG_ERROR([Invalid value for --enable-profile])]
882 )
883 AM_CONDITIONAL(PROFILE, test "x$enable_profile" != "xno")
884 AC_SUBST(CLUTTER_PROFILE_CFLAGS)
885 AC_SUBST(CLUTTER_PROFILE_LDFLAGS)
886
887 dnl === Coverage report =======================================================
888
889 AC_PATH_PROG([GCOV], [gcov], [enable_gcov=no])
890
891 AC_MSG_CHECKING([whether to build with gcov testing])
892
893 AC_ARG_ENABLE([gcov],
894               [AS_HELP_STRING([--enable-gcov],
895                               [Whether to enable coverage testing (requires gcc
896 and gcov)])],
897               [],
898               [enable_gcov=no])
899
900 AS_IF([test "x$enable_gcov" = "xyes" && test "x$GCC" = "xyes"],
901       [
902         AS_IF([test "x$enable_conformance" = "xno"],
903               [AC_MSG_WARN([Conformance test suite is disabled, the coverage report will be incomplete])],
904               [AC_MSG_RESULT([yes])]
905         )
906
907         GCOV_CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
908         GCOV_LDFLAGS="-lgcov"
909       ],
910       [AC_MSG_RESULT([no])]
911 )
912
913 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" = "xyes"])
914 AC_SUBST([GCOV_CFLAGS])
915 AC_SUBST([GCOV_LDFLAGS])
916
917 dnl === Enable strict compiler flags ==========================================
918
919 # use strict compiler flags only when building from git; the rules for
920 # distcheck will take care of turning this on when making a release
921 m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_micro_version % 2), [1], [yes], [no])])
922 AC_ARG_ENABLE([maintainer-flags],
923               [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@],
924                               [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
925               [],
926               [enable_maintainer_flags=maintainer_flags_default])
927
928 MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS
929                            -Wall -Wcast-align -Wuninitialized
930                            -Wno-strict-aliasing -Wempty-body -Wformat
931                            -Wformat-security -Winit-self
932                            -Wdeclaration-after-statement -Wvla
933                            -Wpointer-arith"
934
935 AS_CASE([$enable_maintainer_flags],
936         [yes],
937         [
938           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
939         ],
940
941         [no],
942         [
943         ],
944
945         [error],
946         [
947           MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
948           AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
949         ],
950
951         [*],
952         [AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
953 )
954
955 # strip leading spaces
956 MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#*  }
957 AC_SUBST(MAINTAINER_CFLAGS)
958
959 dnl === Dependencies, compiler flags and linker libraries =====================
960 # strip leading space
961 BACKEND_PC_FILES=${BACKEND_PC_FILES#* }
962
963 CLUTTER_REQUIRES="$CLUTTER_BASE_PC_FILES $BACKEND_PC_FILES"
964 PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
965 AC_SUBST(CLUTTER_REQUIRES)
966
967 AS_IF([test "x$CLUTTER_BASE_PC_FILES_PRIVATE" != "x" && test "x$BACKEND_PC_FILES_PRIVATE" != "x"],
968       [
969         CLUTTER_REQUIRES_PRIVATE="$CLUTTER_BASE_PC_FILES_PRIVATE $BACKEND_PC_FILES_PRIVATE"
970         PKG_CHECK_MODULES(CLUTTER_DEPS_PRIVATE, [$CLUTTER_REQUIRES_PRIVATE])
971       ],
972       [
973         CLUTTER_REQUIRES_PRIVATE=""
974         CLUTTER_DEPS_PRIVATE_CFLAGS=""
975         CLUTTER_DEPS_PRIVATE_LIBS=""
976       ])
977
978 AC_SUBST(CLUTTER_REQUIRES_PRIVATE)
979
980 CLUTTER_CFLAGS="$FLAVOUR_CFLAGS $CLUTTER_DEPS_CFLAGS $CLUTTER_PROFILE_CFLAGS $GLIB_CFLAGS"
981 CLUTTER_LIBS="$FLAVOUR_LIBS $CLUTTER_DEPS_LIBS $CLUTTER_PROFILE_LDFLAGS $GLIB_LIBS"
982 AC_SUBST(CLUTTER_CFLAGS)
983 AC_SUBST(CLUTTER_LIBS)
984
985
986 dnl === GObject-Introspection check ===========================================
987
988 GOBJECT_INTROSPECTION_CHECK([gi_req_version])
989
990 dnl === GTK Doc check =========================================================
991
992 GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
993
994 # we don't want to build the documentation from a Git clone unless we
995 # explicitly tell configure to do so; this allows avoiding to recurse into
996 # the documentation directory when building Clutter inside Poky for a
997 # target device that doesn't have gtk-doc installed. for reference
998 # see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
999 #
1000 # we use autogen.sh as it exists only inside the Git clones, and it
1001 # is not packaged into tarballs.
1002 AM_CONDITIONAL([BUILD_GTK_DOC], [test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
1003
1004 # prefixes for fixing gtk-doc references
1005 CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
1006 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1007 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1008 COGL_PREFIX="`$PKG_CONFIG --variable=prefix cogl-1.0`"
1009 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1010 AC_SUBST(CAIRO_PREFIX)
1011 AC_SUBST(GLIB_PREFIX)
1012 AC_SUBST(PANGO_PREFIX)
1013 AC_SUBST(COGL_PREFIX)
1014 AC_SUBST(ATK_PREFIX)
1015
1016 dnl === Manual ================================================================
1017
1018 AC_ARG_ENABLE([docs],
1019               [AS_HELP_STRING([--enable-docs=@<:@no/yes@:>@],
1020                               [Build optional documentation; requires xsltproc and jw.])],
1021               [enable_docs=$enableval],
1022               [enable_docs=no])
1023
1024 enable_pdfs=no
1025 AS_IF([test "x$enable_docs" = "xyes"],
1026       [
1027         AC_PATH_PROG(JW, [jw], [no])
1028         AS_IF([test "x$JW" = "xno"],
1029               [
1030                 AC_MSG_WARN([jw not found; pdf generation has been disabled])
1031               ],
1032               [enable_pdfs=yes])
1033
1034         AC_PATH_PROG(XSLTPROC, [xsltproc], [no])
1035         AS_IF([test "x$XSLTPROC" = "xno"],
1036               [
1037                 AC_MSG_ERROR([xsltproc not found])
1038               ])
1039       ]
1040 )
1041
1042 AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
1043 AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
1044
1045 dnl === I18N ==================================================================
1046
1047 AM_GNU_GETTEXT_VERSION([0.17])
1048 AM_GNU_GETTEXT([external])
1049
1050 GETTEXT_PACKAGE="clutter-1.0"
1051 AC_SUBST(GETTEXT_PACKAGE)
1052 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
1053                    ["$GETTEXT_PACKAGE"],
1054                    [The prefix for our gettext translation domains.])
1055 AS_ALL_LINGUAS
1056
1057 dnl ===========================================================================
1058
1059 AC_CONFIG_FILES([
1060         Makefile
1061         config.h.win32
1062         README
1063
1064         build/Makefile
1065         build/autotools/Makefile
1066         build/mingw/Makefile
1067         build/win32/Makefile
1068         build/win32/vs9/Makefile
1069         build/win32/vs10/Makefile
1070
1071         clutter/Makefile
1072         clutter/clutter-config.h
1073         clutter/clutter-version.h
1074         clutter/clutter-version.h.win32
1075         clutter/clutter-$CLUTTER_API_VERSION.pc:clutter/clutter.pc.in
1076
1077         clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
1078
1079         clutter/cex100/clutter-cex100.h
1080
1081         tests/Makefile
1082         tests/accessibility/Makefile
1083         tests/conform/Makefile
1084         tests/conform/test-launcher.sh
1085         tests/data/Makefile
1086         tests/interactive/Makefile
1087         tests/interactive/wrapper.sh
1088         tests/micro-bench/Makefile
1089         tests/performance/Makefile
1090
1091         doc/Makefile
1092         doc/reference/Makefile
1093         doc/reference/clutter/Makefile
1094         doc/reference/clutter/clutter-docs.xml
1095         doc/reference/cally/Makefile
1096         doc/reference/cally/cally-docs.xml
1097         doc/common/Makefile
1098         doc/cookbook/Makefile
1099         doc/cookbook/clutter-cookbook.xml
1100         doc/cookbook/examples/Makefile
1101
1102         po/Makefile.in
1103 ])
1104
1105 AC_OUTPUT
1106
1107 dnl === Summary ===============================================================
1108
1109 echo ""
1110 echo "Clutter - $VERSION (${CLUTTER_RELEASE_STATUS})"
1111
1112 # Global flags
1113 echo ""
1114 echo " • Global:"
1115 echo "        Prefix: ${prefix}"
1116 echo "        Libdir: ${libdir}"
1117 echo "        Sysconfdir: ${sysconfdir}"
1118
1119 # Compiler/Debug related flags
1120 echo ""
1121 echo " • Compiler options:"
1122 echo "        Clutter debug level: ${enable_debug}"
1123 echo "        Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
1124 echo "        Profiling enabled: ${enable_profile}"
1125 echo "        Enable coverage tests: ${enable_gcov}"
1126 echo "        Enable deprecated symbols: ${enable_deprecated}"
1127
1128 # Documentation
1129 echo ""
1130 echo " • Documentation:"
1131 echo "        Build API Reference: ${enable_gtk_doc}"
1132 echo "        Build Additional Documentation: ${enable_docs} (Generate PDF: ${enable_pdfs})"
1133
1134 # Miscellaneous
1135 echo ""
1136 echo " • Extra:"
1137 echo "        Build introspection data: ${enable_introspection}"
1138 echo "        Build conformance test suite: ${enable_conformance}"
1139 echo "        Build X11-specific tests: ${x11_tests}"
1140
1141 # Clutter backend related flags
1142 echo ""
1143 echo " • Clutter Backends:"
1144
1145 if test "x$experimental_backend" = "xno"; then
1146 echo "        Windowing systems: ${CLUTTER_BACKENDS}"
1147 else
1148 echo "        Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
1149 fi
1150
1151 if test "x$experimental_input_backend" = "xno"; then
1152 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS}"
1153 else
1154 echo "        Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
1155 fi
1156
1157 if test "x$SUPPORT_X11" = "x1"; then
1158 echo ""
1159 echo "     - X11 backend options:"
1160 echo "        Enabled extensions: ${X11_EXTS}"
1161 echo "        Build X11-specific tests: ${x11_tests}"
1162 fi
1163
1164 if test "x$SUPPORT_CEX100" = "x1"; then
1165 echo ""
1166 echo "     - CEx100 backend options (WARNING: Experimental):"
1167 echo "        libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
1168 fi
1169
1170 if test "x$SUPPORT_WAYLAND_COMPOSITOR" = "x1"; then
1171 echo ""
1172 echo "     - Wayland compositor support enabled (WARNING: Experimental)"
1173 fi
1174
1175 echo ""
1176
1177 # General warning about experimental features
1178 if test "x$experimental_backend" = "xyes"; then
1179 echo ""
1180 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1181 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1182 echo ""
1183 echo "  The stability of your build might be affected by one or more"
1184 echo "  experimental backends or experimental and unsupported features"
1185 echo ""
1186 echo "*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*"
1187 echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
1188 echo ""
1189 fi