summaryrefslogtreecommitdiff
path: root/clutter/Makefile.am blob: 38f247462347ab8e8cc2a1331ee4d1b835423a1b
1include $(top_srcdir)/build/autotools/Makefile.am.silent
2
3NULL =
4
5SUBDIRS = cogl $(CLUTTER_WINSYS_BASE) $(CLUTTER_WINSYS)
6
7if LOCAL_JSON_GLIB
8SUBDIRS += json
9clutter_json_include = -I$(top_srcdir)/clutter/json
10clutter_json_dep = json/libclutter-json.la
11clutter_json_libadd = $(top_builddir)/clutter/json/libclutter-json.la
12clutter_json_gir = ClutterJson-@CLUTTER_API_VERSION@.gir
13endif
14
15DIST_SUBDIRS = glx eglx eglnative cogl json osx x11 win32 fruity
16
17# common definitions
18CLEANFILES =
19DISTCLEANFILES =
20EXTRA_DIST =
21BUILT_SOURCES =
22
23if WINSYS_WIN32
24
25# Ideally this resources stuff would go in win32/ but libtool doesn't
26# seem to pass on the -Wl argument when linking a convenience library
27# so we need to do it here as part of linking the dll. libtool also
28# won't let you link against the .o directly because it wants you to
29# link against libtool objects for dynamic libraries.
30.rc.o :
31 $(WINDRES) -I$(srcdir)/win32 $< $@
32
33win32/resources.o : $(srcdir)/win32/invisible-cursor.cur
34
35win32_resources = win32/resources.o
36win32_resources_ldflag = -Wl,win32/resources.o
37
38endif # WINSYS_WIN32
39
40INCLUDES = \
41 -I$(top_srcdir) \
42 -I$(top_srcdir)/clutter/cogl \
43 -I$(top_srcdir)/clutter/cogl/pango \
44 -I$(top_srcdir)/clutter \
45 $(clutter_json_include) \
46 -I$(top_builddir)/clutter/cogl \
47 -I$(top_builddir)/clutter \
48 $(NULL)
49
50AM_CPPFLAGS = \
51 -DCLUTTER_PREFIX=\""$(prefix)"\" \
52 -DCLUTTER_LIBDIR=\""$(libdir)"\" \
53 -DCLUTTER_DATADIR=\""$(datadir)"\" \
54 -DCLUTTER_COMPILATION=1 \
55 -DG_DISABLE_DEPRECATED \
56 -DG_DISABLE_SINGLE_INCLUDES \
57 -DG_LOG_DOMAIN=\"Clutter\" \
58 $(CLUTTER_DEBUG_CFLAGS) \
59 $(NULL)
60
61AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS) $(GCOV_CFLAGS)
62
63# please, keep this sorted alphabetically
64source_h = \
65 $(srcdir)/clutter-actor.h \
66 $(srcdir)/clutter-alpha.h \
67 $(srcdir)/clutter-animatable.h \
68 $(srcdir)/clutter-animation.h \
69 $(srcdir)/clutter-animator.h \
70 $(srcdir)/clutter-backend.h \
71 $(srcdir)/clutter-behaviour.h \
72 $(srcdir)/clutter-behaviour-depth.h \
73 $(srcdir)/clutter-behaviour-ellipse.h \
74 $(srcdir)/clutter-behaviour-opacity.h \
75 $(srcdir)/clutter-behaviour-path.h \
76 $(srcdir)/clutter-behaviour-rotate.h \
77 $(srcdir)/clutter-behaviour-scale.h \
78 $(srcdir)/clutter-binding-pool.h \
79 $(srcdir)/clutter-bin-layout.h \
80 $(srcdir)/clutter-box.h \
81 $(srcdir)/clutter-box-layout.h \
82 $(srcdir)/clutter-cairo-texture.h \
83 $(srcdir)/clutter-child-meta.h \
84 $(srcdir)/clutter-clone.h \
85 $(srcdir)/clutter-color.h \
86 $(srcdir)/clutter-container.h \
87 $(srcdir)/clutter-deprecated.h \
88 $(srcdir)/clutter-device-manager.h \
89 $(srcdir)/clutter-event.h \
90 $(srcdir)/clutter-feature.h \
91 $(srcdir)/clutter-fixed.h \
92 $(srcdir)/clutter-fixed-layout.h \
93 $(srcdir)/clutter-flow-layout.h \
94 $(srcdir)/clutter-frame-source.h \
95 $(srcdir)/clutter-group.h \
96 $(srcdir)/clutter-input-device.h \
97 $(srcdir)/clutter-interval.h \
98 $(srcdir)/clutter-keysyms.h \
99 $(srcdir)/clutter-layout-manager.h \
100 $(srcdir)/clutter-layout-meta.h \
101 $(srcdir)/clutter-list-model.h \
102 $(srcdir)/clutter-main.h \
103 $(srcdir)/clutter-media.h \
104 $(srcdir)/clutter-model.h \
105 $(srcdir)/clutter-path.h \
106 $(srcdir)/clutter-rectangle.h \
107 $(srcdir)/clutter-score.h \
108 $(srcdir)/clutter-script.h \
109 $(srcdir)/clutter-scriptable.h \
110 $(srcdir)/clutter-shader.h \
111 $(srcdir)/clutter-shader-types.h \
112 $(srcdir)/clutter-stage.h \
113 $(srcdir)/clutter-stage-manager.h \
114 $(srcdir)/clutter-stage-window.h \
115 $(srcdir)/clutter-texture.h \
116 $(srcdir)/clutter-text.h \
117 $(srcdir)/clutter-timeline.h \
118 $(srcdir)/clutter-timeout-pool.h \
119 $(srcdir)/clutter-types.h \
120 $(srcdir)/clutter-units.h \
121 $(srcdir)/clutter-util.h \
122 $(top_builddir)/clutter/clutter-version.h \
123 $(NULL)
124
125# glib-genmarshal rules
126glib_marshal_list = clutter-marshal.list
127glib_marshal_prefix = clutter_marshal
128include $(top_srcdir)/build/autotools/Makefile.am.marshal
129
130# glib-mkenums rules
131glib_enum_h = clutter-enum-types.h
132glib_enum_c = clutter-enum-types.c
133glib_enum_headers = $(source_h)
134include $(top_srcdir)/build/autotools/Makefile.am.enums
135
136# please, keep this sorted alphabetically
137source_c = \
138 $(srcdir)/clutter-actor.c \
139 $(srcdir)/clutter-alpha.c \
140 $(srcdir)/clutter-animatable.c \
141 $(srcdir)/clutter-animation.c \
142 $(srcdir)/clutter-animator.c \
143 $(srcdir)/clutter-backend.c \
144 $(srcdir)/clutter-behaviour.c \
145 $(srcdir)/clutter-behaviour-depth.c \
146 $(srcdir)/clutter-behaviour-ellipse.c \
147 $(srcdir)/clutter-behaviour-opacity.c \
148 $(srcdir)/clutter-behaviour-path.c \
149 $(srcdir)/clutter-behaviour-rotate.c \
150 $(srcdir)/clutter-behaviour-scale.c \
151 $(srcdir)/clutter-bezier.c \
152 $(srcdir)/clutter-binding-pool.c \
153 $(srcdir)/clutter-bin-layout.c \
154 $(srcdir)/clutter-box.c \
155 $(srcdir)/clutter-box-layout.c \
156 $(srcdir)/clutter-cairo-texture.c \
157 $(srcdir)/clutter-child-meta.c \
158 $(srcdir)/clutter-clone.c \
159 $(srcdir)/clutter-color.c \
160 $(srcdir)/clutter-container.c \
161 $(srcdir)/clutter-device-manager.c \
162 clutter-enum-types.c \
163 $(srcdir)/clutter-event.c \
164 $(srcdir)/clutter-feature.c \
165 $(srcdir)/clutter-fixed.c \
166 $(srcdir)/clutter-fixed-layout.c \
167 $(srcdir)/clutter-flow-layout.c \
168 $(srcdir)/clutter-frame-source.c \
169 $(srcdir)/clutter-group.c \
170 $(srcdir)/clutter-input-device.c \
171 $(srcdir)/clutter-interval.c \
172 $(srcdir)/clutter-layout-manager.c \
173 $(srcdir)/clutter-layout-meta.c \
174 $(srcdir)/clutter-list-model.c \
175 $(srcdir)/clutter-main.c \
176 clutter-marshal.c \
177 $(srcdir)/clutter-master-clock.c \
178 $(srcdir)/clutter-media.c \
179 $(srcdir)/clutter-model.c \
180 $(srcdir)/clutter-path.c \
181 $(srcdir)/clutter-rectangle.c \
182 $(srcdir)/clutter-score.c \
183 $(srcdir)/clutter-script.c \
184 $(srcdir)/clutter-script-parser.c \
185 $(srcdir)/clutter-scriptable.c \
186 $(srcdir)/clutter-shader.c \
187 $(srcdir)/clutter-shader-types.c \
188 $(srcdir)/clutter-stage.c \
189 $(srcdir)/clutter-stage-manager.c \
190 $(srcdir)/clutter-stage-window.c \
191 $(srcdir)/clutter-texture.c \
192 $(srcdir)/clutter-text.c \
193 $(srcdir)/clutter-timeline.c \
194 $(srcdir)/clutter-timeout-pool.c \
195 $(srcdir)/clutter-units.c \
196 $(srcdir)/clutter-util.c \
197 $(NULL)
198
199source_c_priv = \
200 $(srcdir)/clutter-id-pool.c \
201 $(srcdir)/clutter-profile.c \
202 $(srcdir)/clutter-timeout-interval.c \
203 $(NULL)
204
205source_h_priv = \
206 $(srcdir)/clutter-bezier.h \
207 $(srcdir)/clutter-debug.h \
208 $(srcdir)/clutter-keysyms-table.h \
209 $(srcdir)/clutter-master-clock.h \
210 $(srcdir)/clutter-model-private.h \
211 $(srcdir)/clutter-private.h \
212 $(srcdir)/clutter-id-pool.h \
213 $(srcdir)/clutter-script-private.h \
214 $(srcdir)/clutter-timeout-interval.h \
215 $(srcdir)/clutter-profile.h \
216 $(NULL)
217
218libclutter_@CLUTTER_WINSYS@_@CLUTTER_API_VERSION@_la_LIBADD = \
219 $(CLUTTER_LIBS) \
220 $(top_builddir)/clutter/cogl/cogl/libclutter-cogl.la \
221 $(top_builddir)/clutter/cogl/pango/libcoglpango.la \
222 $(top_builddir)/clutter/$(CLUTTER_WINSYS)/libclutter-$(CLUTTER_WINSYS).la \
223 $(clutter_json_libadd) \
224 $(CLUTTER_WINSYS_BASE_LIB)
225
226libclutter_@CLUTTER_WINSYS@_@CLUTTER_API_VERSION@_la_DEPENDENCIES = \
227 $(top_builddir)/clutter/cogl/cogl/libclutter-cogl.la \
228 $(top_builddir)/clutter/cogl/pango/libcoglpango.la \
229 $(top_builddir)/clutter/$(CLUTTER_WINSYS)/libclutter-$(CLUTTER_WINSYS).la \
230 $(clutter_json_dep) \
231 $(CLUTTER_WINSYS_BASE_LIB) \
232 $(win32_resources)
233
234libclutter_@CLUTTER_WINSYS@_@CLUTTER_API_VERSION@_la_SOURCES = \
235 $(source_c) \
236 $(source_h) \
237 $(source_c_priv) \
238 $(source_h_priv)
239
240libclutter_@CLUTTER_WINSYS@_@CLUTTER_API_VERSION@_la_LDFLAGS = \
241 $(CLUTTER_LT_LDFLAGS) \
242 $(GCOV_LDFLAGS) \
243 -export-dynamic \
244 -export-symbols-regex "^(clutter|cogl|json).*" \
245 -rpath $(libdir) \
246 $(win32_resources_ldflag) \
247 $(NULL)
248
249lib_LTLIBRARIES = $(CLUTTER_WINSYS_LIB)
250
251EXTRA_LTLIBRARIES = libclutter-@CLUTTER_WINSYS@-@CLUTTER_API_VERSION@.la
252
253clutterdir = $(includedir)/clutter-$(CLUTTER_API_VERSION)/clutter
254clutter_HEADERS = \
255 $(source_h) \
256 $(top_builddir)/clutter/clutter-json.h \
257 $(top_builddir)/clutter/clutter-enum-types.h \
258 $(top_srcdir)/clutter/clutter.h
259
260DISTCLEANFILES += clutter-version.h
261EXTRA_DIST += clutter-version.h.in
262
263BUILT_GIRSOURCES =
264
265if LOCAL_JSON_GLIB
266json_gir_include_path=--add-include-path=json
267json_gir_include=--include=ClutterJson-@CLUTTER_API_VERSION@
268json_gir_pkg=
269
270# If we are building it, ClutterJson gets the same handling as described
271# for Cogl above
272ClutterJson-@CLUTTER_API_VERSION@.gir: Clutter-@CLUTTER_API_VERSION@.gir json/ClutterJson-@CLUTTER_API_VERSION@.gir
273 $(QUIET_GEN) \
274 shlib=`sed -n 's/.*shared-library="\([^"]*\)".*/\1/p' < Clutter-@CLUTTER_API_VERSION@.gir` ; \
275 sed "s/shared-library=\"[^\"]*\"/shared-library=\"$$shlib\"/"< json/ClutterJson-@CLUTTER_API_VERSION@.gir > $@
276
277BUILT_GIRSOURCES += ClutterJson-@CLUTTER_API_VERSION@.gir
278else
279json_gir_include=--include=Json-1.0
280json_gir_pkg=--pkg json-glib-1.0
281endif # LOCAL_JSON_GLIB
282
283if HAVE_INTROSPECTION
284# We can't reference the list of COGL header files, since they are in a
285# subdir Makefile.am, so just extract them from cogl.h instead. The doc
286# comments for COGL are in the headers, so we don't need the source files.
287
288Clutter-@CLUTTER_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libclutter-@CLUTTER_WINSYS@-@CLUTTER_API_VERSION@.la
289 $(QUIET_GEN)$(INTROSPECTION_SCANNER) -v \
290 --namespace Clutter --nsversion=@CLUTTER_API_VERSION@ \
291 $(INCLUDES) \
292 $(AM_CPPFLAGS) \
293 --add-include-path=cogl/cogl \
294 $(json_gir_include_path) \
295 --c-include='clutter/clutter.h' \
296 --include=GL-1.0 \
297 --include=GObject-2.0 \
298 --include=Pango-1.0 \
299 --include=PangoCairo-1.0 \
300 --include=Cogl-@CLUTTER_API_VERSION@ \
301 $(json_gir_include) \
302 --library=libclutter-@CLUTTER_WINSYS@-@CLUTTER_API_VERSION@.la \
303 --libtool="$(top_builddir)/libtool" \
304 --pkg gobject-2.0 \
305 $(json_gir_pkg) \
306 --pkg pango \
307 --pkg pangocairo \
308 --output $@ \
309 $(clutter_HEADERS) \
310 $(source_c)
311
312BUILT_GIRSOURCES += Clutter-@CLUTTER_API_VERSION@.gir
313
314# ClutterJson.gir and Cogl.gir are used included into Clutter.gir, so need
315# to be built before the typelib is generated
316Clutter-@CLUTTER_API_VERSION@.typelib: $(clutter_json_gir) Cogl-@CLUTTER_API_VERSION@.gir
317
318# We build Cogl.gir in the cogl/ subdir, but it needs to reference the shared
319# library that it's built into, so we delay compiling the gir into typelib
320# until after we've built the shared library. To create the final Cogl.gir
321# that we compile and install, we transfer the shared-library="" line from
322# Clutter.gir to Cogl.gir
323Cogl-@CLUTTER_API_VERSION@.gir: Clutter-@CLUTTER_API_VERSION@.gir cogl/cogl/Cogl-@CLUTTER_API_VERSION@.gir
324 $(QUIET_GEN) \
325 shlib=`sed -n 's/.*shared-library="\([^"]*\)".*/\1/p' < Clutter-@CLUTTER_API_VERSION@.gir` ; \
326 sed "s/shared-library=\"[^\"]*\"/shared-library=\"$$shlib\"/"< cogl/cogl/Cogl-@CLUTTER_API_VERSION@.gir > $@
327
328BUILT_GIRSOURCES += Cogl-@CLUTTER_API_VERSION@.gir
329
330# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
331# install anything - we need to install inside our prefix.
332girdir = $(datadir)/gir-1.0
333gir_DATA = $(BUILT_GIRSOURCES)
334
335typelibsdir = $(libdir)/girepository-1.0/
336
337typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
338
339%.typelib: %.gir $(INTROSPECTION_COMPILER)
340 $(QUIET_GEN) \
341 LD_LIBRARY_PATH=.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH} \
342 $(INTROSPECTION_COMPILER) \
343 --includedir=$(srcdir) \
344 --includedir=. \
345 $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
346
347CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
348endif # HAVE_INTROSPECTION
349
350gcov_sources = $(source_c)
351include $(top_srcdir)/build/autotools/Makefile.am.gcov
352