diff options
-rw-r--r-- | Analysis.mk | 35 | ||||
-rw-r--r-- | Makefile.am | 72 |
2 files changed, 52 insertions, 55 deletions
diff --git a/Analysis.mk b/Analysis.mk new file mode 100644 index 00000000..d0e00ca4 --- /dev/null +++ b/Analysis.mk @@ -0,0 +1,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 diff --git a/Makefile.am b/Makefile.am index eef0456b..e8d5bf97 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,61 +7,19 @@ endif configure: cairo-version.h -.PHONY: doc test retest recheck check-valgrind -# We have some generated header files, so we really need to build the -# library before we can build the docs -doc: all - cd doc && $(MAKE) $(AM_MAKEFLAGS) doc -test: all - cd test && $(MAKE) $(AM_MAKEFLAGS) test -retest: all - cd test && $(MAKE) $(AM_MAKEFLAGS) retest -recheck: all - cd test && $(MAKE) $(AM_MAKEFLAGS) recheck +doc: + cd doc && $(MAKE) $(AM_MAKEFLAGS) $@ +test retest recheck: all + cd test && $(MAKE) $(AM_MAKEFLAGS) $@ +perf: all + cd perf && $(MAKE) $(AM_MAKEFLAGS) $@ check-valgrind: all cd test && $(MAKE) $(AM_MAKEFLAGS) check-valgrind cd perf && $(MAKE) $(AM_MAKEFLAGS) check-valgrind -perf: all - cd perf && $(MAKE) $(AM_MAKEFLAGS) perf - -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) - -.PHONY: lcov lcov-perf lcov-clean genlcov +.PHONY: doc test retest recheck perf check-valgrind EXTRA_DIST = \ - autogen.sh \ - cairo-version.h \ AUTHORS \ BIBLIOGRAPHY \ BUGS \ @@ -71,13 +29,16 @@ EXTRA_DIST = \ COPYING-MPL-1.1 \ HACKING \ INSTALL \ + Makefile.win32 \ NEWS \ PORTING_GUIDE \ README \ - RELEASING -DISTCLEANFILES = config.cache -distclean-local: lcov-clean + RELEASING \ + autogen.sh \ + cairo-version.h \ + $(NULL) +DISTCLEANFILES = config.cache MAINTAINERCLEANFILES = \ $(srcdir)/aclocal.m4 \ $(srcdir)/autoscan.log \ @@ -93,9 +54,10 @@ MAINTAINERCLEANFILES = \ $(srcdir)/mkinstalldirs \ `find "$(srcdir)" -type f -name Makefile.in -print` -DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-test-surfaces +DISTCHECK_CONFIGURE_FLAGS = \ + --enable-gtk-doc \ + --enable-test-surfaces include $(srcdir)/ChangeLog.mk include $(srcdir)/Releasing.mk - -EXTRA_DIST += Makefile.win32 +include $(srcdir)/Analysis.mk |