blob: a44077ab45374318a26d9ecbaa3a8f07623581cf [file] [log] [blame]
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
html-local: lcov
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