? docs/libs/gnonlin-overrides.txt
? docs/libs/gnonlin-undeclared.txt
? docs/libs/gnonlin.args.new
? docs/libs/gnonlin.signals.new
? docs/libs/inspect
? docs/libs/inspect-build.stamp
? docs/libs/inspect-registry.xml
? docs/libs/inspect.stamp
? docs/libs/scanobj-build.stamp
? docs/libs/tmpl
Index: configure.ac
===================================================================
RCS file: /cvs/gstreamer/gnonlin/configure.ac,v
retrieving revision 1.73
diff -u -r1.73 configure.ac
--- configure.ac	6 Apr 2008 08:59:44 -0000	1.73
+++ configure.ac	16 May 2008 11:11:26 -0000
@@ -77,6 +77,7 @@
 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 
 dnl check for documentation tools
+AG_GST_DOCBOOK_CHECK
 GTK_DOC_CHECK([1.3])
 AS_PATH_PYTHON([2.1])
 
@@ -118,6 +119,14 @@
 AC_SUBST(GSTPB_PLUGINS_DIR)
 AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR)
 
+dnl There are paths for documentation xrefs
+GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
+GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
+GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`"
+AC_SUBST(GLIB_PREFIX)
+AC_SUBST(GST_PREFIX)
+AC_SUBST(GSTPB_PREFIX)
+
 AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
 
 dnl FIXME: get rid of this by making sure gstreamer-check brings it in
@@ -194,6 +203,8 @@
 AC_CONFIG_FILES(
 Makefile
 docs/Makefile
+docs/libs/Makefile
+docs/version.entities
 common/Makefile
 common/m4/Makefile
 m4/Makefile
Index: common/gstdoc-scangobj
===================================================================
RCS file: /cvs/gstreamer/common/gstdoc-scangobj,v
retrieving revision 1.9
diff -u -r1.9 gstdoc-scangobj
--- common/gstdoc-scangobj	24 Jan 2008 10:41:06 -0000	1.9
+++ common/gstdoc-scangobj	16 May 2008 11:11:26 -0000
@@ -81,8 +81,7 @@
 
 $OUTPUT_DIR = $OUTPUT_DIR ? $OUTPUT_DIR : ".";
 
-# THOMAS: dynamic types; only use types file for headers
- $TYPES_FILE = $TYPES_FILE ? $TYPES_FILE : "$OUTPUT_DIR/$MODULE.types";
+$TYPES_FILE = $TYPES_FILE ? $TYPES_FILE : "$OUTPUT_DIR/$MODULE.types";
 
 open (TYPES, $TYPES_FILE) || die "Cannot open $TYPES_FILE: $!\n";
 open (OUTPUT, ">$MODULE-scan.c") || die "Cannot open $MODULE-scan.c: $!\n";
@@ -101,22 +100,27 @@
 # write a C program to scan the types
 
 $includes = "";
-#@types = ();
+@types = ();
+@impl_types = ();
 
 for (<TYPES>) {
     if (/^#include/) {
 	$includes .= $_;
-#    } elsif (/^%/) {
-#	next;
-#    } elsif (/^\s*$/) {
-#	next;
-#    } else {
-#	chomp;
-#	push @types, $_;
+    } elsif (/^%/) {
+	next;
+    } elsif (/^\s*$/) {
+	next;
+    } elsif (/^type:(.*)$/) {
+	$t = $1;
+        chomp $t;
+	push @impl_types, $t;
+    } else {
+	chomp;
+	push @types, $_;
     }
 }
 
-#$ntypes = @types + 1;
+$ntypes = @types + @impl_types;
 
 print OUTPUT <<EOT;
 #include <string.h>
@@ -125,6 +129,7 @@
 #include <errno.h>
 
 $includes
+
 #ifdef GTK_IS_WIDGET_CLASS
 #include <gtk/gtkversion.h>
 #endif
@@ -180,7 +185,7 @@
     g_message ("number of element factories: %d", g_list_length (factories));
 
     /* allocate the object_types array to hold them */
-    object_types = g_new0 (GType, g_list_length (factories)+1);
+    object_types = g_new0 (GType, g_list_length (factories)+$ntypes+1);
 
     l = factories;
     i = 0;
@@ -191,15 +196,26 @@
       factory = GST_ELEMENT_FACTORY (l->data);
       type = gst_element_factory_get_element_type (factory);
       g_message ("adding type %p for factory %s", (void *) type, gst_element_factory_get_longname (factory));
-      object_types[i] = type;
-      i++;
+      object_types[i++] = type;
       l = g_list_next (l);
     }
-    object_types[i] = 0;
+
 EOT
 
+# get_type functions:
+for (@types) {
+    print OUTPUT "    object_types[i++] = $_ ();\n";
+}
+
+# Implicit types retrieved from GLib:
+for (@impl_types) {
+    print OUTPUT "    object_types[i++] = g_type_from_name (\"$_\");\n";
+}
+
 print OUTPUT <<EOT;
 
+    object_types[i] = 0;
+
     /* Need to make sure all the types are loaded in and initialize
      * their signals and properties.
      */
Index: common/gtk-doc-plugins.mak
===================================================================
RCS file: /cvs/gstreamer/common/gtk-doc-plugins.mak,v
retrieving revision 1.38
diff -u -r1.38 gtk-doc-plugins.mak
--- common/gtk-doc-plugins.mak	22 Feb 2008 10:25:59 -0000	1.38
+++ common/gtk-doc-plugins.mak	16 May 2008 11:11:26 -0000
@@ -132,10 +132,10 @@
 ### inspect GStreamer plug-ins; done by documentation maintainer ###
 
 # only look at the plugins in this module when building inspect .xml stuff
-INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml
+INSPECT_REGISTRY=$(builddir)/inspect-registry.xml
 INSPECT_ENVIRONMENT=\
         GST_PLUGIN_SYSTEM_PATH= \
-        GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src \
+        GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
         GST_REGISTRY=$(INSPECT_REGISTRY)
 
 # update the element and plugin XML descriptions; store in inspect/
@@ -351,7 +351,7 @@
 check: check-hierarchy
 
 # wildcard is apparently not portable to other makes, hence the use of find
-inspect_files = $(shell find $(top_srcdir)/docs/plugins/inspect -name '*.xml')
+inspect_files = $(shell find $(srcdir)/inspect -name '*.xml')
 
 check-inspected-versions:
 	@echo Checking plugin versions of inspected plugin data ...; \
Index: docs/Makefile.am
===================================================================
RCS file: /cvs/gstreamer/gnonlin/docs/Makefile.am,v
retrieving revision 1.5
diff -u -r1.5 Makefile.am
--- docs/Makefile.am	20 Oct 2005 14:30:15 -0000	1.5
+++ docs/Makefile.am	16 May 2008 11:11:26 -0000
@@ -1,11 +1,11 @@
 if ENABLE_GTK_DOC
-SUBDIRS_DOCS = libs
+DOCS_SUBDIRS = libs
 else
-SUBDIRS_DOCS =
+DOCS_SUBDIRS = 
 endif
 
-#SUBDIRS = $(SUBDIRS_DOCS)
-#DIST_SUBDIRS = libs
+SUBDIRS = $(DOCS_SUBDIRS)
+DIST_SUBDIRS = libs
 
 EXTRA_DIST = \
 	upload.mak version.entities.in
Index: docs/libs/Makefile.am
===================================================================
RCS file: /cvs/gstreamer/gnonlin/docs/libs/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- docs/libs/Makefile.am	9 Jun 2005 09:45:42 -0000	1.6
+++ docs/libs/Makefile.am	16 May 2008 11:11:26 -0000
@@ -1,31 +1,33 @@
+GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
+
 ## Process this file with automake to produce Makefile.in
 
 # The name of the module, e.g. 'glib'.
-# DOC_MODULE=gstreamer-@GST_MAJORMINOR@
-DOC_MODULE=gnonlin
+MODULE=gnonlin
+DOC_MODULE=$(MODULE)
 
 # for upload.mak
-DOC=gnonlin
+DOC=$(MODULE)
 FORMATS=html
 html: html-build.stamp
-include $(srcdir)/../upload.mak
+include $(top_srcdir)/common/upload-doc.mak
 
 # generated basefiles
 #basefiles = \
-#		gstreamer-@GST_MAJORMINOR@.types \
-#		gstreamer-@GST_MAJORMINOR@-sections.txt \
-#		gstreamer-@GST_MAJORMINOR@-docs.sgml
+##		$(DOC_MODULE).types \
+#		$(DOC_MODULE)-sections.txt \
+#		$(DOC_MODULE)-docs.sgml
 
 # ugly hack to make -unused.sgml work
 #unused-build.stamp:
 #	BUILDDIR=`pwd` && \
 #	cd $(srcdir)/tmpl && \
-#	ln -sf gstreamer-unused.sgml \
-#		$$BUILDDIR/tmpl/gstreamer-@GST_MAJORMINOR@-unused.sgml
+#	ln -sf gstreamer-libs-unused.sgml \
+#		$$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
 #	touch unused-build.stamp
 
 # these rules are added to create parallel docs using GST_MAJORMINOR
-#$(basefiles): gstreamer-@GST_MAJORMINOR@%: gstreamer%
+#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
 #	cp $< $@
 
 #CLEANFILES = $(basefiles)
@@ -36,30 +38,45 @@
 # The directory containing the source code. Relative to $(top_srcdir).
 # gtk-doc will search all .c & .h files beneath here for inline comments
 # documenting functions and macros.
-DOC_SOURCE_DIR=$(top_srcdir)/gnl
+DOC_SOURCE_DIR = $(top_srcdir)
 
-# Extra options to supply to gtkdoc-scan.
-SCAN_OPTIONS=
+SCAN_OPTIONS= 
+
+# FIXME :
+# there's something wrong with gstreamer-sections.txt not being in the dist
+# maybe it doesn't resolve; we're adding it below for now
+#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
 
 # Extra options to supply to gtkdoc-mkdb.
-MKDB_OPTIONS=--sgml-mode --ignore-files=parse
+MKDB_OPTIONS=--sgml-mode --source-suffixes=c,h,cc,m
 
 # Extra options to supply to gtkdoc-fixref.
-FIXXREF_OPTIONS=
+FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
+	--extra-dir=$(GST_PREFIX)/share/gtk-doc/html \
+	--extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html
 
 # Used for dependencies.
-HFILE_GLOB=$(DOC_SOURCE_DIR)/*.h
-CFILE_GLOB=$(DOC_SOURCE_DIR)/*.c
+HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h
+CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c
 
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
+SCANOBJ_DEPS = 
+# Extra options to supply to gtkdoc-scan.
+SCANOBJ_OPTIONS=--type-init-func="g_type_init();gst_init(&argc,&argv)"
 
-#SCANOBJ_DEPS = $(top_builddir)/gst/elements/libgstelements.la \
-#	$(top_builddir)/gst/schedulers/libgstbasicomegascheduler.la
+# Header files to ignore when scanning.
+IGNORE_HFILES = 
+IGNORE_CFILES =
+
+# we add all .h files of elements that have signals/args we want
+# sadly this also pulls in the private methods - maybe we should
+# move those around in the source ?
+# also, we should add some stuff here conditionally based on whether
+# or not the plugin will actually build
+# but I'm not sure about that - it might be this Just Works given that
+# the registry won't have the element
 
-# Header files to ignore when scanning. Use base file name, no paths
-IGNORE_HFILES= 
+EXTRA_HFILES = \
+	$(top_srcdir)/gnl/gnltypes.h 
 
 # Images to copy into HTML directory.
 HTML_IMAGES =
@@ -72,259 +89,15 @@
 
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
-GTKDOC_CFLAGS = $(GST_CFLAGS) $(GNL_CFLAGS) -I$(top_srcdir)
-GTKDOC_LIBS = $(GST_LIBS) $(GNL_LIBS) $(SCANOBJ_DEPS) $(top_builddir)/gnl/libgnl.la
+GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir)
+GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
 
 GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
 
 # If you need to override some of the declarations, place them in this file
 # and uncomment this line.
-# DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-
-
-
-###########################################################################
-# Everything below here is generic and you shouldn't need to change it.
-###########################################################################
-# thomas: except of course that we did
-
-# thomas: copied from glib-2
-# We set GPATH here; this gives us semantics for GNU make
-# which are more like other make's VPATH, when it comes to
-# whether a source that is a target of one rule is then
-# searched for in VPATH/GPATH.
-#
-GPATH = $(srcdir)
-
-# thomas: make docs parallel installable
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
-
-EXTRA_DIST = 				\
-	$(content_files)		\
-	$(extra_files)			\
-	$(HTML_IMAGES)			\
-	$(DOC_MAIN_SGML_FILE)		\
-	$(DOC_MODULE).types		\
-	$(DOC_MODULE)-sections.txt
-
-DOC_STAMPS =				\
-	scan-build.stamp		\
-	tmpl-build.stamp		\
-	sgml-build.stamp		\
-	html-build.stamp		\
-	$(srcdir)/tmpl.stamp		\
-	$(srcdir)/sgml.stamp		\
-	$(srcdir)/html.stamp
-
-SCANOBJ_FILES =				\
-	$(DOC_MODULE).args		\
-	$(DOC_MODULE).hierarchy		\
-	$(DOC_MODULE).interfaces	\
-	$(DOC_MODULE).prerequisites	\
-	.libs/$(DOC_MODULE)-scan.o	\
-	$(DOC_MODULE).signals
-
-CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
-
-if HAVE_GTK_DOC
-all-local: html-build.stamp
-
-#### scan ####
-
-# in the case of non-srcdir builds, the built gst directory gets added
-# to gtk-doc scanning; but only then, to avoid duplicates
-scan-build.stamp: $(HFILE_GLOB) $(SCANOBJ_DEPS) $(basefiles)
-	@echo '*** Scanning header files ***'
-	if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null;	\
-	then								\
-	    if test x"$(srcdir)" != x. ; then				\
-	        cp $(srcdir)/$(DOC_MODULE).types . ;			\
-	        chmod u+w $(DOC_MODULE).types ;				\
-	    fi ;							\
-	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" 			\
-	    CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)"		\
-	    $(GTK_DOC_SCANOBJ) --type-init-func="gnl_init(NULL,NULL)"	\
-	        --module=$(DOC_MODULE) ;				\
-	else								\
-	    cd $(srcdir) ;						\
-	    for i in $(SCANOBJ_FILES) ; do				\
-               test -f $$i || touch $$i ;				\
-	    done							\
-	fi
-	if test "x$(top_srcdir)" != "x$(top_builddir)";			\
-        then								\
-          export BUILT_OPTIONS="--source-dir=$(top_builddir)/gnl";	\
-        fi;								\
-	gtkdoc-scan							\
-		$(SCAN_OPTIONS) $(EXTRA_HFILES)				\
-		--module=$(DOC_MODULE)					\
-		--source-dir=$(DOC_SOURCE_DIR)				\
-		$$BUILT_OPTIONS						\
-		--ignore-headers="$(IGNORE_HFILES)"
-	touch scan-build.stamp
-
-$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
-	@true
-
-#### templates ####
-
-tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES)
-	@echo '*** Rebuilding template files ***'
-	if test x"$(srcdir)" != x. ; then \
-	    cp $(srcdir)/$(DOC_MODULE)-sections.txt . ; \
-	    touch $(DOC_MODULE)-decl.txt ; \
-	fi
-	gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log
-	@if grep "WARNING:" tmpl-build.log > /dev/null; then \
-	    cat $(DOC_MODULE)-unused.txt ; \
-	    exit 1; fi
-	rm -f tmpl-build.log
-	touch tmpl-build.stamp
-
-tmpl.stamp: tmpl-build.stamp
-	@true
-
-#### xml ####
-
-sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
-	@echo '*** Building XML ***'
-	gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log
-	@if grep "WARNING:" sgml-build.log > /dev/null; then exit 1; fi
-	rm sgml-build.log
-	touch sgml-build.stamp
-
-sgml.stamp: sgml-build.stamp
-	@true
-
-#### html ####
-
-# FIXME: setting LANG=C is a hack to work with gtk-doc < 1.1, because
-# that forces a non-utf8 locale.  gtk-doc >= 1.1 solves this by calling
-# use bytes; in gtkdoc-fixxref
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-	@echo '*** Building HTML ***'
-	if test -d html; then rm -rf html; fi
-	mkdir html
-	cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
-	cp -pr xml html
-	cp ../version.entities html
-	cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
-	rm -f html/$(DOC_MAIN_SGML_FILE)
-	rm -rf html/xml
-	rm -f html/version.entities
-	test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
-	    if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done
-	@echo '-- Fixing Crossreferences' 
-	LANG=C && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-	touch html-build.stamp
-else
-all-local:
-endif
-
-clean-local:
-	rm -f *~ *.bak
-	rm -rf xml html
-	rm -rf .libs
-
-maintainer-clean-local: clean
-	cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-
-# company: don't delete .sgml and -sections.txt as they're in CVS
-# FIXME : thomas added all sgml files and some other things to make
-# make distcheck work
-distclean-local: clean
-	rm -rf $(DOC_MODULE)-decl-list.txt
-	rm -rf $(DOC_MODULE)-decl.txt
-	rm -rf $(DOC_MODULE)-undocumented.txt
-	rm -rf $(DOC_MODULE)-unused.txt
-	rm -rf $(DOC_MODULE)-overrides.txt
-	rm -rf tmpl/*.sgml.bak
-	rm -f $(DOC_MODULE).hierarchy
-	rm -f *.stamp || true
-	if test x"$(srcdir)" != x. ; then \
-	    rm -f $(DOC_MODULE)-docs.sgml ; \
-	    rm -f $(DOC_MODULE).types ; \
-	    rm -f $(DOC_MODULE).interfaces ; \
-	    rm -f $(DOC_MODULE).prerequisites ; \
-	    rm -f $(DOC_MODULE)-sections.txt ; \
-	    rm -rf tmpl/*.sgml ; \
-	fi
-	rm -rf *.o
-
-# thomas: make docs parallel installable; devhelp requires majorminor too
-install-data-local:
-	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) 
-	(installfiles=`echo ./html/*.html`; \
-	if test "$$installfiles" = './html/*.html'; \
-	then echo '-- Nothing to install' ; \
-	else \
-	  for i in $$installfiles; do \
-	    echo '-- Installing '$$i ; \
-	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
-	  done; \
-	  pngfiles=`echo ./html/*.png`; \
-	  if test "$$pngfiles" != './html/*.png'; then \
-	    for i in $$pngfiles; do \
-	      echo '-- Installing '$$i ; \
-	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
-	    done; \
-	  fi; \
-	  echo '-- Installing ./html/$(DOC_MODULE).devhelp' ; \
-	  $(INSTALL_DATA) ./html/$(DOC_MODULE).devhelp \
-	    $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \
-	  echo '-- Installing ./html/index.sgml' ; \
-	  $(INSTALL_DATA) ./html/index.sgml $(DESTDIR)$(TARGET_DIR); \
-	fi) 
-uninstall-local:
-	(installfiles=`echo ./html/*.html`; \
-	if test "$$installfiles" = './html/*.html'; \
-	then echo '-- Nothing to uninstall' ; \
-	else \
-	  for i in $$installfiles; do \
-	    rmfile=`basename $$i` ; \
-	    echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \
-	    rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \
-	  done; \
-	  pngfiles=`echo ./html/*.png`; \
-	  if test "$$pngfiles" != './html/*.png'; then \
-	    for i in $$pngfiles; do \
-	      rmfile=`basename $$i` ; \
-	      echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \
-	      rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \
-	    done; \
-	  fi; \
-	  echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \
-	  rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \
-	  echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \
-	  rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \
-	fi) 
-#	if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi
-
-#
-# Require gtk-doc when making dist
-#
-if HAVE_GTK_DOC
-dist-check-gtkdoc:
-else
-dist-check-gtkdoc:
-	@echo "*** gtk-doc must be installed and enabled in order to make dist"
-	@false
-endif
-
-dist-hook: dist-check-gtkdoc dist-hook-local
-	mkdir $(distdir)/tmpl
-	mkdir $(distdir)/xml
-	mkdir $(distdir)/html
-	-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-	-cp $(srcdir)/sgml/*.xml $(distdir)/xml
-	-cp $(srcdir)/html/index.sgml $(distdir)/html
-	-cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
-	-cp $(srcdir)/html/gnonlin.devhelp $(distdir)/html
-
-	images=$(HTML_IMAGES) ;    	      \
-	for i in "" $$images ; do		      \
-	  if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \
-	done
+#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
+DOC_OVERRIDES =
 
-.PHONY : dist-hook-local
+include $(top_srcdir)/common/gtk-doc-plugins.mak
Index: docs/libs/gnonlin-docs.sgml
===================================================================
RCS file: /cvs/gstreamer/gnonlin/docs/libs/gnonlin-docs.sgml,v
retrieving revision 1.2
diff -u -r1.2 gnonlin-docs.sgml
--- docs/libs/gnonlin-docs.sgml	30 Mar 2005 10:48:50 -0000	1.2
+++ docs/libs/gnonlin-docs.sgml	16 May 2008 11:11:26 -0000
@@ -1,37 +1,26 @@
 <?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-
 <!ENTITY % version-entities SYSTEM "version.entities">
 %version-entities;
-<!ENTITY Gnl SYSTEM "xml/gnl.xml">
-<!ENTITY GnlObject SYSTEM "xml/gnlobject.xml">
-<!ENTITY GnlSource SYSTEM "xml/gnlsource.xml">
-<!ENTITY GnlOperation SYSTEM "xml/gnloperation.xml">
-<!ENTITY GnlComposition SYSTEM "xml/gnlcomposition.xml">
-<!ENTITY GnlTimeline SYSTEM "xml/gnltimeline.xml">
-
-<!ENTITY gnonlin-tree-index SYSTEM "xml/tree_index.sgml">
-
 ]>
-<book id="index">
+
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
   <bookinfo>
-    <title>GNonLin v&GNL_VERSION; Reference Manual</title>
-    <releaseinfo>For use with GStreamer Core v&GST_MAJORMINOR;</releaseinfo>
+    <title>GNonLin &GNL_VERSION; Reference Manual</title>
   </bookinfo>
 
   <chapter>
-    <title>GNonLin</title>
-
-    &Gnl;
-    &GnlObject;
-    &GnlSource;
-    &GnlOperation;
-    &GnlComposition;
-    &GnlTimeline;
+    <title>GNonLin Elements</title>
+    <xi:include href="xml/element-gnlcomposition.xml"/>
+    <xi:include href="xml/element-gnlfilesource.xml"/>
+    <xi:include href="xml/element-gnloperation.xml"/>
+    <xi:include href="xml/element-gnlsource.xml"/>
   </chapter>
+
   <chapter>
-    <title>Object Hierarchy</title>
-    &gnonlin-tree-index;
+    <title>Base Classes</title>
+    <xi:include href="xml/gnlobject.xml"/>
   </chapter>
+
 </book>
Index: docs/libs/gnonlin-sections.txt
===================================================================
RCS file: /cvs/gstreamer/gnonlin/docs/libs/gnonlin-sections.txt,v
retrieving revision 1.5
diff -u -r1.5 gnonlin-sections.txt
--- docs/libs/gnonlin-sections.txt	25 May 2005 20:02:30 -0000	1.5
+++ docs/libs/gnonlin-sections.txt	16 May 2008 11:11:26 -0000
@@ -1,117 +1,40 @@
 <SECTION>
-<FILE>gnlsource</FILE>
-<TITLE>GnlSource</TITLE>
-GnlSource
-GnlSourceClass
-gnl_source_new
-gnl_source_set_element
-gnl_source_get_element
-gnl_source_get_pad_for_stream
+<FILE>gnlobject</FILE>
+<TITLE>GnlObject</TITLE>
+GnlObject
 <SUBSECTION Standard>
-GNL_SOURCE
-GNL_IS_SOURCE
-GNL_TYPE_SOURCE
-gnl_source_get_type
-GNL_SOURCE_CLASS
-GNL_IS_SOURCE_CLASS
-<SUBSECTION Private>
-GnlSourcePrivate
+GnlObjectClass
 </SECTION>
 
 <SECTION>
-<FILE>gnlcomposition</FILE>
-GnlComposition
-GnlCompositionClass
-GnlFindMethod
+<FILE>element-gnlcomposition</FILE>
 <TITLE>GnlComposition</TITLE>
-gnl_composition_new
-gnl_composition_add_object
-gnl_composition_remove_object
-gnl_composition_set_default_source
-gnl_composition_find_object
-<SUBSECTION Standard>
-GNL_COMPOSITION
-GNL_IS_COMPOSITION
-GNL_TYPE_COMPOSITION
-GNL_COMPOSITION_CLASS
-GNL_IS_COMPOSITION_CLASS
-<SUBSECTION Private>
-GnlCompositionEntry
-gnl_composition_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gnlobject</FILE>
-GnlObject
-GnlObjectClass
-GnlCoverType
-GnlDirection
-<TITLE>GnlObject</TITLE>
-gnl_object_set_media_start_stop
-gnl_object_get_media_start_stop
-gnl_object_set_start_stop
-gnl_object_get_start_stop
-gnl_object_set_priority
-gnl_object_get_priority
-gnl_object_is_active
-gnl_object_set_active
-gnl_object_covers
-gnl_object_to_media_time
-gnl_media_to_object_time
+GnlComposition
 <SUBSECTION Standard>
-GNL_OBJECT
-GNL_IS_OBJECT
-GNL_TYPE_OBJECT
-GNL_OBJECT_CLASS
-GNL_IS_OBJECT_CLASS
-<SUBSECTION Private>
-gnl_object_get_type
+GnlCompositionClass
 </SECTION>
 
 <SECTION>
-<FILE>gnltimeline</FILE>
-<TITLE>GnlTimeline</TITLE>
-GnlTimeline
-GnlTimelineClass
-gnl_timeline_new
-gnl_timeline_add_composition
-gnl_timeline_get_pad_for_composition
+<FILE>element-gnlfilesource</FILE>
+<TITLE>GnlFileSource</TITLE>
+GnlFileSource
 <SUBSECTION Standard>
-GNL_TIMELINE
-GNL_IS_TIMELINE
-GNL_TYPE_TIMELINE
-gnl_timeline_get_type
-GNL_TIMELINE_CLASS
-GNL_IS_TIMELINE_CLASS
-<SUBSECTION Private>
-GnlTimelineTimer
+GnlFileSourceClass
 </SECTION>
 
 <SECTION>
-<FILE>gnloperation</FILE>
+<FILE>element-gnloperation</FILE>
 <TITLE>GnlOperation</TITLE>
 GnlOperation
-GnlOperationClass
-gnl_operation_new
-gnl_operation_get_num_sinks
 <SUBSECTION Standard>
-GNL_OPERATION
-GNL_IS_OPERATION
-GNL_TYPE_OPERATION
-gnl_operation_get_type
-GNL_OPERATION_CLASS
-GNL_IS_OPERATION_CLASS
-<SUBSECTION Private>
+GnlOperationClass
 </SECTION>
 
 <SECTION>
-<FILE>gnl</FILE>
-GNL_VERSION_MAJOR
-GNL_VERSION_MINOR
-GNL_VERSION_MICRO
-gnl_init
-gnl_main
-gnl_main_quit
-<SUBSECTION Private>
-gnl_marshal_OBJECT__STRING
+<FILE>element-gnlsource</FILE>
+<TITLE>GnlSource</TITLE>
+GnlSource
+<SUBSECTION Standard>
+GnlSourceClass
 </SECTION>
+
Index: docs/libs/gnonlin.types
===================================================================
RCS file: /cvs/gstreamer/gnonlin/docs/libs/gnonlin.types,v
retrieving revision 1.2
diff -u -r1.2 gnonlin.types
--- docs/libs/gnonlin.types	30 Mar 2005 10:48:50 -0000	1.2
+++ docs/libs/gnonlin.types	16 May 2008 11:11:26 -0000
@@ -1,8 +1,8 @@
 #include <gst/gst.h>
-#include <gnl/gnl.h>
 
-gnl_composition_get_type
-gnl_object_get_type
-gnl_operation_get_type
-gnl_source_get_type
-gnl_timeline_get_type
\ No newline at end of file
+% base classes
+
+#include <gnl/gnlobject.h>
+
+% type: clause provides implicitly created GType names to be scanned
+type:GnlObject
Index: gnl/gnlcomposition.c
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlcomposition.c,v
retrieving revision 1.71
diff -u -r1.71 gnlcomposition.c
--- gnl/gnlcomposition.c	23 Jul 2007 16:45:03 -0000	1.71
+++ gnl/gnlcomposition.c	16 May 2008 11:11:27 -0000
@@ -24,6 +24,14 @@
 
 #include "gnl.h"
 
+/**
+ * SECTION:element-gnlcomposition
+ * @short_description: Combines and controls GNonLin elements
+ *
+ * A GnlComposition contains GnlObjects such as GnlSources and GnlOperations,
+ * and connects them dynamically to create a composition timeline.
+ */
+
 GST_BOILERPLATE (GnlComposition, gnl_composition, GnlObject, GNL_TYPE_OBJECT);
 
 static GstElementDetails gnl_composition_details =
@@ -563,7 +571,7 @@
   return FALSE;
 }
 
-/**
+/*
  * get_new_seek_event:
  *
  * Returns a seek event for the currently configured segment
@@ -959,7 +967,7 @@
   return ret;
 }
 
-/**
+/*
  * get_stack_list:
  * @comp: The #GnlComposition
  * @timestamp: The #GstClockTime to look at
@@ -1041,7 +1049,7 @@
   return ret;
 }
 
-/**
+/*
  * get_clean_toplevel_stack:
  * @comp: The #GnlComposition
  * @timestamp: The #GstClockTime to look at
@@ -1140,15 +1148,14 @@
  *
  */
 
-/**
+/*
  * get_src_pad:
- * #element: a #GstElement
+ * element: a #GstElement
  *
  * Returns: The src pad for the given element. A reference was added to the
  * returned pad, remove it when you don't need that pad anymore.
  * Returns NULL if there's no source pad.
  */
-
 static GstPad *
 get_src_pad (GstElement * element)
 {
@@ -1665,7 +1672,7 @@
   return deactivate;
 }
 
-/**
+/*
  * compare_relink_stack:
  * @comp: The #GnlComposition
  * @stack: The new stack
@@ -1759,7 +1766,7 @@
   return res;
 }
 
-/**
+/*
  * update_pipeline:
  * @comp: The #GnlComposition
  * @currenttime: The #GstClockTime to update at, can be GST_CLOCK_TIME_NONE.
Index: gnl/gnlcomposition.h
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlcomposition.h,v
retrieving revision 1.14
diff -u -r1.14 gnlcomposition.h
--- gnl/gnlcomposition.h	3 Apr 2006 09:51:48 -0000	1.14
+++ gnl/gnlcomposition.h	16 May 2008 11:11:27 -0000
@@ -46,6 +46,8 @@
 {
   GnlObject parent;
 
+  /*< private >*/
+
   GnlCompositionPrivate *private;
 };
 
Index: gnl/gnlfilesource.c
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlfilesource.c,v
retrieving revision 1.22
diff -u -r1.22 gnlfilesource.c
--- gnl/gnlfilesource.c	22 Jan 2007 16:01:56 -0000	1.22
+++ gnl/gnlfilesource.c	16 May 2008 11:11:27 -0000
@@ -24,6 +24,15 @@
 
 #include "gnl.h"
 
+/**
+ * SECTION:element-gnlfilesource
+ * @short_description: GNonLin File Source
+ *
+ * GnlFileSource is a #GnlSource which reads and decodes the contents
+ * of a given file. The data in the file is decoded using any available
+ * GStreamer plugins.
+ */
+
 static GstStaticPadTemplate gnl_filesource_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
Index: gnl/gnlfilesource.h
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlfilesource.h,v
retrieving revision 1.4
diff -u -r1.4 gnlfilesource.h
--- gnl/gnlfilesource.h	5 May 2006 16:23:06 -0000	1.4
+++ gnl/gnlfilesource.h	16 May 2008 11:11:27 -0000
@@ -44,6 +44,8 @@
 {
   GnlSource parent;
 
+  /*< private >*/
+
   GnlFileSourcePrivate *private;
 };
 
Index: gnl/gnlobject.c
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlobject.c,v
retrieving revision 1.47
diff -u -r1.47 gnlobject.c
--- gnl/gnlobject.c	2 Jul 2007 14:44:04 -0000	1.47
+++ gnl/gnlobject.c	16 May 2008 11:11:27 -0000
@@ -25,6 +25,19 @@
 #include <string.h>
 #include "gnl.h"
 
+/**
+ * SECTION:gnlobject
+ * @short_description: Base class for GNonLin elements
+ * 
+ * <refsect2>
+ * <para>
+ * GnlObject encapsulates default behaviour and implements standard
+ * properties provided by all the GNonLin elements.
+ * </para>
+ * </refsect2>
+ *  
+ */
+
 typedef struct _GnlPadPrivate GnlPadPrivate;
 
 struct _GnlPadPrivate
@@ -112,6 +125,10 @@
   gnlobject_class->prepare = GST_DEBUG_FUNCPTR (gnl_object_prepare_func);
   gnlobject_class->cleanup = GST_DEBUG_FUNCPTR (gnl_object_cleanup_func);
 
+  /**
+   * GnlObject:start:
+   *
+   */
   g_object_class_install_property (gobject_class, ARG_START,
       g_param_spec_uint64 ("start", "Start",
           "The start position relative to the parent",
@@ -826,11 +843,10 @@
   return gnl_object_ghost_pad_full (object, name, target, FALSE);
 }
 
-/**
+/*
  * gnl_object_ghost_pad_no_target:
  * /!\ Doesn't add the pad to the GnlObject....
-*/
-
+ */
 GstPad *
 gnl_object_ghost_pad_no_target (GnlObject * object, const gchar * name,
     GstPadDirection dir)
Index: gnl/gnloperation.c
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnloperation.c,v
retrieving revision 1.25
diff -u -r1.25 gnloperation.c
--- gnl/gnloperation.c	21 Apr 2008 11:24:03 -0000	1.25
+++ gnl/gnloperation.c	16 May 2008 11:11:27 -0000
@@ -25,6 +25,19 @@
 
 #include "gnl.h"
 
+/**
+ * SECTION:element-gnloperation
+ * @short_description: Encapsulates filters/effects for use with GnlObjects
+ *
+ * <refsect2>
+ * <para>
+ * A GnlOperation performs a transformation or mixing operation on the
+ * data from one or more #GnlSources, which is used to implement filters or 
+ * effects.
+ * </para>
+ * </refsect2>
+ */
+
 GST_BOILERPLATE (GnlOperation, gnl_operation, GnlObject, GNL_TYPE_OBJECT);
 
 static GstElementDetails gnl_operation_details =
@@ -98,6 +111,13 @@
   gobject_class->set_property = GST_DEBUG_FUNCPTR (gnl_operation_set_property);
   gobject_class->get_property = GST_DEBUG_FUNCPTR (gnl_operation_get_property);
 
+  /**
+   * GnlOperation:sinks:
+   *
+   * Specifies the number of sink pads the operation should provide.
+   * If the sinks property is -1 (the default) pads are only created as
+   * demanded via get_request_pad() calls on the element.
+   */
   g_object_class_install_property (gobject_class, ARG_SINKS,
       g_param_spec_int ("sinks", "Sinks",
           "Number of input sinks (-1 for automatic handling)", -1, G_MAXINT, -1,
@@ -208,9 +228,9 @@
   return (havesink && havesrc);
 }
 
-/**
+/*
  * get_src_pad:
- * #element: a #GstElement
+ * element: a #GstElement
  *
  * Returns: The src pad for the given element. A reference was added to the
  * returned pad, remove it when you don't need that pad anymore.
Index: gnl/gnloperation.h
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnloperation.h,v
retrieving revision 1.14
diff -u -r1.14 gnloperation.h
--- gnl/gnloperation.h	9 Aug 2006 16:44:00 -0000	1.14
+++ gnl/gnloperation.h	16 May 2008 11:11:27 -0000
@@ -42,9 +42,9 @@
 {
   GnlObject parent;
 
+  /* <private> */
   gint num_sinks;               /* Number of sink inputs. */
 
-  /* <private> */
   gboolean dynamicsinks;        /* TRUE if element has request pads */
   gint realsinks;               /* Number of real sink pads. */
 
Index: gnl/gnlsource.c
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnlsource.c,v
retrieving revision 1.55
diff -u -r1.55 gnlsource.c
--- gnl/gnlsource.c	15 Jun 2007 16:36:42 -0000	1.55
+++ gnl/gnlsource.c	16 May 2008 11:11:27 -0000
@@ -25,6 +25,14 @@
 
 #include "gnl.h"
 
+/**
+ * SECTION:element-gnlsource
+ * @short_description: GNonLin Source
+ *
+ * The GnlSource encapsulates a pipeline which produces data for processing
+ * in a #GnlComposition.
+ */
+
 static GstStaticPadTemplate gnl_source_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
Index: gnl/gnltypes.h
===================================================================
RCS file: /cvs/gstreamer/gnonlin/gnl/gnltypes.h,v
retrieving revision 1.4
diff -u -r1.4 gnltypes.h
--- gnl/gnltypes.h	31 Oct 2005 18:45:06 -0000	1.4
+++ gnl/gnltypes.h	16 May 2008 11:11:27 -0000
@@ -39,7 +39,4 @@
 typedef struct _GnlFileSource GnlFileSource;
 typedef struct _GnlFileSourceClass GnlFileSourceClass;
 
-typedef struct _GnlTimeline GnlTimeline;
-typedef struct _GnlTimelineClass GnlTimelineClass;
-
 #endif
