[Makefile.am] Move lcov rules to Analysis.mk

This commit is contained in:
Behdad Esfahbod 2008-09-03 12:16:36 -04:00
parent c8f23c2fcc
commit 5ea2555c12
2 changed files with 52 additions and 55 deletions

35
Analysis.mk Normal file
View file

@ -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

View file

@ -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