[libnotifymm] Use mm-common.



commit 7344542d24644c7d8e6a78ae66ca46126843e559
Author: Kjell Ahlstedt <kjell ahlstedt bredband net>
Date:   Sun Jan 13 11:10:21 2013 +0100

    Use mm-common.
    
    Many new and modified files have been copied from mm-common/skeletonmm.
    The changes in C++ source code are necessary for building with
    ./configure --enable-warnings=fatal.
    
    * autogen.sh:
    * configure.ac: Modify.
    * */Makefile.am: Modify, unless listed as delete.
    * */Makefile*.am_fragment: Delete.
    * docs/reference/Doxyfile.in: Change some configuration options and update
    for doxygen 1.8.2.
    * docs/reference/Makefile.am:
    * docs/reference/glibmm_doxygen_tags:
    * docs/reference/*.html_fragment:
    * examples/*/Makefile.am: Delete.
    * examples/action/main.cc: Replace the deprecated Gtk::Main by
    Gtk::Application.
    * examples/basic/main.cc:
    * examples/icon/main.cc:
    * examples/server-info/main.cc:
    * examples/update/main.cc: Replace "main(int argc, char** argv)" by
    "main(int, char**)".
    * libnotify/Makefile.am: Delete.
    * libnotify/libnotifymm-1.0.pc.in: Replace by libnotifymm.pc.in.
    * libnotify/libnotifymm-uninstalled.pc.in: New file.
    * libnotify/libnotifymmconfig.h.in: Modify.
    * libnotify/libnotifymm/private/Makefile.am: Delete.
    * libnotify/libnotifymm/filelist.am:
    * libnotify/src/filelist.am: New files.
    * libnotify/src/notification.ccg: Remove an unused argument name.
    * libnotify/src/notification.hg:  Add #undef LIBNOTIFY_DISABLE_DEPRECATED.
    * libnotify/stamp-h.in: Delete.
    * scripts/*: Delete the whole directory.
    * tools/generate_defs_and_docs.sh: New file.
    * tools/extra_defs_gen/Makefile.am:
    * tools/m4/Makefile.am: Delete.
    * tools/m4/filelist.am: New file.

 ChangeLog                                      |   41 +
 Makefile.am                                    |   59 +-
 autogen.sh                                     |   64 +-
 build_shared/Makefile_build.am_fragment        |   42 -
 build_shared/Makefile_build_gensrc.am_fragment |   26 -
 build_shared/Makefile_gensrc.am_fragment       |   67 -
 configure.ac                                   |  222 +-
 docs/Makefile.am                               |   36 +-
 docs/reference/Doxyfile.in                     |  208 +-
 docs/reference/Makefile.am                     |   70 -
 docs/reference/footer.html_fragment            |    5 -
 docs/reference/glibmm_doxygen_tags             |17614 ------------------------
 docs/reference/header.html_fragment            |   18 -
 examples/Makefile.am                           |   49 +-
 examples/Makefile.am_fragment                  |   11 -
 examples/action/Makefile.am                    |   10 -
 examples/action/main.cc                        |   17 +-
 examples/basic/Makefile.am                     |    8 -
 examples/basic/main.cc                         |   33 +-
 examples/icon/Makefile.am                      |    8 -
 examples/icon/main.cc                          |   25 +-
 examples/server-info/Makefile.am               |    8 -
 examples/server-info/main.cc                   |    8 +-
 examples/status-icon/Makefile.am               |    8 -
 examples/update/Makefile.am                    |    8 -
 examples/update/main.cc                        |    4 +-
 examples/widget/Makefile.am                    |   10 -
 libnotify/Makefile.am                          |   15 -
 libnotify/libnotifymm-1.0.pc.in                |   11 -
 libnotify/libnotifymm-uninstalled.pc.in        |    9 +
 libnotify/libnotifymm.pc.in                    |   13 +
 libnotify/libnotifymm/Makefile.am              |   44 +-
 libnotify/libnotifymm/filelist.am              |    8 +
 libnotify/libnotifymm/private/Makefile.am      |   12 -
 libnotify/libnotifymmconfig.h.in               |   16 +-
 libnotify/src/Makefile.am                      |   32 +-
 libnotify/src/Makefile_list_of_hg.am_fragment  |    5 -
 libnotify/src/filelist.am                      |   12 +
 libnotify/src/notification.ccg                 |    3 +-
 libnotify/src/notification.hg                  |    4 +
 libnotify/stamp-h.in                           |    1 -
 scripts/Makefile.am                            |    3 -
 scripts/macros.m4                              |   65 -
 tools/Makefile.am                              |   35 +-
 tools/Makefile_list_of_sources.am_fragment     |    4 -
 tools/extra_defs_gen/Makefile.am               |    8 -
 tools/generate_defs_and_docs.sh                |   39 +
 tools/m4/Makefile.am                           |    9 -
 tools/m4/Makefile_list_of_sources.am_fragment  |    1 -
 tools/m4/filelist.am                           |    3 +
 50 files changed, 579 insertions(+), 18452 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index afd9337..aeca13f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+2013-01-13  Kjell Ahlstedt  <kjell ahlstedt bredband net>
+
+	Use mm-common.
+
+	Many new and modified files have been copied from mm-common/skeletonmm.
+	The changes in C++ source code are necessary for building with
+	./configure --enable-warnings=fatal.
+
+	* autogen.sh:
+	* configure.ac: Modify.
+	* */Makefile.am: Modify, unless listed as delete.
+	* */Makefile*.am_fragment: Delete.
+	* docs/reference/Doxyfile.in: Change some configuration options and update
+	for doxygen 1.8.2.
+	* docs/reference/Makefile.am:
+	* docs/reference/glibmm_doxygen_tags:
+	* docs/reference/*.html_fragment:
+	* examples/*/Makefile.am: Delete.
+	* examples/action/main.cc: Replace the deprecated Gtk::Main by
+	Gtk::Application.
+	* examples/basic/main.cc:
+	* examples/icon/main.cc:
+	* examples/server-info/main.cc:
+	* examples/update/main.cc: Replace "main(int argc, char** argv)" by
+	"main(int, char**)".
+	* libnotify/Makefile.am: Delete.
+	* libnotify/libnotifymm-1.0.pc.in: Replace by libnotifymm.pc.in.
+	* libnotify/libnotifymm-uninstalled.pc.in: New file.
+	* libnotify/libnotifymmconfig.h.in: Modify.
+	* libnotify/libnotifymm/private/Makefile.am: Delete.
+	* libnotify/libnotifymm/filelist.am:
+	* libnotify/src/filelist.am: New files.
+	* libnotify/src/notification.ccg: Remove an unused argument name.
+	* libnotify/src/notification.hg:  Add #undef LIBNOTIFY_DISABLE_DEPRECATED.
+	* libnotify/stamp-h.in: Delete.
+	* scripts/*: Delete the whole directory.
+	* tools/generate_defs_and_docs.sh: New file.
+	* tools/extra_defs_gen/Makefile.am:
+	* tools/m4/Makefile.am: Delete.
+	* tools/m4/filelist.am: New file.
+
 2013-01-10  Kjell Ahlstedt  <kjell ahlstedt bredband net>
 
 	Update for libnotify 0.7.5, first part.
diff --git a/Makefile.am b/Makefile.am
index 69c3b0c..1a186e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,24 +1,45 @@
-SUBDIRS		= tools libnotify docs examples
-DIST_SUBDIRS	= $(SUBDIRS) scripts
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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/>.
 
-EXTRA_DIST	=  \
-		  build_shared/Makefile_build.am_fragment \
-		  build_shared/Makefile_build_gensrc.am_fragment \
-		  build_shared/Makefile_gensrc.am_fragment
+ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
 
+if MAINTAINER_MODE
+src_subdirs = tools libnotify/src
+else
+src_subdirs =
+endif
+if ENABLE_DOCUMENTATION
+doc_subdirs = docs
+else
+doc_subdirs =
+endif
+SUBDIRS = $(src_subdirs) libnotify/libnotifymm examples $(doc_subdirs)
 
-all-local:
-	@echo "*** Everything completed ***"
+libnotifymm_includedir = $(includedir)/$(LIBNOTIFYMM_MODULE_NAME)
+libnotifymm_include_HEADERS = libnotify/libnotifymm.h
 
-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
+libnotifymm_libincludedir = $(libdir)/$(LIBNOTIFYMM_MODULE_NAME)/include
+nodist_libnotifymm_libinclude_HEADERS = libnotify/libnotifymmconfig.h
 
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libnotify/$(LIBNOTIFYMM_MODULE_NAME).pc
+
+dist_noinst_SCRIPTS = autogen.sh
+
+# Optional: auto-generate the ChangeLog file from the git log on make dist
+#include $(top_srcdir)/build/dist-changelog.am
diff --git a/autogen.sh b/autogen.sh
index e248865..6686611 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 cvs!; 
-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="libnotifymm"
-
-(test -f $srcdir/configure.ac \
-  && test -d $srcdir/libnotify/src \
-  && test -d $srcdir/libnotify/libnotifymm) || {
-    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 --copy --force "$srcdir"
+autoreconf --force --install --verbose "$srcdir"
+test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@"
diff --git a/configure.ac b/configure.ac
index 28c6e23..8b5d629 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,164 +1,78 @@
-# 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.
-#
-#
-#  Copyright 2001 Free Software Foundation
-#  Copyright 1999 gtkmm Development Team
-#  Copyright 1998 Stephan Kulow 
-#
-AC_INIT(libnotify/libnotifymmconfig.h.in)
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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([libnotifymm], [0.7.0], [https://bugzilla.gnome.org/enter_bug.cgi?product=gtkmm],
+        [libnotifymm], [http://www.gtkmm.org/])
+AC_PREREQ([2.59])
+
+AC_CONFIG_SRCDIR([libnotify/libnotifymm.h])
+AC_CONFIG_AUX_DIR([build])
+AC_CONFIG_MACRO_DIR([build])
+AC_CONFIG_HEADERS([build/config.h libnotify/libnotifymmconfig.h])
+
+AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news dist-bzip2 no-define nostdinc tar-pax])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
+AM_MAINTAINER_MODE
+AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
+
+MM_PREREQ([0.9.6])
+MM_INIT_MODULE([libnotifymm-1.0])
 
-#########################################################################
-#  Version and initialization
-#########################################################################
-LIBNOTIFYMM_MAJOR_VERSION=0
-LIBNOTIFYMM_MINOR_VERSION=7
-LIBNOTIFYMM_MICRO_VERSION=0
+# Copy the mm-common .pl scripts into docs/, and use them from there,
+# so we can dist them to avoid a tarball-build dependency.
+MM_CONFIG_DOCTOOL_DIR([docs])
 
-#
+# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
 # +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
+#  ? :+1 : ?   == just some internal changes, nothing breaks but might work better
 # CURRENT : REVISION : AGE
-LIBNOTIFYMM_SO_VERSION=8:0:1
-
-LIBNOTIFYMM_VERSION=$LIBNOTIFYMM_MAJOR_VERSION.$LIBNOTIFYMM_MINOR_VERSION.$LIBNOTIFYMM_MICRO_VERSION
-LIBNOTIFYMM_RELEASE=$LIBNOTIFYMM_MAJOR_VERSION.$LIBNOTIFYMM_MINOR_VERSION
-AC_DEFINE_UNQUOTED(LIBNOTIFYMM_MAJOR_VERSION, $LIBNOTIFYMM_MAJOR_VERSION, [libnotifymm major version])
-AC_DEFINE_UNQUOTED(LIBNOTIFYMM_MINOR_VERSION, $LIBNOTIFYMM_MINOR_VERSION, [libnotifymm minor version])
-AC_DEFINE_UNQUOTED(LIBNOTIFYMM_MICRO_VERSION, $LIBNOTIFYMM_MICRO_VERSION, [libnotifymm micro version])
-AC_DEFINE_UNQUOTED(LIBNOTIFYMM_VERSION, "$LIBNOTIFYMM_VERSION", [libnotifymm version])
-AC_SUBST(LIBNOTIFYMM_VERSION)
-AC_SUBST(LIBNOTIFYMM_RELEASE)
-AC_SUBST(LIBNOTIFYMM_SO_VERSION)
-
-AC_CONFIG_AUX_DIR(scripts)
-
-dnl For automake.
-VERSION=$LIBNOTIFYMM_VERSION
-PACKAGE=libnotifymm
-
-dnl Initialize automake stuff
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
-
-dnl Specify a configuration file (no autoheader)
-AM_CONFIG_HEADER(libnotify/libnotifymmconfig.h)
-AM_MAINTAINER_MODE
-AL_ACLOCAL_INCLUDE(scripts)
+AC_SUBST([LIBNOTIFYMM_SO_VERSION], [8:0:1])
 
-
-#########################################################################
-#  Configure arguments 
-#########################################################################
-
-#########################################################################
-#  Environment Checks
-#########################################################################
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_MAKE_SET
-AC_CANONICAL_HOST
+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 gtkmm. 
-Please install GNU m4.]))
-
-AL_PROG_GNU_MAKE(AC_MSG_ERROR([dnl
-SUN make does not work for building gtkmm.
-Please install GNU make.]))
-
-AL_PROG_PERL(AC_MSG_ERROR([Perl is required to build gtkmm.]))
-
-AC_CHECK_PROGS(PERL, perl5 perl)
-
-#########################################################################
-#  Dependancy checks
-#########################################################################
-PKG_CHECK_MODULES(LIBNOTIFYMM, glibmm-2.4 >= 2.28.0 gtkmm-3.0 >= 3.4.1 libnotify >= 0.7.5)
-AC_SUBST(LIBNOTIFYMM_CFLAGS)
-AC_SUBST(LIBNOTIFYMM_LIBS)
-
-GLIBMM_LIBDIR=`pkg-config --variable=libdir glibmm-2.4`
-GMM_PROCDIR=$GLIBMM_LIBDIR/glibmm-2.4/proc
-AC_SUBST([GMM_PROCDIR])
-GMM_PROC=$GMM_PROCDIR/gmmproc
-AC_SUBST([GMM_PROC])
-
-#########################################################################
-#  C++ checks
-#########################################################################
-AC_PROG_CXX
-AC_LANG_CPLUSPLUS
-
-
-# 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.
-LIBNOTIFYMM_DOXYGEN_INPUT=''
-gtkmm_srcdir=`cd "$srcdir" && pwd`
-gtkmm_builddir=`pwd`
-for sublib in libnotify
-do
-  LIBNOTIFYMM_DOXYGEN_INPUT="$LIBNOTIFYMM_DOXYGEN_INPUT $gtkmm_builddir/$sublib/$sublib""mm/"
-  test "x$gtkmm_builddir" = "x$gtkmm_srcdir" || \
-    LIBNOTIFYMM_DOXYGEN_INPUT="$LIBNOTIFYMM_DOXYGEN_INPUT $gtkmm_srcdir/$sublib/$sublib""mm/"
-done
-AC_SUBST(LIBNOTIFYMM_DOXYGEN_INPUT)
-
-# Add an --enable-reference option:
-AC_ARG_ENABLE(reference,
-     [  --enable-reference   Build the reference documentation],
-     [case "${enableval}" in
-       yes) reference=true ;;
-       no)  reference=false ;;
-       *) AC_MSG_ERROR(bad value ${enableval} for --enable-reference) ;;
-     esac],[reference=false])
-AM_CONDITIONAL(BUILD_REFERENCE, test x$reference = xtrue)
-
-
-# Dummy conditional just to make automake-1.4 happy.
-# We need an always-false condition in docs/Makefile.am.
-AM_CONDITIONAL(LIBNOTIFYMM_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_OUTPUT([
-  Makefile
-
-  libnotify/Makefile
-  libnotify/libnotifymm-1.0.pc
-  libnotify/src/Makefile
-  libnotify/libnotifymm/Makefile
-  libnotify/libnotifymm/private/Makefile
-  
-  tools/Makefile
-    tools/extra_defs_gen/Makefile
-    tools/m4/Makefile
-
-  scripts/Makefile
-
-  docs/Makefile
-  docs/reference/Makefile
-    docs/reference/Doxyfile
-  examples/Makefile
-    examples/action/Makefile
-    examples/basic/Makefile
-    examples/icon/Makefile
-    examples/server-info/Makefile
-    examples/status-icon/Makefile
-    examples/update/Makefile
-    examples/widget/Makefile
-    
-])
-
+AC_SUBST([LIBNOTIFYMM_MODULES], ['glibmm-2.4 >= 2.28.0 gtkmm-3.0 >= 3.4.1 libnotify >= 0.7.5'])
+PKG_CHECK_MODULES([LIBNOTIFYMM], [$LIBNOTIFYMM_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([LIBNOTIFYMM_WXXFLAGS],
+                       [-Wall],
+                       [-pedantic -Wall -Wextra -Wno-long-long],
+                       [G LIBNOTIFY GLIBMM GIOMM GDKMM GTKMM])
+
+AC_CONFIG_FILES([Makefile
+                 tools/Makefile
+                 libnotify/${LIBNOTIFYMM_MODULE_NAME}.pc:libnotify/libnotifymm.pc.in
+                 libnotify/${LIBNOTIFYMM_MODULE_NAME}-uninstalled.pc:libnotify/libnotifymm-uninstalled.pc.in
+                 libnotify/src/Makefile
+                 libnotify/libnotifymm/Makefile
+                 examples/Makefile
+                 docs/Makefile
+                 docs/reference/Doxyfile])
+AC_OUTPUT
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 5ab138a..086d925 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,9 +1,27 @@
-## Copyright (c) 2001
-## The libnotifymm development team.
-
-## This voodoo stuff lets automake see the subdirs
-## without including them into recursive builds.
-if BUILD_REFERENCE 
-SUBDIRS = reference
-endif
-DIST_SUBDIRS = reference
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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)/libnotify/src/filelist.am
+include $(top_srcdir)/libnotify/libnotifymm/filelist.am
+
+libnotifymm_files_h = $(files_built_h) $(filter-out wrap_init.h,$(files_extra_h))
+
+book_name = $(LIBNOTIFYMM_MODULE_NAME)
+doc_input = $(top_srcdir)/libnotify/libnotifymm.h	$(addprefix\
+            $(top_srcdir)/libnotify/libnotifymm/,$(libnotifymm_files_h))
+
+include $(top_srcdir)/build/doc-reference.am
diff --git a/docs/reference/Doxyfile.in b/docs/reference/Doxyfile.in
index d1c3033..297b26f 100644
--- a/docs/reference/Doxyfile.in
+++ b/docs/reference/Doxyfile.in
@@ -1,41 +1,63 @@
-# Doxyfile 1.4.0
+# Doxyfile 1.8.2
+# @configure_input@
 
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
-PROJECT_NAME           = libnotifymm
-PROJECT_NUMBER         = @LIBNOTIFYMM_VERSION@
-OUTPUT_DIRECTORY       = 
+DOXYFILE_ENCODING      = UTF-8
+PROJECT_NAME           = @PACKAGE_NAME@
+PROJECT_NUMBER         = @PACKAGE_VERSION@
+PROJECT_BRIEF          =
+PROJECT_LOGO           =
+OUTPUT_DIRECTORY       = reference
 CREATE_SUBDIRS         = NO
 OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = NO
 BRIEF_MEMBER_DESC      = YES
 REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
+ABBREVIATE_BRIEF       =
 ALWAYS_DETAILED_SEC    = NO
 INLINE_INHERITED_MEMB  = NO
 FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
+STRIP_FROM_PATH        =
+STRIP_FROM_INC_PATH    =
 SHORT_NAMES            = NO
 JAVADOC_AUTOBRIEF      = YES
+QT_AUTOBRIEF           = NO
 MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
 INHERIT_DOCS           = YES
-DISTRIBUTE_GROUP_DOC   = NO
+SEPARATE_MEMBER_PAGES  = NO
 TAB_SIZE               = 8
-ALIASES                = 
+ALIASES                = "newin{2}=\xrefitem since_\1_\2 \"Since @PACKAGE_NAME@ \1.\2\" \"New API in @PACKAGE_NAME@ \1.\2\"" \
+                         "newin{3}=\xrefitem since_\1_\2_\3 \"Since @PACKAGE_NAME@ \1.\2.\3\" \"New API in @PACKAGE_NAME@ \1.\2.\3\""
+TCL_SUBST              =
 OPTIMIZE_OUTPUT_FOR_C  = NO
 OPTIMIZE_OUTPUT_JAVA   = NO
+OPTIMIZE_FOR_FORTRAN   = NO
+OPTIMIZE_OUTPUT_VHDL   = NO
+EXTENSION_MAPPING      =
+MARKDOWN_SUPPORT       = YES
+AUTOLINK_SUPPORT       = YES
+BUILTIN_STL_SUPPORT    = NO
+CPP_CLI_SUPPORT        = NO
+SIP_SUPPORT            = NO
+IDL_PROPERTY_SUPPORT   = YES
+DISTRIBUTE_GROUP_DOC   = NO
 SUBGROUPING            = YES
+INLINE_GROUPED_CLASSES = NO
+INLINE_SIMPLE_STRUCTS  = NO
+TYPEDEF_HIDES_STRUCT   = NO
+SYMBOL_CACHE_SIZE      = 0
+LOOKUP_CACHE_SIZE      = 0
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
 EXTRACT_ALL            = YES
 EXTRACT_PRIVATE        = NO
+EXTRACT_PACKAGE        = NO
 EXTRACT_STATIC         = YES
 EXTRACT_LOCAL_CLASSES  = YES
 EXTRACT_LOCAL_METHODS  = NO
+EXTRACT_ANON_NSPACES   = NO
 HIDE_UNDOC_MEMBERS     = NO
 HIDE_UNDOC_CLASSES     = NO
 HIDE_FRIEND_COMPOUNDS  = NO
@@ -44,19 +66,26 @@ INTERNAL_DOCS          = NO
 CASE_SENSE_NAMES       = YES
 HIDE_SCOPE_NAMES       = NO
 SHOW_INCLUDE_FILES     = NO
+FORCE_LOCAL_INCLUDES   = NO
 INLINE_INFO            = YES
 SORT_MEMBER_DOCS       = YES
 SORT_BRIEF_DOCS        = YES
+SORT_MEMBERS_CTORS_1ST = NO
+SORT_GROUP_NAMES       = NO
 SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
+STRICT_PROTO_MATCHING  = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
 GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 MAX_INITIALIZER_LINES  = 30
 SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = YES
-FILE_VERSION_FILTER    = 
+SHOW_FILES             = YES
+SHOW_NAMESPACES        = YES
+FILE_VERSION_FILTER    =
+LAYOUT_FILE            =
+CITE_BIB_FILES         =
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
@@ -66,24 +95,27 @@ WARN_IF_UNDOCUMENTED   = YES
 WARN_IF_DOC_ERROR      = YES
 WARN_NO_PARAMDOC       = NO
 WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
+WARN_LOGFILE           = reference/doxygen.log
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = @LIBNOTIFYMM_DOXYGEN_INPUT@
-FILE_PATTERNS          = *.h
+INPUT                  =
+INPUT_ENCODING         = UTF-8
+FILE_PATTERNS          =
 RECURSIVE              = NO
-EXCLUDE                = 
+EXCLUDE                =
 EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = */wrap_init.h
-EXAMPLE_PATH           = @top_srcdir@/examples
+EXCLUDE_PATTERNS       =
+EXCLUDE_SYMBOLS        =
+EXAMPLE_PATH           = "@abs_top_srcdir@/examples"
 EXAMPLE_PATTERNS       = *.h \
                          *.cc
 EXAMPLE_RECURSIVE      = YES
-IMAGE_PATH             = $(DOXYGEN_IMAGE_PATH)
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
+IMAGE_PATH             =
+INPUT_FILTER           =
+FILTER_PATTERNS        =
 FILTER_SOURCE_FILES    = NO
+FILTER_SOURCE_PATTERNS =
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
 #---------------------------------------------------------------------------
@@ -92,33 +124,66 @@ INLINE_SOURCES         = NO
 STRIP_CODE_COMMENTS    = NO
 REFERENCED_BY_RELATION = YES
 REFERENCES_RELATION    = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS              = NO
 VERBATIM_HEADERS       = NO
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
 ALPHABETICAL_INDEX     = YES
 COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
 GENERATE_HTML          = YES
 HTML_OUTPUT            = html
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = header.html_fragment
-HTML_FOOTER            = footer.html_fragment
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
+HTML_HEADER            =
+HTML_FOOTER            =
+HTML_STYLESHEET        = "$(MMDOCTOOLDIR)/doxygen.css"
+HTML_EXTRA_STYLESHEET  =
+HTML_EXTRA_FILES       =
+HTML_COLORSTYLE_HUE    = 220
+HTML_COLORSTYLE_SAT    = 100
+HTML_COLORSTYLE_GAMMA  = 80
+HTML_TIMESTAMP         = YES
+HTML_DYNAMIC_SECTIONS  = NO
+HTML_INDEX_NUM_ENTRIES = 100
+GENERATE_DOCSET        = NO
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+DOCSET_PUBLISHER_NAME  = Publisher
 GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
+CHM_FILE               =
+HHC_LOCATION           =
 GENERATE_CHI           = NO
+CHM_INDEX_ENCODING     =
 BINARY_TOC             = NO
 TOC_EXPAND             = NO
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 1
+GENERATE_QHP           = NO
+QCH_FILE               =
+QHP_NAMESPACE          = org.doxygen.Project
+QHP_VIRTUAL_FOLDER     = doc
+QHP_CUST_FILTER_NAME   =
+QHP_CUST_FILTER_ATTRS  =
+QHP_SECT_FILTER_ATTRS  =
+QHG_LOCATION           =
+GENERATE_ECLIPSEHELP   = NO
+ECLIPSE_DOC_ID         = org.doxygen.Project
+DISABLE_INDEX          = NO
 GENERATE_TREEVIEW      = NO
+ENUM_VALUES_PER_LINE   = 1
 TREEVIEW_WIDTH         = 250
+EXT_LINKS_IN_WINDOW    = NO
+FORMULA_FONTSIZE       = 10
+FORMULA_TRANSPARENT    = YES
+USE_MATHJAX            = NO
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+MATHJAX_EXTENSIONS     =
+SEARCHENGINE           = NO
+SERVER_BASED_SEARCH    = NO
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
@@ -128,12 +193,15 @@ LATEX_CMD_NAME         = latex
 MAKEINDEX_CMD_NAME     = makeindex
 COMPACT_LATEX          = NO
 PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
+EXTRA_PACKAGES         =
+LATEX_HEADER           =
+LATEX_FOOTER           =
+PDF_HYPERLINKS         = YES
+USE_PDFLATEX           = YES
 LATEX_BATCHMODE        = NO
 LATEX_HIDE_INDICES     = NO
+LATEX_SOURCE_CODE      = NO
+LATEX_BIB_STYLE        = plain
 #---------------------------------------------------------------------------
 # configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -141,8 +209,8 @@ GENERATE_RTF           = NO
 RTF_OUTPUT             = rtf
 COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
+RTF_STYLESHEET_FILE    =
+RTF_EXTENSIONS_FILE    =
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -153,11 +221,11 @@ MAN_LINKS              = NO
 #---------------------------------------------------------------------------
 # configuration options related to the XML output
 #---------------------------------------------------------------------------
-GENERATE_XML           = YES
+GENERATE_XML           = NO
 XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
+XML_SCHEMA             =
+XML_DTD                =
+XML_PROGRAMLISTING     = NO
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
@@ -168,17 +236,19 @@ GENERATE_AUTOGEN_DEF   = NO
 GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 ENABLE_PREPROCESSING   = YES
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
-SEARCH_INCLUDES        = NO
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS \
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = "@abs_top_builddir@/libnotify" \
+                         "@abs_top_srcdir@/libnotify"
+INCLUDE_FILE_PATTERNS  = *.h
+PREDEFINED             = __cplusplus \
+                         DOXYGEN_SHOULD_SKIP_THIS \
                          GTKMM_USING_STD(x)= \
                          GTKMM_API \
                          GTKMM_ATKMM_ENABLED \
@@ -186,43 +256,49 @@ PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS \
                          GLIBMM_PROPERTIES_ENABLED \
                          GLIBMM_EXCEPTIONS_ENABLED \
                          GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
-EXPAND_AS_DEFINED      = 
+EXPAND_AS_DEFINED      = LIBNOTIFYMM_MAJOR_VERSION \
+                         LIBNOTIFYMM_MINOR_VERSION \
+                         LIBNOTIFYMM_MICRO_VERSION
 SKIP_FUNCTION_MACROS   = YES
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration::additions related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = ../../../glibmm/docs/reference/glibmm_doxygen_tags
-GENERATE_TAGFILE       = libnotifymm_doxygen_tags
+TAGFILES               = @DOXYGEN_TAGFILES@
+GENERATE_TAGFILE       = "reference/@LIBNOTIFYMM_MODULE_NAME  tag"
 ALLEXTERNALS           = NO
 EXTERNAL_GROUPS        = YES
-PERL_PATH              = @PERL_PATH@
+PERL_PATH              = @PERL@
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 CLASS_DIAGRAMS         = YES
+MSCGEN_PATH            =
 HIDE_UNDOC_RELATIONS   = NO
 HAVE_DOT               = YES
+DOT_NUM_THREADS        = 0
+DOT_FONTNAME           = Sans
+DOT_FONTSIZE           = 10
+DOT_FONTPATH           =
 CLASS_GRAPH            = YES
 COLLABORATION_GRAPH    = NO
 GROUP_GRAPHS           = YES
 UML_LOOK               = NO
+UML_LIMIT_NUM_FIELDS   = 10
 TEMPLATE_RELATIONS     = NO
 INCLUDE_GRAPH          = NO
 INCLUDED_BY_GRAPH      = NO
 CALL_GRAPH             = NO
+CALLER_GRAPH           = NO
 GRAPHICAL_HIERARCHY    = YES
 DIRECTORY_GRAPH        = YES
 DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
+INTERACTIVE_SVG        = NO
+DOT_PATH               =
+DOTFILE_DIRS           =
+MSCFILE_DIRS           =
+DOT_GRAPH_MAX_NODES    = 50
 MAX_DOT_GRAPH_DEPTH    = 0
 DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
+DOT_MULTI_TARGETS      = YES
 GENERATE_LEGEND        = YES
 DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 0e777f6..2e4e5a1 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,5 +1,50 @@
-SUBDIRS =  basic icon update server-info action
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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/>.
 
-EXTRA_DIST	=  Makefile.am_fragment
+AUTOMAKE_OPTIONS = subdir-objects
 
+check_PROGRAMS = \
+  action/example \
+  basic/example \
+  icon/example \
+  server-info/example \
+  update/example
+
+local_includes = -I$(top_builddir)/libnotify $(if $(srcdir:.=),-I$(top_srcdir)/libnotify)
+local_libs = $(top_builddir)/libnotify/libnotifymm/libnotifymm-$(LIBNOTIFYMM_API_VERSION).la
+
+AM_CPPFLAGS = -I$(top_builddir) $(local_includes) $(GTHREAD_CFLAGS) $(LIBNOTIFYMM_CFLAGS)
+AM_CXXFLAGS = $(LIBNOTIFYMM_WXXFLAGS)
+LDADD = $(LIBNOTIFYMM_LIBS) $(local_libs)
+
+action_example_SOURCES = \
+  action/main.cc \
+  action/test-window.cc \
+  action/test-window.h
+
+basic_example_SOURCES = \
+  basic/main.cc
+
+icon_example_SOURCES = \
+  icon/main.cc
+
+server_info_example_SOURCES = \
+  server-info/main.cc
+
+update_example_SOURCES = \
+  update/main.cc
 
diff --git a/examples/action/main.cc b/examples/action/main.cc
index 13403fd..0d346f8 100644
--- a/examples/action/main.cc
+++ b/examples/action/main.cc
@@ -18,23 +18,20 @@
  * USA
  */
 
-
 #include <libnotifymm.h>
 #include <gtkmm.h>
 #include <iostream>
 
 #include "test-window.h"
 
-int main (int argc, char** argv)
+int main(int argc, char** argv)
 {
   Notify::init("Action");
-  Gtk::Main kit(argc, argv);
-  
-  TestWindow testwindow;
-  
-  kit.run(testwindow);
-  
-  return 0;
-}
+  Glib::RefPtr<Gtk::Application> app =
+    Gtk::Application::create(argc, argv, "org.libnotifymm.example");
 
+  TestWindow testwindow;
 
+  //Shows the window and returns when it is closed.
+  return app->run(testwindow);
+}
diff --git a/examples/basic/main.cc b/examples/basic/main.cc
index 1fc1c76..4b84538 100644
--- a/examples/basic/main.cc
+++ b/examples/basic/main.cc
@@ -18,39 +18,36 @@
  * USA
  */
 
-
 #include <libnotifymm.h>
 #include <iostream>
 
-
-int main (int argc, char** argv)
+int main(int, char**)
 {
   Notify::init("Basics");
 
   Notify::Notification n("Summary", 
-                         "Content that is very long 8374983278r32j4 rhjjfh dw8f 43jhf 8ds7 ur2389f jdbjkt h8924yf jkdbjkt 892hjfiHER98HEJIF BDSJHF hjdhF JKLH 890YRHEJHFU 89HRJKSHdd dddd ddddd dddd ddddd dddd ddddd dddd dddd ddd ddd dddd Fdd d ddddd dddddddd ddddddddhjkewdkjsjfjk sdhkjf hdkj dadasdadsa adsd asd sd saasd fadskfkhsjf hsdkhfkshfjkhsd kjfhsjdkhfj ksdhfkjshkjfsd sadhfjkhaskd jfhsdajkfhkjs dhfkjsdhfkjs adhjkfhasdkj fhdsakjhfjk asdhkjkfhd akfjshjfsk afhjkasdhf jkhsdaj hf kjsdfahkfh sakjhfksdah kfdashkjf ksdahfj shdjdh");
+                         "Content that is very long 8374983278r32j4 rhjjfh dw8f"
+                         "43jhf 8ds7 ur2389f jdbjkt h8924yf jkdbjkt 892hjfiHER98HEJIF"
+                         " BDSJHF hjdhF JKLH 890YRHEJHFU 89HRJKSHdd dddd ddddd dddd"
+                         " ddddd dddd ddddd dddd dddd ddd ddd dddd Fdd d ddddd dddddddd"
+                         " ddddddddhjkewdkjsjfjk sdhkjf hdkj dadasdadsa adsd asd sd"
+                         " saasd fadskfkhsjf hsdkhfkshfjkhsd kjfhsjdkhfj ksdhfkjshkjfsd"
+                         " sadhfjkhaskd jfhsdajkfhkjs dhfkjsdhfkjs adhjkfhasdkj"
+                         " fhdsakjhfjk asdhkjkfhd akfjshjfsk afhjkasdhf jkhsdaj hf"
+                         " kjsdfahkfh sakjhfksdah kfdashkjf ksdahfj shdjdh");
   n.set_timeout(3000); //3 seconds
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {  
-  if (!n.show()) 
-#else
-  std::auto_ptr<Glib::Error> error;
-  if (!n.show(error))
-#endif
-  {
-    std::cerr << "failed to send notification" << std::endl;
-    return 1;
-  }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
+    if (!n.show()) 
+    {
+      std::cerr << "failed to send notification" << std::endl;
+      return 1;
+    }
   }
   catch (Glib::Error& err)
   {
     std::cout << err.what() << std::endl;
   }
-#endif
   return 0;
 }
-
-
diff --git a/examples/icon/main.cc b/examples/icon/main.cc
index e1d32ba..294be08 100644
--- a/examples/icon/main.cc
+++ b/examples/icon/main.cc
@@ -18,39 +18,28 @@
  * USA
  */
 
-
 #include <libnotifymm.h>
 #include <iostream>
 
-
-int main (int argc, char** argv)
+int main(int, char**)
 {
   Notify::init("Icon test");
 
   Notify::Notification n("Icon Test", "Testing stock icon",
-                          "appointment-new");
+                         "appointment-new");
   n.set_timeout(3000); //3 seconds
 
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {  
-  if (!n.show()) 
-#else
-  std::auto_ptr<Glib::Error> error;
-  if (!n.show(error))
-#endif
-  {
-    std::cerr << "failed to send notification" << std::endl;
-    return 1;
-  }
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
+    if (!n.show()) 
+    {
+      std::cerr << "failed to send notification" << std::endl;
+      return 1;
+    }
   }
   catch (Glib::Error& err)
   {
     std::cout << err.what() << std::endl;
   }
-#endif
   return 0;
 }
-
-
diff --git a/examples/server-info/main.cc b/examples/server-info/main.cc
index 42661e8..bc3a9ea 100644
--- a/examples/server-info/main.cc
+++ b/examples/server-info/main.cc
@@ -18,13 +18,11 @@
  * USA
  */
 
-
 #include <libnotifymm.h>
 #include <gtkmm.h>
 #include <iostream>
 
-
-int main (int argc, char** argv)
+int main(int, char**)
 {
   Notify::init("Basics");
   Glib::ustring name, vendor, version, spec_version;
@@ -53,8 +51,6 @@ int main (int argc, char** argv)
   {
     std::cout << "\t" << *ci << std::endl;
   }
-  
+
   return 0;
 }
-
-
diff --git a/examples/update/main.cc b/examples/update/main.cc
index d6ec54a..995165c 100644
--- a/examples/update/main.cc
+++ b/examples/update/main.cc
@@ -18,13 +18,11 @@
  * USA
  */
 
-
 #include <libnotifymm.h>
 #include <gtkmm.h>
 #include <iostream>
 
-
-int main (int argc, char** argv)
+int main(int, char**)
 {
   Notify::init("Basics");
 
diff --git a/libnotify/libnotifymm-uninstalled.pc.in b/libnotify/libnotifymm-uninstalled.pc.in
new file mode 100644
index 0000000..b846198
--- /dev/null
+++ b/libnotify/libnotifymm-uninstalled.pc.in
@@ -0,0 +1,9 @@
+doxytagfile=${pc_top_builddir}/docs/reference/@LIBNOTIFYMM_MODULE_NAME  tag
+htmlrefpub=http://library.gnome.org/devel/@PACKAGE_TARNAME@/unstable/
+
+Name: libnotifymm
+Description: C++ binding for libnotify, not installed
+Version: @LIBNOTIFYMM_VERSION@
+Requires: @LIBNOTIFYMM_MODULES@
+Libs: ${pc_top_builddir}/${pcfiledir}/libnotifymm/libnotifymm- LIBNOTIFYMM_API_VERSION@.la
+Cflags: -I${pc_top_builddir}/${pcfiledir} -I${pc_top_builddir}/${pcfiledir}/@srcdir@
diff --git a/libnotify/libnotifymm.pc.in b/libnotify/libnotifymm.pc.in
new file mode 100644
index 0000000..7156437
--- /dev/null
+++ b/libnotify/libnotifymm.pc.in
@@ -0,0 +1,13 @@
+prefix= prefix@
+exec_prefix= exec_prefix@
+libdir= libdir@
+datarootdir= datarootdir@
+datadir= datadir@
+includedir= includedir@
+
+Name: libnotifymm
+Description: C++ wrapper for libnotify
+Version: @LIBNOTIFYMM_VERSION@
+Requires: @LIBNOTIFYMM_MODULES@
+Libs: -L${libdir} -lnotifymm- LIBNOTIFYMM_API_VERSION@
+Cflags: -I${includedir}/@LIBNOTIFYMM_MODULE_NAME@ -I${libdir}/@LIBNOTIFYMM_MODULE_NAME@/include
diff --git a/libnotify/libnotifymm/Makefile.am b/libnotify/libnotifymm/Makefile.am
index 2597b4d..9421389 100644
--- a/libnotify/libnotifymm/Makefile.am
+++ b/libnotify/libnotifymm/Makefile.am
@@ -1,23 +1,31 @@
-## Copyright (c) 2001
-## The libnotifymm development team.
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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/>.
 
-SUBDIRS			= private
+lib_LTLIBRARIES = libnotifymm- LIBNOTIFYMM_API_VERSION@.la
 
-sublib_name		= libnotifymm
-sublib_libname = libnotifymm-1.0
-sublib_libversion = $(LIBNOTIFYMM_SO_VERSION)
-sublib_namespace	= Notify
-sublib_cflags		= $(LIBNOTIFYMM_CFLAGS)
-sublib_topdir = libnotify
+include $(srcdir)/../src/filelist.am
+include $(srcdir)/filelist.am
+include $(top_srcdir)/build/compile-binding.am
 
+local_cppflags = $(binding_includes) $(binding_cppflags) -DLIBNOTIFYMM_BUILD=1
 
-files_extra_h	= init.h notify.h
-files_extra_cc = init.cc notify.cc
-
-include $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment
-
-lib_LTLIBRARIES			= libnotifymm-1.0.la
-libnotifymm_1_0_la_SOURCES	= $(files_all_cc)
-libnotifymm_1_0_la_LDFLAGS	= $(common_ldflags)
-libnotifymm_1_0_la_LIBADD	= $(LIBNOTIFYMM_LIBS)
+AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(LIBNOTIFYMM_CFLAGS)
+AM_CXXFLAGS = $(LIBNOTIFYMM_WXXFLAGS)
 
+libnotifymm_ LIBNOTIFYMM_API_VERSION@_la_SOURCES = $(binding_sources)
+libnotifymm_ LIBNOTIFYMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(LIBNOTIFYMM_SO_VERSION)
+libnotifymm_ LIBNOTIFYMM_API_VERSION@_la_LIBADD  = $(LIBNOTIFYMM_LIBS)
diff --git a/libnotify/libnotifymm/filelist.am b/libnotify/libnotifymm/filelist.am
new file mode 100644
index 0000000..eddc5b2
--- /dev/null
+++ b/libnotify/libnotifymm/filelist.am
@@ -0,0 +1,8 @@
+## This file is part of libnotifymm.
+
+files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
+files_built_h  = $(files_hg:.hg=.h)
+files_built_ph = $(patsubst %.hg,private/%_p.h,$(files_hg))
+files_extra_cc = init.cc notify.cc
+files_extra_h  = init.h notify.h wrap_init.h
+files_extra_ph =
diff --git a/libnotify/libnotifymmconfig.h.in b/libnotify/libnotifymmconfig.h.in
index d233f73..ae7a72c 100644
--- a/libnotify/libnotifymmconfig.h.in
+++ b/libnotify/libnotifymmconfig.h.in
@@ -1,13 +1,11 @@
-#ifndef _LIBNOTIFYMM_CONFIG_H
-#define _LIBNOTIFYMM_CONFIG_H 1
+/* This file is part of libnotifymm. */
 
-#include "glibmmconfig.h"
+/* Major version number of skeletonmm. */
+#undef LIBNOTIFYMM_MAJOR_VERSION
 
-/* version numbers */
-/* #undef LIBNOTIFYMM_MAJOR_VERSION */
-/* #undef LIBNOTIFYMM_MINOR_VERSION */
-/* #undef LIBNOTIFYMM_MICRO_VERSION */
-/* #undef LIBNOTIFYMM_VERSION */
+/* Minor version number of skeletonmm. */
+#undef LIBNOTIFYMM_MINOR_VERSION
 
-#endif /* _LIBNOTIFYMM_CONFIG_H */
+/* Micro version number of skeletonmm. */
+#undef LIBNOTIFYMM_MICRO_VERSION
 
diff --git a/libnotify/src/Makefile.am b/libnotify/src/Makefile.am
index 90d1bcd..ee7a4c6 100644
--- a/libnotify/src/Makefile.am
+++ b/libnotify/src/Makefile.am
@@ -1,12 +1,24 @@
-## Copyright (c) 2001
-## The libnotifymm development team.
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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	= libnotifymm
-sublib_namespace = Notify
-sublib_parentdir = libnotifymm
-files_defs	= libnotify.defs libnotify_methods.defs libnotify_signals.defs \
-                  libnotify_enum.defs libnotify_docs.xml \
-		  libnotify_docs_override.xml
-
-include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
+binding_name    = libnotifymm
+wrap_init_flags = --namespace=Notify --parent_dir=libnotifymm
+codegen_srcdir  = $(top_srcdir)/tools
 
+include $(srcdir)/filelist.am
+include $(top_srcdir)/tools/m4/filelist.am
+include $(top_srcdir)/build/generate-binding.am
diff --git a/libnotify/src/filelist.am b/libnotify/src/filelist.am
new file mode 100644
index 0000000..c9a56d0
--- /dev/null
+++ b/libnotify/src/filelist.am
@@ -0,0 +1,12 @@
+## This file is part of libnotifymm.
+
+files_defs = \
+  libnotify.defs         \
+  libnotify_enum.defs    \
+  libnotify_methods.defs \
+  libnotify_signals.defs \
+  libnotify_docs.xml     \
+  libnotify_docs_override.xml
+
+files_hg  = notification.hg
+files_ccg = $(files_hg:.hg=.ccg)
diff --git a/libnotify/src/notification.ccg b/libnotify/src/notification.ccg
index c06c5b7..b640859 100644
--- a/libnotify/src/notification.ccg
+++ b/libnotify/src/notification.ccg
@@ -22,7 +22,8 @@ namespace
 {
 
 // We use a function instead of a static method, so we can make it static, so it is not exported.
-static void SignalProxy_ActivateLink_gtk_callback(NotifyNotification* notify, gchar* action, gpointer data)
+static void SignalProxy_ActivateLink_gtk_callback(
+  NotifyNotification* /* notify */, gchar* action, gpointer data)
 {
   Notify::Notification::SlotInvokeAction*
     the_slot = static_cast<Notify::Notification::SlotInvokeAction*>(data);
diff --git a/libnotify/src/notification.hg b/libnotify/src/notification.hg
index 1577fae..529c8d8 100644
--- a/libnotify/src/notification.hg
+++ b/libnotify/src/notification.hg
@@ -19,6 +19,10 @@
 _DEFS(libnotifymm,libnotify)
 _PINCLUDE(glibmm/private/object_p.h)
 
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#undef LIBNOTIFY_DISABLE_DEPRECATED
+#m4 _POP()
+
 #include <gtkmm/widget.h>
 
 namespace Notify
diff --git a/tools/Makefile.am b/tools/Makefile.am
index b5f04a2..4a51068 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,7 +1,34 @@
-SUBDIRS = extra_defs_gen m4
+## Copyright (c) 2001 libnotifymm Development Team
+##
+## This file is part of libnotifymm.
+##
+## libnotifymm 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.
+##
+## libnotifymm 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
 
-EXTRA_DIST = $(files_tools_perl) $(files_tools_pm) \
-	     Makefile_list_of_sources.am_fragment
+include $(srcdir)/m4/filelist.am
 
+dist_noinst_DATA    = $(addprefix m4/,$(files_codegen_m4))
+dist_noinst_SCRIPTS = generate_defs_and_docs.sh
+noinst_PROGRAMS     = extra_defs_gen/generate_extra_defs
+
+extra_defs_gen_generate_extra_defs_SOURCES = extra_defs_gen/generate_defs_libnotify.cc
+extra_defs_gen_generate_extra_defs_LDADD   = $(LIBNOTIFYMM_LIBS) -lglibmm_generate_extra_defs-2.4
+
+AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(LIBNOTIFYMM_CFLAGS)
+AM_CXXFLAGS = $(LIBNOTIFYMM_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_defs_and_docs.sh b/tools/generate_defs_and_docs.sh
new file mode 100755
index 0000000..2395e8c
--- /dev/null
+++ b/tools/generate_defs_and_docs.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# libnotifymm/tools/generate_defs_and_docs.sh
+
+# This script must be executed from directory libnotifymm/tools.
+
+# Assumed directory structure:
+#   glibmm/tools/defs_gen/docextract_to_xml.py
+#   glibmm/tools/defs_gen/h2def.py
+#   glibmm/tools/enum.pl
+#   libnotify/libnotify/*.h
+#   libnotify/libnotify/*.c
+#   libnotifymm/tools/extra_defs_gen/generate_extra_defs
+
+# Generated files:
+#   libnotifymm/libnotify/src/libnotify_docs.xml
+#   libnotifymm/libnotify/src/libnotify_enum.defs
+#   libnotifymm/libnotify/src/libnotify_methods.defs
+#   libnotifymm/libnotify/src/libnotify_signals.defs
+
+GLIBMM_TOOLS_DIR=../../glibmm/tools
+LIBNOTIFY_DIR=../../libnotify
+LIBNOTIFYMM_LIBNOTIFY_SRC_DIR=../libnotify/src
+
+$GLIBMM_TOOLS_DIR/defs_gen/docextract_to_xml.py \
+  -s $LIBNOTIFY_DIR/libnotify \
+  >$LIBNOTIFYMM_LIBNOTIFY_SRC_DIR/libnotify_docs.xml
+
+$GLIBMM_TOOLS_DIR/enum.pl \
+  $LIBNOTIFY_DIR/libnotify/*.h \
+  >$LIBNOTIFYMM_LIBNOTIFY_SRC_DIR/libnotify_enum.defs
+
+$GLIBMM_TOOLS_DIR/defs_gen/h2def.py \
+  $LIBNOTIFY_DIR/libnotify/*.h \
+  >$LIBNOTIFYMM_LIBNOTIFY_SRC_DIR/libnotify_methods.defs
+
+extra_defs_gen/generate_extra_defs \
+  >$LIBNOTIFYMM_LIBNOTIFY_SRC_DIR/libnotify_signals.defs
+
diff --git a/tools/m4/filelist.am b/tools/m4/filelist.am
new file mode 100644
index 0000000..06d8683
--- /dev/null
+++ b/tools/m4/filelist.am
@@ -0,0 +1,3 @@
+## This file is part of libnotifymm.
+
+files_codegen_m4 = convert.m4 convert_libnotifymm.m4



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