1AUTOMAKE_OPTIONS = subdir-objects
2
3include $(top_srcdir)/build-aux/autotools/Makefile.am.silent
4
5# preamble
6NULL =
7
8# common definitions
9CLEANFILES =
10DISTCLEANFILES =
11EXTRA_DIST =
12BUILT_SOURCES =
13
14lib_LTLIBRARIES =
15
16AM_CPPFLAGS = \
17	-DCLUTTER_PREFIX=\""$(prefix)"\"	\
18	-DCLUTTER_LIBDIR=\""$(libdir)"\"	\
19	-DCLUTTER_DATADIR=\""$(datadir)"\"	\
20	-DCLUTTER_LOCALEDIR=\""$(localedir)"\"	\
21	-DCLUTTER_SYSCONFDIR=\""$(sysconfdir)"\" \
22	-DCLUTTER_COMPILATION=1			\
23	-DCOGL_ENABLE_EXPERIMENTAL_API		\
24	-DCOGL_DISABLE_DEPRECATION_WARNINGS	\
25	-DG_LOG_DOMAIN=\"Clutter\" 		\
26	-I$(top_srcdir) 			\
27	-I$(top_srcdir)/clutter			\
28	-I$(top_srcdir)/clutter/cally		\
29	-I$(top_builddir)			\
30	-I$(top_builddir)/clutter		\
31	$(CLUTTER_DEPRECATED_CFLAGS)		\
32	$(CLUTTER_DEBUG_CFLAGS)			\
33	$(CLUTTER_HIDDEN_VISIBILITY_CFLAGS)	\
34	$(NULL)
35
36AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
37
38# these are the gir files we generate using g-ir-scanner
39INTROSPECTION_GIRS =
40
41# the base include path for headers
42clutter_base_includedir = $(includedir)/clutter-$(CLUTTER_API_VERSION)
43clutter_includedir = $(clutter_base_includedir)/clutter
44clutter_deprecateddir = $(clutter_base_includedir)/clutter/deprecated
45
46# pkg-config files
47pc_files =
48
49# common sources - please, keep these sorted alphabetically
50source_h =					\
51	clutter-action.h		\
52	clutter-actor-meta.h		\
53	clutter-actor.h		\
54	clutter-align-constraint.h	\
55	clutter-animatable.h          \
56	clutter-backend.h		\
57	clutter-bind-constraint.h	\
58	clutter-binding-pool.h 	\
59	clutter-bin-layout.h		\
60	clutter-blur-effect.h		\
61	clutter-box-layout.h		\
62	clutter-brightness-contrast-effect.h	\
63	clutter-cairo.h		\
64	clutter-canvas.h		\
65	clutter-child-meta.h		\
66	clutter-click-action.h	\
67	clutter-cogl-compat.h 	\
68	clutter-clone.h		\
69	clutter-color-static.h	\
70	clutter-color.h		\
71	clutter-colorize-effect.h	\
72	clutter-constraint.h		\
73	clutter-container.h		\
74	clutter-content.h		\
75	clutter-deform-effect.h	\
76	clutter-deprecated.h		\
77	clutter-desaturate-effect.h	\
78	clutter-device-manager.h	\
79	clutter-drag-action.h		\
80	clutter-drop-action.h		\
81	clutter-effect.h		\
82	clutter-enums.h		\
83	clutter-event.h 		\
84	clutter-feature.h 		\
85	clutter-fixed-layout.h	\
86	clutter-flow-layout.h		\
87	clutter-gesture-action.h 	\
88	clutter-grid-layout.h 	\
89	clutter-group.h 		\
90	clutter-image.h		\
91	clutter-input-device.h	\
92        clutter-interval.h            \
93	clutter-keyframe-transition.h	\
94	clutter-keysyms.h 		\
95	clutter-layout-manager.h	\
96	clutter-layout-meta.h		\
97	clutter-macros.h		\
98	clutter-main.h		\
99	clutter-offscreen-effect.h	\
100	clutter-page-turn-effect.h	\
101	clutter-paint-nodes.h		\
102	clutter-paint-node.h		\
103	clutter-pan-action.h		\
104	clutter-path-constraint.h	\
105	clutter-path.h		\
106	clutter-property-transition.h	\
107	clutter-rotate-action.h	\
108	clutter-script.h		\
109	clutter-scriptable.h		\
110	clutter-scroll-actor.h	\
111	clutter-settings.h		\
112	clutter-shader-effect.h	\
113	clutter-shader-types.h	\
114	clutter-swipe-action.h	\
115	clutter-snap-constraint.h	\
116	clutter-stage.h 		\
117	clutter-stage-manager.h	\
118	clutter-tap-action.h		\
119	clutter-test-utils.h		\
120	clutter-texture.h 		\
121	clutter-text.h		\
122	clutter-text-buffer.h		\
123	clutter-timeline.h 		\
124	clutter-transition-group.h	\
125	clutter-transition.h		\
126	clutter-types.h		\
127	clutter-units.h 		\
128	clutter-zoom-action.h		\
129	$(NULL)
130
131source_c = \
132	clutter-action.c		\
133	clutter-actor-box.c		\
134	clutter-actor-meta.c		\
135	clutter-actor.c		\
136	clutter-align-constraint.c	\
137	clutter-animatable.c		\
138	clutter-backend.c		\
139	clutter-base-types.c		\
140	clutter-bezier.c		\
141	clutter-bind-constraint.c	\
142	clutter-binding-pool.c	\
143	clutter-bin-layout.c		\
144	clutter-blur-effect.c		\
145	clutter-box-layout.c		\
146	clutter-brightness-contrast-effect.c	\
147	clutter-cairo.c		\
148	clutter-canvas.c		\
149	clutter-child-meta.c		\
150	clutter-click-action.c	\
151	clutter-clone.c		\
152	clutter-color.c 		\
153	clutter-colorize-effect.c	\
154	clutter-constraint.c		\
155	clutter-container.c		\
156	clutter-content.c		\
157	clutter-deform-effect.c	\
158	clutter-desaturate-effect.c	\
159	clutter-device-manager.c	\
160	clutter-drag-action.c		\
161	clutter-drop-action.c		\
162	clutter-effect.c		\
163	clutter-event.c 		\
164	clutter-feature.c 		\
165	clutter-fixed-layout.c	\
166	clutter-flatten-effect.c	\
167	clutter-flow-layout.c		\
168	clutter-gesture-action.c 	\
169	clutter-grid-layout.c 	\
170	clutter-image.c		\
171	clutter-input-device.c	\
172	clutter-interval.c            \
173	clutter-keyframe-transition.c	\
174	clutter-keysyms-table.c	\
175	clutter-layout-manager.c	\
176	clutter-layout-meta.c		\
177	clutter-main.c 		\
178	clutter-master-clock.c	\
179	clutter-master-clock-default.c	\
180	clutter-offscreen-effect.c	\
181	clutter-page-turn-effect.c	\
182	clutter-paint-nodes.c		\
183	clutter-paint-node.c		\
184	clutter-pan-action.c		\
185	clutter-path-constraint.c	\
186	clutter-path.c		\
187	clutter-property-transition.c	\
188	clutter-rotate-action.c	\
189	clutter-script.c		\
190	clutter-script-parser.c	\
191	clutter-scriptable.c		\
192	clutter-scroll-actor.c	\
193	clutter-settings.c		\
194	clutter-shader-effect.c	\
195	clutter-shader-types.c	\
196	clutter-swipe-action.c	\
197	clutter-snap-constraint.c	\
198	clutter-stage.c		\
199	clutter-stage-manager.c	\
200	clutter-stage-window.c	\
201	clutter-tap-action.c		\
202	clutter-test-utils.c		\
203	clutter-text.c		\
204	clutter-text-buffer.c		\
205	clutter-transition-group.c	\
206	clutter-transition.c		\
207	clutter-timeline.c 		\
208	clutter-units.c		\
209	clutter-util.c 		\
210	clutter-paint-volume.c 	\
211	clutter-zoom-action.c 	\
212	$(NULL)
213
214# private headers; these should not be distributed or introspected
215source_h_priv = \
216	clutter-actor-meta-private.h		\
217	clutter-actor-private.h			\
218	clutter-backend-private.h		\
219	clutter-bezier.h			\
220	clutter-constraint-private.h		\
221	clutter-content-private.h		\
222	clutter-debug.h 			\
223	clutter-device-manager-private.h	\
224	clutter-easing.h			\
225	clutter-effect-private.h		\
226	clutter-event-translator.h		\
227	clutter-event-private.h			\
228	clutter-flatten-effect.h		\
229	clutter-gesture-action-private.h	\
230	clutter-id-pool.h 			\
231	clutter-master-clock.h			\
232	clutter-master-clock-default.h		\
233	clutter-offscreen-effect-private.h	\
234	clutter-paint-node-private.h		\
235	clutter-paint-volume-private.h		\
236	clutter-private.h 			\
237	clutter-script-private.h		\
238	clutter-settings-private.h		\
239	clutter-stage-manager-private.h		\
240	clutter-stage-private.h			\
241	clutter-stage-window.h			\
242	$(NULL)
243
244# private source code; these should not be introspected
245source_c_priv = \
246	clutter-easing.c		\
247	clutter-event-translator.c	\
248	clutter-id-pool.c 		\
249	$(NULL)
250
251# deprecated installed headers
252deprecated_h = \
253	deprecated/clutter-actor.h			\
254	deprecated/clutter-alpha.h 			\
255	deprecated/clutter-animatable.h		\
256	deprecated/clutter-animation.h		\
257	deprecated/clutter-animator.h			\
258	deprecated/clutter-backend.h			\
259	deprecated/clutter-behaviour.h 		\
260	deprecated/clutter-behaviour-depth.h 		\
261	deprecated/clutter-behaviour-ellipse.h	\
262	deprecated/clutter-behaviour-opacity.h 	\
263	deprecated/clutter-behaviour-path.h 		\
264	deprecated/clutter-behaviour-rotate.h 	\
265	deprecated/clutter-behaviour-scale.h 		\
266	deprecated/clutter-bin-layout.h		\
267	deprecated/clutter-box.h			\
268	deprecated/clutter-cairo-texture.h		\
269	deprecated/clutter-container.h		\
270	deprecated/clutter-fixed.h			\
271	deprecated/clutter-frame-source.h		\
272	deprecated/clutter-group.h			\
273	deprecated/clutter-input-device.h		\
274	deprecated/clutter-keysyms.h			\
275	deprecated/clutter-list-model.h			\
276	deprecated/clutter-main.h			\
277	deprecated/clutter-media.h			\
278	deprecated/clutter-model.h			\
279	deprecated/clutter-rectangle.h		\
280	deprecated/clutter-score.h 			\
281	deprecated/clutter-shader.h 			\
282	deprecated/clutter-stage-manager.h		\
283	deprecated/clutter-stage.h			\
284	deprecated/clutter-state.h			\
285	deprecated/clutter-table-layout.h		\
286	deprecated/clutter-texture.h			\
287	deprecated/clutter-timeline.h 		\
288	deprecated/clutter-timeout-pool.h 		\
289	deprecated/clutter-util.h 			\
290	$(NULL)
291
292# deprecated source code
293deprecated_c = \
294	deprecated/clutter-actor-deprecated.c		\
295	deprecated/clutter-alpha.c 			\
296	deprecated/clutter-animation.c		\
297	deprecated/clutter-animator.c			\
298	deprecated/clutter-behaviour.c 		\
299	deprecated/clutter-behaviour-depth.c		\
300	deprecated/clutter-behaviour-ellipse.c	\
301	deprecated/clutter-behaviour-opacity.c	\
302	deprecated/clutter-behaviour-path.c		\
303	deprecated/clutter-behaviour-rotate.c		\
304	deprecated/clutter-behaviour-scale.c		\
305	deprecated/clutter-box.c			\
306	deprecated/clutter-cairo-texture.c		\
307	deprecated/clutter-fixed.c			\
308	deprecated/clutter-frame-source.c		\
309	deprecated/clutter-group.c 			\
310	deprecated/clutter-input-device-deprecated.c	\
311	deprecated/clutter-layout-manager-deprecated.c \
312	deprecated/clutter-list-model.c			\
313	deprecated/clutter-media.c			\
314	deprecated/clutter-model.c			\
315	deprecated/clutter-rectangle.c 		\
316	deprecated/clutter-score.c 			\
317	deprecated/clutter-shader.c 			\
318	deprecated/clutter-state.c			\
319	deprecated/clutter-table-layout.c		\
320	deprecated/clutter-texture.c 			\
321	deprecated/clutter-timeout-pool.c		\
322	$(NULL)
323
324# deprecated private headers; these should not be installed
325deprecated_h_priv = \
326	deprecated/clutter-model-private.h	\
327	deprecated/clutter-timeout-interval.h	\
328	$(NULL)
329
330# deprecated private source code; these should not be introspected
331deprecated_c_priv = \
332	deprecated/clutter-timeout-interval.c	\
333	$(NULL)
334
335# built sources
336built_source_c = \
337	clutter-enum-types.c			\
338	clutter-marshal.c			\
339	$(NULL)
340
341# built headers
342built_source_h = \
343	clutter-enum-types.h			\
344	clutter-marshal.h			\
345	$(NULL)
346
347# config header
348DISTCLEANFILES += clutter-config.h
349EXTRA_DIST += clutter-config.h.in
350
351# win32 config header
352EXTRA_DIST += \
353	config.h.win32.in	\
354	config.h.win32		\
355	$(NULL)
356
357# version header
358DISTCLEANFILES += clutter-version.h
359EXTRA_DIST += clutter-version.h.in clutter-version.h
360
361# key symbol update script
362EXTRA_DIST += clutter-keysyms-update.pl
363
364pc_files += clutter-$(CLUTTER_API_VERSION).pc
365
366# in order to be compatible with Clutter < 1.10, when we shipped a single
367# shared library whose name was determined by the single backend it
368# supported, we need to install symbolic links so that existing applications
369# using Clutter won't break in the Brave New World of multi-backend support
370# in the same shared object.
371compat_libs =
372
373# backends source listings
374#
375#   backend_source_c := source code
376#   backend_source_h := installed public headers
377#   backend_source_c_priv := source that should not be scanned by g-i
378#   backend_source_h_priv := private headers
379#   backend_source_built := built sources
380#
381backend_source_c =
382backend_source_h =
383backend_source_c_priv =
384backend_source_h_priv =
385backend_source_built =
386
387# X11 backend rules
388x11_source_c = \
389	x11/clutter-backend-x11.c		\
390	x11/clutter-device-manager-core-x11.c	\
391	x11/clutter-event-x11.c		\
392	x11/clutter-input-device-core-x11.c	\
393	x11/clutter-keymap-x11.c		\
394	x11/clutter-stage-x11.c		\
395	x11/clutter-x11-texture-pixmap.c	\
396	$(NULL)
397
398x11_source_h = \
399	x11/clutter-x11.h			\
400	x11/clutter-x11-texture-pixmap.h	\
401	$(NULL)
402
403x11_source_h_priv = \
404	x11/clutter-backend-x11.h		\
405	x11/clutter-device-manager-core-x11.h	\
406	x11/clutter-input-device-core-x11.h	\
407	x11/clutter-keymap-x11.h		\
408	x11/clutter-settings-x11.h		\
409	x11/clutter-stage-x11.h		\
410	$(NULL)
411
412x11_source_c_priv = \
413	x11/xsettings/xsettings-client.c	\
414	x11/xsettings/xsettings-client.h	\
415	x11/xsettings/xsettings-common.c	\
416	x11/xsettings/xsettings-common.h	\
417	$(NULL)
418
419if BUILD_XI2
420x11_source_c += \
421	x11/clutter-device-manager-xi2.c	\
422	x11/clutter-input-device-xi2.c	\
423	$(NULL)
424
425x11_source_h_priv += \
426	x11/clutter-device-manager-xi2.h	\
427	x11/clutter-input-device-xi2.h	\
428	$(NULL)
429endif # BUILD_XI2
430
431if SUPPORT_X11
432backend_source_h += $(x11_source_h)
433backend_source_c += $(x11_source_c)
434backend_source_h_priv += $(x11_source_h_priv)
435backend_source_c_priv += $(x11_source_c_priv)
436
437# the list of files we want to introspect on X11
438x11_introspection = $(x11_source_c) $(x11_source_h)
439
440clutterx11_includedir = $(clutter_includedir)/x11
441clutterx11_include_HEADERS = $(x11_source_h)
442
443clutter-x11-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
444	$(QUIET_GEN)cp -f $< $(@F)
445
446pc_files += clutter-x11-$(CLUTTER_API_VERSION).pc
447endif # SUPPORT_X11
448
449# Shared cogl backend files
450cogl_source_h =
451
452cogl_source_c = \
453	cogl/clutter-stage-cogl.c	\
454	$(NULL)
455
456cogl_source_h_priv = \
457	cogl/clutter-stage-cogl.h	\
458	$(NULL)
459
460cogl_source_c_priv =
461
462if USE_COGL
463backend_source_h += $(cogl_source_h)
464backend_source_c += $(cogl_source_c)
465backend_source_h_priv += $(cogl_source_h_priv)
466backend_source_c_priv += $(cogl_source_c_priv)
467
468# pkg-config file for the cogl meta-backend
469clutter-cogl-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
470	$(QUIET_GEN)cp -f $< $(@F)
471
472pc_files += clutter-cogl-$(CLUTTER_API_VERSION).pc
473endif
474
475# For compatibility with the old GLX backend
476#
477# Note: there wasn't actually anything GLX specific so we can add
478# the compatibility if clutter supports x11
479glx_source_c = x11/clutter-glx-texture-pixmap.c
480glx_source_h = x11/clutter-glx-texture-pixmap.h \
481	       x11/clutter-glx.h
482
483if SUPPORT_X11
484backend_source_h += $(glx_source_h)
485backend_source_c += $(glx_source_c)
486
487clutterglx_includedir = $(clutter_includedir)/glx
488clutterglx_include_HEADERS = $(glx_source_h)
489
490clutter-glx-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
491	$(QUIET_GEN)cp -f $< $(@F)
492
493pc_files += clutter-glx-$(CLUTTER_API_VERSION).pc
494
495compat_libs += \
496	libclutter-glx-$(CLUTTER_API_VERSION).so \
497	$(NULL)
498endif
499
500# GDK backend rules
501gdk_source_c = \
502	gdk/clutter-backend-gdk.c 		\
503	gdk/clutter-device-manager-gdk.c 	\
504	gdk/clutter-event-gdk.c 		\
505	gdk/clutter-input-device-gdk.c 	\
506	gdk/clutter-master-clock-gdk.c 	\
507	gdk/clutter-stage-gdk.c		\
508	$(NULL)
509
510gdk_source_h = \
511	gdk/clutter-gdk.h			\
512	$(NULL)
513
514gdk_source_h_priv = \
515	gdk/clutter-settings-gdk.h		\
516	gdk/clutter-backend-gdk.h 		\
517	gdk/clutter-device-manager-gdk.h 	\
518	gdk/clutter-input-device-gdk.h 	\
519	gdk/clutter-master-clock-gdk.h 	\
520	gdk/clutter-stage-gdk.h		\
521	$(NULL)
522
523if SUPPORT_GDK
524backend_source_h += $(gdk_source_h)
525backend_source_c += $(gdk_source_c)
526backend_source_h_priv += $(gdk_source_h_priv)
527
528cluttergdk_includedir = $(clutter_includedir)/gdk
529cluttergdk_include_HEADERS = $(gdk_source_h)
530
531clutter-gdk-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
532	$(QUIET_GEN)cp -f $< $(@F)
533
534pc_files += clutter-gdk-$(CLUTTER_API_VERSION).pc
535
536gdk_introspection = $(gdk_source_c) $(gdk_source_h)
537endif # SUPPORT_GDK
538
539# Windows backend rules
540win32_source_c = \
541	win32/clutter-backend-win32.c		\
542	win32/clutter-device-manager-win32.c	\
543	win32/clutter-event-win32.c		\
544	win32/clutter-stage-win32.c		\
545	$(NULL)
546
547win32_source_h = \
548	win32/clutter-win32.h			\
549	$(NULL)
550
551win32_source_h_priv = \
552	win32/clutter-backend-win32.h		\
553	win32/clutter-device-manager-win32.h	\
554	win32/clutter-stage-win32.h		\
555	$(NULL)
556
557if SUPPORT_WIN32
558# Ideally this resources stuff would go in win32/ but libtool doesn't
559# seem to pass on the -Wl argument when linking a convenience library
560# so we need to do it here as part of linking the dll. libtool also
561# won't let you link against the .o directly because it wants you to
562# link against libtool objects for dynamic libraries.
563.rc.o :
564	mkdir -p win32
565	$(WINDRES) -I$(srcdir)/win32 $< $@
566
567win32/resources.o : win32/invisible-cursor.cur
568
569win32_resources = win32/resources.o
570win32_resources_ldflag = -Wl,win32/resources.o
571
572backend_source_h += $(win32_source_h)
573backend_source_c += $(win32_source_c)
574backend_source_h_priv += $(win32_source_h_priv)
575
576clutterwin_includedir = $(clutter_includedir)/win32
577clutterwin_include_HEADERS = $(win32_source_h)
578
579clutter-win32-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
580	$(QUIET_GEN)cp -f $< $(@F)
581
582pc_files += clutter-win32-$(CLUTTER_API_VERSION).pc
583endif # SUPPORT_WIN32
584
585EXTRA_DIST += \
586	win32/invisible-cursor.cur 	\
587	win32/resources.rc		\
588	$(NULL)
589
590egl_tslib_h = tslib/clutter-event-tslib.h
591egl_tslib_c = tslib/clutter-event-tslib.c
592
593if USE_TSLIB
594backend_source_c_priv += $(egl_tslib_c)
595backend_source_h_priv += $(egl_tslib_h)
596endif # SUPPORT_TSLIB
597
598evdev_c_priv = \
599	evdev/clutter-device-manager-evdev.c	\
600	evdev/clutter-input-device-evdev.c	\
601	evdev/clutter-event-evdev.c		\
602	$(NULL)
603evdev_h_priv = \
604	evdev/clutter-device-manager-evdev.h	\
605	evdev/clutter-input-device-evdev.h	\
606	$(NULL)
607evdev_h = evdev/clutter-evdev.h
608
609if USE_EVDEV
610backend_source_c_priv += $(evdev_c_priv)
611backend_source_h_priv += $(evdev_h_priv)
612backend_source_h += $(evdev_h)
613
614clutterevdev_includedir = $(clutter_includedir)/evdev
615clutterevdev_include_HEADERS = $(evdev_h)
616endif # SUPPORT_EVDEV
617
618if NEED_XKB_UTILS
619backend_source_c += evdev/clutter-xkb-utils.c
620backend_source_h_priv += evdev/clutter-xkb-utils.h
621endif
622
623cex_source_h_priv = cex100/clutter-backend-cex100.h
624cex_source_c = cex100/clutter-backend-cex100.c
625cex_h = cex100/clutter-cex100.h
626BUILT_SOURCES += $(cex_h)
627EXTRA_DIST += $(srcdir)/$(cex_h).in
628
629if SUPPORT_CEX100
630backend_source_h += $(cex_h)
631backend_source_c += $(cex_source_c)
632backend_source_h_priv += $(cex_source_h_priv)
633
634cluttercex100_includedir = $(clutter_includedir)/cex100
635cluttercex100_include_HEADERS = $(cex_h)
636
637clutter-cex100-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
638	$(QUIET_GEN)cp -f $< $(@F)
639
640pc_files += clutter-cex100-$(CLUTTER_API_VERSION).pc
641
642compat_libs += \
643	libclutter-cex100-$(CLUTTER_API_VERSION).so \
644	$(NULL)
645endif # SUPPORT_CEX100
646
647# EGL backend rules
648egl_source_h = \
649	egl/clutter-egl-headers.h	\
650	egl/clutter-egl.h		\
651	$(NULL)
652
653egl_source_h_priv = egl/clutter-backend-eglnative.h egl/clutter-stage-eglnative.h
654egl_source_c = egl/clutter-backend-eglnative.c egl/clutter-stage-eglnative.c
655
656# Wayland backend rules
657if SUPPORT_WAYLAND
658backend_source_h_priv += \
659       wayland/clutter-backend-wayland.h             \
660       wayland/clutter-backend-wayland-priv.h        \
661       wayland/clutter-stage-wayland.h               \
662       wayland/clutter-event-wayland.h               \
663       wayland/clutter-input-device-wayland.h        \
664       wayland/clutter-device-manager-wayland.h
665
666backend_source_c += \
667       wayland/clutter-backend-wayland.c             \
668       wayland/clutter-stage-wayland.c               \
669       wayland/clutter-event-wayland.c               \
670       wayland/clutter-input-device-wayland.c        \
671       wayland/clutter-device-manager-wayland.c
672
673
674clutterwayland_includedir = $(clutter_includedir)/wayland
675clutterwayland_include_HEADERS = wayland/clutter-wayland.h
676
677clutter-wayland-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
678	$(QUIET_GEN)cp -f $< $(@F)
679
680pc_files += clutter-wayland-$(CLUTTER_API_VERSION).pc
681endif # SUPPORT_WAYLAND
682
683if SUPPORT_WAYLAND_COMPOSITOR
684wayland_compositor_source_h = \
685	wayland/clutter-wayland-compositor.h		\
686	wayland/clutter-wayland-surface.h
687backend_source_h += $(wayland_compositor_source_h)
688backend_source_c += \
689	wayland/clutter-wayland-surface.c
690
691wayland_compositor_includedir = $(clutter_includedir)/wayland
692wayland_compositor_include_HEADERS = $(wayland_compositor_source_h)
693
694clutter-wayland-compositor-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
695	$(QUIET_GEN)cp -f $< $(@F)
696
697pc_files += clutter-wayland-compositor-$(CLUTTER_API_VERSION).pc
698endif
699
700# Mir backend rules
701if SUPPORT_MIR
702backend_source_h_priv += \
703       mir/clutter-backend-mir.h             \
704       mir/clutter-backend-mir-priv.h        \
705       mir/clutter-stage-mir.h               \
706       mir/clutter-event-mir.h               \
707       mir/clutter-input-device-mir.h        \
708       mir/clutter-device-manager-mir.h
709
710backend_source_c += \
711       mir/clutter-backend-mir.c             \
712       mir/clutter-stage-mir.c               \
713       mir/clutter-event-mir.c               \
714       mir/clutter-input-device-mir.c        \
715       mir/clutter-device-manager-mir.c
716
717
718cluttermir_includedir = $(clutter_includedir)/mir
719cluttermir_include_HEADERS = $(srcdir)/mir/clutter-mir.h
720
721clutter-mir-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
722	$(QUIET_GEN)cp -f $< $(@F)
723
724pc_files += clutter-mir-$(CLUTTER_API_VERSION).pc
725endif # SUPPORT_MIR
726
727if SUPPORT_EGL
728backend_source_h += $(egl_source_h)
729backend_source_c += $(egl_source_c)
730backend_source_h_priv += $(egl_source_h_priv)
731
732clutteregl_includedir = $(clutter_includedir)/egl
733clutteregl_include_HEADERS = $(egl_source_h)
734
735clutter-egl-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
736	$(QUIET_GEN)cp -f $< $(@F)
737
738pc_files += clutter-egl-$(CLUTTER_API_VERSION).pc
739endif # SUPPORT_EGL
740
741# OSX backend rules
742osx_source_c = \
743	osx/clutter-backend-osx.c	\
744	osx/clutter-stage-osx.c	\
745	$(NULL)
746
747osx_source_h = osx/clutter-osx.h
748
749osx_source_h_priv = \
750	osx/clutter-backend-osx.h	\
751	osx/clutter-event-loop-osx.h	\
752	osx/clutter-stage-osx.h	\
753	osx/clutter-device-manager-osx.h \
754	$(NULL)
755
756osx_source_c_priv = \
757	osx/clutter-event-loop-osx.c	\
758	osx/clutter-event-osx.c	\
759	osx/clutter-device-manager-osx.c \
760	$(NULL)
761
762if SUPPORT_OSX
763# we need to tell the compiler that part of our code base is
764# in Objective C
765AM_CFLAGS += -xobjective-c
766
767backend_source_h += $(osx_source_h)
768backend_source_c += $(osx_source_c)
769backend_source_h_priv += $(osx_source_h_priv)
770backend_source_c_priv += $(osx_source_c_priv)
771
772clutterosx_includedir = $(clutter_includedir)/osx
773clutterosx_include_HEADERS = $(osx_source_h)
774
775clutter-osx-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
776	$(QUIET_GEN)cp -f $< $(@F)
777
778pc_files += clutter-osx-$(CLUTTER_API_VERSION).pc
779endif # SUPPORT_OSX
780
781# cally
782cally_sources_h = \
783	cally/cally-actor.h		\
784	cally/cally-clone.h		\
785	cally/cally-factory.h		\
786	cally/cally-group.h		\
787	cally/cally.h			\
788	cally/cally-main.h		\
789	cally/cally-rectangle.h	\
790	cally/cally-root.h		\
791	cally/cally-stage.h		\
792	cally/cally-text.h		\
793	cally/cally-texture.h		\
794	cally/cally-util.h		\
795	$(NULL)
796
797cally_sources_c = \
798	cally/cally-actor.c		\
799	cally/cally.c			\
800	cally/cally-clone.c		\
801	cally/cally-group.c		\
802	cally/cally-rectangle.c	\
803	cally/cally-root.c		\
804	cally/cally-stage.c		\
805	cally/cally-text.c		\
806	cally/cally-texture.c		\
807	cally/cally-util.c		\
808	$(NULL)
809
810cally_sources_private = \
811	cally/cally-actor-private.h	\
812	$(NULL)
813
814cally_includedir = $(clutter_base_includedir)/cally
815cally_include_HEADERS = $(cally_sources_h)
816
817pc_files += cally/cally-$(CLUTTER_API_VERSION).pc
818EXTRA_DIST += cally/cally.pc.in
819
820# general build rules:
821# you should not need to modify anything below this point
822
823# glib-genmarshal rules
824glib_marshal_list = clutter-marshal.list
825glib_marshal_prefix = _clutter_marshal
826include $(top_srcdir)/build-aux/autotools/Makefile.am.marshal
827
828# glib-mkenums rules
829glib_enum_h = clutter-enum-types.h
830glib_enum_c = clutter-enum-types.c
831glib_enum_headers = $(source_h) $(deprecated_h)
832include $(top_srcdir)/build-aux/autotools/Makefile.am.enums
833
834pkgconfigdir = $(libdir)/pkgconfig
835pkgconfig_DATA = $(pc_files)
836DISTCLEANFILES += $(pc_files)
837
838clutter_include_HEADERS = $(source_h) clutter.h clutter-version.h clutter-autocleanups.h
839nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
840
841clutter_deprecated_HEADERS = $(deprecated_h)
842
843lib_LTLIBRARIES += libclutter-@CLUTTER_API_VERSION@.la
844
845libclutter_@CLUTTER_API_VERSION@_la_LIBADD = $(LIBM) $(CLUTTER_LIBS)
846libclutter_@CLUTTER_API_VERSION@_la_DEPENDENCIES = $(win32_resources)
847
848libclutter_@CLUTTER_API_VERSION@_la_SOURCES = \
849	$(backend_source_c) \
850	$(backend_source_h) \
851	$(backend_source_c_priv) \
852	$(backend_source_h_priv) \
853	$(source_c) \
854	$(source_h) \
855	$(source_c_priv) \
856	$(source_h_priv) \
857	$(deprecated_c) \
858	$(deprecated_h) \
859	$(deprecated_c_priv) \
860	$(deprecated_h_priv) \
861	$(cally_sources_c) \
862	$(cally_sources_h) \
863	$(cally_sources_private) \
864	$(NULL)
865
866nodist_libclutter_@CLUTTER_API_VERSION@_la_SOURCES = \
867	$(backend_source_built) \
868	$(built_source_c) \
869	$(built_source_h)
870
871libclutter_@CLUTTER_API_VERSION@_la_LDFLAGS = \
872	$(CLUTTER_LINK_FLAGS) \
873	$(CLUTTER_LT_LDFLAGS) \
874	-export-dynamic \
875	-rpath $(libdir) \
876	$(win32_resources_ldflag) \
877	$(NULL)
878
879dist-hook: ../build-aux/win32/vs9/clutter.vcproj ../build-aux/win32/vs10/clutter.vcxproj ../build-aux/win32/vs10/clutter.vcxproj.filters ../build-aux/win32/gen-enums.bat
880
881../build-aux/win32/vs9/clutter.vcproj: $(top_srcdir)/build-aux/win32/vs9/clutter.vcprojin
882	for F in `echo $(win32_source_c) $(cally_sources_c) $(source_c) $(source_c_priv) $(deprecated_c) $(deprecated_c_priv) $(built_source_c) | tr '/' '\\'`; do \
883		case $$F in \
884		*.c)	echo '   <File RelativePath="..\..\..\clutter\'$$F'" />' \
885			;; \
886		esac; \
887	done >clutter.sourcefiles
888	$(CPP) -P - <$(top_srcdir)/build-aux/win32/vs9/clutter.vcprojin >$@
889	rm clutter.sourcefiles
890
891../build-aux/win32/vs10/clutter.vcxproj: $(top_srcdir)/build-aux/win32/vs10/clutter.vcxprojin
892	for F in `echo $(win32_source_c) $(cally_sources_c) $(source_c) $(source_c_priv) $(deprecated_c) $(deprecated_c_priv) $(built_source_c) | tr '/' '\\'`; do \
893		case $$F in \
894		*.c)	echo '    <ClCompile Include="..\..\..\clutter\'$$F'" />' \
895			;; \
896		esac; \
897	done >clutter.vs10.sourcefiles
898	$(CPP) -P - <$(top_srcdir)/build-aux/win32/vs10/clutter.vcxprojin >$@
899	rm clutter.vs10.sourcefiles
900
901../build-aux/win32/vs10/clutter.vcxproj.filters: $(top_srcdir)/build-aux/win32/vs10/clutter.vcxproj.filtersin
902	for F in `echo $(win32_source_c) $(cally_sources_c) $(source_c) $(source_c_priv) $(deprecated_c) $(deprecated_c_priv) $(built_source_c) | tr '/' '\\'`; do \
903		case $$F in \
904		*.c)	echo '    <ClCompile Include="..\..\..\clutter\'$$F'"><Filter>Sources</Filter></ClCompile>' \
905			;; \
906		esac; \
907	done >clutter.vs10.sourcefiles.filters
908	$(CPP) -P - <$(top_srcdir)/build-aux/win32/vs10/clutter.vcxproj.filtersin >$@
909	rm clutter.vs10.sourcefiles.filters
910
911clutter.vsenums_h:
912	echo 'perl %1\bin\glib-mkenums --template ../../clutter/clutter-enum-types.h.in ' >vsenums_h.temp1
913	for F in `echo $(source_h) $(backend_source_h) $(srcdir)/win32/clutter-win32.h`; do \
914		case $$F in \
915		*-x11*.h|*-wayland*.h|*-gdk*.h|*-glx*.h|*-cex*.h|*-egl*.h|*-osx*.h|*-mir*.h) ;; \
916		*.h) echo '../../clutter'$$F' '	\
917			;;	\
918		esac;	\
919	done >>vsenums_h.temp1
920	cat vsenums_h.temp1 | sed 's_/clutter./_/clutter/_' >vsenums_h.temp
921	cat vsenums_h.temp | tr -d '\n' >>$@
922	echo '> ..\..\clutter\clutter-enum-types.h' >>$@
923	rm vsenums_h.temp1
924	rm vsenums_h.temp
925
926clutter.vsenums_c:
927	echo 'perl %1\bin\glib-mkenums --template ../../clutter/clutter-enum-types.c.in ' >vsenums_c.temp1
928	for F in `echo $(source_h) $(backend_source_h) $(srcdir)/win32/clutter-win32.h`; do \
929		case $$F in \
930		*-x11*.h|*-wayland*.h|*-gdk*.h|*-glx*.h|*-cex*.h|*-egl*.h|*-osx*.h|*-mir*.h) ;; \
931		*.h) echo '../../clutter'$$F' '	\
932			;;	\
933		esac;	\
934	done >>vsenums_c.temp1
935	cat vsenums_c.temp1 | sed 's_/clutter./_/clutter/_' >vsenums_c.temp
936	cat vsenums_c.temp | tr -d '\n' >>$@
937	echo '> ..\..\clutter\clutter-enum-types.c' >>$@
938	rm vsenums_c.temp1
939	rm vsenums_c.temp
940
941../build-aux/win32/gen-enums.bat: clutter.vsenums_h clutter.vsenums_c
942	echo 'if exist ..\..\clutter\clutter-enum-types.h goto DONE_COGL_ENUMS_H' >$@
943	cat clutter.vsenums_h >>$@
944	echo ':DONE_COGL_ENUMS_H' >>$@
945	echo 'if exist ..\..\clutter\clutter-enum-types.c goto DONE_COGL_ENUMS_C' >>$@
946	cat clutter.vsenums_c >>$@
947	echo ':DONE_COGL_ENUMS_C' >>$@
948	rm clutter.vsenums_h
949	rm clutter.vsenums_c
950
951EXTRA_DIST += \
952	clutter-config.h.win32	\
953	clutter-config.h.win32_GDK	\
954	$(NULL)
955
956# Let the VS9/VS10 Project files be cleared out before they are re-expanded...
957DISTCLEANFILES += ../build-aux/win32/vs9/clutter.vcproj ../build-aux/win32/vs10/clutter.vcxproj ../build-aux/win32/vs10/clutter.vcxproj.filters ../build-aux/win32/gen-enums.bat
958
959install-exec-local:
960	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
961	for lib in `echo $(compat_libs)`; do \
962	  (cd $(DESTDIR)$(libdir) && \
963	    rm -f $$lib.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION); \
964	  ) ; \
965	  (cd $(DESTDIR)$(libdir) && \
966	    { ln -s -f libclutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0 || \
967	      { rm -f $$lib.0 && ln -s libclutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0; }; \
968	    } \
969	  ) ; \
970	  (cd $(DESTDIR)$(libdir) && \
971	    { ln -s -f libclutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib || \
972	      { rm -f $$lib && ln -s libclutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib; }; \
973	    } \
974	  ) ; \
975	done
976
977# gobject-introspection rules
978-include $(INTROSPECTION_MAKEFILE)
979
980if HAVE_INTROSPECTION
981Clutter-@CLUTTER_API_VERSION@.gir: libclutter-@CLUTTER_API_VERSION@.la Makefile
982
983Clutter_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Clutter
984Clutter_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
985Clutter_@CLUTTER_API_VERSION_AM@_gir_LIBS = libclutter-@CLUTTER_API_VERSION@.la
986Clutter_@CLUTTER_API_VERSION_AM@_gir_FILES = \
987	$(clutter_include_HEADERS) \
988	$(clutter_deprecated_HEADERS) \
989	$(nodist_clutter_include_HEADERS) \
990	$(source_c) \
991	$(deprecated_c) \
992	$(built_source_c)
993Clutter_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
994Clutter_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = GL-1.0 GObject-2.0 cairo-1.0 Cogl-1.0 CoglPango-1.0 Atk-1.0 Json-1.0
995Clutter_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
996	--warn-all \
997	--c-include='clutter/clutter.h' \
998	--pkg-export=clutter-@CLUTTER_API_VERSION@
999
1000INTROSPECTION_GIRS += Clutter-@CLUTTER_API_VERSION@.gir
1001
1002Cally-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
1003
1004Cally_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Cally
1005Cally_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
1006Cally_@CLUTTER_API_VERSION_AM@_gir_LIBS = libclutter-@CLUTTER_API_VERSION@.la
1007Cally_@CLUTTER_API_VERSION_AM@_gir_FILES = $(cally_sources_h) $(cally_sources_c)
1008Cally_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
1009Cally_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
1010	--warn-all \
1011	--c-include='cally/cally.h' \
1012	--pkg-export=cally-@CLUTTER_API_VERSION@ \
1013	--include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
1014
1015INTROSPECTION_GIRS += Cally-@CLUTTER_API_VERSION@.gir
1016
1017if SUPPORT_X11
1018ClutterX11-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
1019
1020ClutterX11_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = ClutterX11
1021ClutterX11_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = xlib-2.0
1022ClutterX11_@CLUTTER_API_VERSION_AM@_gir_LIBS = libclutter-@CLUTTER_API_VERSION@.la
1023ClutterX11_@CLUTTER_API_VERSION_AM@_gir_FILES = $(x11_introspection)
1024ClutterX11_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
1025ClutterX11_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
1026	--warn-all \
1027	--c-include='clutter/x11/clutter-x11.h' \
1028	--pkg-export=clutter-x11-@CLUTTER_API_VERSION@ \
1029	--include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
1030
1031INTROSPECTION_GIRS += ClutterX11-@CLUTTER_API_VERSION@.gir
1032endif # SUPPORT_X11
1033
1034if SUPPORT_GDK
1035ClutterGdk-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
1036
1037ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = ClutterGdk
1038ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = Gdk-3.0
1039ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_LIBS = libclutter-@CLUTTER_API_VERSION@.la
1040ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_FILES = $(gdk_introspection)
1041ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
1042ClutterGdk_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
1043	--warn-all \
1044	--c-include='clutter/gdk/clutter-gdk.h' \
1045	--pkg-export=clutter-gdk-@CLUTTER_API_VERSION@ \
1046	--include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
1047
1048INTROSPECTION_GIRS += ClutterGdk-@CLUTTER_API_VERSION@.gir
1049endif # SUPPORT_GDK
1050
1051# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
1052# install anything - we need to install inside our prefix.
1053girdir = $(datadir)/gir-1.0
1054gir_DATA = $(INTROSPECTION_GIRS)
1055
1056typelibdir = $(libdir)/girepository-1.0
1057typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
1058
1059CLEANFILES += $(gir_DATA) $(typelib_DATA)
1060endif # HAVE_INTROSPECTION
1061