[gstreamermm] First move to the new mm-build system.



commit c7e41098e24970e12628b7a2d072818e423d1052
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Tue Sep 8 19:28:55 2009 -0400

    	First move to the new mm-build system.
    
    	Plug-ins, tests, and examples are yet to be included.  The license
    	headers might be reviewed, but otherwise everything seems to be fine
    	so far except for the distcheck.
    
    	* build_shared/Makefile_build.am_fragment:
    	* build_shared/Makefile_build_gensrc.am_fragment:
    	* build_shared/Makefile_gensrc.am_fragment:
    	* docs/Makefile.am:
    	* docs/reference/Doxyfile.in:
    	* docs/reference/Makefile.am:
    	* docs/reference/beautify_docs.pl.in:
    	* gstreamer/gstreamermm-0.10.pc.in:
    	* gstreamer/src/Makefile_list_of_hg.am_fragment:
    	* scripts/Makefile.am:
    	* scripts/README:
    	* scripts/c_std.m4:
    	* scripts/cxx.m4:
    	* scripts/cxx_std.m4:
    	* scripts/dk-warn.m4:
    	* scripts/docgen.m4:
    	* scripts/glibmm_check_perl.m4:
    	* scripts/macros.m4:
    	* scripts/reduced.m4:
    	* scripts/sun.m4:
    	* tools/Makefile_list_of_sources.am_fragment:
    	* tools/README:
    	* tools/TODO:
    	* tools/m4/Makefile.am:
    	* tools/m4/Makefile_list_of_sources.am_fragment: Removed these.
    
    	* build/.gitignore:
    	* doc/Makefile.am:
    	* doc/reference/.gitignore:
    	* doc/reference/Doxyfile.in:
    	* gstreamer/.gitignore:
    	* gstreamer/gstreamermm-uninstalled.pc.in:
    	* gstreamer/gstreamermm.pc.in:
    	* gstreamer/gstreamermm/filelist.am:
    	* gstreamer/gstreamermm/private/.gitignore:
    	* gstreamer/src/filelist.am:
    	* tools/m4/filelist.am: Added these.
    
    	* .gitignore:
    	* Makefile.am:
    	* autogen.sh:
    	* configure.ac:
    	* gstreamer/gstreamermm/Makefile.am:
    	* gstreamer/gstreamermm/private/Makefile.am:
    	* gstreamer/gstreamermmconfig.h.in:
    	* gstreamer/src/Makefile.am:
    	* tools/Makefile.am:
    	* tools/extra_defs_gen/Makefile.am:
    	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc:
    	* tools/generate_gst_wrap_init.pl.in:
    	* tools/m4/class_boxedtype_extra.m4:
    	* tools/m4/class_gstminiobject.m4:
    	* tools/m4/convert.m4:
    	* tools/m4/convert_gst.m4:
    	* tools/m4/plugingen.m4:
    	* tools/m4/plugingen_base.m4:
    	* tools/m4/plugingen_gstreamermm.m4:
    	* tools/m4/shared.m4: Modified these.

 .gitignore                                     |   58 +-
 ChangeLog                                      |  130 +++
 INSTALL                                        |  236 -----
 Makefile.am                                    |   81 +-
 autogen.sh                                     |   64 +--
 build/.gitignore                               |   13 +
 build_shared/Makefile_build.am_fragment        |   53 -
 build_shared/Makefile_build_gensrc.am_fragment |   91 --
 build_shared/Makefile_gensrc.am_fragment       |  171 ----
 config.h.in                                    |    7 -
 configure.ac                                   |  488 ++--------
 doc/Makefile.am                                |   22 +
 doc/reference/.gitignore                       |    5 +
 doc/reference/Doxyfile.in                      |  283 ++++++
 docs/Makefile.am                               |   16 -
 docs/reference/Doxyfile.in                     | 1258 ------------------------
 docs/reference/Makefile.am                     |   61 --
 docs/reference/beautify_docs.pl.in             |   81 --
 gstreamer/.gitignore                           |    6 +
 gstreamer/Makefile.am                          |   13 -
 gstreamer/gstreamermm-0.10.pc.in               |   15 -
 gstreamer/gstreamermm-uninstalled.pc.in        |   10 +
 gstreamer/gstreamermm.pc.in                    |   19 +
 gstreamer/gstreamermm/Makefile.am              |   81 +-
 gstreamer/gstreamermm/filelist.am              |    8 +
 gstreamer/gstreamermm/private/.gitignore       |    2 +
 gstreamer/gstreamermm/private/Makefile.am      |   22 -
 gstreamer/gstreamermmconfig.h.in               |    4 +-
 gstreamer/src/Makefile.am                      |   29 +-
 gstreamer/src/Makefile_list_of_hg.am_fragment  |  157 ---
 gstreamer/src/filelist.am                      |  156 +++
 scripts/Makefile.am                            |    8 -
 scripts/README                                 |    1 -
 scripts/c_std.m4                               |   43 -
 scripts/cxx.m4                                 |  364 -------
 scripts/cxx_std.m4                             |  195 ----
 scripts/dk-warn.m4                             |  114 ---
 scripts/docgen.m4                              |   75 --
 scripts/glibmm_check_perl.m4                   |   54 -
 scripts/macros.m4                              |  134 ---
 scripts/reduced.m4                             |  106 --
 scripts/sun.m4                                 |   15 -
 tools/Makefile.am                              |   55 +-
 tools/Makefile_list_of_sources.am_fragment     |    4 -
 tools/README                                   |    4 -
 tools/TODO                                     |   12 -
 tools/extra_defs_gen/Makefile.am               |   39 -
 tools/generate_gst_wrap_init.pl.in             |    2 +-
 tools/m4/Makefile.am                           |    9 -
 tools/m4/Makefile_list_of_sources.am_fragment  |    5 -
 tools/m4/class_boxedtype_extra.m4              |    2 +-
 tools/m4/class_gstminiobject.m4                |    2 +
 tools/m4/convert.m4                            |    4 +-
 tools/m4/convert_gst.m4                        |   84 +-
 tools/m4/filelist.am                           |    6 +
 tools/m4/plugingen.m4                          |    6 +-
 tools/m4/plugingen_base.m4                     |    2 +
 tools/m4/plugingen_gstreamermm.m4              |   22 +-
 tools/m4/shared.m4                             |    7 +-
 59 files changed, 1006 insertions(+), 4008 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 1cbc0af..c27fd85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,39 +1,27 @@
 # wildcard patterns
 Makefile
 Makefile.in
-.deps/
-.libs/
-*.o
+.deps
+.dirstamp
+.libs
+stamp-h?
+*.[ao]
 *.l[ao]
-*_p.h
 *.swp
-.stamps/
 
 # /
-aclocal.m4
-autom4te.cache/
-config.h
-config.log
-config.status
-configure
-libtool
-stamp-h1
-tags
-
-# docs/
-docs/reference/Doxyfile
-docs/reference/doxygen-warnings.txt
-docs/reference/html/
-
-# examples/
-examples/element_link/element_link
-examples/media_player_gtkmm/example
-examples/ogg_player/example
-examples/ogg_player_gtkmm/example
-examples/optiongroup/example
+/INSTALL
+/aclocal.m4
+/autom4te.cache
+/config.h*
+/config*.lineno
+/config.log
+/config.status
+/configure
+/gstreamermm-*.tar.*
+/libtool
 
 # gstreamer/
-gstreamer/gstreamermm-0.10.pc
 gstreamer/gstreamermm/adder.cc
 gstreamer/gstreamermm/adder.h
 gstreamer/gstreamermm/alsamixer.cc
@@ -286,7 +274,6 @@ gstreamer/gstreamermm/xoverlay.h
 gstreamer/gstreamermm/xvimagesink.cc
 gstreamer/gstreamermm/xvimagesink.h
 gstreamer/gstreamermmconfig.h
-gstreamer/stamp-h2
 
 # Generated plug-in .hg and .ccg files (not included in commits).
 gstreamer/src/adder.ccg
@@ -406,14 +393,6 @@ gstreamer/src/ximagesink.hg
 gstreamer/src/xvimagesink.ccg
 gstreamer/src/xvimagesink.hg
 
-# scripts/
-scripts/config.guess
-scripts/config.sub
-scripts/depcomp
-scripts/install-sh
-scripts/ltmain.sh
-scripts/missing
-
 # tests/
 tests/test-caps
 tests/test-caps-structures
@@ -442,7 +421,6 @@ tests/test-taglist
 tests/test-tagsetter
 
 # tools/
-tools/extra_defs_gen/generate_defs_gst
-tools/extra_defs_gen/generate_plugin_gmmproc_file
-tools/generate_gst_wrap_init.pl
-tools/generate_wrap_init.pl
+/tools/extra_defs_gen/generate_defs_gst
+/tools/extra_defs_gen/generate_plugin_gmmproc_file
+/tools/generate_gst_wrap_init.pl
diff --git a/ChangeLog b/ChangeLog
index b439293..9be884d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,133 @@
+2009-09-08  José Alburquerque  <jaalburqu svn gnome org>
+
+	First move to the new mm-build system.
+
+	Plug-ins, tests, and examples are yet to be included.  The license
+	headers might be reviewed, but otherwise everything seems to be fine
+	so far except for the distcheck.
+
+	* INSTALL:
+	* build_shared/Makefile_build.am_fragment:
+	* build_shared/Makefile_build_gensrc.am_fragment:
+	* build_shared/Makefile_gensrc.am_fragment:
+	* config.h.in:
+	* docs/Makefile.am:
+	* docs/reference/Doxyfile.in:
+	* docs/reference/Makefile.am:
+	* docs/reference/beautify_docs.pl.in:
+	* gstreamer/Makefile.am:
+	* gstreamer/gstreamermm-0.10.pc.in:
+	* gstreamer/src/Makefile_list_of_hg.am_fragment:
+	* scripts/Makefile.am:
+	* scripts/README:
+	* scripts/c_std.m4:
+	* scripts/cxx.m4:
+	* scripts/cxx_std.m4:
+	* scripts/dk-warn.m4:
+	* scripts/docgen.m4:
+	* scripts/glibmm_check_perl.m4:
+	* scripts/macros.m4:
+	* scripts/reduced.m4:
+	* scripts/sun.m4:
+	* tools/Makefile_list_of_sources.am_fragment:
+	* tools/README:
+	* tools/TODO:
+	* tools/m4/Makefile.am:
+	* tools/m4/Makefile_list_of_sources.am_fragment: Removed these.
+
+	* build/.gitignore:
+	* doc/Makefile.am:
+	* doc/reference/.gitignore:
+	* doc/reference/Doxyfile.in:
+	* gstreamer/.gitignore:
+	* gstreamer/gstreamermm-uninstalled.pc.in:
+	* gstreamer/gstreamermm.pc.in:
+	* gstreamer/gstreamermm/filelist.am:
+	* gstreamer/gstreamermm/private/.gitignore:
+	* gstreamer/src/filelist.am:
+	* tools/m4/filelist.am: Added these.
+
+	* .gitignore:
+	* Makefile.am:
+	* autogen.sh:
+	* configure.ac:
+	* gstreamer/gstreamermm/Makefile.am:
+	* gstreamer/gstreamermm/private/Makefile.am:
+	* gstreamer/gstreamermmconfig.h.in:
+	* gstreamer/src/Makefile.am:
+	* tools/Makefile.am:
+	* tools/extra_defs_gen/Makefile.am:
+	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc:
+	* tools/generate_gst_wrap_init.pl.in:
+	* tools/m4/class_boxedtype_extra.m4:
+	* tools/m4/class_gstminiobject.m4:
+	* tools/m4/convert.m4:
+	* tools/m4/convert_gst.m4:
+	* tools/m4/plugingen.m4:
+	* tools/m4/plugingen_base.m4:
+	* tools/m4/plugingen_gstreamermm.m4:
+	* tools/m4/shared.m4: Modified these.
+
+2009-09-08  José Alburquerque  <jaalburqu svn gnome org>
+
+	* build_shared/Makefile_build.am_fragment:
+	* build_shared/Makefile_build_gensrc.am_fragment:
+	* build_shared/Makefile_gensrc.am_fragment:
+	* docs/Makefile.am:
+	* docs/reference/Doxyfile.in:
+	* docs/reference/Makefile.am:
+	* docs/reference/beautify_docs.pl.in:
+	* gstreamer/gstreamermm-0.10.pc.in:
+	* scripts/Makefile.am:
+	* scripts/README:
+	* scripts/c_std.m4:
+	* scripts/cxx.m4:
+	* scripts/cxx_std.m4:
+	* scripts/dk-warn.m4:
+	* scripts/docgen.m4:
+	* scripts/glibmm_check_perl.m4:
+	* scripts/macros.m4:
+	* scripts/reduced.m4:
+	* scripts/sun.m4:
+
+	* .gitignore:
+	* Makefile.am:
+	* autogen.sh:
+	* build/.gitignore:
+	* configure.ac:
+	* doc/Makefile.am:
+	* doc/reference/.gitignore:
+	* doc/reference/Doxyfile.in:
+	* gstreamer/.gitignore:
+	* gstreamer/gstreamermm-uninstalled.pc.in:
+	* gstreamer/gstreamermm.pc.in:
+	* gstreamer/gstreamermm/Makefile.am:
+	* gstreamer/gstreamermm/filelist.am:
+	* gstreamer/gstreamermm/private/.gitignore:
+	* gstreamer/gstreamermm/private/Makefile.am:
+	* gstreamer/gstreamermmconfig.h.in:
+	* gstreamer/src/Makefile.am:
+	* gstreamer/src/Makefile_list_of_hg.am_fragment:
+	* gstreamer/src/filelist.am:
+	* tools/Makefile.am:
+	* tools/Makefile_list_of_sources.am_fragment:
+	* tools/README:
+	* tools/TODO:
+	* tools/extra_defs_gen/Makefile.am:
+	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc:
+	* tools/generate_gst_wrap_init.pl.in:
+	* tools/m4/Makefile.am:
+	* tools/m4/Makefile_list_of_sources.am_fragment:
+	* tools/m4/class_boxedtype_extra.m4:
+	* tools/m4/class_gstminiobject.m4:
+	* tools/m4/convert.m4:
+	* tools/m4/convert_gst.m4:
+	* tools/m4/filelist.am:
+	* tools/m4/plugingen.m4:
+	* tools/m4/plugingen_base.m4:
+	* tools/m4/plugingen_gstreamermm.m4:
+	* tools/m4/shared.m4:
+
 0.10.5:
 
 2009-09-02  José Alburquerque  <jaalburqu svn gnome org>
diff --git a/Makefile.am b/Makefile.am
index 2bdf99d..fe27b36 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,40 +1,41 @@
-
-SUBDIRS=tools gstreamer @EXAMPLE_SUBDIR@ tests @DEMO_SUBDIR@ @DOCS_SUBDIR@
-DIST_SUBDIRS=$(SUBDIRS) scripts
-
-EXTRA_DIST= build_shared/Makefile_build.am_fragment \
-              build_shared/Makefile_build_gensrc.am_fragment \
-              build_shared/Makefile_gensrc.am_fragment \
-              build_shared/Makefile_conditional.am_fragment \
-              autogen.sh \
-	      COPYING.examples COPYING.tools
-
-
-all-local:
-	@echo "*** Everything completed ***"
-
-dist-hook:
-	@echo; echo; \
-	echo "**********************************************************"; \
-	echo "* IMPORTANT NOTICE:                                      *"; \
-	echo "*                                                        *"; \
-	echo "* Be sure you have done a complete build before running  *"; \
-	echo "* 'make dist' or 'make distcheck', because otherwise     *"; \
-	echo "* the tarball will _not_ contain the dependency rules    *"; \
-	echo "* generated by the compiler.                             *"; \
-	echo "**********************************************************"; \
-	echo; echo
-
-
-#include $(top_srcdir)/docs/Makefile_web.am_fragment
-
-doc-clean-recursive:
-	(cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-clean)
-
-doc-clean: doc-clean-recursive
-
-doc-rebuild:
-	(cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-rebuild)
-
-.PHONY: doc-clean doc-clean-recursive doc-rebuild
-
+## Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
+
+if MAINTAINER_MODE
+src_subdirs = tools gstreamer/src
+else
+src_subdirs =
+endif
+if ENABLE_DOCUMENTATION
+doc_subdirs = doc
+else
+doc_subdirs =
+endif
+SUBDIRS = $(src_subdirs) gstreamer/gstreamermm $(doc_subdirs)
+
+gstreamermm_includedir = $(includedir)/$(GSTREAMERMM_MODULE_NAME)
+gstreamermm_include_HEADERS = gstreamer/gstreamermm.h
+gstreamermm_libincludedir = $(libdir)/$(GSTREAMERMM_MODULE_NAME)/include
+nodist_gstreamermm_libinclude_HEADERS = gstreamer/gstreamermmconfig.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = gstreamer/$(GSTREAMERMM_MODULE_NAME).pc
+
+dist_noinst_SCRIPTS = autogen.sh
+
+#include $(top_srcdir)/build/dist-changelog.am
diff --git a/autogen.sh b/autogen.sh
index 9e26a99..fed2c5b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,59 +1,7 @@
-#!/bin/sh
-MAKE=`which gnumake`
-if test ! -x "$MAKE" ; then MAKE=`which gmake` ; fi
-if test ! -x "$MAKE" ; then MAKE=`which make` ; fi
-HAVE_GNU_MAKE=`$MAKE --version|grep -c "Free Software Foundation"`
-
-if test "$HAVE_GNU_MAKE" != "1"; then 
-echo !!!! ERROR: You need GNU make to build from svn!; 
-echo !!!! $MAKE is not GNU make;
-exit 1; 
-fi
-
-echo Found GNU Make at $MAKE ... good.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-PKG_NAME="gstreamermm"
-
-(test -f $srcdir/configure.ac \
-  && test -d $srcdir/gstreamer/src \
-  && test -d $srcdir/gstreamer/gstreamermm) || {
-    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
-    echo " top-level $PKG_NAME directory"
-    exit 1
-}
-
-
-
-echo "Adding libtools."
-libtoolize --automake
-
-echo "Building macros."
-aclocal -I scripts $ACLOCAL_FLAGS
-
-#echo "Building config header."
-#autoheader
-
-echo "Building makefiles."
-automake   --add-missing
-
-echo "Building configure."
-autoconf
-
-rm -f config.cache
-
-if test -z "$AUTOGEN_SUBDIR_MODE"; then
-
-    echo "Running configure."
-    ./configure --enable-maintainer-mode "$@"
-    echo
-    echo 'run "make"'
-    echo
-else
-    echo
-    echo 'run "./configure ; make"'
-    echo
-fi
+#! /bin/sh -e
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
 
+mm-common-prepare --force --copy "$srcdir"
+autoreconf --force --install "$srcdir"
+test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@"
diff --git a/build/.gitignore b/build/.gitignore
new file mode 100644
index 0000000..0590391
--- /dev/null
+++ b/build/.gitignore
@@ -0,0 +1,13 @@
+/compile
+/compile-binding.am
+/config.*
+/depcomp
+/dist-changelog.am
+/doc-reference.am
+/generate-binding.am
+/install-sh
+/libtool.m4
+/lt*.m4
+/ltmain.sh
+/missing
+/stamp-h?
diff --git a/configure.ac b/configure.ac
index 95af2b3..95daf0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,413 +1,91 @@
-# Configure.in
-#
-#  This file tests for various compiler features needed to configure 
-#  the gtkmm package.  Original skeleton was provided by Stephan Kulow.
-#  All tests were written by Tero Pulkkinen, Mirko Streckenbach, and 
-#  Karl Nelson.
-#
-#  NOTE! IF YOU DO CHANGES HERE, CHECK IF YOU NEED TO MODIFY .m4 TOO!!!
-#
-#  Copyright 2001 Free Software Foundation
-#  Copyright 1999 gtkmm Development Team
-#  Copyright 1998 Stephan Kulow 
-#
-
-#We use pushdef here because we can't use shell variables before AC_INIT, but we want to use a variable with AC_INIT:
-pushdef([GSTREAMERMM_MAJOR_VERSION],     [0])
-pushdef([GSTREAMERMM_MINOR_VERSION],     [10])
-pushdef([GSTREAMERMM_MICRO_VERSION],     [5])
-pushdef([GSTREAMERMM_EXTRA_VERSION],     [])
-pushdef([GSTREAMERMM_VERSION], GSTREAMERMM_MAJOR_VERSION.GSTREAMERMM_MINOR_VERSION.GSTREAMERMM_MICRO_VERSION[]GSTREAMERMM_EXTRA_VERSION)
-AC_INIT([gstreamermm], GSTREAMERMM_VERSION, [gtkmm-list gnome org])
-AC_CONFIG_SRCDIR([gstreamer/gstreamermmconfig.h.in])
-AC_PREREQ(2.59)
-
-#########################################################################
-#  Version and initialization
-#########################################################################
-[GSTREAMERMM_MAJOR_VERSION]=GSTREAMERMM_MAJOR_VERSION
-[GSTREAMERMM_MINOR_VERSION]=GSTREAMERMM_MINOR_VERSION
-[GSTREAMERMM_MICRO_VERSION]=GSTREAMERMM_MICRO_VERSION
-[GSTREAMERMM_EXTRA_VERSION]=GSTREAMERMM_EXTRA_VERSION
-[GSTREAMERMM_VERSION]=GSTREAMERMM_VERSION
-popdef([GSTREAMERMM_MAJOR_VERSION])
-popdef([GSTREAMERMM_MINOR_VERSION])
-popdef([GSTREAMERMM_MICRO_VERSION])
-popdef([GSTREAMERMM_EXTRA_VERSION])
-popdef([GSTREAMERMM_VERSION])
-GSTREAMERMM_RELEASE=$GSTREAMERMM_MAJOR_VERSION.$GSTREAMERMM_MINOR_VERSION
-AC_DEFINE_UNQUOTED(GSTREAMERMM_MAJOR_VERSION, $GSTREAMERMM_MAJOR_VERSION, [Major version of gstreamermm])
-AC_DEFINE_UNQUOTED(GSTREAMERMM_MINOR_VERSION, $GSTREAMERMM_MINOR_VERSION, [Minor version of gstreamermm])
-AC_DEFINE_UNQUOTED(GSTREAMERMM_MICRO_VERSION, $GSTREAMERMM_MICRO_VERSION, [Micro version of gstreamermm])
-AC_SUBST(GSTREAMERMM_MAJOR_VERSION)
-AC_SUBST(GSTREAMERMM_MINOR_VERSION)
-AC_SUBST(GSTREAMERMM_MICRO_VERSION)
-AC_SUBST(GSTREAMERMM_VERSION)
-AC_SUBST(GSTREAMERMM_RELEASE)
-
-#
-# +1 : ? : +1  == new interface that does not break old one
-# +1 : ? : 0   == new interface that breaks old one
-#  ? : ? : 0   == no new interfaces, but breaks apps
-#  ? :+1 : ?   == just some internal changes, nothing breaks but might work 
-#                 better
-# CURRENT : REVISION : AGE
-LIBGSTREAMERMM_SO_VERSION=2:1:0
-AC_SUBST(LIBGSTREAMERMM_SO_VERSION)
-
-AC_CONFIG_AUX_DIR(scripts)
-
-# Initialize automake stuff
-# tar-ustar asks it to use a sensible tar format that can handle long filenames.
-AM_INIT_AUTOMAKE([1.9 tar-ustar])
-
-dnl Specify a configuration file (no autoheader)
-AM_CONFIG_HEADER(config.h gstreamer/gstreamermmconfig.h)
+## Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+AC_INIT([gstreamermm], [0.10.5],
+        [http://bugzilla.gnome.org/enter_bug.cgi?product=gstreamermm],
+        [gstreamermm], [http://www.gtkmm.org/])
+AC_PREREQ([2.59])
+
+AC_CONFIG_SRCDIR([gstreamer/gstreamermm.h])
+AC_CONFIG_AUX_DIR([build])
+AC_CONFIG_MACRO_DIR([build])
+AC_CONFIG_HEADERS([config.h gstreamer/gstreamermmconfig.h])
+
+MM_PREREQ([0.7.2])
+MM_INIT_MODULE([gstreamermm-0.10])
+
+# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+AC_SUBST([GSTREAMERMM_SO_VERSION], [2:1:0])
+
+AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news dist-bzip2 no-define nostdinc tar-pax])
 AM_MAINTAINER_MODE
-AL_ACLOCAL_INCLUDE(scripts)
-
-
-#########################################################################
-#  Configure arguments 
-#########################################################################
-
-#########################################################################
-#  Environment Checks
-#########################################################################
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_MAKE_SET
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-dnl Used for enabling the "-no-undefined" flag while generating DLLs
-dnl Copied from the official gtk+-2 configure.in
-AC_MSG_CHECKING([for some Win32 platform])
-case "$host" in
-  *-*-mingw*|*-*-cygwin*)
-    platform_win32=yes
-    ;;
-  *)
-    platform_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_win32])
-AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
-
-AC_MSG_CHECKING([for native Win32])
-case "$host" in
-  *-*-mingw*)
-    os_win32=yes
-    ;;
-  *)
-    os_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$os_win32])
-AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
 
+AC_PROG_CXX
 AC_DISABLE_STATIC
 AC_LIBTOOL_WIN32_DLL
 AC_PROG_LIBTOOL
 
-AL_PROG_GNU_M4(AC_MSG_ERROR([dnl
-SUN m4 does not work for building gstreamermm. 
-Please install GNU m4.]))
-
-AL_PROG_GNU_MAKE(AC_MSG_ERROR([dnl
-SUN make does not work for building gstreamermm.
-Please install GNU make.]))
-
-
-#########################################################################
-#  Dependancy checks (gtkmm is only used by examples)
-#########################################################################
-gstreamermm_min_glibmm_version=2.21.1
-gstreamermm_min_gtkmm_version=2.12.0
-gstreamermm_min_gst_version=0.10.24
-gstreamermm_min_libxmlpp_version=2.14.0
-
-PKG_CHECK_MODULES(GSTREAMERMM, \
-        glibmm-2.4 >= ${gstreamermm_min_glibmm_version} \
-        giomm-2.4 >= ${gstreamermm_min_glibmm_version} \
-        libxml++-2.6 >= ${gstreamermm_min_libxmlpp_version} \
-        gstreamer-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-base-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-controller-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-dataprotocol-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-net-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-plugins-base-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-audio-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-cdda-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-interfaces-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-netbuffer-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-rtp-0.10 >= ${gstreamermm_min_gst_version} \
-        gstreamer-video-0.10 >= ${gstreamermm_min_gst_version} \
-        )
-AC_SUBST(GSTREAMERMM_CFLAGS)
-AC_SUBST(GSTREAMERMM_LIBS)
-
-# This macro is installed by glibmm
-# Doxygen needs the path to the installed perl.
-GLIBMM_CHECK_PERL([5.6.0])
-
-GLIBMM_LIBDIR=`pkg-config --variable=libdir glibmm-2.4`
-GMMPROC_DIR=$GLIBMM_LIBDIR/glibmm-2.4/proc
-AC_SUBST(GMMPROC_DIR)
-GMMPROC=$GMMPROC_DIR/gmmproc
-AC_SUBST(GMMPROC)
-
-# location to install generate_plugin_gmmproc_file so other gstreamermm modules
-# can generate plug-ins also.
-GENERATE_PLUGIN_GMMPROC_FILE_DIR=[${libdir}/gstreamermm-0.10/gen]
-AC_SUBST([GENERATE_PLUGIN_GMMPROC_FILE_DIR])
-
-
-#########################################################################
-#  Plug-in processing
-#########################################################################
-
-# To add a plugin, add the plugin definition, in the form of
-# "plugin=CppClassName" to the space-separated list of definitions below.
-# (Where "plugin" is the plugin name as recognized by gst-inspect and
-# "CppClassName" is the desired name of the C++ class.)
-#
-# Also add the target .hg file name to the files_all_plugin_hg variable in the
-# gstreamer/src/Makefile_list_of_hg.am_fragment file.  (That must be the same
-# as "CppClassName" - all in lowercase with a .hg extension).  Make sure that
-# the order of both lists correspond.
-
-# TODO: Include appsink and appsrc plug-ins in list below if they indeed are
-# plug-ins (see gst-plugins-base docs for details) and when they don't cause
-# gstreamermm initialization errors.
-GSTREAMERMM_ALL_PLUGIN_DEFS="capsfilter=CapsFilter fakesink=FakeSink \
-fakesrc=FakeSrc fdsrc=FdSrc fdsink=FdSink filesink=FileSink \
-filesrc=FileSrc identity=Identity multiqueue=MultiQueue queue=Queue \
-tee=Tee typefind=TypeFindElement \
-adder=Adder alsamixer=AlsaMixer alsasink=AlsaSink alsasrc=AlsaSrc \
-audioconvert=AudioConvert \
-audioresample=AudioResample audiotestsrc=AudioTestSrc \
-cdparanoiasrc=CdParanoiaSrc clockoverlay=ClockOverlay \
-decodebin=DecodeBin decodebin2=DecodeBin2 \
-ffmpegcolorspace=FfmpegColorSpace gdpdepay=GDPDepay gdppay=GDPPay \
-giosink=GioSink giosrc=GioSrc giostreamsink=GioStreamSink \
-giostreamsrc=GioStreamSrc multifdsink=MultiFdSink oggdemux=OggDemux \
-oggmux=OggMux playbin=PlayBin playbin2=PlayBin2 \
-tcpclientsink=TCPClientSink tcpclientsrc=TCPClientSrc \
-tcpserversink=TcpServerSink tcpserversrc=TCPServerSrc \
-textoverlay=TextOverlay textrender=TextRender theoradec=TheoraDec \
-theoraenc=TheoraEnc theoraparse=TheoraParse timeoverlay=TimeOverlay \
-uridecodebin=UriDecodeBin videorate=VideoRate \
-videoscale=VideoScale videotestsrc=VideoTestSrc volume=Volume \
-vorbisdec=VorbisDec vorbisenc=VorbisEnc vorbisparse=VorbisParse \
-vorbistag=VorbisTag ximagesink=XImageSink xvimagesink=XvImageSink"
-
-# Go through all the "plug-in defs", extracting the plug-in name and the C++
-# class name.  Create a list of the C++ class names and a list of the
-# corresponding .hg file names which are taken from the C++ class name.
-for plugin_def in $GSTREAMERMM_ALL_PLUGIN_DEFS; do
-  plugin_name=[`echo $plugin_def | cut -d'=' -f 1`]
-  cppname=[`echo $plugin_def | cut -d'=' -f 2`]
-  GSTREAMERMM_ALL_PLUGIN_CPPNAMES="$GSTREAMERMM_ALL_PLUGIN_CPPNAMES $cppname"
-  GSTREAMERMM_ALL_PLUGIN_HG=["$GSTREAMERMM_ALL_PLUGIN_HG `echo $cppname | tr [:upper:] [:lower:]`.hg"]
-done
-AC_SUBST(GSTREAMERMM_ALL_PLUGIN_DEFS)
-AC_SUBST(GSTREAMERMM_ALL_PLUGIN_CPPNAMES)
-AC_SUBST(GSTREAMERMM_ALL_PLUGIN_HG)
-
-#########################################################################
-#  C++ checks
-#########################################################################
-AC_PROG_CXX
-
-# Check for the SUN Forte compiler, and define GLIBMM_COMPILER_SUN_FORTE in the header.
-#GLIBMM_PROG_CXX_SUN
-
-# Ensure MSVC-compatible struct packing convention is used when
-# compiling for Win32 with gcc.
-# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
-# gcc2 uses "-fnative-struct".
-if test x"$os_win32" = xyes; then
-  if test x"$GCC" = xyes -a x"$GXX" = xyes; then
-    msnative_struct=''
-    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
-    if test -z "$ac_cv_prog_CC"; then
-      our_gcc="$CC"
-    else
-      our_gcc="$ac_cv_prog_CC"
-    fi
-    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
-      2.)
-	if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
-	  msnative_struct='-fnative-struct'
-	fi
-	;;
-      *)
-	if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
-	  msnative_struct='-mms-bitfields'
-	fi
-	;;
-    esac
-    if test x"$msnative_struct" = x ; then
-      AC_MSG_RESULT([no way])
-      AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
-    else
-      CXXFLAGS="$CXXFLAGS $msnative_struct"
-      AC_MSG_RESULT([${msnative_struct}])
-    fi
-  fi
-fi
-
-AC_LANG_CPLUSPLUS
-
-
-# Create a list of input directories for Doxygen.
-#GSTREAMERMM_DOXYGEN_INPUT_SUBDIRS([gst])
-
-# Evaluate the --enable-warnings=level option.
-DK_ARG_ENABLE_WARNINGS([GSTREAMERMM_WARNING_FLAGS],
-    [-Wall],
-    [-pedantic -Wall -Wextra])
-
-# Add an --enable-use-deprecations configure option:
-AC_ARG_ENABLE(deprecations,
-              [AC_HELP_STRING([--enable-use-deprecations],
-                              [warn about deprecated usages [default=no]])],,
-              [enable_deprecations=no])
-
-if test "x$enable_use_deprecations" = "xyes"; then
-   DISABLE_DEPRECATED_CFLAGS="\
--DG_DISABLE_DEPRECATED \
--DGDK_DISABLE_DEPRECATED \
--DGTK_DISABLE_DEPRECATED \
--DGDK_PIXBUF_DISABLE_DEPRECATED"
-   AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
-fi
-
-# Add an --enable-deprecated-api option:
-AC_ARG_ENABLE(deprecated-api, [AC_HELP_STRING([--enable-deprecated-api],
-                                        [include (build) deprecated API in the libraries [default=yes]])],,
-                        [enable_deprecated_api=yes])
-if test "x$enable_deprecated_api" = "xyes"; then
-AC_MSG_WARN([Deprecated API will be built, for backwards-compatibility.])
-else
-  DISABLE_DEPRECATED_API_CFLAGS=""
-AC_SUBST(DISABLE_DEPRECATED_API_CFLAGS)
-AC_MSG_WARN([Deprecated API will not be built, breaking backwards-compatibility. Do not use this build for distribution packages.])
-fi
-
-AC_ARG_ENABLE(examples,
-  [AC_HELP_STRING([--enable-examples],
-    [enable compilation of example programs [default=yes]])],
-  [enable_examples=$enableval], [enable_examples=yes])
-
-if test "x$enable_examples" = "xyes"; then
-
-#Extra dependencies needed for the examples. Use --enable-examples=no to build the library without this.
-PKG_CHECK_MODULES(GSTREAMERMM_EXAMPLES, gtkmm-2.4 >= ${gstreamermm_min_gtkmm_version})
-AC_SUBST(GSTREAMERMM_EXAMPLES_CFLAGS)
-AC_SUBST(GSTREAMERMM_EXAMPLES_LIBS)
-
-EXAMPLE_SUBDIR="examples"
-AC_CONFIG_FILES([
-    examples/Makefile
-    examples/optiongroup/Makefile
-    examples/element_link/Makefile
-    examples/ogg_player/Makefile
-    examples/ogg_player_gtkmm/Makefile
-    examples/media_player_gtkmm/Makefile
-    examples/typefind/Makefile
-    ])
-AC_SUBST(EXAMPLE_SUBDIR)
-else
-EXAMPLE_SUBDIR=""
-fi
-
-DEMO_SUBDIR=""
-AC_SUBST(DEMO_SUBDIR)
-
-AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug],
-                                     [compile with debugging options [default=no]])],
-              enable_debug=$enableval,
-              [enable_debug=no])
-
-AC_MSG_NOTICE([got enable_debug=$enable_debug])
-if test x$GSVMM_DEVEL = xon ; then
-    enable_debug=yes
-fi
-
-if test x$enable_debug = xyes ; then
-    DEBUG_OPTIONS="-Wall -g -Werror -Wextra"
-    CXXFLAGS="$DEBUG_OPTIONS"
-    CFLAGS="$DEBUG_OPTIONS"
-fi
-
-# Create a list of input directories for Doxygen.  We have to check wether
-# we are building in the source directory, because Doxygen doesn't like
-# duplicated directories in the input list.
-GSTREAMERMM_DOXYGEN_INPUT=''
-gstmm_srcdir=`cd "$srcdir" && pwd`
-gstmm_builddir=`pwd`
-for sublib in gstreamer
-do
-  if test "x$gstmm_builddir"  = "x$gstmm_srcdir" ; then
-    GSTREAMERMM_DOXYGEN_INPUT="$GSTREAMERMM_DOXYGEN_INPUT $gstmm_builddir/$sublib/$sublib""mm/"
-  else
-    GSTREAMERMM_DOXYGEN_INPUT="$GSTREAMERMM_DOXYGEN_INPUT $gstmm_srcdir/$sublib/$sublib""mm/"
-  fi
-done
-AC_SUBST(GSTREAMERMM_DOXYGEN_INPUT)
-
-AC_ARG_ENABLE(docs, [AC_HELP_STRING([--enable-docs],
-              [build the included docs [default=yes]])],,
-                      [enable_docs=yes])
-if test "x$enable_docs" = "xyes"; then
-AC_PATH_PROG(DOXYGEN, doxygen)
-    if test x$DOXYGEN = x ; then
-        AC_MSG_ERROR([could not find the doxygen program. Please, install it])
-    fi
-AC_SUBST(DOXYGEN)
-DOCS_SUBDIR="docs"
-  AC_CONFIG_FILES([
-    docs/Makefile
-      docs/reference/Makefile
-      docs/reference/Doxyfile
-      docs/reference/beautify_docs.pl
-  ])
-else
-DOCS_SUBDIR=""
-fi
-
-AC_SUBST(DOCS_SUBDIR)
-
-# Dummy conditional just to make automake-1.4 happy.
-# We need an always-false condition in docs/Makefile.am.
-AM_CONDITIONAL(GSTREAMERMM_FALSE,[false])
-
-# HACK:  Assign a dummy in order to prevent execution of autoheader by the
-# maintainer-mode rules.  That would fail since we aren't using autoheader.
-AUTOHEADER=':'
-
-
-AC_CONFIG_FILES([
-  Makefile
-
-  gstreamer/Makefile
-  gstreamer/gstreamermm-0.10.pc
-    gstreamer/src/Makefile
-    gstreamer/gstreamermm/Makefile
-      gstreamer/gstreamermm/private/Makefile
-
-  tools/Makefile
-    tools/generate_gst_wrap_init.pl
-    tools/m4/Makefile
-    tools/extra_defs_gen/Makefile
-
-  tests/Makefile
-])
-
-AC_CONFIG_FILES([
-  scripts/Makefile
+min_glibmm_version='2.21.1'
+min_gtkmm_version='2.12.0'
+min_gstreamer_version='0.10.24'
+min_libxmlpp_version='2.14.0'
+
+## The format below is used so that the requirements appear nicely in the .pc
+## file.
+AC_SUBST([GSTREAMERMM_MODULES],
+         ["\
+glibmm-2.4 >= $min_glibmm_version \
+libxml++-2.6 >= $min_libxmlpp_version \
+gstreamer-0.10 >= $min_gstreamer_version \
+gstreamer-base-0.10 >= $min_gstreamer_version \
+gstreamer-controller-0.10 >= $min_gstreamer_version \
+gstreamer-dataprotocol-0.10 >= $min_gstreamer_version \
+gstreamer-net-0.10 >= $min_gstreamer_version \
+gstreamer-plugins-base-0.10 >= $min_gstreamer_version \
+gstreamer-audio-0.10 >= $min_gstreamer_version \
+gstreamer-cdda-0.10 >= $min_gstreamer_version \
+gstreamer-interfaces-0.10 >= $min_gstreamer_version \
+gstreamer-netbuffer-0.10 >= $min_gstreamer_version \
+gstreamer-rtp-0.10 >= $min_gstreamer_version \
+gstreamer-video-0.10 >= $min_gstreamer_version"
 ])
 
-AC_OUTPUT()
+PKG_CHECK_MODULES([GSTREAMERMM], [$GSTREAMERMM_MODULES])
+
+MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
+MM_PKG_CONFIG_SUBST([GMMPROC_DIR], [--variable=gmmprocdir glibmm-2.4])
+
+MM_ARG_ENABLE_DOCUMENTATION
+MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
+MM_ARG_WITH_TAGFILE_DOC([libsigc++-2.0.tag], [sigc++-2.0])
+MM_ARG_WITH_TAGFILE_DOC([glibmm-2.4.tag], [glibmm-2.4])
+
+AC_LANG([C++])
+MM_ARG_ENABLE_WARNINGS([GSTREAMERMM_WXXFLAGS],
+                       [-Wall],
+                       [-pedantic -Wall -Wextra],
+                       [G GSTREAMER])
+
+AC_CONFIG_FILES([Makefile
+                 tools/Makefile
+                 tools/generate_gst_wrap_init.pl
+                 gstreamer/${GSTREAMERMM_MODULE_NAME}.pc:gstreamer/gstreamermm.pc.in
+                 gstreamer/${GSTREAMERMM_MODULE_NAME}-uninstalled.pc:gstreamer/gstreamermm-uninstalled.pc.in
+                 gstreamer/src/Makefile
+                 gstreamer/gstreamermm/Makefile
+                 doc/Makefile
+                 doc/reference/Doxyfile])
+AC_OUTPUT
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..bf77f14
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,22 @@
+## Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+include $(top_srcdir)/gstreamer/src/filelist.am
+include $(top_srcdir)/gstreamer/gstreamermm/filelist.am
+
+book_name = $(GSTREAMERMM_MODULE_NAME)
+doc_input = $(addprefix $(top_srcdir)/gstreamer/gstreamermm/,$(files_built_h))
+
+include $(top_srcdir)/build/doc-reference.am
diff --git a/doc/reference/.gitignore b/doc/reference/.gitignore
new file mode 100644
index 0000000..7b009df
--- /dev/null
+++ b/doc/reference/.gitignore
@@ -0,0 +1,5 @@
+/Doxyfile
+/doxygen.log
+/gstreamermm-0.10.devhelp2
+/gstreamermm-0.10.tag
+/html
diff --git a/doc/reference/Doxyfile.in b/doc/reference/Doxyfile.in
new file mode 100644
index 0000000..cdfa426
--- /dev/null
+++ b/doc/reference/Doxyfile.in
@@ -0,0 +1,283 @@
+# Doxyfile 1.5.8
+# @configure_input@
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING      = UTF-8
+PROJECT_NAME           = @PACKAGE_NAME@
+PROJECT_NUMBER         = @PACKAGE_VERSION@
+OUTPUT_DIRECTORY       = reference
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       =
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = "@abs_top_builddir@/gstreamer/" \
+                         "@abs_top_srcdir@/gstreamer/" \
+                         "@abs_top_builddir@/" \
+                         "@abs_top_srcdir@/"
+STRIP_FROM_INC_PATH    = "@abs_top_builddir@/gstreamer/" \
+                         "@abs_top_srcdir@/gstreamer/" \
+                         "@abs_top_builddir@/" \
+                         "@abs_top_srcdir@/"
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+QT_AUTOBRIEF           = NO
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 8
+ALIASES                = "newin{2}=\xrefitem since_\1_\2 \"Since @PACKAGE_NAME@ \1.\2\" \"New API in @PACKAGE_NAME@ \1.\2\""
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+OPTIMIZE_FOR_FORTRAN   = NO
+OPTIMIZE_OUTPUT_VHDL   = NO
+EXTENSION_MAPPING      =
+BUILTIN_STL_SUPPORT    = NO
+CPP_CLI_SUPPORT        = NO
+SIP_SUPPORT            = NO
+IDL_PROPERTY_SUPPORT   = YES
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+TYPEDEF_HIDES_STRUCT   = NO
+SYMBOL_CACHE_SIZE      = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+EXTRACT_ANON_NSPACES   = NO
+HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = YES
+HIDE_IN_BODY_DOCS      = YES
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = NO
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_GROUP_NAMES       = YES
+SORT_BY_SCOPE_NAME     = YES
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       =
+MAX_INITIALIZER_LINES  = 2
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = NO
+SHOW_FILES             = NO
+SHOW_NAMESPACES        = YES
+FILE_VERSION_FILTER    =
+LAYOUT_FILE            =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = reference/doxygen.log
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  =
+INPUT_ENCODING         = UTF-8
+FILE_PATTERNS          =
+RECURSIVE              = NO
+EXCLUDE                =
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       =
+EXCLUDE_SYMBOLS        = _* \
+                         adaptor_trait \
+                         basic_filebuf \
+                         basic_streambuf \
+                         binary_function \
+                         char_traits \
+                         internal \
+                         pair \
+                         unary_function
+EXAMPLE_PATH           = "@abs_top_srcdir@/examples"
+EXAMPLE_PATTERNS       = *.cc \
+                         *.h
+EXAMPLE_RECURSIVE      = YES
+IMAGE_PATH             =
+INPUT_FILTER           =
+FILTER_PATTERNS        =
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = NO
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = NO
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            =
+HTML_FOOTER            =
+HTML_STYLESHEET        = "@MMDOCTOOLDIR@/doxygen.css"
+HTML_ALIGN_MEMBERS     = YES
+HTML_DYNAMIC_SECTIONS  = NO
+GENERATE_DOCSET        = NO
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+GENERATE_HTMLHELP      = NO
+CHM_FILE               =
+HHC_LOCATION           =
+GENERATE_CHI           = NO
+CHM_INDEX_ENCODING     =
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+GENERATE_QHP           = NO
+QCH_FILE               =
+QHP_NAMESPACE          =
+QHP_VIRTUAL_FOLDER     = doc
+QHP_CUST_FILTER_NAME   =
+QHP_CUST_FILTER_ATTRS  =
+QHP_SECT_FILTER_ATTRS  =
+QHG_LOCATION           =
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 1
+GENERATE_TREEVIEW      = NONE
+TREEVIEW_WIDTH         = 250
+FORMULA_FONTSIZE       = 10
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         =
+LATEX_HEADER           =
+PDF_HYPERLINKS         = YES
+USE_PDFLATEX           = YES
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    =
+RTF_EXTENSIONS_FILE    =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             =
+XML_DTD                =
+XML_PROGRAMLISTING     = NO
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = YES
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = "@abs_top_builddir@/gstreamer" \
+                         "@abs_top_srcdir@/gstreamer"
+INCLUDE_FILE_PATTERNS  = *.h
+PREDEFINED             = __cplusplus \
+                         DOXYGEN_SHOULD_SKIP_THIS \
+                         "G_GNUC_CONST=" \
+                         "GSTREAMERMM_API=" \
+                         GLIBMM_VFUNCS_ENABLED \
+                         GLIBMM_PROPERTIES_ENABLED \
+                         GLIBMM_EXCEPTIONS_ENABLED \
+                         GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
+EXPAND_AS_DEFINED      = GSTREAMERMM_MAJOR_VERSION \
+                         GSTREAMERMM_MINOR_VERSION \
+                         GSTREAMERMM_MICRO_VERSION
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES               = @DOXYGEN_TAGFILES@
+GENERATE_TAGFILE       = "reference/@GSTREAMERMM_MODULE_NAME  tag"
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = NO
+PERL_PATH              = @PERL@
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = NO
+MSCGEN_PATH            =
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = YES
+DOT_FONTNAME           = FreeSans
+DOT_FONTSIZE           = 10
+DOT_FONTPATH           =
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = NO
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+CALLER_GRAPH           = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = NO
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               =
+DOTFILE_DIRS           =
+DOT_GRAPH_MAX_NODES    = 50
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = YES
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Options related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/gstreamer/.gitignore b/gstreamer/.gitignore
new file mode 100644
index 0000000..d593c96
--- /dev/null
+++ b/gstreamer/.gitignore
@@ -0,0 +1,6 @@
+/gstreamermmconfig.h
+/gstreamermm-*.pc
+/gstreamermm/gstreamer.cc
+/gstreamermm/gstreamer.h
+/gstreamermm/wrap_init.cc
+/src/.stamps
diff --git a/gstreamer/gstreamermm-uninstalled.pc.in b/gstreamer/gstreamermm-uninstalled.pc.in
new file mode 100644
index 0000000..9972c52
--- /dev/null
+++ b/gstreamer/gstreamermm-uninstalled.pc.in
@@ -0,0 +1,10 @@
+doxytagfile=${pc_top_builddir}/doc/reference/@GSTREAMERMM_MODULE_NAME  tag
+htmlrefpub=http://library.gnome.org/@PACKAGE_TARNAME@/unstable/
+
+Name: gstreamermm
+Description: C++ binding for GStreamer, not installed
+Version: @GSTREAMERMM_VERSION@
+URL: http://www.gtkmm.org/
+Requires: @GSTREAMERMM_MODULES@
+Libs: ${pc_top_builddir}/${pcfiledir}/gstreamermm/libgstreamermm- GSTREAMERMM_API_VERSION@.la
+Cflags: -I${pc_top_builddir}/${pcfiledir} -I${pc_top_builddir}/${pcfiledir}/@srcdir@
diff --git a/gstreamer/gstreamermm.pc.in b/gstreamer/gstreamermm.pc.in
new file mode 100644
index 0000000..0549098
--- /dev/null
+++ b/gstreamer/gstreamermm.pc.in
@@ -0,0 +1,19 @@
+prefix= prefix@
+exec_prefix= exec_prefix@
+libdir= libdir@
+datarootdir= datarootdir@
+datadir= datadir@
+includedir= includedir@
+
+docdir=${datarootdir}/doc/@GSTREAMERMM_MODULE_NAME@
+doxytagfile=${docdir}/reference/@GSTREAMERMM_MODULE_NAME  tag
+htmlrefdir=${docdir}/reference/html
+htmlrefpub=http://library.gnome.org/@PACKAGE_TARNAME@/unstable/
+
+Name: gstreamermm
+Description: C++ binding for gstreamer
+Version: @GSTREAMERMM_VERSION@
+URL: http://www.gtkmm.org/
+Requires: @GSTREAMERMM_MODULES@
+Libs: -L${libdir} -lgstreamermm- GSTREAMERMM_API_VERSION@
+Cflags: -I${includedir}/@GSTREAMERMM_MODULE_NAME@ -I${libdir}/@GSTREAMERMM_MODULE_NAME@/include
diff --git a/gstreamer/gstreamermm/Makefile.am b/gstreamer/gstreamermm/Makefile.am
index fa66f04..323e864 100644
--- a/gstreamer/gstreamermm/Makefile.am
+++ b/gstreamer/gstreamermm/Makefile.am
@@ -1,30 +1,51 @@
-## Copyright (c) 2001
-## The gtkmm development team.
-
-SUBDIRS                 = private
-
-sublib_name             = gstreamermm
-sublib_libname          = gstreamermm-0.10
-sublib_libversion       = $(LIBGSTREAMERMM_SO_VERSION)
-sublib_namespace        = Gst
-sublib_cflags           = $(GSTREAMERMM_CFLAGS)
-sublib_topdir           = gstreamer
-sublib_win32_dlls_libs	=
-
-sublib_files_extra_posix_cc = 
-sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = init.cc miniobject.cc version.cc wrap.cc
-sublib_files_extra_general_deprecated_cc = 
-
-sublib_files_extra_posix_h = 
-sublib_files_extra_win32_h =
-sublib_files_extra_general_h = init.h miniobject.h version.h wrap.h
-sublib_files_extra_general_deprecated_h = 
-
-include $(top_srcdir)/build_shared/Makefile_build.am_fragment
-
-lib_LTLIBRARIES = libgstreamermm-0.10.la
-libgstreamermm_0_10_la_SOURCES = $(files_built_cc) $(files_extra_cc) \
-				 $(files_all_plugin_built_cc)
-libgstreamermm_0_10_la_LDFLAGS = $(common_ldflags)
-libgstreamermm_0_10_la_LIBADD  = $(GSTREAMERMM_LIBS)
+## Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+lib_LTLIBRARIES = libgstreamermm- GSTREAMERMM_API_VERSION@.la
+
+include $(srcdir)/../src/filelist.am
+include $(srcdir)/filelist.am
+include $(top_srcdir)/build/compile-binding.am
+
+stampdir = $(srcdir)/.stamps
+patched_stamps = $(patched_hg:%.hg=$(stampdir)/stamp-%)
+
+BUILT_SOURCES = $(patched_stamps)
+
+generate_gst_wrap_init_in = $(top_builddir)/tools/generate_gst_wrap_init.pl.in
+generate_gst_wrap_init = $(PERL) -- $(top_builddir)/tools/generate_gst_wrap_init.pl
+generate_gst_wrap_init_flags = --namespace=Gst --parent_dir=gstreamermm
+
+gst_wrap_init.cc: $(generate_gst_wrap_init_in) $(files_hg:%=$(srcdir)/../src/%)
+	$(generate_gst_wrap_init) $(generate_gst_wrap_init_flags) \
+		$(files_hg:%=$(srcdir)/../src/%) > $@
+
+$(stampdir):
+	@(test -d $(stampdir) || mkdir $(stampdir))
+	
+# This is to patch generated .h files in $(gensrc_destdir) (e.g. taglist.h).
+$(stampdir)/stamp-%: $(stampdir) $(srcdir)/%.h
+	patch -Ns $(srcdir)/$*.h $(srcdir)/$*.h.patch || true
+	rm -f $(srcdir)/$*.h.rej
+	@echo 'timestamp' > $@
+
+local_cppflags = $(binding_includes) $(binding_cppflags) -DGSTREAMERMM_BUILD=1
+
+AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GSTREAMERMM_CFLAGS)
+AM_CXXFLAGS = $(GSTREAMERMM_WXXFLAGS)
+
+libgstreamermm_ GSTREAMERMM_API_VERSION@_la_SOURCES = $(binding_sources)
+libgstreamermm_ GSTREAMERMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(GSTREAMERMM_SO_VERSION)
+libgstreamermm_ GSTREAMERMM_API_VERSION@_la_LIBADD  = $(GSTREAMERMM_LIBS)
diff --git a/gstreamer/gstreamermm/filelist.am b/gstreamer/gstreamermm/filelist.am
new file mode 100644
index 0000000..8f07e3d
--- /dev/null
+++ b/gstreamer/gstreamermm/filelist.am
@@ -0,0 +1,8 @@
+## Copyright 2009 The gstreamermm Development Team
+
+files_built_cc = $(files_hg:.hg=.cc)
+files_built_h  = $(files_hg:.hg=.h)
+files_built_ph = $(patsubst %.hg,private/%_p.h,$(files_hg))
+files_extra_cc = init.cc gst_wrap_init.cc miniobject.cc version.cc wrap.cc wrap_init.cc
+files_extra_h  = init.h gst_wrap_init.h miniobject.h version.h wrap.h wrap_init.h
+files_extra_ph = private/miniobject_p.h
diff --git a/gstreamer/gstreamermm/private/.gitignore b/gstreamer/gstreamermm/private/.gitignore
new file mode 100644
index 0000000..51ad2f7
--- /dev/null
+++ b/gstreamer/gstreamermm/private/.gitignore
@@ -0,0 +1,2 @@
+*_p.h
+!miniobject_p.h
diff --git a/gstreamer/gstreamermmconfig.h.in b/gstreamer/gstreamermmconfig.h.in
index 9a6ef65..9fbb2ca 100644
--- a/gstreamer/gstreamermmconfig.h.in
+++ b/gstreamer/gstreamermmconfig.h.in
@@ -1,12 +1,12 @@
+/* This is part of gstreamermm */
+
 #ifndef _GSTREAMERMM_CONFIG_H
 #define _GSTREAMERMM_CONFIG_H 1
 
 #include "glibmmconfig.h"
 
-/* version numbers */
 #undef GSTREAMERMM_MAJOR_VERSION
 #undef GSTREAMERMM_MINOR_VERSION
 #undef GSTREAMERMM_MICRO_VERSION
 
 #endif /* _GSTREAMERMM_CONFIG_H */
-
diff --git a/gstreamer/src/Makefile.am b/gstreamer/src/Makefile.am
index 0c9bcfe..d8edbb4 100644
--- a/gstreamer/src/Makefile.am
+++ b/gstreamer/src/Makefile.am
@@ -1,11 +1,22 @@
-## Copyright (c) 2001
-## The gtkmm development team.
+# Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-sublib_name = gstreamermm
-sublib_namespace = Gst
-sublib_parentdir = gstreamermm
-files_defs = gst.defs gst_methods.defs gst_signals.defs gst_enums.defs gst_vfuncs.defs gst_others.defs gst_docs.xml gst_docs_override.xml
+binding_name    = gstreamermm
+wrap_init_flags = --namespace=Gst --parent_dir=gstreamermm
+codegen_srcdir  = $(top_srcdir)/tools
 
-main_defs = gst
-
-include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
+include $(srcdir)/filelist.am
+include $(top_srcdir)/tools/m4/filelist.am
+include $(top_srcdir)/build/generate-binding.am
diff --git a/gstreamer/src/filelist.am b/gstreamer/src/filelist.am
new file mode 100644
index 0000000..86e81df
--- /dev/null
+++ b/gstreamer/src/filelist.am
@@ -0,0 +1,156 @@
+## Copyright 2009 The gstreamermm Development Team
+
+files_defs =                    \
+        gst.defs                \
+        gst_enums.defs          \
+        gst_methods.defs        \
+        gst_others.defs         \
+        gst_signals.defs        \
+        gst_vfuncs.defs         \
+        gst_docs.xml            \
+        gst_docs_override.xml
+
+files_hg  =                     \
+        bin.hg                  \
+        buffer.hg               \
+        bus.hg                  \
+        caps.hg                 \
+        childproxy.hg           \
+        clock.hg                \
+        element.hg              \
+        elementfactory.hg       \
+        enums.hg                \
+        error.hg                \
+        event.hg                \
+        filter.hg               \
+        format.hg               \
+        ghostpad.hg             \
+        index.hg                \
+        indexfactory.hg         \
+        interface.hg            \
+        iterator.hg             \
+        message.hg              \
+        object.hg               \
+        pad.hg                  \
+        padtemplate.hg          \
+        parse.hg                \
+        pipeline.hg             \
+        plugin.hg               \
+        pluginfeature.hg        \
+        preset.hg               \
+        query.hg                \
+        registry.hg             \
+        segment.hg              \
+        structure.hg            \
+        systemclock.hg          \
+        taglist.hg              \
+        tagsetter.hg            \
+        task.hg                 \
+        taskpool.hg             \
+        urihandler.hg           \
+        value.hg                \
+        xml.hg                  \
+        basesink.hg             \
+        basesrc.hg              \
+        basetransform.hg        \
+        pushsrc.hg              \
+        audioclock.hg           \
+        audiofilter.hg          \
+        audiosink.hg            \
+        audiosrc.hg             \
+        baseaudiosink.hg        \
+        baseaudiosrc.hg         \
+        cddabasesrc.hg          \
+        ringbuffer.hg           \
+        videosink.hg            \
+        colorbalance.hg         \
+        colorbalancechannel.hg  \
+        mixer.hg                \
+        mixeroptions.hg         \
+        mixertrack.hg           \
+        navigation.hg           \
+        propertyprobe.hg        \
+        tuner.hg                \
+        tunerchannel.hg         \
+        tunernorm.hg            \
+        typefind.hg             \
+        typefindfactory.hg      \
+        videoorientation.hg     \
+        xoverlay.hg
+
+files_ccg = $(files_hg:.hg=.ccg)
+
+patched_hg =                    \
+        taglist.hg
+
+# To add a plugin, add the plugin definition, in the form of
+# "plugin=CppClassName" to the GSTREAMERMM_ALL_PLUGIN_DEFS variable of the
+# configure.ac file.  (Where "plugin" is the plugin name as recognized by
+# gst-inspect and "CppClassName" is the desired name of the C++ class.)
+#
+# Also add the target .hg file name to the the variable below.  (That must be
+# the same as "CppClassName" - all in lowercase with a .hg extension).  Make
+# sure that the order of both lists correspond.
+
+# TODO: Add appsink and appsrc plug-ins to list below if they indeed are
+# plug-ins (see gst-plugins-base docs for details) and when they don't cause
+# gstreamermm initialization errors.
+plugins_hg =                    \
+        capsfilter.hg           \
+        fakesink.hg             \
+        fakesrc.hg              \
+        fdsink.hg               \
+        fdsrc.hg                \
+        filesink.hg             \
+        filesrc.hg              \
+        identity.hg             \
+        multiqueue.hg           \
+        queue.hg                \
+        tee.hg                  \
+        typefindelement.hg      \
+        adder.hg                \
+        alsamixer.hg            \
+        alsasink.hg             \
+        alsasrc.hg              \
+        audioconvert.hg         \
+        audioresample.hg        \
+        audiotestsrc.hg         \
+        cdparanoiasrc.hg        \
+        clockoverlay.hg         \
+        decodebin.hg            \
+        decodebin2.hg           \
+        ffmpegcolorspace.hg     \
+        gdpdepay.hg             \
+        gdppay.hg               \
+        giosink.hg              \
+        giosrc.hg               \
+        giostreamsink.hg        \
+        giostreamsrc.hg         \
+        multifdsink.hg          \
+        oggdemux.hg             \
+        oggmux.hg               \
+        playbin.hg              \
+        playbin2.hg             \
+        tcpclientsink.hg        \
+        tcpclientsrc.hg         \
+        tcpserversink.hg        \
+        tcpserversrc.hg         \
+        textoverlay.hg          \
+        textrender.hg           \
+        theoradec.hg            \
+        theoraenc.hg            \
+        theoraparse.hg          \
+        timeoverlay.hg          \
+        uridecodebin.hg         \
+        videorate.hg            \
+        videoscale.hg           \
+        videotestsrc.hg         \
+        volume.hg               \
+        vorbisdec.hg            \
+        vorbisenc.hg            \
+        vorbisparse.hg          \
+        vorbistag.hg            \
+        ximagesink.hg           \
+        xvimagesink.hg
+
+plugins_ccg = $(plugins_hg:.hg=.ccg)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index cab6f1a..c05e697 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,9 +1,58 @@
+## Copyright 2009 The gstreamermm Development Team
+##
+## This library is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-include $(top_srcdir)/tools/Makefile_list_of_sources.am_fragment
+AUTOMAKE_OPTIONS = subdir-objects
 
-SUBDIRS = m4 extra_defs_gen
+include $(srcdir)/m4/filelist.am
 
-EXTRA_DIST = Makefile_list_of_sources.am_fragment README TODO
+lib_LTLIBRARIES	= extra_defs_gen/libgstreamermm_get_plugin_defs-0.10.la
+extra_defs_gen_libgstreamermm_get_plugin_defs_0_10_la_SOURCES = \
+			extra_defs_gen/get_plugin_defs.cc
+extra_defs_gen_libgstreamermm_get_plugin_defs_0_10_la_LIBADD = \
+			$(GSTREAMERMM_LIBS) -lglibmm_generate_extra_defs-2.4
 
+defs_includedir   = $(includedir)/gstreamermm-0.10/gstreamermm_get_plugin_defs
+defs_include_HEADERS = extra_defs_gen/get_plugin_defs.h
+defs_ldflags 	  = $(no_undefined) -version-info $(LIBGSTREAMERMM_SO_VERSION)
 
+#TODO: Should these go into $(datadir)/$(PACKAGE_TARNAME)/ instead as in gtkmm?
+plugingen_bindir = $(libdir)/$(GSTREAMERMM_MODULE_NAME)/gen
+plugingen_m4dir  = $(plugingen_bindir)/m4
+dist_plugingen_m4_DATA = $(files_codegen_m4:%=m4/%) $(files_plugin_m4:%=m4/%)
 
+noinst_PROGRAMS = extra_defs_gen/generate_defs_gst
+
+extra_defs_gen_generate_defs_gst_SOURCES = extra_defs_gen/generate_defs_gst.cc
+extra_defs_gen_generate_defs_gst_LDADD   = $(GSTREAMERMM_LIBS) \
+			-lglibmm_generate_extra_defs-2.4 \
+			extra_defs_gen/libgstreamermm_get_plugin_defs-0.10.la
+
+# Build and install the generate_plugin_gmmproc_file utility executable so that
+# other gstreamermm modules can also generate plug-ins.
+
+extra_defs_gen_generate_plugin_gmmproc_file_SOURCES = \
+			extra_defs_gen/generate_plugin_gmmproc_file.cc
+extra_defs_gen_generate_plugin_gmmproc_file_LDADD = \
+			extra_defs_gen/libgstreamermm_get_plugin_defs-0.10.la
+extra_defs_gen_generate_plugin_gmmproc_file_PROGRAMS = \
+			extra_defs_gen/generate_plugin_gmmproc_file
+extra_defs_gen_generate_plugin_gmmproc_filedir = $(plugingen_bindir)
+
+AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(GSTREAMERMM_CFLAGS)
+AM_CXXFLAGS = $(GSTREAMERMM_WXXFLAGS)
+
+# Instruct GNU make to delete the targets of a rule after it failed, in
+# order to avoid the complication of handling that situation manually.
+.DELETE_ON_ERROR:
diff --git a/tools/generate_gst_wrap_init.pl.in b/tools/generate_gst_wrap_init.pl.in
index db060cf..84219d7 100644
--- a/tools/generate_gst_wrap_init.pl.in
+++ b/tools/generate_gst_wrap_init.pl.in
@@ -1,4 +1,4 @@
-#! @PERL_PATH@
+#! @PERL@
 #
 # @configure_input@
 #
diff --git a/tools/m4/class_boxedtype_extra.m4 b/tools/m4/class_boxedtype_extra.m4
index e86cdc9..e4a1949 100644
--- a/tools/m4/class_boxedtype_extra.m4
+++ b/tools/m4/class_boxedtype_extra.m4
@@ -1,4 +1,4 @@
-dnl $Id: class_boxedtype.m4 413 2007-05-14 19:28:31Z murrayc $
+dnl Copyright 2008 The gstreamermm Development Team
 
 dnl
 dnl _CLASS_BOXEDTYPE_EXTRA(Region, GdkRegion, gdk_region_new, gdk_region_copy, gdk_region_destroy)
diff --git a/tools/m4/class_gstminiobject.m4 b/tools/m4/class_gstminiobject.m4
index 16e2181..9668183 100644
--- a/tools/m4/class_gstminiobject.m4
+++ b/tools/m4/class_gstminiobject.m4
@@ -1,3 +1,5 @@
+dnl Copyright 2008 The gstreamermm Development Team
+
 define(`_CLASS_GSTMINIOBJECT',`dnl
 _PUSH()
 dnl
diff --git a/tools/m4/convert.m4 b/tools/m4/convert.m4
index 597b1ae..2345c07 100644
--- a/tools/m4/convert.m4
+++ b/tools/m4/convert.m4
@@ -1,6 +1,8 @@
-include(shared.m4)
+dnl Copyright 2008 The gstreamermm Development Team
+
 include(convert_base.m4)
 include(convert_glib.m4)
 include(convert_gst.m4)
 include(class_gstminiobject.m4)
 include(class_boxedtype_extra.m4)
+include(shared.m4)
diff --git a/tools/m4/convert_gst.m4 b/tools/m4/convert_gst.m4
index 99ea2b0..9e59f19 100644
--- a/tools/m4/convert_gst.m4
+++ b/tools/m4/convert_gst.m4
@@ -1,4 +1,6 @@
-#Enums
+dnl Copyright 2008 The gstreamermm Development Team
+
+dnl Enums
 _CONV_ENUM(Gst,AssocFlags)
 _CONV_ENUM(Gst,AutoplugSelectResult)
 _CONV_ENUM(Gst,BaseAudioSinkSlaveMethod)
@@ -36,24 +38,24 @@ _CONV_ENUM(Gst,TaskState)
 _CONV_ENUM(Gst,TunerChannelFlags)
 _CONV_ENUM(Gst,URIType)
 
-#Glibmm Enums
+dnl Glibmm Enums
 _CONV_GLIB_ENUM(ThreadPriority)
 
 
-############### gstreamermm Class Conversions ######################
+dnl ############### gstreamermm Class Conversions ######################
 
-#Buffer
+dnl Buffer
 _CONVERSION(`GstBuffer*',`Glib::RefPtr<Gst::Buffer>',`Gst::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`GstBuffer*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::Buffer>&',`GstBuffer*', `const_cast<GstBuffer*>($3->gobj())')
 _CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`const GstBuffer*', `$3->gobj()')
 _CONVERSION(`Glib::RefPtr<Gst::Buffer>',`GstBuffer*', `$3->gobj()')
 
-#Bus
+dnl Bus
 _CONVERSION(`const Glib::RefPtr<Gst::Bus>&',`GstBus*', `$3->gobj()')
 _CONVERSION(`GstBus*',`Glib::RefPtr<Gst::Bus>',`Glib::wrap($3)')
 
-#Caps
+dnl Caps
 _CONVERSION(`GstCaps*',`Glib::RefPtr<Gst::Caps>',`Glib::wrap($3)')
 _CONVERSION(`Glib::RefPtr<Gst::Caps>',`GstCaps*',`$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`GstCaps*', `$3->gobj()')
@@ -61,22 +63,22 @@ _CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`GstCaps*', `const_cast<$2>($
 _CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`const GstCaps*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`const GstCaps*', `$3->gobj()')
 
-#Clock
+dnl Clock
 _CONVERSION(`GstClock*',`Glib::RefPtr<Gst::Clock>',`Glib::wrap($3)')
 _CONVERSION(`GstClock*',`Glib::RefPtr<const Gst::Clock>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Clock>&',`GstClock*', `$3->gobj()')
 _CONVERSION(`const Clock&',`GstClock*',`((GstClock*)(&$3))')
 _CONVERSION(`Glib::RefPtr<Gst::Clock>',`GstClock*', `$3->gobj()')
 
-#ClockID
+dnl ClockID
 _CONVERSION(`GstClockID',`Glib::RefPtr<Gst::ClockID>',`Glib::wrap((GstClockEntry*)($3))')
 _CONVERSION(`const Glib::RefPtr<Gst::ClockID>&',`GstClockEntry*',`$3->gobj()')
 
-#ColorBalanceChannel
+dnl ColorBalanceChannel
 _CONVERSION(`const Glib::RefPtr<ColorBalanceChannel>&',`GstColorBalanceChannel*',`$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const ColorBalanceChannel>&',`GstColorBalanceChannel*',`const_cast<GstColorBalanceChannel*>($3->gobj())')
 
-#Element
+dnl Element
 _CONVERSION(`Glib::RefPtr<Gst::Element>',`GstElement*', `$3->gobj()')
 _CONVERSION(`GstElement*',`Glib::RefPtr<Gst::Element>',`Glib::wrap($3)')
 _CONVERSION(`GstElement*',`Glib::RefPtr<const Gst::Element>',`Glib::wrap($3)')
@@ -84,43 +86,43 @@ _CONVERSION(`const Glib::RefPtr<Gst::Element>&',`GstElement*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::Element>&',`GstElement*', `const_cast<GstElement*>($3->gobj())')
 _CONVERSION(`State&',`GstState*',`(GstState*)(&$3)')
 
-#ElementFactory
+dnl ElementFactory
 _CONVERSION(`GstElementFactory*',`Glib::RefPtr<Gst::ElementFactory>',`Glib::wrap($3)')
 _CONVERSION(`GstElementFactory*',`Glib::RefPtr<const Gst::ElementFactory>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::ElementFactory>&',`GstElementFactory*', `$3->gobj()')
 
-#Event
+dnl Event
 _CONVERSION(`const Glib::RefPtr<Gst::Event>&',`GstEvent*', `Gst::unwrap($3)')
 
-#Index
+dnl Index
 _CONVERSION(`GstIndex*',`Glib::RefPtr<Gst::Index>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Index>&',`GstIndex*',`$3->gobj()')
 _CONVERSION(`Glib::RefPtr<Gst::Index>',`GstIndex*',`$3->gobj()')
 
-#IndexFactory
+dnl IndexFactory
 _CONVERSION(`GstIndexFactory*',`Glib::RefPtr<Gst::IndexFactory>',`Glib::wrap($3)')
 
-#Iterator
+dnl Iterator
 _CONVERSION(`GstIterator*',`Gst::Iterator<Gst::Element>',`Gst::Iterator<Gst::Element>::Iterator($3)')
 _CONVERSION(`GstIterator*',`Gst::Iterator<const Gst::Element>',`Gst::Iterator<const Gst::Element>::Iterator($3)')
 _CONVERSION(`GstIterator*',`Gst::Iterator<Gst::Pad>',`Gst::Iterator<Gst::Pad>::Iterator($3)')
 _CONVERSION(`GstIterator*',`Gst::Iterator<const Gst::Pad>',`Gst::Iterator<const Gst::Pad>::Iterator($3)')
 _CONVERSION(`GstIterator*',`Gst::IteratorBasic<const Gst::QueryTypeDefinition>',`Gst::IteratorBasic<const Gst::QueryTypeDefinition>::IteratorBasic($3)')
 
-#Message
+dnl Message
 _CONVERSION(`GstMessage*',`Glib::RefPtr<Gst::Message>',`Gst::Message::wrap($3)')
 _CONVERSION(`GstMessage*',`Glib::RefPtr<const Gst::Message>',`Gst::Message::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Message>&',`GstMessage*', `$3->gobj()')
 
-#MiniObject
+dnl MiniObject
 _CONVERSION(`const Glib::RefPtr<Gst::MiniObject>&',`GstMiniObject*',`$3->gobj()')
 
-#Mixer
+dnl Mixer
 _CONVERSION(`const Glib::RefPtr<Gst::MixerOptions>&',`GstMixerOptions*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::MixerOptions>&',`GstMixerOptions*', `const_cast<$2>($3->gobj())')
 _CONVERSION(`const Glib::RefPtr<Gst::MixerTrack>&',`GstMixerTrack*', `$3->gobj()')
 
-#Gst::Object
+dnl Gst::Object
 _CONVERSION(`GstObject*',`Glib::RefPtr<Gst::Object>',`Glib::wrap($3)')
 _CONVERSION(`GstObject*',`Glib::RefPtr<const Gst::Object>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Object>&',`GstObject*',`$3->gobj()')
@@ -128,74 +130,74 @@ _CONVERSION(`Glib::RefPtr<Gst::Object>',`GstObject*',`$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::Object>&',`GstObject*',`const_cast<GstObject*>($3->gobj())')
 _CONVERSION(`const Glib::RefPtr<Object>&', `GstObject*', `$3->gobj()')
 
-#Pad
+dnl Pad
 _CONVERSION(`GstPad*',`Glib::RefPtr<Gst::Pad>',`Glib::wrap($3)')
 _CONVERSION(`GstPad*',`Glib::RefPtr<const Gst::Pad>',`Glib::wrap($3)')
 _CONVERSION(`Glib::RefPtr<Gst::Pad>',`GstPad*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<Gst::Pad>&',`GstPad*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::Pad>&',`GstPad*',`const_cast<GstPad*>($3->gobj())')
 
-#PadTemplate
+dnl PadTemplate
 _CONVERSION(`GstPadTemplate*',`Glib::RefPtr<Gst::PadTemplate>', `Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<const Gst::PadTemplate>&',`GstPadTemplate*',`const_cast<GstPadTemplate*>($3->gobj())')
 
-#Plugin
+dnl Plugin
 _CONVERSION(`const Glib::RefPtr<Gst::Plugin>&',`GstPlugin*',`$3->gobj()')
 _CONVERSION(`GstPlugin*',`Glib::RefPtr<Gst::Plugin>',`Glib::wrap($3)')
 
-#PluginFeature
+dnl PluginFeature
 _CONVERSION(`GstPluginFeature*',`Glib::RefPtr<Gst::PluginFeature>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::PluginFeature>&',`GstPluginFeature*',`$3->gobj()')
 
-#Query
+dnl Query
 _CONVERSION(`const Glib::RefPtr<Gst::Query>&',`GstQuery*', `Gst::unwrap($3)')
 
-#Registry
+dnl Registry
 _CONVERSION(`GstRegistry*',`Glib::RefPtr<Gst::Registry>', `Glib::wrap($3)')
 
-#RingBuffer
+dnl RingBuffer
 _CONVERSION(`GstRingBuffer*',`Glib::RefPtr<Gst::RingBuffer>',`Glib::wrap($3)')
 _CONVERSION(`Glib::RefPtr<Gst::RingBuffer>',`GstRingBuffer*',`Glib::unwrap($3)')
 
-#Structure
+dnl Structure
 _CONVERSION(`Gst::Structure&',`GstStructure*',`$3.gobj()')
 
-#TagList
+dnl TagList
 _CONVERSION(`const Gst::TagList&',`const GstTagList*',`$3.gobj()')
 _CONVERSION(`GstTagList*',`Gst::TagList',`Glib::wrap($3, 0)')
 _CONVERSION(`Gst::TagList&',`GstTagList*',`$3.gobj()')
 _CONVERSION(`Gst::TagList',`GstTagList*',`$3.gobj()')
 
-#TaskPool
+dnl TaskPool
 _CONVERSION(`const Glib::RefPtr<Gst::TaskPool>&',`GstTaskPool*', `Glib::unwrap($3)')
 _CONVERSION(`GstTaskPool*',`Glib::RefPtr<Gst::TaskPool>',`Glib::wrap($3)')
 _CONVERSION(`GstTaskPool*',`Glib::RefPtr<const Gst::TaskPool>',`Glib::wrap($3)')
 
-#TypeFind
+dnl TypeFind
 _CONVERSION(`Gst::TypeFind&',`GstTypeFind*',`$3.gobj()')
 
-############### gstreamermm Interface Conversions ######################
+dnl ############## gstreamermm Interface Conversions ######################
 
-#TunerChannel
+dnl TunerChannel
 _CONVERSION(`GstTunerChannel*',`Glib::RefPtr<Gst::TunerChannel>', `Glib::wrap($3)')
 _CONVERSION(`GstTunerChannel*',`Glib::RefPtr<const Gst::TunerChannel>', `Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::TunerChannel>&',`GstTunerChannel*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::TunerChannel>&',`GstTunerChannel*', `const_cast<GstTunerChannel*>($3->gobj())')
 _CONVERSION(`Glib::RefPtr<Gst::TunerChannel>', `GstTunerChannel*', `$3->gobj()')
 
-#TunerNorm
+dnl TunerNorm
 _CONVERSION(`GstTunerNorm*',`Glib::RefPtr<Gst::TunerNorm>', `Glib::wrap($3)')
 _CONVERSION(`GstTunerNorm*',`Glib::RefPtr<const Gst::TunerNorm>', `Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::TunerNorm>&',`GstTunerNorm*', `$3->gobj()')
 _CONVERSION(`const Glib::RefPtr<const Gst::TunerNorm>&',`GstTunerNorm*', `const_cast<GstTunerNorm*>($3->gobj())')
 _CONVERSION(`Glib::RefPtr<Gst::TunerNorm>', `GstTunerNorm*', `$3->gobj()')
 
-#URIHandler
+dnl URIHandler
 _CONVERSION(`const Glib::RefPtr<Gst::URIHandler>&',`GstURIHandler*',`$3->gobj()')
 
-###################General Conversions############################
+dnl ##################General Conversions############################
 
-#Basic General Conversions
+dnl Basic General Conversions
 _CONVERSION(`gint64&',`gint64*',`&$3')
 _CONVERSION(`guint64&',`guint64*',`&$3')
 _CONVERSION(`guint*',`guint&',`*$3')
@@ -203,7 +205,7 @@ _CONVERSION(`const guint&',`guint',`$3')
 _CONVERSION(`const guint32&',`guint32',`$3')
 _CONVERSION(`guint8*&',`guint8**',`&$3')
 
-#Basic Gstreamermm Conversions
+dnl Basic Gstreamermm Conversions
 _CONVERSION(`ClockTime&',`GstClockTime*',`(GstClockTime*)(&$3)')
 _CONVERSION(`ClockTimeDiff',`GstClockTimeDiff',`GstClockTimeDiff($3)')
 _CONVERSION(`GstClockTimeDiff',`ClockTimeDiff',`ClockTimeDiff($3)')
@@ -217,23 +219,23 @@ _CONVERSION(`GstTagFlag',`TagFlag',`(TagFlag)($3)')
 _CONVERSION(`guint64',`ClockTime',`(ClockTime)($3)')
 _CONVERSION(`const URIType',`const GstURIType',`(GstURIType)($3)')
 
-#C++ Conversions
+dnl C++ Conversions
 _CONVERSION(`const va_list&',`va_list',`const_cast<va_list&>($3)')
 
-#Glibmm Conversions
+dnl Glibmm Conversions
 _CONVERSION(`GQuark',`Glib::QueryQuark',`Glib::QueryQuark($3)')
 _CONVERSION(`const Glib::QueryQuark&',`GQuark',`$3')
 _CONVERSION(`Glib::StaticRecMutex&',`GStaticRecMutex*',`$3.gobj()')
 _CONVERSION(`const Glib::StringArrayHandle&',`const gchar**',`const_cast<const char**>($3.data())')
 _CONVERSION(`const Glib::ValueArray&',`GValueArray*',`const_cast<GValueArray*>($3.gobj())')
 
-#String Conversions
+dnl String Conversions
 _CONVERSION(`const std::string&',`const guchar*',`($2)($3.c_str())')
 _CONVERSION(`gchar*',`const Glib::ustring&',__GCHARP_TO_USTRING)
 _CONVERSION(`const gchar*',`const Glib::ustring&',__GCHARP_TO_USTRING)
 _CONVERSION(`Glib::ustring&',`const guchar*', ($2)($3.c_str()))
 
-#libxml++ Conversions
+dnl libxml++ Conversions
 _CONVERSION(`xmlpp::Node*',`xmlNodePtr',`$3->cobj()')
 _CONVERSION(`xmlpp::Node*',`GstXmlNodePtr',`$3->cobj()')
 _CONVERSION(`xmlpp::Document*',`xmlDocPtr',`$3->cobj()')
diff --git a/tools/m4/filelist.am b/tools/m4/filelist.am
new file mode 100644
index 0000000..5c26d14
--- /dev/null
+++ b/tools/m4/filelist.am
@@ -0,0 +1,6 @@
+## Copyright 2009 The gstreamermm Development Team.
+
+files_codegen_m4 = convert.m4 convert_gst.m4 class_gstminiobject.m4 \
+                   class_boxedtype_extra.m4 shared.m4
+
+files_plugin_m4 = plugingen_base.m4 plugingen.m4 plugingen_gstreamermm.m4
diff --git a/tools/m4/plugingen.m4 b/tools/m4/plugingen.m4
index 336671d..fcaaab1 100644
--- a/tools/m4/plugingen.m4
+++ b/tools/m4/plugingen.m4
@@ -1,4 +1,6 @@
-# Other gstreamermm libraries can provide their own ctocpp.m4 file for plug-in
-# generation, maybe also including the same files as this one.
+dnl Copyright 2008 The gstreamermm Development Team
+
+dnl Other gstreamermm libraries can provide their own plugingen.m4 file for
+dnl plug-in generation, maybe also including the same files as this one.
 
 include(plugingen_gstreamermm.m4)
diff --git a/tools/m4/plugingen_base.m4 b/tools/m4/plugingen_base.m4
index 984b32f..e62c013 100644
--- a/tools/m4/plugingen_base.m4
+++ b/tools/m4/plugingen_base.m4
@@ -1,3 +1,5 @@
+dnl Copyright 2008 The gstreamermm Development Team
+
 divert(-1)
 dnl
 dnl Macros to translate from C to C++ types.
diff --git a/tools/m4/plugingen_gstreamermm.m4 b/tools/m4/plugingen_gstreamermm.m4
index c815176..0f5a1d7 100644
--- a/tools/m4/plugingen_gstreamermm.m4
+++ b/tools/m4/plugingen_gstreamermm.m4
@@ -1,21 +1,23 @@
-# Translations from C to C++ types for plug-in generation.  See the
-# plugingen_base.m4 file for documentation.
+dnl Copyright 2008 The gstreamermm Development Team
 
-#Enums
+dnl Translations from C to C++ types for plug-in generation.  See the
+dnl plugingen_base.m4 file for documentation.
+
+dnl Enums
 _TRANSLATION(`GstFlowReturn',`Gst::FlowReturn',`Gst::FlowReturn',,`<gstreamermm/pad.h>')
 _TRANSLATION(`GstFormat',`Gst::Format',`Gst::Format',,`<gstreamermm/format.h>')
 _TRANSLATION(`GstTCPProtocol',`Gst::TCPProtocol',`Gst::TCPProtocol',,`<gstreamermm/enums.h>')
 _TRANSLATION(`GstAutoplugSelectResult',`Gst::AutoplugSelectResult',`Gst::AutoplugSelectResult',,`<gstreamermm/enums.h>')
 
-#giomm
+dnl giomm
 _TRANSLATION(`GFile*',`Gio::File',`const Glib::RefPtr<Gio::File>&',`Glib::RefPtr<Gio::File>',`<giomm/file.h>')
 _TRANSLATION(`GInputStream*',`Gio::InputStream',`const Glib::RefPtr<Gio::InputStream>&',`Glib::RefPtr<Gio::InputStream>',`<giomm/inputstream.h>')
 _TRANSLATION(`GOutputStream*',`Gio::OutputStream',`const Glib::RefPtr<Gio::OutputStream>&',`Glib::RefPtr<Gio::OutputStream>',`<giomm/outputstream.h>')
 
-#glibmm
+dnl glibmm
 _TRANSLATION(`GValueArray*',`Glib::ValueArray',`const Glib::ValueArray&',`Glib::ValueArray',`<glibmm/valuearray.h>')
 
-#gstreamermm
+dnl gstreamermm
 _TRANSLATION(`GstBuffer*',`Gst::Buffer',`const Glib::RefPtr<Gst::Buffer>&',`Glib::RefPtr<Gst::Buffer>',`<gstreamermm/buffer.h>')
 _TRANSLATION(`GstCaps*',`Gst::Caps',`const Glib::RefPtr<Gst::Caps>&',`Glib::RefPtr<Gst::Caps>',`<gstreamermm/caps.h>')
 _TRANSLATION(`GstElement*',`Gst::Element',`const Glib::RefPtr<Gst::Element>&',`Glib::RefPtr<Gst::Element>',`<gstreamermm/element.h>')
@@ -23,7 +25,7 @@ _TRANSLATION(`GstElementFactory*',`Gst::ElementFactory',`const Glib::RefPtr<Gst:
 _TRANSLATION(`GstPad*',`Gst::Pad',`const Glib::RefPtr<Gst::Pad>&',`Glib::RefPtr<Gst::Pad>',`<gstreamermm/pad.h>')
 _TRANSLATION(`GstTagList*',`Gst::TagList',`const Gst::TagList&',`Gst::TagList',`<gstreamermm/taglist.h>')
 
-#Interfaces
+dnl Interfaces
 _TRANSLATION(`GstColorBalance*',`Gst::ColorBalance',`const Glib::RefPtr<Gst::ColorBalance>&',`Glib::RefPtr<Gst::ColorBalance>',`<gstreamermm/colorbalance.h>')
 _TRANSLATION(`GstImplementsInterface*',`Gst::Interface',`const Glib::RefPtr<Gst::Interface>&',`Glib::RefPtr<Gst::Interface>',`<gstreamermm/interface.h>')
 _TRANSLATION(`GstMixer*',`Gst::Mixer',`const Glib::RefPtr<Gst::Mixer>&',`Glib::RefPtr<Gst::Mixer>',`<gstreamermm/mixer.h>')
@@ -34,9 +36,9 @@ _TRANSLATION(`GstTagSetter*',`Gst::TagSetter',`const Glib::RefPtr<Gst::TagSetter
 _TRANSLATION(`GstURIHandler*',`Gst::URIHandler',`const Glib::RefPtr<Gst::URIHandler>&',`Glib::RefPtr<Gst::URIHandler>',`<gstreamermm/urihandler.h>')
 _TRANSLATION(`GstXOverlay*',`Gst::XOverlay',`const Glib::RefPtr<Gst::XOverlay>&',`Glib::RefPtr<Gst::XOverlay>',`<gstreamermm/xoverlay.h>')
 
-#Wrapped enums:
-#One should be included for each enum wrapped outside of plug-ins so that the
-#generator does not try to generate a _WRAP_ENUM() for it.
+dnl Wrapped enums:
+dnl One should be included for each enum wrapped outside of plug-ins so that
+dnl the generator does not try to generate a _WRAP_ENUM() for it.
 _ENUM_IS_WRAPPED(GstActivateMode)
 _ENUM_IS_WRAPPED(GstAssocFlags)
 _ENUM_IS_WRAPPED(GstAutoplugSelectResult)
diff --git a/tools/m4/shared.m4 b/tools/m4/shared.m4
index 32427b1..3e80e7f 100644
--- a/tools/m4/shared.m4
+++ b/tools/m4/shared.m4
@@ -1,6 +1,9 @@
+dnl Copyright 2008 The gstreamermm Development Team
 
 dnl _IS_GSTREAMERMM_PLUGIN
-dnl Just process it to remove it from the generated file.
-dnl generate_wrap_init.pl will look for this in the original .hg file.
+dnl
+dnl Signals that a generated class is a plug-in.  The macro is just processed
+dnl to remove it from the generated file.  generate_wrap_init.pl will look for
+dnl this in the original .hg file.
 dnl
 define(`_IS_GSTREAMERMM_PLUGIN',`')dnl



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]