summaryrefslogtreecommitdiff
path: root/build/Makefile.am.analysis
blob: d0e00ca49560a2785e0bbfc3607aef485b3c76a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if CAIRO_HAS_LCOV
# use recursive makes in order to ignore errors during check/perf
lcov:
	-$(MAKE) $(AM_MAKEFLAGS) check
	$(MAKE) $(AM_MAKEFLAGS) genlcov
lcov-perf:
	-$(MAKE) $(AM_MAKEFLAGS) perf
	$(MAKE) $(AM_MAKEFLAGS) genlcov

# we have to massage the lcov.info file slightly to hide the effect of libtool
# placing the objects files in the .libs/ directory separate from the *.c
genlcov:
	$(LTP) --directory $(top_builddir) --path $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_TEST --no-checksum
	$(SED) -e 's#.libs/##' \
	       -e 's#boilerplate/src#src#' \
	       -e 's#$(shell pwd)#$(shell cd $(top_srcdir) && pwd)#' \
	       < cairo-lcov.info > cairo-lcov.info.tmp
	LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory cairo-lcov --title "Cairo Code Coverage" --show-details cairo-lcov.info.tmp
	$(RM) cairo-lcov.info.tmp
else
lcov lcov-perf genlcov:
	@echo You need to configure Cairo with support for gcov enabled.
	@echo e.g, ./configure --enable-gcov
endif

lcov-clean:
if CAIRO_HAS_LCOV
	-$(LTP) --directory $(top_builddir) -z
endif
	-$(RM) -r cairo-lcov.info cairo-lcov
	-$(FIND) -name '*.gcda' -print | $(XARGS) $(RM)

distclean-local: lcov-clean

.PHONY: lcov lcov-perf genlcov lcov-clean