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_PLUGIN
GST_PLUGIN_SRC =
else
GST_PLUGIN_SRC = gstplugin.c
endif

if !GST_DISABLE_GST_DEBUG
SUBDIRS_PRINTF = printf
GST_PRINTF_LA = printf/libgstprintf.la
else
SUBDIRS_PRINTF =
GST_PRINTF_LA =
endif

SUBDIRS = $(SUBDIRS_PARSE) $(SUBDIRS_PRINTF)

DIST_SUBDIRS = parse printf

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

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

EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES = \
	gstregistrybinary.c


# temporarily not used
#	glib-compat.c

libgstreamer_@GST_API_VERSION@_la_SOURCES = \
	gst.c			\
	gstobject.c		\
	gstallocator.c		\
	gstbin.c		\
	gstbuffer.c		\
	gstbufferlist.c		\
	gstbufferpool.c		\
	gstbus.c		\
	gstcaps.c		\
	gstcapsfeatures.c	\
	gstchildproxy.c		\
	gstclock.c		\
	gstclock-linreg.c	\
	gstcontext.c \
	gstcontrolbinding.c \
	gstcontrolsource.c \
	gstdatetime.c		\
	gstdebugutils.c		\
	gstdevice.c		\
	gstdevicemonitor.c 	\
	gstdeviceprovider.c	\
	gstdeviceproviderfactory.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             \
	gstprotection.c         \
	gstquark.c		\
	gstquery.c		\
	gstregistry.c		\
	gstregistrychunks.c	\
	gstsample.c		\
	gstsegment.c		\
	gststreamcollection.c	\
	gststreams.c		\
	gststructure.c		\
	gstsystemclock.c	\
	gsttaglist.c		\
	gsttagsetter.c		\
	gsttask.c		\
	gsttaskpool.c		\
	gsttoc.c		\
	gsttocsetter.c		\
	gsttracer.c		\
	gsttracerfactory.c	\
	gsttracerrecord.c		\
	gsttracerutils.c		\
	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_headers_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_headers_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_PRINTF_LA)				\
	$(GST_ALL_LIBS)					\
	$(WIN32_LIBS)					\
	$(SOCKET_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		\
	gstallocator.h		\
	gstbin.h		\
	gstbuffer.h		\
	gstbufferlist.h		\
	gstbufferpool.h		\
	gstbus.h		\
	gstcaps.h		\
	gstcapsfeatures.h	\
	gstchildproxy.h		\
	gstclock.h		\
	gstcompat.h		\
	gstcontext.h \
	gstcontrolbinding.h \
	gstcontrolsource.h \
	gstdatetime.h		\
	gstdebugutils.h		\
	gstelement.h		\
	gstelementmetadata.h	\
	gstdevice.h		\
	gstdeviceprovider.h	\
	gstdeviceproviderfactory.h \
	gstelementfactory.h	\
	gsterror.h		\
	gstevent.h		\
	gstformat.h		\
	gstghostpad.h		\
	gstdevicemonitor.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             \
	gstprotection.h         \
	gstquery.h		\
	gstsample.h		\
	gstsegment.h		\
	gststreamcollection.h	\
	gststreams.h		\
	gststructure.h		\
	gstsystemclock.h	\
	gsttaglist.h		\
	gsttagsetter.h		\
	gsttask.h		\
	gsttaskpool.h		\
	gsttoc.h		\
	gsttocsetter.h		\
	gsttracer.h		\
	gsttracerfactory.h	\
	gsttracerrecord.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_headers_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     \
	gsttracerutils.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)

if HAVE_INTROSPECTION
BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir

gir_headers=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@include_HEADERS))
gir_headers+=$(patsubst %,$(builddir)/%, $(built_header_make))
gir_headers+=$(patsubst %,$(builddir)/%, gstversion.h)
gir_sources=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@_la_SOURCES))
gir_sources+=$(patsubst %,$(builddir)/%, $(built_source_make))

Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no GI_SCANNER_DISABLE_CACHE=yes \
		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
		$(INTROSPECTION_SCANNER) -v --namespace Gst \
		--nsversion=@GST_API_VERSION@ \
		--verbose \
		--warn-all \
		-I$(top_srcdir) \
		-I$(top_builddir) \
		-DIN_GOBJECT_INTROSPECTION=1 \
		--c-include='gst/gst.h' \
		--library=libgstreamer-@GST_API_VERSION@.la \
		--include=GLib-2.0 \
		--include=GObject-2.0 \
		--include=GModule-2.0 \
		--libtool="${LIBTOOL}" \
		--pkg glib-2.0 \
		--pkg gobject-2.0 \
		--pkg gmodule-no-export-2.0 \
		--pkg-export gstreamer-@GST_API_VERSION@ \
		--add-init-section="$(INTROSPECTION_INIT)" \
		--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
