1 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
6 libcheese/cheese-enums.c \
7 libcheese/cheese-enums.h
9 cheese_enum_headers = \
10 $(top_srcdir)/libcheese/cheese-widget.h
12 libcheese/cheese-enums.c: $(cheese_enum_headers) libcheese/cheese-enums.h
13 $(AM_V_GEN)$(GLIB_MKENUMS) \
14 --fhead "#include \"cheese-enums.h\"\n\n" \
15 --fprod "/* enumerations from \"@filename@\" */\n" \
16 --fprod "#include \"@filename@\"\n" \
17 --vhead "GType\n@enum_name@_get_type (void)\n{\n" \
18 --vhead " static GType type = 0;\n\n" \
19 --vhead " if (!type)\n {\n" \
20 --vhead " static const G@Type@Value _@enum_name@_values[] = {" \
21 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
22 --vtail " { 0, NULL, NULL }\n };\n\n" \
23 --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n }\n\n" \
24 --vtail " return type;\n}\n\n" \
25 $(cheese_enum_headers) > $@
27 libcheese/cheese-enums.h: $(cheese_enum_headers)
28 $(AM_V_GEN)$(GLIB_MKENUMS) \
29 --fhead "#ifndef CHEESE_ENUMS_H_\n" \
30 --fhead "#define CHEESE_ENUMS_H_\n\n" \
31 --fhead "#include <glib-object.h>\n\n" \
32 --fhead "G_BEGIN_DECLS\n\n" \
33 --fprod "/* enumerations from @filename@ */\n" \
34 --vhead "GType @enum_name@_get_type (void);\n" \
35 --vhead "#define CHEESE_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
36 --ftail "G_END_DECLS\n\n" \
37 --ftail "#endif /* CHEESE_ENUMS_H_ */" \
38 $(cheese_enum_headers) > $@
41 -DDATADIR=\"$(datadir)\" \
42 -DPREFIX=\""$(prefix)"\" \
43 -DSYSCONFDIR=\""$(sysconfdir)"\" \
44 -DLIBDIR=\""$(libdir)"\" \
45 -DPACKAGE_DATADIR=\""$(pkgdatadir)"\" \
46 -DPACKAGE_LOCALEDIR=\""$(datadir)/locale"\" \
47 -DGNOME_DESKTOP_USE_UNSTABLE_API=1 \
57 --vapidir $(top_srcdir)/src/vapi \
58 --gresources $(top_srcdir)/data/org.gnome.Cheese.gresource.xml \
64 --pkg clutter-gtk-1.0 \
66 --pkg libcanberra-gtk \
69 --pkg cheese-thumbview \
74 lib_LTLIBRARIES = libcheese.la libcheese-gtk.la
76 libcheese_gtk_la_CFLAGS = \
78 $(CHEESE_GTK_CFLAGS) \
81 libcheese_gtk_la_CPPFLAGS = \
83 -DG_LOG_DOMAIN=\"cheese-gtk\" \
84 -I$(top_builddir)/libcheese \
85 -I$(top_srcdir)/libcheese \
88 libcheese_gtk_la_LIBADD = \
94 libcheese_gtk_la_LDFLAGS = \
95 -version-info $(LIBCHEESE_GTK_LT_VERSION) \
96 -export-symbols $(top_srcdir)/libcheese/cheese-gtk.symbols \
100 libcheese_gtk_la_SOURCES = \
101 libcheese/cheese-avatar-chooser.c \
102 libcheese/cheese-avatar-widget.c \
103 libcheese/totem-aspect-frame.c \
104 libcheese/cheese-flash.c \
105 libcheese/cheese-gtk.c \
106 libcheese/cheese-widget.c \
107 libcheese/um-crop-area.c
109 noinst_libcheese_gtk_headers = \
110 libcheese/totem-aspect-frame.h \
111 libcheese/cheese-avatar-chooser.h \
112 libcheese/cheese-avatar-widget.h \
113 libcheese/cheese-flash.h \
114 libcheese/cheese-widget.h \
115 libcheese/cheese-widget-private.h \
116 libcheese/um-crop-area.h
118 libcheese_la_CFLAGS = \
120 $(CHEESE_GTK_CFLAGS) \
123 libcheese_la_CPPFLAGS = \
125 -DG_LOG_DOMAIN=\"cheese\" \
126 -I$(top_builddir)/libcheese \
127 -I$(top_srcdir)/libcheese
129 libcheese_la_LIBADD = \
132 libcheese_la_LDFLAGS = \
133 -version-info $(LIBCHEESE_LT_VERSION) \
136 libcheese_la_SOURCES = \
137 libcheese/cheese-enums.c \
138 libcheese/cheese-camera.c \
139 libcheese/cheese-camera-device.c \
140 libcheese/cheese-camera-device-monitor.c \
141 libcheese/cheese-effect.c \
142 libcheese/cheese-fileutil.c \
145 noinst_libcheese_headers = \
146 libcheese/cheese-camera.h \
147 libcheese/cheese-camera-device.h \
148 libcheese/cheese-camera-device-monitor.h \
149 libcheese/cheese-effect.h \
150 libcheese/cheese-fileutil.h
152 # FIXME when we have a .pc file, and sonames
153 cheesedir = $(includedir)/cheese
155 libcheese/cheese-avatar-widget.h \
156 libcheese/cheese-avatar-chooser.h \
157 libcheese/cheese-camera.h \
158 libcheese/cheese-camera-device.h \
159 libcheese/cheese-camera-device-monitor.h \
160 libcheese/cheese-effect.h \
161 libcheese/cheese-gtk.h \
163 libcheese/cheese-widget.h
165 if HAVE_INTROSPECTION
166 -include $(INTROSPECTION_MAKEFILE)
167 INTROSPECTION_COMPILER_ARGS = --includedir=$(top_srcdir)
168 INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_srcdir) --warn-all
170 INTROSPECTION_GIRS = Cheese-3.0.gir
172 Cheese-3.0.gir: libcheese.la
173 Cheese_3_0_gir_CFLAGS = \
174 -I$(top_srcdir)/libcheese \
175 -I$(top_builddir)/libcheese \
177 Cheese_3_0_gir_FILES = \
178 $(libcheese_la_SOURCES) \
179 $(noinst_libcheese_headers) \
180 libcheese/cheese-enums.h
181 Cheese_3_0_gir_INCLUDES = \
185 Cheese_3_0_gir_LIBS = libcheese.la
186 Cheese_3_0_gir_SCANNERFLAGS = --verbose --warn-all --pkg-export cheese
188 girdir = $(datadir)/gir-1.0
189 gir_DATA = $(INTROSPECTION_GIRS)
191 typelibdir = $(libdir)/girepository-1.0
192 typelib_DATA = Cheese-3.0.typelib
195 noinst_resource_files = \
197 data/cheese-viewport.json \
198 data/cheese-main-window.ui \
199 data/cheese-prefs.ui \
202 data/pixmaps/cheese-1.svg \
203 data/pixmaps/cheese-2.svg \
204 data/pixmaps/cheese-3.svg \
205 data/pixmaps/thumbnail-frame.png
207 src/cheese-resource.c src/cheese-resource.h: data/org.gnome.Cheese.gresource.xml Makefile $(noinst_resource_files)
208 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/data --generate --c-name cheese $<
210 bin_PROGRAMS = cheese
212 nodist_cheese_SOURCES = \
213 src/cheese-resource.c
215 # cheese-main.vala must go at the end of the Vala sources.
217 src/cheese-application.vala \
218 src/cheese-countdown.vala \
219 src/cheese-effects-manager.vala \
220 src/cheese-preferences.vala \
221 src/cheese-window.vala \
222 src/cheese-main.vala \
223 src/thumbview/cheese-thumb-view.c \
224 src/thumbview/cheese-thumbnail.c \
225 src/thumbview/eog-thumb-nav.c
227 nodist_cheese_HEADERS = \
228 src/cheese-resource.h
231 src/thumbview/cheese-thumb-view.h \
232 src/thumbview/cheese-thumbnail.h \
233 src/thumbview/eog-thumb-nav.h
238 $(CHEESE_GTK_CFLAGS) \
239 -include $(top_builddir)/$(CONFIG_HEADER) \
240 -I$(top_srcdir)/libcheese \
243 cheese_CFLAGS = -export-dynamic -w
254 service/camera.c: service/camera.h
255 service/camera.h: Makefile data/org.gnome.Camera.xml
256 $(AM_V_GEN) $(GDBUS_CODEGEN) --interface-prefix org.gnome.Camera. \
257 --generate-c-code service/camera \
258 --c-namespace Gc $(srcdir)/data/org.gnome.Camera.xml
261 $(nodist_gnome_camera_service_SOURCES)
263 gnome_camera_service_SOURCES = \
264 service/gc-application.c \
265 service/gc-camera-client.c \
266 service/gc-camera-manager.c \
267 service/gc-client-monitor.c \
270 noinst_gnome_camera_service_headers = \
271 service/gc-application.h \
272 service/gc-camera-client.h \
273 service/gc-camera-manager.h \
274 service/gc-client-monitor.h
276 nodist_gnome_camera_service_headers = \
279 nodist_gnome_camera_service_SOURCES = \
282 gnome_camera_service_CPPFLAGS = \
284 -I$(top_builddir)/service \
285 -I$(top_srcdir)/libcheese
287 gnome_camera_service_CFLAGS = \
290 gnome_camera_service_LDADD = \
295 tests/cheese-test-camera \
296 tests/cheese-test-chooser \
297 tests/cheese-test-flash \
298 tests/cheese-test-monitor \
299 tests/cheese-test-widget \
300 tests/test-service-client
305 tests/test-webcam-button
307 noinst_PROGRAMS = $(EXAMPLES)
310 EXAMPLES_CPPFLAGS = \
312 $(CHEESE_GTK_CFLAGS) \
313 -I$(top_srcdir)/libcheese
315 tests_cheese_test_camera_SOURCES = tests/cheese-test-camera.c
316 tests_cheese_test_chooser_SOURCES = tests/cheese-test-chooser.c
317 tests_cheese_test_flash_SOURCES = tests/cheese-test-flash.c
318 tests_cheese_test_monitor_SOURCES = tests/cheese-test-monitor.c
319 tests_cheese_test_widget_SOURCES = tests/cheese-test-widget.c
320 tests_test_service_client_SOURCES = tests/test-service-client.c
321 nodist_tests_test_service_client_SOURCES = service/camera.c
322 tests_test_webcam_button_SOURCES = tests/test-webcam-button.c
324 tests_cheese_test_camera_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
325 tests_cheese_test_chooser_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
326 tests_cheese_test_flash_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
327 tests_cheese_test_monitor_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
328 tests_cheese_test_widget_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
329 tests_test_service_client_CPPFLAGS = \
330 $(EXAMPLES_CPPFLAGS) -I$(top_builddir)/service
331 tests_test_webcam_button_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
333 tests_cheese_test_camera_LDADD = \
337 tests_cheese_test_chooser_LDADD = \
342 tests_cheese_test_flash_LDADD = \
347 tests_cheese_test_monitor_LDADD = \
352 tests_cheese_test_widget_LDADD = \
357 tests_test_service_client_LDADD = $(CHEESE_GTK_LIBS)
358 tests_test_webcam_button_LDADD = $(XTEST_LIBS)
360 @INTLTOOL_DESKTOP_RULE@
361 desktopdir = $(datadir)/applications
362 desktop_in_files = data/org.gnome.Cheese.desktop.in
363 desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
365 @APPSTREAM_XML_RULES@
367 appstream_in_files = data/org.gnome.Cheese.appdata.xml.in
368 appstream_XML = $(appstream_in_files:.appdata.xml.in=.appdata.xml)
370 data/org.gnome.Cheese.service: data/org.gnome.Cheese.service.in
371 $(AM_V_GEN)$(SED) -e "s|[@]bindir[@]|$(bindir)|" $< > $@
373 data/org.gnome.Camera.service: data/org.gnome.Camera.service.in
374 $(AM_V_GEN)$(SED) -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@
376 servicedir = $(datadir)/dbus-1/services
378 data/org.gnome.Camera.service.in \
379 data/org.gnome.Cheese.service.in
380 service_DATA = $(service_in_files:.service.in=.service)
383 gsettings_SCHEMAS = data/org.gnome.Cheese.gschema.xml
385 pkgconfigdir = $(libdir)/pkgconfig
390 iconthemedir = $(datadir)/icons/hicolor
392 appsicon16dir = $(iconthemedir)/16x16/apps
393 appsicon22dir = $(iconthemedir)/22x22/apps
394 appsicon24dir = $(iconthemedir)/24x24/apps
395 appsicon32dir = $(iconthemedir)/32x32/apps
396 appsicon48dir = $(iconthemedir)/48x48/apps
397 appsicon256dir = $(iconthemedir)/256x256/apps
398 appsiconsymbolicdir = $(iconthemedir)/symbolic/apps
400 dist_appsicon16_DATA = data/icons/16x16/cheese.png
401 dist_appsicon22_DATA = data/icons/22x22/cheese.png
402 dist_appsicon24_DATA = data/icons/24x24/cheese.png
403 dist_appsicon32_DATA = data/icons/32x32/cheese.png
404 dist_appsicon48_DATA = data/icons/48x48/cheese.png
405 dist_appsicon256_DATA = data/icons/256x256/cheese.png
406 dist_appsiconsymbolic_DATA = data/icons/symbolic/cheese-symbolic.svg
408 update_icon_cache = gtk-update-icon-cache --ignore-theme-index --force
410 install-data-hook: install-update-icon-cache
411 uninstall-hook: uninstall-update-icon-cache
412 touch libcheese_la_vala.stamp
414 install-update-icon-cache:
415 $(AM_V_at)$(POST_INSTALL)
416 test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
418 uninstall-update-icon-cache:
419 $(AM_V_at)$(POST_UNINSTALL)
420 test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
424 tests/test-libcheese \
425 tests/test-libcheese-gtk
427 tests_test_libcheese_gtk_SOURCES = \
428 libcheese/um-crop-area.c \
429 tests/test-libcheese-gtk.c
430 tests_test_libcheese_gtk_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
431 tests_test_libcheese_gtk_LDADD = \
437 tests_test_libcheese_SOURCES = \
438 tests/test-libcheese.c
439 tests_test_libcheese_CPPFLAGS = $(EXAMPLES_CPPFLAGS)
440 tests_test_libcheese_LDADD = \
444 if CHEESE_ENABLE_TESTS
445 # Not automake built-in TESTS_ENVIRONMENT!
446 TEST_ENVIRONMENT = MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
448 # test: run all tests.
449 test: $(check_PROGRAMS)
450 $(AM_V_at)$(TEST_ENVIRONMENT) $(GTESTER) --verbose $(check_PROGRAMS)
452 # test-report: run tests and generate report.
453 # perf-report: run tests with -m perf and generate report.
454 # full-report: like test-report: with -m perf and -m slow.
455 test-report perf-report full-report: $(check_PROGRAMS)
456 $(AM_V_at)test -z "$(check_PROGRAMS)" || { \
458 test-report) test_options="-k";; \
459 perf-report) test_options="-k -m=perf";; \
460 full-report) test_options="-k -m=perf -m=slow";; \
462 $(TEST_ENVIRONMENT) $(GTESTER) --verbose $$test_options -o test-log.xml $(check_PROGRAMS) ; \
463 if test -d "$(top_srcdir)/.git" ; then \
464 REVISION=`git describe` ; \
466 REVISION=$(PACKAGE_VERSION) ; \
468 echo '<?xml version="1.0"?>' > $@.xml ; \
469 echo '<report-collection>' >> $@.xml ; \
470 echo '<info>' >> $@.xml ; \
471 echo ' <package>$(PACKAGE_NAME)</package>' >> $@.xml ; \
472 echo ' <version>$(PACKAGE_VERSION)</version>' >> $@.xml ; \
473 echo " <revision>$$REVISION</revision>" >> $@.xml ; \
474 echo '</info>' >> $@.xml ; \
475 $(SED) '1,1s/^<?xml\b[^>?]*?>//' < test-log.xml >> $@.xml ; \
478 echo '</report-collection>' >> $@.xml ; \
479 $(GTESTER_REPORT) --version 2>/dev/null 1>&2 ; test "$$?" != 0 || $(GTESTER_REPORT) $@.xml >$@.html ; \
481 else # !CHEESE_ENABLE_TESTS
483 echo "Test run disabled due to the lack of GLib testing utilities"
486 # Code coverage reporting.
487 if CHEESE_ENABLE_LCOV
488 # Depend on full-report so that all the tests are run.
490 $(AM_V_at)$(LCOV) --base-directory $(top_builddir) \
491 --directory $(top_builddir)/libcheese --capture \
492 --output-file cheese-lcov.info --test-name CHEESE \
493 --no-checksum --compat-libtool
494 $(AM_V_at)LANG=C $(LCOV_GENHTML) --prefix $(top_builddir) \
495 --output-directory cheese-lcov --title "Cheese code coverage" \
496 --legend --show-details cheese-lcov.info
499 $(AM_V_at)$(LCOV) --directory $(top_builddir) -z
500 $(AM_V_at)rm -rf cheese-lcov.info cheese-lcov
501 $(AM_V_at)find . -name '*.gcda' -exec rm -f {} +
502 else # !CHEESE_ENABLE_LCOV
504 $(AM_V_at)echo "Code coverage reporting not available"
507 $(AM_V_at)rm -rf cheese-lcov.info cheese-lcov
508 $(AM_V_at)find . -name '*.gcda' -exec rm -f {} +
512 gtkdoc_builddir = $(top_builddir)/docs/reference
513 gtkdoc_distdir = $(top_distdir)/docs/reference
514 gtkdoc_srcdir = $(top_srcdir)/docs/reference
516 all-local: $(bin_PROGRAMS)
517 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) all
518 # run make test as part of make check.
520 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFlAGS) check
521 clean-local: lcov-clean
522 cd $(gtkdoc_builddir) && if test -e Makefile ; then \
523 $(MAKE) $(AM_MAKEFLAGS) clean ; \
525 find . -name '*.gcno' -exec rm -f {} +
527 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) distclean
528 docs: $(lib_LTLIBRARIES)
529 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) docs
531 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) install-data
533 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) uninstall
535 dist-hook: git-changelog-hook
536 $(MKDIR_P) $(gtkdoc_distdir)
537 cp $(gtkdoc_srcdir)/Makefile.am $(gtkdoc_srcdir)/Makefile.in $(gtkdoc_distdir)
538 cd $(gtkdoc_builddir) && $(MAKE) $(AM_MAKEFLAGS) \
539 distdir="../../$(gtkdoc_distdir)" \
540 top_distdir="../../$(top_distdir)" \
546 $(appstream_in_files) \
547 $(desktop_in_files) \
548 $(gsettings_SCHEMAS) \
549 $(noinst_gnome_camera_service_headers) \
550 $(noinst_resource_files) \
551 $(service_in_files) \
552 data/org.gnome.Cheese.gresource.xml \
553 data/org.gnome.Camera.xml \
554 build-aux/test-driver \
555 $(gtkdoc_srcdir)/cheese-docs.xml \
556 $(gtkdoc_srcdir)/cheese-sections.txt \
557 $(gtkdoc_srcdir)/cheese.xml \
558 $(gtkdoc_srcdir)/version.xml.in \
560 $(noinst_libcheese_headers) \
561 $(noinst_libcheese_gtk_headers) \
562 libcheese/cheese-gtk.symbols \
563 m4/introspection.m4 \
564 src/vapi/cheese-common.deps \
565 src/vapi/cheese-common.vapi \
566 src/vapi/cheese-thumbview.vapi \
567 src/vapi/config.vapi \
568 src/vapi/eogthumbnav.vapi
570 dist_noinst_SCRIPTS = \
581 $(nodist_gnome_camera_service_headers) \
582 $(nodist_gnome_camera_service_SOURCES) \
583 src/cheese-resource.c \
584 src/cheese-resource.h
587 libcheese_la_vala.stamp \
588 po/.intltool-merge-cache
590 MAINTAINERCLEANFILES = \
592 build-aux/config.guess \
593 build-aux/config.sub \
595 build-aux/install-sh \
596 build-aux/ltmain.sh \
598 build-aux/test-driver \
601 $(gsettings_SCHEMAS:.xml=.valid) \
606 DISTCHECK_CONFIGURE_FLAGS = \
607 --enable-appdata-check \
609 --enable-introspection \
612 CHANGELOG_START = 2.26.0
615 $(AM_V_at)if $(top_srcdir)/build-aux/missing --run git \
616 --git-dir=$(top_srcdir)/.git --work-tree=$(top_srcdir) log \
617 --stat -M -C --name-status --no-color $(CHANGELOG_START).. \
618 | fmt --split-only >.ChangeLog.tmp; \
619 then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \
620 else rm -f .ChangeLog.tmp; exit 1; fi
622 .PHONY: docs git-changelog-hook test test-report perf-report full-report
623 .PHONY: lcov lcov-clean