Makefile.am 7.88 KB
Newer Older
1
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
2

3
# note: keep in sync with configure.ac
4
ACLOCAL_AMFLAGS = -I m4 -I common/m4
David Schleef's avatar
David Schleef committed
5

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

9
SUBDIRS = pkgconfig \
10
	gst libs plugins tests \
11
	docs \
12
	po \
13
	m4 \
14 15
	common \
	data
16

17 18 19 20
if BUILD_TOOLS
SUBDIRS += tools
endif

21
# These are all the possible subdirs
22
DIST_SUBDIRS = pkgconfig \
23
	gst libs plugins tools tests \
24
	docs \
25
	po \
26
	m4 \
27 28
	common \
	data
29

30 31
# include before EXTRA_DIST for win32 assignment
include $(top_srcdir)/common/win32.mak
32

33
EXTRA_DIST = \
34
	gst-element-check-1.0.m4 \
35
	configure.ac autogen.sh depcomp \
36
	MAINTAINERS ABOUT-NLS RELEASE gstreamer.doap \
37
	scripts/gst-uninstalled \
38 39
	$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/gstreamer-*" ) \
	gst/gstenumtypes.c.template gst/gstenumtypes.h.template \
40
	libs/gst/controller/controller_mkenum.py \
41
	meson_options.txt \
42
	gst/parse/gen_lex.py.in gst/parse/gen_grammar.py.in \
43
	$(win32)
44

45 46
DISTCLEANFILES = _stdint.h

47
include $(top_srcdir)/common/release.mak
48
include $(top_srcdir)/common/po.mak
49

50 51 52 53 54 55 56 57 58 59
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
60
.PHONY: coverage-report.txt
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
61

62
coverage-report.txt:
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76
	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 ;						  \
77 78 79 80 81 82 83 84 85 86 87 88
	$(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
89

90
if HAVE_CHECK
91
check-valgrind:
92
	$(MAKE) -C tests/check check-valgrind
93

94
check-torture:
95
	$(MAKE) -C tests/check torture
96 97

build-checks:
98
	$(MAKE) -C tests/check build-checks
99 100
else
check-valgrind:
101
	echo "'check' library not installed, skipping"
102 103

check-torture:
104
	echo "'check' library not installed, skipping"
105 106 107

build-checks:
	echo "'check' library not installed, skipping"
108
endif
109

110
check-enum-gettypes: $(top_builddir)/gst/gstenumtypes.h
111
	@echo 'Checking if all enum and flag _get_type() funcs are inited in gst_init()';                        \
112 113 114
	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                                                                                     \
115
	  INIT_LINE=`grep $$f $(top_srcdir)/gst/*.c | grep g_type_class_ref`;                                    \
116 117 118 119 120 121 122 123 124 125
	  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;                                                                                                \
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
	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;                                                                                                \
141 142
	fi

143
include $(top_srcdir)/common/coverage/lcov.mak
144

145 146 147 148 149
# Do not run the check-exports test in case any option which causes the API to
# change has been used
if !GST_DISABLE_REGISTRY
CHECK_EXPORTS = check-exports
endif
150

151
check: $(CHECK_EXPORTS) check-enum-gettypes
152 153 154 155

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

CRUFT_FILES = \
156
	$(top_builddir)/win32/common/config.h-new \
157
	$(top_builddir)/common/shave \
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
	$(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
193

194
CRUFT_DIRS = \
195
	$(top_builddir)/tests/examples/xml \
196 197 198 199
	$(top_builddir)/tests/examples/launch \
	$(top_builddir)/tests/examples/metadata \
	$(top_builddir)/tests/examples/queue \
	$(top_builddir)/tests/examples/typefind \
200
	$(top_builddir)/gst/tmp-introspect* \
201 202
	$(top_builddir)/libs/gst/*/tmp-introspect* \
	$(top_srcdir)/docs/plugins/tmpl
203

204 205
include $(top_srcdir)/common/cruft.mak

206
all-local: check-cruft