mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-15 22:01:27 +00:00
configure.ac: set CFLAGS and friends to -O0 if gcov is being used add GCOV LIBS
Original commit message from CVS: * configure.ac: set CFLAGS and friends to -O0 if gcov is being used add GCOV LIBS * gst/Makefile.am: * libs/gst/base/Makefile.am: * libs/gst/check/Makefile.am: * libs/gst/controller/Makefile.am: * libs/gst/dataprotocol/Makefile.am: * libs/gst/net/Makefile.am: * plugins/elements/Makefile.am: * plugins/indexers/Makefile.am: add makefile rules to generate gcov data and clean up * tests/check/Makefile.am: add a coverage target that generates an html overview of coverage data
This commit is contained in:
parent
12b7074822
commit
3c3bbc87d4
12 changed files with 141 additions and 6 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
2006-07-02 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
|
* configure.ac:
|
||||||
|
set CFLAGS and friends to -O0 if gcov is being used
|
||||||
|
add GCOV LIBS
|
||||||
|
* gst/Makefile.am:
|
||||||
|
* libs/gst/base/Makefile.am:
|
||||||
|
* libs/gst/check/Makefile.am:
|
||||||
|
* libs/gst/controller/Makefile.am:
|
||||||
|
* libs/gst/dataprotocol/Makefile.am:
|
||||||
|
* libs/gst/net/Makefile.am:
|
||||||
|
* plugins/elements/Makefile.am:
|
||||||
|
* plugins/indexers/Makefile.am:
|
||||||
|
add makefile rules to generate gcov data and clean up
|
||||||
|
* tests/check/Makefile.am:
|
||||||
|
add a coverage target that generates an html overview
|
||||||
|
of coverage data
|
||||||
|
|
||||||
2006-07-01 Thomas Vander Stichele <thomas at apestaart dot org>
|
2006-07-01 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* tests/check/elements/fakesink.c:
|
* tests/check/elements/fakesink.c:
|
||||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
||||||
Subproject commit f4348ab157cc5e859f287e746004c0210880969a
|
Subproject commit 2cd1cf860cd15e61827c0f5f1db96f877344c722
|
16
configure.ac
16
configure.ac
|
@ -436,6 +436,20 @@ if test "x$USE_DEBUG" = xyes; then
|
||||||
fi
|
fi
|
||||||
AC_SUBST(PROFILE_CFLAGS)
|
AC_SUBST(PROFILE_CFLAGS)
|
||||||
|
|
||||||
|
dnl if gcov is used, we do not want default -O2 CFLAGS
|
||||||
|
if test "x$GST_GCOV_ENABLED" = "xyes"
|
||||||
|
then
|
||||||
|
CFLAGS="-O0"
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
CXXFLAGS="-O0"
|
||||||
|
AC_SUBST(CXXFLAGS)
|
||||||
|
FFLAGS="-O0"
|
||||||
|
AC_SUBST(FFLAGS)
|
||||||
|
CCASFLAGS="-O0"
|
||||||
|
AC_SUBST(CCASFLAGS)
|
||||||
|
AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS])
|
||||||
|
fi
|
||||||
|
|
||||||
DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
|
DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
|
||||||
AC_SUBST(DEPRECATED_CFLAGS)
|
AC_SUBST(DEPRECATED_CFLAGS)
|
||||||
|
|
||||||
|
@ -454,7 +468,7 @@ dnl from LibXML except for in the core library
|
||||||
GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir) $GLIB_CFLAGS $XML_CFLAGS \$(GST_OPTION_CFLAGS)"
|
GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir) $GLIB_CFLAGS $XML_CFLAGS \$(GST_OPTION_CFLAGS)"
|
||||||
dnl FIXME: check if LTLIBINTL is needed everywhere
|
dnl FIXME: check if LTLIBINTL is needed everywhere
|
||||||
dnl I presume it is given that it contains the symbols that _() stuff maps to
|
dnl I presume it is given that it contains the symbols that _() stuff maps to
|
||||||
GST_ALL_LIBS="$GLIB_LIBS $LTLIBINTL"
|
GST_ALL_LIBS="$GLIB_LIBS $LTLIBINTL \$(GCOV_LIBS)"
|
||||||
dnl LDFLAGS really should only contain flags, not libs - they get added before
|
dnl LDFLAGS really should only contain flags, not libs - they get added before
|
||||||
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
|
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
|
||||||
GST_ALL_LDFLAGS="-no-undefined"
|
GST_ALL_LDFLAGS="-no-undefined"
|
||||||
|
|
|
@ -69,7 +69,6 @@ EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
|
||||||
gstmarshal.list gstxml.c gstparse.c gsttrace.c gstregistryxml.c
|
gstmarshal.list gstxml.c gstparse.c gsttrace.c gstregistryxml.c
|
||||||
|
|
||||||
libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
|
libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
|
||||||
glib-compat.c \
|
|
||||||
gst.c \
|
gst.c \
|
||||||
gstobject.c \
|
gstobject.c \
|
||||||
gstbin.c \
|
gstbin.c \
|
||||||
|
@ -123,7 +122,7 @@ BUILT_SOURCES = \
|
||||||
$(built_header_make) \
|
$(built_header_make) \
|
||||||
$(built_source_make)
|
$(built_source_make)
|
||||||
# CLEANFILES is for files generated by make
|
# CLEANFILES is for files generated by make
|
||||||
CLEANFILES = $(built_header_make) $(built_source_make) $(as_dll_cleanfiles)
|
CLEANFILES = $(built_header_make) $(built_source_make) $(as_dll_cleanfiles) *.gcno *.gcda *.gcov *.gcov.out
|
||||||
# DISTCLEANFILES is for files generated by configure
|
# DISTCLEANFILES is for files generated by configure
|
||||||
DISTCLEANFILES = $(built_header_configure)
|
DISTCLEANFILES = $(built_header_configure)
|
||||||
|
|
||||||
|
@ -147,6 +146,7 @@ libgstreamer_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINO
|
||||||
|
|
||||||
gst_headers = \
|
gst_headers = \
|
||||||
gst.h \
|
gst.h \
|
||||||
|
glib-compat.c \
|
||||||
glib-compat.h \
|
glib-compat.h \
|
||||||
gstobject.h \
|
gstobject.h \
|
||||||
gstbin.h \
|
gstbin.h \
|
||||||
|
@ -234,3 +234,8 @@ gstenumtypes.c: $(gst_headers)
|
||||||
--vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
|
--vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
|
||||||
--vtail " { 0, NULL, NULL }\n };\n *id = g_@type@_register_static (\"@EnumName@\", values);\n}\nGType\n@enum_name@_get_type (void)\n{\n static GType id;\n static GOnce once = G_ONCE_INIT;\n\n g_once (&once, (GThreadFunc)register_@enum_name@, &id);\n return id;\n}\n" \
|
--vtail " { 0, NULL, NULL }\n };\n *id = g_@type@_register_static (\"@EnumName@\", values);\n}\nGType\n@enum_name@_get_type (void)\n{\n static GType id;\n static GOnce once = G_ONCE_INIT;\n\n g_once (&once, (GThreadFunc)register_@enum_name@, &id);\n return id;\n}\n" \
|
||||||
$^ > gstenumtypes.c
|
$^ > gstenumtypes.c
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstreamer_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -27,3 +27,9 @@ libgstbase_@GST_MAJORMINOR@include_HEADERS = \
|
||||||
gstpushsrc.h \
|
gstpushsrc.h \
|
||||||
gsttypefindhelper.h
|
gsttypefindhelper.h
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstbase_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstbase_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -16,3 +16,10 @@ libgstcheck_@GST_MAJORMINOR@includedir = \
|
||||||
|
|
||||||
libgstcheck_@GST_MAJORMINOR@include_HEADERS = \
|
libgstcheck_@GST_MAJORMINOR@include_HEADERS = \
|
||||||
gstcheck.h
|
gstcheck.h
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstcheck_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -14,3 +14,10 @@ libgstcontroller_@GST_MAJORMINOR@_la_SOURCES = \
|
||||||
libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||||
libgstcontroller_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
libgstcontroller_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
||||||
libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstcontroller_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -12,3 +12,9 @@ libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||||
libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
||||||
libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstdataprotocol_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -16,3 +16,9 @@ libgstnet_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||||
libgstnet_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
libgstnet_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
|
||||||
libgstnet_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
libgstnet_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstnet_@GST_MAJORMINOR@_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstnet_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -51,3 +51,11 @@ noinst_HEADERS = \
|
||||||
|
|
||||||
EXTRA_DIST = gstfdsrc.c \
|
EXTRA_DIST = gstfdsrc.c \
|
||||||
gstfdsink.c
|
gstfdsink.c
|
||||||
|
|
||||||
|
|
||||||
|
CLEANFILES = *.gcno *.gcda *.gcov
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstcoreelements_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstcoreelements_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -19,3 +19,8 @@ libgstcoreindexers_la_SOURCES = gstindexers.c gstmemindex.c $(GST_LOADSAVE_SRC)
|
||||||
libgstcoreindexers_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
libgstcoreindexers_la_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||||
libgstcoreindexers_la_LIBADD = $(GST_OBJ_LIBS) $(GST_FILEINDEX_LIBS)
|
libgstcoreindexers_la_LIBADD = $(GST_OBJ_LIBS) $(GST_FILEINDEX_LIBS)
|
||||||
libgstcoreindexers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
libgstcoreindexers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
||||||
|
|
||||||
|
%.c.gcov: .libs/libgstcoreindexers_la-%.gcda %.c
|
||||||
|
$(GCOV) -b -f -o $^ > $@.out
|
||||||
|
|
||||||
|
gcov: $(libgstcoreindexers_la_SOURCES:=.gcov)
|
||||||
|
|
|
@ -150,3 +150,56 @@ VALGRIND_TESTS_DISABLE = \
|
||||||
$(TESTS_THREADED) \
|
$(TESTS_THREADED) \
|
||||||
$(VALGRIND_IGNORE) \
|
$(VALGRIND_IGNORE) \
|
||||||
$(VALGRIND_TO_FIX)
|
$(VALGRIND_TO_FIX)
|
||||||
|
|
||||||
|
# indexers does not get tested yet
|
||||||
|
COVERAGE_DIRS = \
|
||||||
|
gst \
|
||||||
|
libs/gst/base \
|
||||||
|
libs/gst/controller \
|
||||||
|
libs/gst/check \
|
||||||
|
libs/gst/dataprotocol \
|
||||||
|
libs/gst/net \
|
||||||
|
plugins/elements
|
||||||
|
COVERAGE_FILES = $(foreach dir,$(COVERAGE_DIRS),$(wildcard $(top_builddir)/$(dir)/*.gcov))
|
||||||
|
COVERAGE_FILES_REL = $(subst $(top_builddir)/,,$(COVERAGE_FILES))
|
||||||
|
COVERAGE_OUT_FILES = $(foreach dir,$(COVERAGE_DIRS),$(wildcard $(top_builddir)/$(dir)/*.gcov.out))
|
||||||
|
COVERAGE_OUT_FILES_REL = $(subst $(top_builddir)/,,$(COVERAGE_OUT_FILES))
|
||||||
|
|
||||||
|
debug:
|
||||||
|
echo $(COVERAGE_FILES)
|
||||||
|
echo $(COVERAGE_FILES_REL)
|
||||||
|
|
||||||
|
.PHONY: coverage
|
||||||
|
if GST_GCOV_ENABLED
|
||||||
|
coverage:
|
||||||
|
for file in `find $(top_builddir) -name '*.gcda'`; do rm $$file; done
|
||||||
|
make check
|
||||||
|
make coverage-report
|
||||||
|
else
|
||||||
|
coverage:
|
||||||
|
echo "You need to configure with --enable-gcov to get coverage data"
|
||||||
|
exit 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
coverage-report:
|
||||||
|
rm -r coverage
|
||||||
|
for dir in $(COVERAGE_DIRS); do \
|
||||||
|
mkdir -p coverage/$$dir; \
|
||||||
|
make -C $(top_builddir)/$$dir gcov; \
|
||||||
|
done
|
||||||
|
for dir in $(COVERAGE_DIRS); do \
|
||||||
|
files="`ls $(top_builddir)/$$dir/*.gcov.out 2> /dev/null`"; \
|
||||||
|
if test ! -z "$$files"; then \
|
||||||
|
perl $(top_srcdir)/common/coverage/coverage-report.pl \
|
||||||
|
$(top_builddir)/$$dir/*.gcov.out > \
|
||||||
|
coverage/$$dir/index.xml; \
|
||||||
|
xsltproc $(top_srcdir)/common/coverage/coverage-report.xsl \
|
||||||
|
coverage/$$dir/index.xml > coverage/$$dir/index.html; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
for file in $(COVERAGE_FILES_REL); do \
|
||||||
|
echo Generating coverage/$$file.html; \
|
||||||
|
perl $(top_srcdir)/common/coverage/coverage-report-entry.pl \
|
||||||
|
$(top_builddir)/$$file > coverage/$$file.html; \
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in a new issue