Makefile.am 7.41 KB
Newer Older
1
# note: keep in sync with configure.ac
2
ACLOCAL_AMFLAGS = -I m4 -I common/m4
David Schleef's avatar
David Schleef committed
3

4
aclocaldir = $(datadir)/aclocal
5
aclocal_DATA = gst-element-check-1.0.m4
6

7
SUBDIRS = pkgconfig \
8
	gst libs plugins tests \
9
	po \
10
	m4 \
11 12
	common \
	data
13

14 15 16 17
if BUILD_TOOLS
SUBDIRS += tools
endif

18
# These are all the possible subdirs
19
DIST_SUBDIRS = pkgconfig \
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
20
	gst libs plugins tools tests \
21
	po \
22
	m4 \
23 24
	common \
	data
25

26
EXTRA_DIST = \
27
	gst-element-check-1.0.m4 \
28
	configure.ac autogen.sh depcomp \
29
	MAINTAINERS ABOUT-NLS RELEASE gstreamer.doap \
30
	scripts/gst-uninstalled \
31
	$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/gstreamer-*" ) \
32
	meson_options.txt \
33
	gst/parse/gen_lex.py.in gst/parse/gen_grammar.py.in
34

35 36
DISTCLEANFILES = _stdint.h

37
include $(top_srcdir)/common/release.mak
38
include $(top_srcdir)/common/po.mak
39

40 41 42 43 44 45 46 47 48 49
if GST_GCOV_ENABLED
clean-gcov:
	find -name "*.da" -o -name "*.gcov" | xargs rm || true

clean-bbg:
	find -name "*.bbg" -o -name "*.bb" | xargs rm || true

GCOV_DIRS=gst libs

## .PHONY so it always rebuilds it
50
.PHONY: coverage-report.txt
Thomas Vander Stichele's avatar
touch  
Thomas Vander Stichele committed
51

52
coverage-report.txt:
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66
	BBG_FILES=`find $(GCOV_DIRS) -name "*.bbg"` ;			  \
	C_FILES= ;							  \
	for F in $$BBG_FILES ; do					  \
		F_nolibs=`echo $$F | sed -e 's/.libs\///g'` ;		  \
		C=`echo $$F_nolibs | sed -e 's/.bbg/.c/g'` ;		  \
		B=`basename $$F .bbg` ;					  \
		D=`dirname $$F` ;					  \
		DA=`echo $$F | sed -e 's/.bbg/.da/g'` ;			  \
		DA_libs=`echo $$D/.libs/$$B/.da` ;			  \
		if test -e $$DA || test -e $$DA_libs; then		  \
			C_FILES="$$C_FILES $$C" ;			  \
		fi ;							  \
	done ;								  \
	echo $$C_FILES ;						  \
67 68 69 70 71 72 73 74 75 76 77 78
	$(top_builddir)/testsuite/decode-gcov --report $$C_FILES > coverage-report.txt

check-coverage: clean-gcov all check coverage-report.txt
	cat coverage-report.txt

else
coverage-report.txt:
	echo "Need to reconfigure with --enable-gcov"

check-coverage:
	echo "Need to reconfigure with --enable-gcov"
endif
79

80
if HAVE_CHECK
81
check-valgrind:
82
	$(MAKE) -C tests/check check-valgrind
83

84
check-torture:
85
	$(MAKE) -C tests/check torture
86 87

build-checks:
88
	$(MAKE) -C tests/check build-checks
89 90
else
check-valgrind:
91
	echo "'check' library not installed, skipping"
92 93

check-torture:
94
	echo "'check' library not installed, skipping"
95 96 97

build-checks:
	echo "'check' library not installed, skipping"
98
endif
99

100
check-enum-gettypes: $(top_builddir)/gst/gstenumtypes.h
101
	@echo 'Checking if all enum and flag _get_type() funcs are inited in gst_init()';                        \
102 103 104
	FUNCS=`grep '_get_type (' gst/gstenumtypes.h | sed -e 's/^.*gst_/gst_/' -e 's/_get_type.*$$/_get_type/'`;\
	MISSING_FUNCS='';                                                                                        \
	for f in $$FUNCS; do                                                                                     \
Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
105
	  INIT_LINE=`grep $$f $(top_srcdir)/gst/*.c | grep g_type_class_ref`;                                    \
106 107 108 109 110 111 112 113 114 115
	  if test "x$$INIT_LINE" = "x"; then                                                                     \
	    MISSING_FUNCS="$$MISSING_FUNCS $$f";                                                                 \
	  fi;                                                                                                    \
	done;                                                                                                    \
	if test "x$$MISSING_FUNCS" != "x"; then                                                                  \
	  echo "FIXME: please add to the following to gst/gst.c init_post():";                                   \
	  for f in $$MISSING_FUNCS; do                                                                           \
	    echo "  g_type_class_ref ($$f ());";                                                                 \
	  done;                                                                                                  \
	  exit 1;                                                                                                \
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
	fi;                                                                                                      \
	echo 'Checking if all enum and flag _get_type() funcs are deinited in gst_deinit()';                     \
	MISSING_FUNCS='';                                                                                        \
	for f in $$FUNCS; do                                                                                     \
	  INIT_LINE=`grep $$f $(top_srcdir)/gst/*.c | grep g_type_class_unref`;                                  \
	  if test "x$$INIT_LINE" = "x"; then                                                                     \
	    MISSING_FUNCS="$$MISSING_FUNCS $$f";                                                                 \
	  fi;                                                                                                    \
	done;                                                                                                    \
	if test "x$$MISSING_FUNCS" != "x"; then                                                                  \
	  echo "FIXME: please add to the following to gst/gst.c gst_deinit():";                                  \
	  for f in $$MISSING_FUNCS; do                                                                           \
	    echo "  g_type_class_unref (g_type_class_peek ($$f ()));";                                           \
	  done;                                                                                                  \
	  exit 1;                                                                                                \
131 132
	fi

133
include $(top_srcdir)/common/coverage/lcov.mak
134

135
check: check-enum-gettypes
136 137 138 139

# cruft: plugins that have been merged or moved or renamed

CRUFT_FILES = \
140
	$(top_builddir)/win32/common/config.h-new \
141
	$(top_builddir)/common/shave \
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
	$(top_builddir)/common/shave-libtool \
	$(top_builddir)/common/m4/codeset.m4 \
	$(top_builddir)/common/m4/gettext.m4 \
	$(top_builddir)/common/m4/glibc2.m4 \
	$(top_builddir)/common/m4/glibc21.m4 \
	$(top_builddir)/common/m4/iconv.m4 \
	$(top_builddir)/common/m4/intdiv0.m4 \
	$(top_builddir)/common/m4/intl.m4 \
	$(top_builddir)/common/m4/intldir.m4 \
	$(top_builddir)/common/m4/intlmacosx.m4 \
	$(top_builddir)/common/m4/intmax.m4 \
	$(top_builddir)/common/m4/inttypes-pri.m4 \
	$(top_builddir)/common/m4/inttypes_h.m4 \
	$(top_builddir)/common/m4/lcmessage.m4 \
	$(top_builddir)/common/m4/lib-ld.m4 \
	$(top_builddir)/common/m4/lib-link.m4 \
	$(top_builddir)/common/m4/lib-prefix.m4 \
	$(top_builddir)/common/m4/libtool.m4 \
	$(top_builddir)/common/m4/lock.m4 \
	$(top_builddir)/common/m4/longlong.m4 \
	$(top_builddir)/common/m4/ltoptions.m4 \
	$(top_builddir)/common/m4/ltsugar.m4 \
	$(top_builddir)/common/m4/ltversion.m4 \
	$(top_builddir)/common/m4/lt~obsolete.m4 \
	$(top_builddir)/common/m4/nls.m4 \
	$(top_builddir)/common/m4/po.m4 \
	$(top_builddir)/common/m4/printf-posix.m4 \
	$(top_builddir)/common/m4/progtest.m4 \
	$(top_builddir)/common/m4/size_max.m4 \
	$(top_builddir)/common/m4/stdint_h.m4 \
	$(top_builddir)/common/m4/uintmax_t.m4 \
	$(top_builddir)/common/m4/visibility.m4 \
	$(top_builddir)/common/m4/wchar_t.m4 \
	$(top_builddir)/common/m4/wint_t.m4 \
	$(top_builddir)/common/m4/xsize.m4
177

178
CRUFT_DIRS = \
179
	$(top_builddir)/tests/examples/xml \
180 181 182 183
	$(top_builddir)/tests/examples/launch \
	$(top_builddir)/tests/examples/metadata \
	$(top_builddir)/tests/examples/queue \
	$(top_builddir)/tests/examples/typefind \
184
	$(top_builddir)/gst/tmp-introspect* \
185
	$(top_builddir)/libs/gst/*/tmp-introspect*
186

187 188
include $(top_srcdir)/common/cruft.mak

189
all-local: check-cruft