lib_LTLIBRARIES = libgstreamer-@GST_API_VERSION@.la

if GST_DISABLE_REGISTRY
GST_REGISTRY_SRC =
else
GST_REGISTRY_SRC = gstregistrybinary.c
endif

if GST_DISABLE_PARSE
SUBDIRS_PARSE =
GST_PARSE_LA =
else
SUBDIRS_PARSE = parse
GST_PARSE_LA = parse/libgstparse.la
endif

if GST_DISABLE_TRACE
GST_TRACE_SRC =
else
GST_TRACE_SRC = gsttrace.c
endif

if GST_DISABLE_PLUGIN
GST_PLUGIN_SRC =
else
GST_PLUGIN_SRC = gstplugin.c
endif

SUBDIRS = $(SUBDIRS_PARSE)

DIST_SUBDIRS = parse

# make variables for all generated source and header files to make the
# distinction clear

built_header_configure = gstconfig.h gstversion.h
built_header_make = gstenumtypes.h
built_source_make = gstenumtypes.c

EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES = \
	gsttrace.c \
	gstregistrybinary.c


# temporarily not used
#	glib-compat.c

libgstreamer_@GST_API_VERSION@_la_SOURCES = \
	gst.c			\
	gstobject.c		\
	gstbin.c		\
	gstbuffer.c		\
	gstbufferlist.c		\
	gstbufferpool.c		\
	gstbus.c		\
	gstcaps.c		\
	gstchildproxy.c		\
	gstclock.c		\
	gstcontrolbinding.c \
	gstcontrolsource.c \
	gstdatetime.c		\
	gstdebugutils.c		\
	gstelement.c		\
	gstelementfactory.c	\
	gsterror.c		\
	gstevent.c		\
	gstformat.c		\
	gstghostpad.c		\
	gstinfo.c		\
	gstiterator.c		\
	gstatomicqueue.c	\
	gstmessage.c		\
	gstmeta.c		\
	gstmemory.c		\
	gstminiobject.c		\
	gstpad.c		\
	gstpadtemplate.c	\
	gstparamspecs.c		\
	gstpipeline.c		\
	gstplugin.c		\
	gstpluginfeature.c	\
	gstpluginloader.c	\
	gstpoll.c		\
	gstpreset.c             \
	gstquark.c		\
	gstquery.c		\
	gstregistry.c		\
	gstregistrychunks.c	\
	gstsample.c		\
	gstsegment.c		\
	gststructure.c		\
	gstsystemclock.c	\
	gsttaglist.c		\
	gsttagsetter.c		\
	gsttask.c		\
	gsttaskpool.c		\
	gsttoc.c		\
	gsttocsetter.c		\
	$(GST_TRACE_SRC)	\
	gsttypefind.c		\
	gsttypefindfactory.c	\
	gsturi.c		\
	gstutils.c		\
	gstvalue.c		\
	gstparse.c		\
	$(GST_REGISTRY_SRC)

# do not put files in the distribution that are generated
nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES = $(built_source_make)

# BUILT_SOURCES are built on make all/check/install before all other targets
BUILT_SOURCES = \
        $(built_header_configure)	\
        $(built_header_make)		\
        $(built_source_make)
# CLEANFILES is for files generated by make
CLEANFILES = $(built_header_make) $(built_source_make) $(as_dll_cleanfiles) *.gcno *.gcda *.gcov *.gcov.out
# DISTCLEANFILES is for files generated by configure
DISTCLEANFILES = $(built_header_configure)

libgstreamer_@GST_API_VERSION@_la_CFLAGS =		\
	-D_GNU_SOURCE					\
	-DGST_EXPORTS					\
	-DG_LOG_DOMAIN=g_log_domain_gstreamer 		\
	-DGST_API_VERSION=\""$(GST_API_VERSION)"\" 	\
	-DGST_DISABLE_DEPRECATED			\
	$(VALGRIND_CFLAGS)				\
	$(GST_ALL_CFLAGS)

libgstreamer_@GST_API_VERSION@_la_LIBADD =		\
	$(GST_PARSE_LA)					\
	$(GST_ALL_LIBS)					\
	$(WIN32_LIBS)					\
	$(LIBM)

libgstreamer_@GST_API_VERSION@_la_LDFLAGS =		\
	$(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)

libgstreamer_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst

gst_headers =			\
	gst.h			\
	glib-compat.h		\
	gstobject.h		\
	gstbin.h		\
	gstbuffer.h		\
	gstbufferlist.h		\
	gstbufferpool.h		\
	gstbus.h		\
	gstcaps.h		\
	gstchildproxy.h		\
	gstclock.h		\
	gstcompat.h		\
	gstcontrolbinding.h \
	gstcontrolsource.h \
	gstdatetime.h		\
	gstdebugutils.h		\
	gstelement.h		\
	gstelementmetadata.h	\
	gstelementfactory.h	\
	gsterror.h		\
	gstevent.h		\
	gstformat.h		\
	gstghostpad.h		\
	gstinfo.h		\
	gstiterator.h		\
	gstatomicqueue.h	\
	gstmacros.h		\
	gstmessage.h		\
	gstmeta.h		\
	gstmemory.h		\
	gstminiobject.h		\
	gstpad.h		\
	gstpadtemplate.h	\
	gstparamspecs.h		\
	gstpipeline.h		\
	gstplugin.h		\
	gstpluginfeature.h	\
	gstpoll.h		\
	gstpreset.h             \
	gstquery.h		\
	gstsample.h		\
	gstsegment.h		\
	gststructure.h		\
	gstsystemclock.h	\
	gsttaglist.h		\
	gsttagsetter.h		\
	gsttask.h		\
	gsttaskpool.h		\
	gsttoc.h		\
	gsttocsetter.h		\
	gsttypefind.h		\
	gsttypefindfactory.h	\
	gsturi.h		\
	gstutils.h		\
	gstvalue.h		\
	gstregistry.h		\
	gstparse.h

libgstreamer_@GST_API_VERSION@include_HEADERS = $(gst_headers) math-compat.h

nodist_libgstreamer_@GST_API_VERSION@include_HEADERS = \
	$(built_header_configure) $(built_header_make)

noinst_HEADERS = 		\
	gettext.h		\
	glib-compat-private.h	\
	gst-i18n-lib.h		\
	gst-i18n-app.h		\
	gstelementmetadata.h	\
	gstpluginloader.h	\
	gstquark.h		\
	gstregistrybinary.h     \
	gstregistrychunks.h     \
	gsttrace.h		\
	gst_private.h

gstenumtypes.h: $(gst_headers)
	$(AM_V_GEN)glib-mkenums \
	--fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
	--fprod "\n/* enumerations from \"@filename@\" */\n" \
	--vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
	--ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
	$^ > gstenumtypes.h

gstenumtypes.c: $(gst_headers)
	$(AM_V_GEN)glib-mkenums \
	--fhead "#include \"gst_private.h\"\n#include <gst/gst.h>\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n " \
	--fprod "\n/* enumerations from \"@filename@\" */" \
	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static gsize id = 0;\n  static const G@Type@Value values[] = {"     \
	--vprod "    { C_@TYPE@(@VALUENAME@), \"@VALUENAME@\", \"@valuenick@\" }," \
	--vtail "    { 0, NULL, NULL }\n  };\n\n  if (g_once_init_enter (&id)) {\n    GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&id, tmp);\n  }\n\n  return (GType) id;\n}" \
	$^ > gstenumtypes.c

%.c.gcov: .libs/libgstreamer_@GST_API_VERSION@_la-%.gcda %.c
	$(GCOV) -b -f -o $^ > $@.out

gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)

Android.mk: Makefile.am
	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
	 -:TAGS eng debug \
         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
	 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
	           $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
	 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
	           $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
	           -ldl \
	 -:SUBDIR gst/parse \
	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
	 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
	 -:LIBFILTER_STATIC gstparse \
	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
	> $@

if HAVE_INTROSPECTION
BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir

gir_headers=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@include_HEADERS))
gir_sources=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@_la_SOURCES))

Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
		$(INTROSPECTION_SCANNER) -v --namespace Gst \
		--nsversion=@GST_API_VERSION@ \
		--warn-all \
		-I$(top_srcdir) \
		-I$(top_builddir) \
		-DIN_GOBJECT_INTROSPECTION=1 \
		-DGST_USE_UNSTABLE_API \
		--c-include='gst/gst.h' \
		--library=libgstreamer-@GST_API_VERSION@.la \
		--include=GLib-2.0 \
		--include=GObject-2.0 \
		--include=GModule-2.0 \
		--libtool="$(top_builddir)/libtool" \
		--pkg glib-2.0 \
		--pkg gobject-2.0 \
		--pkg gmodule-no-export-2.0 \
		--pkg gthread-2.0 \
		--pkg-export gstreamer-@GST_API_VERSION@ \
		--add-init-section="gst_init(NULL, NULL);" \
		--output $@ \
		$(gir_headers) \
		$(gir_sources)

# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
# install anything - we need to install inside our prefix.
girdir = $(datadir)/gir-1.0
gir_DATA = $(BUILT_GIRSOURCES)

typelibsdir = $(libdir)/girepository-1.0/

typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)

%.typelib: %.gir $(INTROSPECTION_COMPILER)
	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)

CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
endif

# try to prevent packaging errors
check-libexecdir-consistency:
	@if test "${GST_PLUGIN_SCANNER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; then \
	  echo "*** Inconsistent libexecdir! Please use ./configure --libexecdir=/foo/bar"; \
	  echo "*** to set the libexecdir and not make libexecdir=/foo/bar or the like."; \
	  echo "*** The same goes for prefix, libdir etc."; \
	  echo "*** ${GST_PLUGIN_SCANNER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; \
	  exit 1; \
	fi

all-local: check-libexecdir-consistency
