summaryrefslogtreecommitdiff
path: root/Makefile.gcov
blob: 55f794138de64311e52e47eedb4f371a5702a386 (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

#
# LCOV
#

LCOV_INCLUDE="."

lcov: lcov-html

lcov-test: lcov-clean-data test

php_lcov.info: lcov-test
	@echo "Generating data for $@"
	@rm -rf lcov_data/
	@$(mkinstalldirs) lcov_data/
	@echo
	-@files=`find . -name \*.gcda -o -name \*.gcno -o -name \*.da -o -name \*.c -o -name \*.h | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' -e 's/\.da//g' | $(EGREP) $(LCOV_INCLUDE) | sed -e 's/.libs/zzzz/g' | sort | sed -e 's/zzzz/.libs/g' | uniq` ;\
	for x in $$files; do \
		echo -n . ;\
		y=`echo $$x | sed -e 's!\.libs/!!'`; \
		dir=lcov_data/`dirname $$x`; \
		test -d "$$dir" || $(mkinstalldirs) "$$dir"; \
		if test -f "$(top_srcdir)/$$y.c"; then \
			ln -f -s $(top_srcdir)/$$y.c lcov_data/$$y.c; \
		fi; \
		if test -f "$(top_srcdir)/$$y.h"; then \
			ln -f -s $(top_srcdir)/$$y.h lcov_data/$$y.h; \
		fi; \
		if test -f "$(top_srcdir)/$$y.re"; then \
			ln -f -s $(top_srcdir)/$$y.re lcov_data/$$y.re; \
		fi; \
		if test -f "$(top_srcdir)/$$y.y"; then \
		        ln -f -s $(top_srcdir)/$$y.y lcov_data/$$y.y; \
		fi; \
		if test -f "$(top_srcdir)/$$y.l"; then \
		        ln -f -s $(top_srcdir)/$$y.l lcov_data/$$y.l; \
		fi; \
		if test -f "$(top_srcdir)/$$y"; then \
		        ln -f -s $(top_srcdir)/$$y lcov_data/$$y; \
		fi; \
		if test -f "$(top_builddir)/$$y.c"; then \
			ln -f -s $(top_builddir)/$$y.c lcov_data/$$y.c; \
		fi; \
		if test -f "$$x.gcno"; then \
			cp $$x.gcno lcov_data/$$y.gcno ; \
		fi; \
		if test -f "$$x.gcda"; then \
			cp $$x.gcda lcov_data/$$y.gcda ; \
		fi; \
		if test -f "$$x.da"; then \
			cp $$x.da   lcov_data/$$y.da ; \
		fi; \
		if test -f "$$x.bb"; then \
			cp $$x.bb   lcov_data/$$y.bb ; \
		fi; \
		if test -f "$$x.bbg"; then \
			cp $$x.bbg  lcov_data/$$y.bbg ; \
		fi; \
	done; \
	for dir in ext/bcmath/libbcmath ext/date/lib ext/fileinfo/libmagic ext/gd/libgd ext/mbstring/libmbfl ext/mbstring/oniguruma ext/pcre/pcre2lib ext/xmlrpc/libxmlrpc ext/zip/lib; do \
		if test -d lcov_data/$$dir; then \
			rm -rf lcov_data/$$dir ; \
		fi; \
	done
	@echo
	@echo "Generating $@"
	@$(LTP) --directory lcov_data/ --capture --base-directory=lcov_data --output-file $@

lcov-html: php_lcov.info
	@echo "Generating lcov HTML"
	@$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info

lcov-clean:
	rm -f php_lcov.info
	rm -rf lcov_data/
	rm -rf lcov_html/

lcov-clean-data:
	@find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f