1NULL =
2SUBDIRS =
3
4KEYMAPS =					\
5	vncdisplaykeymap_xorgevdev2xtkbd.h	\
6	vncdisplaykeymap_xorgkbd2xtkbd.h	\
7	vncdisplaykeymap_xorgxquartz2xtkbd.h	\
8	vncdisplaykeymap_xorgxwin2xtkbd.h	\
9	vncdisplaykeymap_osx2xtkbd.h		\
10	vncdisplaykeymap_win322xtkbd.h		\
11	vncdisplaykeymap_x112xtkbd.h		\
12	$(NULL)
13
14# End users build dependencies can be cleaned
15GLIBGENS =					\
16	spice-glib-enums.c			\
17	spice-glib-enums.h			\
18	spice-marshal.c				\
19	spice-marshal.h				\
20	spice-widget-enums.c			\
21	spice-widget-enums.h			\
22	$(NULL)
23
24CLEANFILES = $(GLIBGENS) $(KEYMAPS)
25BUILT_SOURCES = $(GLIBGENS) $(KEYMAPS)
26
27EXTRA_DIST =					\
28	meson.build				\
29	decode-glz-tmpl.c			\
30	$(KEYMAPS)				\
31	$(KEYMAP_CSV)				\
32	$(KEYMAP_GEN)				\
33	$(KEYMAP_DIST)				\
34	map-file				\
35	spice-glib-sym-file			\
36	spice-gtk-sym-file			\
37	spice-marshal.txt			\
38	spice-version.h.in			\
39	$(NULL)
40
41DISTCLEANFILES = spice-version.h
42
43if WITH_POLKIT
44acldir = $(ACL_HELPER_DIR)
45acl_PROGRAMS = spice-client-glib-usb-acl-helper
46endif
47
48noinst_LTLIBRARIES = libspice-client-glib-impl.la
49lib_LTLIBRARIES = libspice-client-glib-2.0.la
50
51if WITH_GTK
52lib_LTLIBRARIES += libspice-client-gtk-3.0.la
53endif
54
55if HAVE_LD_VERSION_SCRIPT
56GLIB_SYMBOLS_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
57GLIB_SYMBOLS_FILE = map-file
58GTK_SYMBOLS_LDFLAGS = $(GLIB_SYMBOLS_LDFLAGS)
59GTK_SYMBOLS_FILE = $(GLIB_SYMBOLS_FILE)
60else
61GLIB_SYMBOLS_LDFLAGS = -export-symbols ${srcdir}/spice-glib-sym-file
62GLIB_SYMBOLS_FILE = spice-glib-sym-file
63GTK_SYMBOLS_LDFLAGS = -export-symbols ${srcdir}/spice-gtk-sym-file
64GTK_SYMBOLS_FILE = spice-gtk-sym-file
65endif
66
67KEYMAP_GEN = $(top_srcdir)/subprojects/keycodemapdb/tools/keymap-gen
68KEYMAP_CSV = $(top_srcdir)/subprojects/keycodemapdb/data/keymaps.csv
69KEYMAP_DIST = $(top_srcdir)/subprojects/keycodemapdb/meson.build
70
71SPICE_COMMON_CPPFLAGS =						\
72	-DSPICE_COMPILATION					\
73	-DG_LOG_DOMAIN=\"GSpice\"				\
74	-DUSB_IDS=\""$(USB_IDS)"\"				\
75	-I$(top_srcdir)						\
76	$(COMMON_CFLAGS)					\
77	$(PIXMAN_CFLAGS)					\
78	$(PULSE_CFLAGS)						\
79	$(GTK_CFLAGS)						\
80	$(CAIRO_CFLAGS)						\
81	$(GLIB2_CFLAGS)						\
82	$(GIO_CFLAGS)						\
83	$(GOBJECT2_CFLAGS)					\
84	$(JSON_CFLAGS)						\
85	$(OPENSSL_CFLAGS)					\
86	$(SASL_CFLAGS)						\
87	$(GSTAUDIO_CFLAGS)					\
88	$(GSTVIDEO_CFLAGS)					\
89	$(SMARTCARD_CFLAGS)					\
90	$(USBREDIR_CFLAGS)					\
91	$(GUDEV_CFLAGS)						\
92	$(SOUP_CFLAGS)						\
93	$(PHODAV_CFLAGS)					\
94	$(LIBVA_CFLAGS)						\
95	$(X11_CFLAGS)					\
96	$(LZ4_CFLAGS)					\
97	$(NULL)
98
99AM_CPPFLAGS =					\
100	-DLOCALE_DIR=\""$(datadir)/locale"\"	\
101	$(SPICE_COMMON_CPPFLAGS)		\
102	$(SPICE_CFLAGS)				\
103	$(NULL)
104
105# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
106SPICE_GTK_LDFLAGS_COMMON =		\
107	-version-info 5:0:0		\
108	-no-undefined			\
109	$(GTK_SYMBOLS_LDFLAGS)		\
110	$(NULL)
111
112SPICE_GTK_LIBADD_COMMON =		\
113	libspice-client-glib-2.0.la	\
114	$(GTK_LIBS)			\
115	$(CAIRO_LIBS)			\
116	$(X11_LIBS)			\
117	$(LIBM)				\
118	$(LIBVA_LIBS)			\
119	$(NULL)
120
121SPICE_GTK_SOURCES_COMMON =		\
122	spice-util.c			\
123	spice-util-priv.h		\
124	spice-gtk-session.c		\
125	spice-gtk-session-priv.h	\
126	spice-widget.c			\
127	spice-widget-priv.h		\
128	spice-file-transfer-task.h \
129	vncdisplaykeymap.c		\
130	vncdisplaykeymap.h		\
131	spice-grabsequence.c		\
132	spice-grabsequence.h		\
133	spice-grabsequence-priv.h	\
134	desktop-integration.c		\
135	desktop-integration.h		\
136	usb-device-widget.c		\
137	$(NULL)
138
139nodist_SPICE_GTK_SOURCES_COMMON =	\
140	spice-widget-enums.c		\
141	spice-marshal.c			\
142	$(NULL)
143
144SPICE_GTK_SOURCES_COMMON +=		\
145	spice-widget-cairo.c		\
146	$(NULL)
147
148if HAVE_EGL
149SPICE_GTK_SOURCES_COMMON +=		\
150	spice-widget-egl.c		\
151	$(NULL)
152endif
153
154if WITH_GTK
155EXTRA_libspice_client_gtk_3_0_la_DEPENDENCIES = $(GTK_SYMBOLS_FILE)
156libspice_client_gtk_3_0_la_LDFLAGS = $(SPICE_GTK_LDFLAGS_COMMON)
157libspice_client_gtk_3_0_la_LIBADD = $(SPICE_GTK_LIBADD_COMMON)
158libspice_client_gtk_3_0_la_SOURCES = $(SPICE_GTK_SOURCES_COMMON)
159nodist_libspice_client_gtk_3_0_la_SOURCES = $(nodist_SPICE_GTK_SOURCES_COMMON)
160
161libspice_client_gtkincludedir = $(includedir)/spice-client-gtk-3.0
162libspice_client_gtkinclude_HEADERS =	\
163	spice-client-gtk.h		\
164	spice-gtk-session.h		\
165	spice-widget.h			\
166	spice-grabsequence.h		\
167	usb-device-widget.h		\
168	$(NULL)
169
170nodist_libspice_client_gtkinclude_HEADERS =	\
171	spice-widget-enums.h			\
172	$(NULL)
173endif
174
175EXTRA_libspice_client_glib_2_0_la_DEPENDENCIES = $(GLIB_SYMBOLS_FILE)
176
177libspice_client_glib_2_0_la_LDFLAGS =	\
178	-version-info 14:0:6		\
179	-no-undefined			\
180	$(GLIB_SYMBOLS_LDFLAGS)		\
181	$(NULL)
182
183libspice_client_glib_2_0_la_LIBADD = libspice-client-glib-impl.la
184
185libspice_client_glib_impl_la_LIBADD =					\
186	$(SPICE_COMMON_DIR)/common/libspice-common.la			\
187	$(SPICE_COMMON_DIR)/common/libspice-common-client.la		\
188	$(GLIB2_LIBS)							\
189	$(SOUP_LIBS)							\
190	$(GIO_LIBS)							\
191	$(GOBJECT2_LIBS)						\
192	$(JPEG_LIBS)							\
193	$(JSON_LIBS)							\
194	$(Z_LIBS)							\
195	$(LZ4_LIBS)							\
196	$(PIXMAN_LIBS)							\
197	$(OPENSSL_LIBS)							\
198	$(PULSE_LIBS)							\
199	$(GSTAUDIO_LIBS)						\
200	$(GSTVIDEO_LIBS)						\
201	$(SASL_LIBS)							\
202	$(SMARTCARD_LIBS)						\
203	$(USBREDIR_LIBS)						\
204	$(GUDEV_LIBS)							\
205	$(PHODAV_LIBS)							\
206	$(NULL)
207
208if WITH_POLKIT
209USB_ACL_HELPER_SRCS =				\
210	usb-acl-helper.c			\
211	usb-acl-helper.h			\
212	$(NULL)
213AM_CPPFLAGS += -DACL_HELPER_PATH="\"$(ACL_HELPER_DIR)\""
214else
215USB_ACL_HELPER_SRCS =
216endif
217
218libspice_client_glib_2_0_la_SOURCES =
219libspice_client_glib_impl_la_SOURCES =			\
220	bio-gio.c					\
221	bio-gio.h					\
222	spice-audio.c					\
223	spice-audio-priv.h				\
224	spice-gstaudio.c				\
225	spice-gstaudio.h				\
226	spice-common.h					\
227	spice-util.c					\
228	spice-util-priv.h				\
229	spice-option.h					\
230	spice-option.c					\
231							\
232	spice-client.c					\
233	spice-session.c					\
234	spice-session-priv.h				\
235	spice-channel.c					\
236	spice-channel-cache.h				\
237	spice-channel-priv.h				\
238	spice-file-transfer-task.c			\
239	spice-file-transfer-task-priv.h			\
240	coroutine.h					\
241	gio-coroutine.c					\
242	gio-coroutine.h					\
243							\
244	channel-base.c					\
245	channel-webdav.c				\
246	channel-cursor.c				\
247	channel-display.c				\
248	channel-display-gst.c				\
249	channel-display-priv.h				\
250	channel-inputs.c				\
251	channel-main.c					\
252	channel-playback.c				\
253	channel-playback-priv.h				\
254	channel-port.c					\
255	channel-record.c				\
256	channel-smartcard.c				\
257	channel-usbredir.c				\
258	channel-usbredir-priv.h				\
259	qmp-port.c					\
260	qmp-port.h					\
261	smartcard-manager.c				\
262	smartcard-manager-priv.h			\
263	spice-uri.c					\
264	spice-uri-priv.h				\
265	usb-device-manager.c				\
266	usb-device-manager-priv.h			\
267	usbutil.c					\
268	usbutil.h					\
269	$(USB_ACL_HELPER_SRCS)				\
270	vmcstream.c					\
271	vmcstream.h					\
272							\
273	decode.h					\
274	decode-glz.c					\
275	decode-jpeg.c					\
276	decode-zlib.c					\
277							\
278	client_sw_canvas.c	\
279	client_sw_canvas.h	\
280							\
281	spice-glib-main.c				\
282	$(NULL)
283
284nodist_libspice_client_glib_impl_la_SOURCES =	\
285	spice-glib-enums.c			\
286	spice-marshal.c				\
287	spice-marshal.h				\
288	$(NULL)
289
290libspice_client_glibincludedir = $(includedir)/spice-client-glib-2.0
291libspice_client_glibinclude_HEADERS =	\
292	spice-audio.h			\
293	spice-client.h			\
294	spice-uri.h			\
295	spice-types.h			\
296	spice-session.h			\
297	spice-channel.h			\
298	spice-util.h			\
299	spice-option.h			\
300	spice-version.h			\
301	channel-cursor.h		\
302	channel-display.h		\
303	channel-inputs.h		\
304	channel-main.h			\
305	channel-playback.h		\
306	channel-port.h			\
307	channel-record.h		\
308	channel-smartcard.h		\
309	channel-usbredir.h		\
310	channel-webdav.h		\
311	qmp-port.h			\
312	usb-device-manager.h		\
313	smartcard-manager.h		\
314	spice-file-transfer-task.h	\
315	$(NULL)
316
317nodist_libspice_client_glibinclude_HEADERS =	\
318	spice-glib-enums.h			\
319	$(NULL)
320
321if HAVE_PULSE
322libspice_client_glib_impl_la_SOURCES +=	\
323	spice-pulse.c			\
324	spice-pulse.h			\
325	$(NULL)
326endif
327
328if HAVE_BUILTIN_MJPEG
329libspice_client_glib_impl_la_SOURCES +=	\
330	channel-display-mjpeg.c		\
331	$(NULL)
332endif
333
334if WITH_PHODAV
335libspice_client_glib_impl_la_SOURCES +=	\
336	giopipe.c			\
337	giopipe.h			\
338	$(NULL)
339endif
340
341if WITH_UCONTEXT
342libspice_client_glib_impl_la_SOURCES += continuation.h continuation.c coroutine_ucontext.c
343endif
344
345if WITH_WINFIBER
346libspice_client_glib_impl_la_SOURCES += coroutine_winfibers.c
347endif
348
349if WITH_GTHREAD
350libspice_client_glib_impl_la_SOURCES += coroutine_gthread.c
351libspice_client_glib_impl_la_LIBADD += $(GTHREAD_LIBS)
352endif
353
354
355WIN_USB_FILES= \
356	win-usb-dev.h			\
357	win-usb-dev.c			\
358	usbdk_api.h			\
359	usbdk_api.c			\
360	$(NULL)
361
362if OS_WIN32
363if WITH_USBREDIR
364libspice_client_glib_impl_la_SOURCES += \
365	$(WIN_USB_FILES)
366endif
367libspice_client_glib_impl_la_LIBADD += -lws2_32 -lgdi32
368endif
369
370if WITH_POLKIT
371spice_client_glib_usb_acl_helper_SOURCES =	\
372	spice-client-glib-usb-acl-helper.c	\
373	$(NULL)
374
375spice_client_glib_usb_acl_helper_LDADD =	\
376	$(GLIB2_LIBS)				\
377	$(GIO_LIBS)				\
378	$(POLKIT_LIBS)				\
379	$(ACL_LIBS)				\
380	$(PIE_LDFLAGS)				\
381	$(NULL)
382
383spice_client_glib_usb_acl_helper_CPPFLAGS =	\
384	$(SPICE_CFLAGS)				\
385	$(GLIB2_CFLAGS)				\
386	$(GIO_CFLAGS)				\
387	$(POLKIT_CFLAGS)			\
388	$(PIE_CFLAGS)				\
389	$(NULL)
390
391install-data-hook:
392	-chown root $(DESTDIR)$(acldir)/spice-client-glib-usb-acl-helper
393	-chmod u+s  $(DESTDIR)$(acldir)/spice-client-glib-usb-acl-helper
394
395endif
396
397
398$(libspice_client_glib_impl_la_SOURCES): spice-glib-enums.h spice-marshal.h
399
400if WITH_GTK
401$(libspice_client_gtk_3_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h
402endif
403
404spice-marshal.c: spice-marshal.h
405spice-glib-enums.c: spice-glib-enums.h
406spice-widget-enums.c: spice-widget-enums.h
407
408spice-marshal.c: spice-marshal.txt
409	$(AM_V_GEN)echo "#include \"config.h\"" > $@ && \
410		echo "#include \"spice-marshal.h\"" > $@ && \
411		glib-genmarshal --body $< >> $@ || (rm -f $@ && exit 1)
412
413spice-marshal.h: spice-marshal.txt
414	$(AM_V_GEN)glib-genmarshal --header $< > $@ || (rm -f $@ && exit 1)
415
416spice-glib-enums.c: spice-channel.h channel-inputs.h spice-session.h
417	$(AM_V_GEN)glib-mkenums --fhead "#include \"config.h\"\n\n" \
418			--fhead "#include <glib-object.h>\n" \
419			--fhead "#include \"spice-glib-enums.h\"\n\n" \
420			--fprod "\n#include \"spice-session.h\"\n" \
421			--fprod "\n#include \"spice-channel.h\"\n" \
422			--fprod "\n#include \"channel-inputs.h\"\n" \
423			--vhead "static const G@Type@Value _@enum_name@_values[] = {" \
424			--vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
425			--vtail "  { 0, NULL, NULL }\n};\n\n" \
426			--vtail "GType\n@enum_name@_get_type (void)\n{\n" \
427			--vtail "  static GType type = 0;\n" \
428			--vtail "  static volatile gsize type_volatile = 0;\n\n" \
429			--vtail "  if (g_once_init_enter(&type_volatile)) {\n" \
430			--vtail "    type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n" \
431			--vtail "    g_once_init_leave(&type_volatile, type);\n" \
432			--vtail "  }\n\n" \
433			--vtail "  return type;\n}\n\n" \
434		$^ > $@
435
436spice-glib-enums.h: spice-channel.h channel-inputs.h spice-session.h
437	$(AM_V_GEN)glib-mkenums --fhead "#ifndef SPICE_GLIB_ENUMS_H\n" \
438			--fhead "#define SPICE_GLIB_ENUMS_H\n\n" \
439			--fhead "G_BEGIN_DECLS\n\n" \
440			--ftail "G_END_DECLS\n\n" \
441			--ftail "#endif /* SPICE_CHANNEL_ENUMS_H */\n" \
442			--eprod "#define SPICE_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \
443			--eprod "GType @enum_name@_get_type (void);\n" \
444		$^ >  $@
445
446spice-widget-enums.c: spice-widget.h
447	$(AM_V_GEN)glib-mkenums --fhead "#include \"config.h\"\n\n" \
448			--fhead "#include <glib-object.h>\n" \
449			--fhead "#include \"spice-widget-enums.h\"\n\n" \
450			--fprod "\n#include \"spice-widget.h\"\n" \
451			--vhead "static const G@Type@Value _@enum_name@_values[] = {" \
452			--vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
453			--vtail "  { 0, NULL, NULL }\n};\n\n" \
454			--vtail "GType\n@enum_name@_get_type (void)\n{\n" \
455			--vtail "  static GType type = 0;\n" \
456			--vtail "  static volatile gsize type_volatile = 0;\n\n" \
457			--vtail "  if (g_once_init_enter(&type_volatile)) {\n" \
458			--vtail "    type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n" \
459			--vtail "    g_once_init_leave(&type_volatile, type);\n" \
460			--vtail "  }\n\n" \
461			--vtail "  return type;\n}\n\n" \
462		$< > $@
463
464spice-widget-enums.h: spice-widget.h
465	$(AM_V_GEN)glib-mkenums --fhead "#ifndef SPICE_WIDGET_ENUMS_H\n" \
466			--fhead "#define SPICE_WIDGET_ENUMS_H\n\n" \
467			--fhead "G_BEGIN_DECLS\n\n" \
468			--ftail "G_END_DECLS\n\n" \
469			--ftail "#endif /* SPICE_WIDGET_ENUMS_H */\n" \
470			--eprod "#define SPICE_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \
471			--eprod "GType @enum_name@_get_type (void);\n" \
472		$< >  $@
473
474
475vncdisplaykeymap.c: $(KEYMAPS)
476$(KEYMAPS): $(KEYMAP_GEN) $(KEYMAP_CSV)
477
478vncdisplaykeymap_xorgevdev2xtkbd.h:
479	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_xorgevdev2xtkbd code-map $(KEYMAP_CSV) xorgevdev xtkbd > $@ || rm $@
480
481vncdisplaykeymap_xorgkbd2xtkbd.h:
482	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_xorgkbd2xtkbd code-map $(KEYMAP_CSV) xorgkbd xtkbd > $@ || rm $@
483
484vncdisplaykeymap_xorgxquartz2xtkbd.h:
485	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_xorgxquartz2xtkbd code-map $(KEYMAP_CSV) xorgxquartz xtkbd > $@ || rm $@
486
487vncdisplaykeymap_xorgxwin2xtkbd.h:
488	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_xorgxwin2xtkbd code-map $(KEYMAP_CSV) xorgxwin xtkbd > $@ || rm $@
489
490vncdisplaykeymap_osx2xtkbd.h:
491	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_osx2xtkbd code-map $(KEYMAP_CSV) osx xtkbd > $@ || rm $@
492
493vncdisplaykeymap_win322xtkbd.h:
494	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_win322xtkbd code-map $(KEYMAP_CSV) win32 xtkbd > $@ || rm $@
495
496vncdisplaykeymap_x112xtkbd.h:
497	$(AM_V_GEN)$(PYTHON) $(KEYMAP_GEN) --lang glib2 --varname keymap_x112xtkbd code-map $(KEYMAP_CSV) x11 xtkbd > $@ || rm $@
498
499-include $(INTROSPECTION_MAKEFILE)
500
501if G_IR_SCANNER_SYMBOL_PREFIX
502PREFIX_ARGS = --symbol-prefix=spice --identifier-prefix=Spice
503else
504PREFIX_ARGS = --strip-prefix=Spice
505endif
506
507INTROSPECTION_GIRS =
508INTROSPECTION_SCANNER_ARGS = --warn-all --accept-unprefixed --add-include-path=$(builddir) $(PREFIX_ARGS)
509INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
510
511if HAVE_INTROSPECTION
512glib_introspection_files =				\
513	$(libspice_client_glibinclude_HEADERS)		\
514	$(nodist_libspice_client_glibinclude_HEADERS)	\
515	spice-audio.c					\
516	spice-client.c					\
517	spice-session.c					\
518	spice-channel.c					\
519	spice-glib-enums.c				\
520	spice-option.c					\
521	spice-util.c					\
522	channel-webdav.c				\
523	channel-cursor.c				\
524	channel-display.c				\
525	channel-inputs.c				\
526	channel-main.c					\
527	channel-playback.c				\
528	channel-port.c					\
529	channel-record.c				\
530	channel-smartcard.c				\
531	channel-usbredir.c				\
532	qmp-port.c					\
533	smartcard-manager.c				\
534	usb-device-manager.c				\
535	$(NULL)
536
537gtk_introspection_files =				\
538	$(libspice_client_gtkinclude_HEADERS)		\
539	$(nodist_libspice_client_gtkinclude_HEADERS)	\
540	spice-gtk-session.c				\
541	spice-widget.c					\
542	spice-grabsequence.c				\
543	usb-device-widget.c				\
544	$(NULL)
545
546SpiceClientGLib-2.0.gir: libspice-client-glib-2.0.la
547SpiceClientGLib_2_0_gir_INCLUDES = GObject-2.0 Gio-2.0 GstBase-1.0
548SpiceClientGLib_2_0_gir_CFLAGS = $(SPICE_COMMON_CPPFLAGS)
549SpiceClientGLib_2_0_gir_LIBS = libspice-client-glib-2.0.la
550SpiceClientGLib_2_0_gir_FILES = $(glib_introspection_files)
551SpiceClientGLib_2_0_gir_EXPORT_PACKAGES = spice-client-glib-2.0
552SpiceClientGLib_2_0_gir_SCANNERFLAGS = --c-include="spice-client.h"
553INTROSPECTION_GIRS += SpiceClientGLib-2.0.gir
554
555if WITH_GTK
556SpiceClientGtk-3.0.gir: libspice-client-gtk-3.0.la SpiceClientGLib-2.0.gir
557SpiceClientGtk_3_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 SpiceClientGLib-2.0
558SpiceClientGtk_3_0_gir_CFLAGS = $(SPICE_COMMON_CPPFLAGS)
559SpiceClientGtk_3_0_gir_LIBS = libspice-client-gtk-3.0.la libspice-client-glib-2.0.la
560SpiceClientGtk_3_0_gir_FILES = $(gtk_introspection_files)
561SpiceClientGtk_3_0_gir_EXPORT_PACKAGES = spice-client-gtk-3.0
562SpiceClientGtk_3_0_gir_SCANNERFLAGS = --c-include="spice-widget.h"
563INTROSPECTION_GIRS += SpiceClientGtk-3.0.gir
564endif
565
566girdir = $(datadir)/gir-1.0
567gir_DATA = $(INTROSPECTION_GIRS)
568
569typelibsdir = $(libdir)/girepository-1.0
570typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
571
572CLEANFILES += $(gir_DATA) $(typelibs_DATA)
573endif
574
575update-map-file: $(libspice_client_gtkinclude_HEADERS) $(nodist_libspice_client_gtkinclude_HEADERS) $(libspice_client_glibinclude_HEADERS) $(nodist_libspice_client_glibinclude_HEADERS)
576	( echo "SPICEGTK_1 {" ; \
577	  echo "global:" ; \
578	  ctags -f - -I G_GNUC_CONST --c-kinds=p $^ | awk '/^spice_/ { print $$1 ";" }' | sort ; \
579	  echo "local:" ;  \
580	  echo "*;" ; \
581	  echo "};" ) > $(srcdir)/map-file
582
583update-glib-sym-file: $(libspice_client_glibinclude_HEADERS) $(nodist_libspice_client_glibinclude_HEADERS)
584	( ctags -f - -I G_GNUC_CONST --c-kinds=p $^ | awk '/^spice_/ { print $$1 }' | sort ; \
585	) > $(srcdir)/spice-glib-sym-file
586
587update-gtk-sym-file: $(libspice_client_gtkinclude_HEADERS) $(nodist_libspice_client_gtkinclude_HEADERS)
588	( ctags -f - -I G_GNUC_CONST --c-kinds=p $^ | awk '/^spice_/ { print $$1 }' | sort ; \
589	) > $(srcdir)/spice-gtk-sym-file
590
591update-symbol-files: update-map-file update-glib-sym-file update-gtk-sym-file
592
593-include $(top_srcdir)/git.mk
594