This patch adds a parser make variable and a make target for building
the compiler with coverage compilation flags. With this, coverage
information can be generated by running tests/test suites against the
built parser and run through tools like gcovr.

Signed-off-by: Steve Beattie <steve@nxnw.org>
---
 parser/Makefile                |    8 +++++++-
 parser/libapparmor_re/Makefile |    2 +-
 parser/tst/Makefile            |    1 +
 3 files changed, 9 insertions(+), 2 deletions(-)

Index: b/parser/Makefile
===================================================================
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -51,6 +51,9 @@ CFLAGS	= -g -O2 -pipe
 ifdef DEBUG
 CFLAGS += -pg -D DEBUG
 endif
+ifdef COVERAGE
+CFLAGS = -g -pg -fprofile-arcs -ftest-coverage
+endif
 endif #CFLAGS
 
 LIBAPPARMOR_PATH=../libraries/libapparmor/src/
@@ -148,6 +151,8 @@ indep: docs
 
 all:	arch indep
 
+coverage:
+	$(MAKE) clean apparmor_parser COVERAGE=1
 
 .PHONY: libstdc++.a
 libstdc++.a:
@@ -306,7 +311,8 @@ install-indep:
 .SILENT: clean
 .PHONY: clean
 clean: _clean
-	rm -f core core.* *.o *.s *.a *~
+	rm -f core core.* *.o *.s *.a *~ *.gcda *gcno
+	rm -f gmon.out
 	rm -f $(TOOLS) $(TESTS)
 	rm -f $(LEX_C_FILES)
 	rm -f $(YACC_C_FILES)
Index: b/parser/libapparmor_re/Makefile
===================================================================
--- a/parser/libapparmor_re/Makefile
+++ b/parser/libapparmor_re/Makefile
@@ -29,4 +29,4 @@ parse.cc : parse.y parse.h flex-tables.h
 	${BISON} -o $@ $<
 
 clean:
-	rm -f *.o parse.cc ${TARGET}
+	rm -f *.o parse.cc ${TARGET} *.gcno *.gcda
Index: b/parser/tst/Makefile
===================================================================
--- a/parser/tst/Makefile
+++ b/parser/tst/Makefile
@@ -56,3 +56,4 @@ $(PARSER):
 
 clean:
 	find $(GEN_TRANS_DIRS) -type f | xargs rm -f
+	rm -f gmon.out


